{"version":3,"sources":["./node_modules/ngx-bootstrap/__ivy_ngcc__/component-loader/fesm2015/ngx-bootstrap-component-loader.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/focus-trap/fesm2015/ngx-bootstrap-focus-trap.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/modal/fesm2015/ngx-bootstrap-modal.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/positioning/fesm2015/ngx-bootstrap-positioning.js","./node_modules/ngx-bootstrap/__ivy_ngcc__/utils/fesm2015/ngx-bootstrap-utils.js","./src/app/auth/login/login.component.html","./src/app/auth/signup/signup.component.html","./src/app/auth/auth-routing.module.ts","./src/app/auth/auth.module.ts","./src/app/auth/login/login.component.scss","./src/app/auth/login/login.component.ts","./src/app/auth/signup/signup.component.scss","./src/app/auth/signup/signup.component.ts"],"names":[],"mappings":";;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAsL;AACrF;AAClC;;AAEvB;AACY;AACpD;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,gCAAgC,0DAAY;AAC5C,2BAA2B,0DAAY;AACvC,gCAAgC,0DAAY;AAC5C,4BAA4B,0DAAY;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,kBAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,6BAA6B,sDAAQ;AACrC;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0CAA0C,wDAAU;AACpD;AACA;AACA;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,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,iCAAiC,KAAK;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,0CAA0C,8EAAkB;AAC5D;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,2CAA2C,gFAAoB;AAC/D;AACA;AACA;AACA,qBAAqB;AACrB;AACA,aAAa;AACb;AACA;AACA;AACA,mCAAmC,4EAAgB;AACnD;AACA;AACA;AACA,aAAa;AACb;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,yDAAW;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA;AACA;AACA;AACA;AACA,yCAAyC,sDAAQ;AACjD;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA,4CAA4C,QAAQ;AACpD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,0CAA0C,sDAAe,CAAC,sEAA+B,GAAG,sDAAe,CAAC,oDAAa,GAAG,sDAAe,CAAC,sDAAe,GAAG,sDAAe,CAAC,4EAAyB,GAAG,sDAAe,CAAC,4DAAqB,GAAG;AAC5T,+BAA+B,wEAAkB,EAAE,qDAAqD,mCAAmC,8DAAQ,CAAC,sEAAwB,GAAG,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,sDAAQ,GAAG,8DAAQ,CAAC,4EAAkB,GAAG,8DAAQ,CAAC,4DAAc,GAAG,EAAE,qDAAqD;AACpU;AACA,KAAK,OAAO,sEAAwB,EAAE;AACtC,KAAK,OAAO,oDAAM,EAAE;AACpB,KAAK,OAAO,sDAAQ,EAAE;AACtB,KAAK,OAAO,4EAAkB,EAAE;AAChC,KAAK,OAAO,4DAAc;AAC1B;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,sEAA+B,EAAE,GAAG,OAAO,oDAAa,EAAE,GAAG,OAAO,sDAAe,EAAE,GAAG,OAAO,4EAAyB,EAAE,GAAG,OAAO,4DAAqB,EAAE,EAAE,EAAE,QAAQ,EAAE;;AAE/M;AACA;AACA;;AAE+E;;AAE/E,0D;;;;;;;;;;;;AC3VA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA8I;AAClE;AACtC;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACwC;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,8DAA8D,sCAAsC;AACpG,yBAAyB,wEAAkB,EAAE,+CAA+C,+BAA+B,EAAE,+CAA+C;AAC5K,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;;AAE5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,yEAAiB;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;AACA;AACA;AACA,8CAA8C,4BAA4B,sDAAe,CAAC,yDAAW,GAAG;AACxG,iBAAiB,wEAAkB,EAAE,uCAAuC,qBAAqB,8DAAQ,CAAC,yDAAW,GAAG,EAAE,uCAAuC;AACjK;AACA,KAAK,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AACvE;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU;AAC/B,sBAAsB,oDAAM;AAC5B,uBAAuB,yDAAW;AAClC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;;AAE9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,wCAAwC,sDAAe,YAAY;AACzI,6BAA6B,wEAAkB,EAAE,mDAAmD,iCAAiC,8DAAQ,YAAY,EAAE,mDAAmD;AAC9M;AACA,KAAK;AACL;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,iBAAiB,EAAE,EAAE,QAAQ,EAAE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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,+BAA+B,MAAM;AACrC;;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,SAAS;AACT;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EAA0E,MAAM;AAChF,8BAA8B,MAAM;AACpC,0BAA0B,MAAM;AAChC,uBAAuB,oBAAoB;AAC3C;AACA,qDAAqD,MAAM;AAC3D,6EAA6E,MAAM;AACnF,0CAA0C,MAAM;AAChD;AACA;AACA,iEAAiE,MAAM;AACvE,oFAAoF,MAAM;AAC1F,0CAA0C,MAAM;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,uBAAuB,qBAAqB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC,QAAQ;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,uCAAuC,2DAAI;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,8DAA8D,oCAAoC,sDAAe,wBAAwB,sDAAe,CAAC,oDAAa,GAAG,sDAAe,CAAC,wDAAQ,GAAG;AACpM,yBAAyB,wEAAkB,EAAE,+CAA+C,6BAA6B,8DAAQ,wBAAwB,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,wDAAQ,GAAG,EAAE,+CAA+C;AAChP;AACA,KAAK,6BAA6B;AAClC,KAAK,OAAO,oDAAM,EAAE;AACpB,KAAK,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AACvE;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,6BAA6B,GAAG,OAAO,oDAAa,EAAE,GAAG;AACxF,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;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;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,sCAAsC,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,oBAAoB,+DAAwB,CAAC,wDAAQ,GAAG;AACrO,0BAA0B,+DAAwB,EAAE,wEAAwE,gGAAgG,sCAAsC,kEAA2B,GAAG;AAChS;AACA,KAAK,OAAO,wDAAU,EAAE;AACxB,KAAK,yBAAyB;AAC9B,KAAK,gCAAgC,OAAO,oDAAM,SAAS,wDAAQ,IAAI;AACvE;AACA;AACA,eAAe,OAAO,mDAAK,2BAA2B;AACtD,mBAAmB,OAAO,mDAAK,sCAAsC;AACrE;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,yBAAyB,GAAG;AACxF,sBAAsB,oDAAM;AAC5B,uBAAuB,wDAAQ;AAC/B,aAAa,GAAG,EAAE,EAAE,GAAG;AACvB,kBAAkB,mDAAK;AACvB;AACA,SAAS;AACT,kBAAkB,mDAAK;AACvB;AACA,SAAS,GAAG,EAAE,EAAE;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,8DAAuB,EAAE,wBAAwB;AACxE,uBAAuB,8DAAuB,EAAE,+CAA+C,qCAAqC,EAAE,aAAa,4DAAY,IAAI;AACnK,cAAc,oDAAoD,gEAAyB,mBAAmB,4BAA4B,6BAA6B,EAAE,wBAAwB,SAAS,4DAAY,EAAE,EAAE,wBAAwB,6BAA6B,EAAE,EAAE,EAAE,EAAE;AACvR,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,4DAAY;AACtC;AACA;AACA,aAAa;AACb,KAAK,eAAe,EAAE;;AAEtB;AACA;AACA;;AAEsJ;;AAEtJ,oD;;;;;;;;;;;;ACrzBA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAmN;AACpH;AACvB;AACT;AACJ;;AAE3D;AACwC;AACW;AACM;;AAEzD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD,gCAAgC;AAClF,mBAAmB,gEAAyB,EAAE,8CAA8C;AAC5F,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,WAAW,EAAE,QAAQ,EAAE;;AAE5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sDAAsD,kCAAkC;AACxF,qBAAqB,gEAAyB,EAAE,kDAAkD;AAClG,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,eAAe,EAAE;AACtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA,0CAA0C,4DAAc;AACxD;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,sCAAsC;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iEAAiE,iEAAK;AACtE,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,gEAAgE,iEAAK;AACrE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,4EAA4E,2CAA2C,+DAAwB,gBAAgB,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AACxP,+BAA+B,+DAAwB,EAAE,kNAAkN;AAC3Q,QAAQ,wDAAiB,qFAAqF,mCAAmC,EAAE,8EAA8E,gCAAgC,EAAE,8EAA8E,yBAAyB,EAAE,SAAS,6DAAsB,0FAA0F,0BAA0B,EAAE,SAAS,6DAAsB;AAChiB,KAAK;AACL,QAAQ,yDAAkB;AAC1B,KAAK,EAAE,mLAAmL;AAC1L,QAAQ,6DAAsB;AAC9B,QAAQ,4DAAqB;AAC7B,QAAQ,4DAAqB;AAC7B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,QAAQ,0DAAmB;AAC3B,KAAK;AACL,QAAQ,wDAAiB;AACzB,KAAK,EAAE,eAAe,2EAAyB,qBAAqB;AACpE;AACA,KAAK,qBAAqB;AAC1B,KAAK,OAAO,wDAAU,EAAE;AACxB,KAAK,OAAO,uDAAS;AACrB;AACA;AACA,sBAAsB,OAAO,0DAAY,oCAAoC;AAC7E,mBAAmB,OAAO,0DAAY,gCAAgC;AACtE,kBAAkB,OAAO,0DAAY,8BAA8B;AACnE,aAAa,OAAO,0DAAY,6CAA6C;AAC7E;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,gBAAgB,UAAU,qBAAqB,GAAG,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,GAAG;AACpH,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS;AACT,kBAAkB,0DAAY;AAC9B;AACA,SAAS,GAAG,EAAE,EAAE;;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kEAAkE,cAAc;AAChF;AACA;AACA,qEAAqE,cAAc;AACnF;AACA,aAAa,iEAAK;AAClB;AACA,sEAAsE,gBAAgB;AACtF;AACA;AACA,yEAAyE,gBAAgB;AACzF;AACA;AACA;AACA;AACA;AACA,kEAAkE,gBAAgB;AAClF,YAAY,yDAAK;AACjB;AACA;AACA;AACA;AACA,0EAA0E,0CAA0C,+DAAwB,CAAC,wDAAiB,GAAG,+DAAwB,CAAC,uDAAgB,GAAG;AAC7M,8BAA8B,+DAAwB,EAAE,qLAAqL,EAAE,oBAAoB;AACnQ;AACA,KAAK,OAAO,wDAAU,EAAE;AACxB,KAAK,OAAO,uDAAS;AACrB;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,uDAAS;AACvB;AACA;AACA;AACA;AACA,uBAAuB;AACvB,aAAa;AACb,KAAK,gBAAgB,UAAU,OAAO,wDAAiB,EAAE,GAAG,OAAO,uDAAgB,EAAE,EAAE,EAAE,QAAQ,EAAE;;AAEnG;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA,2BAA2B,0DAAY;AACvC;AACA;AACA;AACA,0BAA0B,0DAAY;AACtC;AACA;AACA;AACA,4BAA4B,0DAAY;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,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,4DAAU,IAAI,4DAAU;AACpC,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA,wCAAwC,4DAAU;AAClD,wCAAwC,4DAAU;AAClD;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,QAAQ,0DAAQ;AAChB,QAAQ,0DAAQ;AAChB;AACA;AACA,aAAa,iEAAK;AAClB;AACA;AACA;AACA;AACA,kCAAkC,0DAAQ;AAC1C;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,4DAAU,IAAI,4DAAU;AACxC,gBAAgB,4DAAU;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAY,yDAAK;AACjB;AACA;AACA;AACA,aAAa,iEAAK;AAClB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,4DAAU,IAAI,4DAAU;AAC5C,+CAA+C,4DAAU;AACzD,4CAA4C,4DAAU;AACtD;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB,oCAAoC;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,0DAAQ;AAC/C;AACA;AACA;AACA;AACA;AACA;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;AACA;AACA;AACA;AACA;AACA,kCAAkC,0DAAY;AAC9C,gCAAgC,0DAAY;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,QAAQ,0FAA0F,EAAE;AACxK;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,kDAAkD;AAClD,oCAAoC;AACpC;AACA;AACA;AACA,8CAA8C,yBAAyB;AACvE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oEAAoE,QAAQ,0FAA0F,EAAE;AACxK;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,0DAA0D,kCAAkC,sDAAe,CAAC,8DAAuB,GAAG,sDAAe,CAAC,qFAA6B,GAAG,sDAAe,oCAAoC;AACzO,uBAAuB,gEAAyB,EAAE,sDAAsD;AACxG;AACA,KAAK,OAAO,8DAAgB,EAAE;AAC9B,KAAK,OAAO,qFAAsB,EAAE;AACpC,KAAK,mCAAmC,OAAO,sDAAQ,EAAE,GAAG,OAAO,oDAAM,0CAA0C;AACnH;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,KAAK,gBAAgB,UAAU,OAAO,8DAAuB,EAAE,GAAG,OAAO,qFAA6B,EAAE,GAAG;AAC3G,sBAAsB,sDAAQ;AAC9B,aAAa;AACb,sBAAsB,oDAAM;AAC5B;AACA,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;;AAE9B,wBAAwB,wEAAe;AACvC;AACA;AACA;AACA;AACA,wCAAwC,qFAAsB,EAAE,4EAAkB;AAClF;AACA;AACA;AACA;AACA;AACA,wCAAwC,qFAAsB,EAAE,4EAAkB;AAClF;AACA;AACA;AACA,mBAAmB,8DAAuB,EAAE,oBAAoB;AAChE,mBAAmB,8DAAuB,EAAE,2CAA2C,iCAAiC,EAAE,aAAa,wEAAe,IAAI;AAC1J,cAAc,oDAAoD,gEAAyB,eAAe,4BAA4B;AACtI;AACA,iCAAiC,EAAE,wBAAwB,SAAS,wEAAe,EAAE,EAAE,wBAAwB;AAC/G,wBAAwB,EAAE,EAAE,EAAE,EAAE;AAChC,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,sDAAQ;AACtB;AACA,0BAA0B,wEAAe;AACzC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb,KAAK,eAAe,EAAE;;AAEtB;AACA;AACA;;AAEyM;;AAEzM,+C;;;;;;;;;;;;ACn6BA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA+C;AACqF;AAChF;AAC0B;;AAEtC;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,CAAC,gDAAgD;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,CAAC,0CAA0C;;AAE3C;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;;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,WAAW,WAAW;AACtB;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;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,uCAAuC,MAAM;AAC7C,mCAAmC,MAAM;AACzC;;AAEA;AACA;AACA;AACA;AACA,mCAAmC,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK,mBAAmB,KAAK;AACxI,mCAAmC,KAAK;AACxC,6CAA6C,mCAAmC;AAChF,6CAA6C,uCAAuC;AACpF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,yCAAyC,aAAa,0FAA0F;AAChJ;;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;;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;AACA;AACA;AACA;AACA;AACA,WAAW,iCAAiC;AAC5C;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;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;;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;;AAEA;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,mBAAmB,gBAAgB;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;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB,gBAAgB;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,MAAM,gBAAgB,4BAA4B;AACtG;AACA,6CAA6C,gBAAgB;AAC7D;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,kFAAkF,oEAAQ,kEAAkE;AAC5J,gDAAgD,UAAU;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,kBAAkB;AAClB;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;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;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS,oEAAQ;AACjB;AACA;AACA;AACA;AACA;AACA,SAAS,oEAAQ;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0BAA0B,oEAAQ;AAClC;AACA,kFAAkF,cAAc;AAChG;AACA,kFAAkF,cAAc;AAChG,+DAA+D,cAAc;AAC7E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mFAAmF,4BAA4B;AAC/G;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gDAAgD,qBAAqB,EAAE,KAAK;AAC5E;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;AACA;AACA;AACA;AACA,qDAAqD,gBAAgB;AACrE,qDAAqD,gBAAgB;AACrE;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,4DAA4D;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,0DAA0D,UAAU;AACpE,gEAAgE;AAChE;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mDAAmD,WAAW;AAC9D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B,cAAc,EAAE;AAC7C;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD;AACpD,WAAW,wCAAwC;AACnD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB;AACpB;AACA;AACA;AACA;AACA,4DAA4D;AAC5D,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,eAAe;AAC9B;AACA;AACA;AACA;AACA,oBAAoB,qBAAqB;AACzC;AACA;AACA;AACA;AACA,4DAA4D;AAC5D;AACA,SAAS;AACT;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,kCAAkC,aAAa,MAAM,YAAY;AACjE,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,4BAA4B,4CAAO;AACnC;AACA;AACA,YAAY,yEAAiB;AAC7B;AACA,qCAAqC,kDAAK,CAAC,sDAAS,oBAAoB,gBAAgB,GAAG,sDAAS,oBAAoB,gBAAgB,GAAG,+CAAE,IAAI,4DAAuB;AACxK;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB,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,kEAAkE,sCAAsC,sDAAe,CAAC,oDAAa,GAAG,sDAAe,CAAC,8DAAuB,GAAG,sDAAe,CAAC,yDAAW,GAAG;AAChN,2BAA2B,wEAAkB,EAAE,iDAAiD,+BAA+B,8DAAQ,CAAC,oDAAM,GAAG,8DAAQ,CAAC,8DAAgB,GAAG,8DAAQ,CAAC,yDAAW,GAAG,EAAE,iDAAiD;AACvP;AACA,KAAK,OAAO,oDAAM,EAAE;AACpB,KAAK,OAAO,8DAAgB,EAAE;AAC9B,KAAK,6BAA6B,OAAO,oDAAM,SAAS,yDAAW,IAAI;AACvE;AACA,4BAA4B,CAAC,+DAAwB;AACrD,cAAc,wDAAU;AACxB,gBAAgB,qBAAqB;AACrC,KAAK,gBAAgB,UAAU,OAAO,oDAAa,EAAE,GAAG,OAAO,8DAAuB,EAAE,GAAG;AAC3F,sBAAsB,oDAAM;AAC5B,uBAAuB,yDAAW;AAClC,aAAa,GAAG,EAAE,EAAE,QAAQ,EAAE;AAC9B;AACA;AACA;AACA;AACA;AACA,2BAA2B,wDAAU;AACrC;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAE4F;;AAE5F,qD;;;;;;;;;;;;ACrjCA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA0C;;AAE1C;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,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,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,KAAK;AACL;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,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;;AAEA;AACA;AACA;AACA;AACA;AACA,CAAC,8BAA8B;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;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,2BAA2B,kBAAkB;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,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA,6BAA6B,8BAA8B;AAC3D;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;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;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,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2BAA2B,qBAAqB;AAChD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA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","file":"auth-auth-module-es2015.js","sourcesContent":["import { EventEmitter, Injector, ElementRef, TemplateRef, ɵɵdefineInjectable, ɵɵinject, ComponentFactoryResolver, NgZone, INJECTOR, ApplicationRef, Injectable } from '@angular/core';\nimport { listenToTriggersV2, registerOutsideClick, registerEscClick } from 'ngx-bootstrap/utils';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\n\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from 'ngx-bootstrap/positioning';\nclass BsComponentRef {\n}\n\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass ContentRef {\n constructor(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n nodes, viewRef, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n componentRef) {\n this.nodes = nodes;\n this.viewRef = viewRef;\n this.componentRef = componentRef;\n }\n}\n\n// todo: add delay support\nclass ComponentLoader {\n /**\n * Do not use this directly, it should be instanced via\n * `ComponentLoadFactory.attach`\n * @internal\n */\n constructor(_viewContainerRef, _renderer, _elementRef, _injector, _componentFactoryResolver, _ngZone, _applicationRef, _posService) {\n this._viewContainerRef = _viewContainerRef;\n this._renderer = _renderer;\n this._elementRef = _elementRef;\n this._injector = _injector;\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._applicationRef = _applicationRef;\n this._posService = _posService;\n this.onBeforeShow = new EventEmitter();\n this.onShown = new EventEmitter();\n this.onBeforeHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this._providers = [];\n this._isHiding = false;\n /**\n * A selector used if container element was not found\n */\n this.containerDefaultSelector = 'body';\n this._listenOpts = {};\n this._globalListener = Function.prototype;\n }\n get isShown() {\n if (this._isHiding) {\n return false;\n }\n return !!this._componentRef;\n }\n attach(compType) {\n this._componentFactory = this._componentFactoryResolver\n .resolveComponentFactory(compType);\n return this;\n }\n // todo: add behaviour: to target element, `body`, custom element\n to(container) {\n this.container = container || this.container;\n return this;\n }\n position(opts) {\n if (!opts) {\n return this;\n }\n this.attachment = opts.attachment || this.attachment;\n this._elementRef = opts.target || this._elementRef;\n return this;\n }\n provide(provider) {\n this._providers.push(provider);\n return this;\n }\n // todo: appendChild to element or document.querySelector(this.container)\n show(opts = {}) {\n this._subscribePositioning();\n this._innerComponent = void 0;\n if (!this._componentRef) {\n this.onBeforeShow.emit();\n this._contentRef = this._getContentRef(opts.content, opts.context, opts.initialState);\n const injector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n if (!this._componentFactory) {\n return;\n }\n this._componentRef = this._componentFactory.create(injector, this._contentRef.nodes);\n this._applicationRef.attachView(this._componentRef.hostView);\n // this._componentRef = this._viewContainerRef\n // .createComponent(this._componentFactory, 0, injector, this._contentRef.nodes);\n this.instance = this._componentRef.instance;\n Object.assign(this._componentRef.instance, opts);\n if (this.container instanceof ElementRef) {\n this.container.nativeElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (typeof this.container === 'string' && typeof document !== 'undefined') {\n const selectedElement = document.querySelector(this.container) ||\n document.querySelector(this.containerDefaultSelector);\n if (!selectedElement) {\n return;\n }\n selectedElement.appendChild(this._componentRef.location.nativeElement);\n }\n if (!this.container &&\n this._elementRef &&\n this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.appendChild(this._componentRef.location.nativeElement);\n }\n // we need to manually invoke change detection since events registered\n // via\n // Renderer::listen() are not picked up by change detection with the\n // OnPush strategy\n if (this._contentRef.componentRef) {\n this._innerComponent = this._contentRef.componentRef.instance;\n this._contentRef.componentRef.changeDetectorRef.markForCheck();\n this._contentRef.componentRef.changeDetectorRef.detectChanges();\n }\n this._componentRef.changeDetectorRef.markForCheck();\n this._componentRef.changeDetectorRef.detectChanges();\n this.onShown.emit(opts.id ? { id: opts.id } : this._componentRef.instance);\n }\n this._registerOutsideClick();\n return this._componentRef;\n }\n hide(id) {\n var _a, _b, _c;\n if (!this._componentRef) {\n return this;\n }\n this._posService.deletePositionElement(this._componentRef.location);\n this.onBeforeHide.emit(this._componentRef.instance);\n const componentEl = this._componentRef.location.nativeElement;\n componentEl.parentNode.removeChild(componentEl);\n if ((_a = this._contentRef) === null || _a === void 0 ? void 0 : _a.componentRef) {\n this._contentRef.componentRef.destroy();\n }\n if (this._viewContainerRef && ((_b = this._contentRef) === null || _b === void 0 ? void 0 : _b.viewRef)) {\n this._viewContainerRef.remove(this._viewContainerRef.indexOf(this._contentRef.viewRef));\n }\n if ((_c = this._contentRef) === null || _c === void 0 ? void 0 : _c.viewRef) {\n this._contentRef.viewRef.destroy();\n }\n this._contentRef = void 0;\n this._componentRef = void 0;\n this._removeGlobalListener();\n this.onHidden.emit(id ? { id } : null);\n return this;\n }\n toggle() {\n if (this.isShown) {\n this.hide();\n return;\n }\n this.show();\n }\n dispose() {\n if (this.isShown) {\n this.hide();\n }\n this._unsubscribePositioning();\n if (this._unregisterListenersFn) {\n this._unregisterListenersFn();\n }\n }\n listen(listenOpts) {\n var _a;\n this.triggers = listenOpts.triggers || this.triggers;\n this._listenOpts.outsideClick = listenOpts.outsideClick;\n this._listenOpts.outsideEsc = listenOpts.outsideEsc;\n listenOpts.target = listenOpts.target || ((_a = this._elementRef) === null || _a === void 0 ? void 0 : _a.nativeElement);\n const hide = (this._listenOpts.hide = () => listenOpts.hide ? listenOpts.hide() : void this.hide());\n const show = (this._listenOpts.show = (registerHide) => {\n listenOpts.show ? listenOpts.show(registerHide) : this.show(registerHide);\n registerHide();\n });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const toggle = (registerHide) => {\n this.isShown ? hide() : show(registerHide);\n };\n if (this._renderer) {\n this._unregisterListenersFn = listenToTriggersV2(this._renderer, {\n target: listenOpts.target,\n triggers: listenOpts.triggers,\n show,\n hide,\n toggle\n });\n }\n return this;\n }\n _removeGlobalListener() {\n if (this._globalListener) {\n this._globalListener();\n this._globalListener = Function.prototype;\n }\n }\n attachInline(vRef, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n template) {\n if (vRef && template) {\n this._inlineViewRef = vRef.createEmbeddedView(template);\n }\n return this;\n }\n _registerOutsideClick() {\n if (!this._componentRef || !this._componentRef.location) {\n return;\n }\n // why: should run after first event bubble\n if (this._listenOpts.outsideClick) {\n const target = this._componentRef.location.nativeElement;\n setTimeout(() => {\n if (this._renderer && this._elementRef) {\n this._globalListener = registerOutsideClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideClick: this._listenOpts.outsideClick,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n });\n }\n if (this._listenOpts.outsideEsc && this._renderer && this._elementRef) {\n const target = this._componentRef.location.nativeElement;\n this._globalListener = registerEscClick(this._renderer, {\n targets: [target, this._elementRef.nativeElement],\n outsideEsc: this._listenOpts.outsideEsc,\n hide: () => this._listenOpts.hide && this._listenOpts.hide()\n });\n }\n }\n getInnerComponent() {\n return this._innerComponent;\n }\n _subscribePositioning() {\n if (this._zoneSubscription || !this.attachment) {\n return;\n }\n this.onShown.subscribe(() => {\n var _a;\n this._posService.position({\n element: (_a = this._componentRef) === null || _a === void 0 ? void 0 : _a.location,\n target: this._elementRef,\n attachment: this.attachment,\n appendToBody: this.container === 'body'\n });\n });\n this._zoneSubscription = this._ngZone.onStable.subscribe(() => {\n if (!this._componentRef) {\n return;\n }\n this._posService.calcPosition();\n });\n }\n _unsubscribePositioning() {\n if (!this._zoneSubscription) {\n return;\n }\n this._zoneSubscription.unsubscribe();\n this._zoneSubscription = void 0;\n }\n _getContentRef(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n context, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n initialState) {\n if (!content) {\n return new ContentRef([]);\n }\n if (content instanceof TemplateRef) {\n if (this._viewContainerRef) {\n const _viewRef = this._viewContainerRef\n .createEmbeddedView(content, context);\n _viewRef.markForCheck();\n return new ContentRef([_viewRef.rootNodes], _viewRef);\n }\n const viewRef = content.createEmbeddedView({});\n this._applicationRef.attachView(viewRef);\n return new ContentRef([viewRef.rootNodes], viewRef);\n }\n if (typeof content === 'function') {\n const contentCmptFactory = this._componentFactoryResolver.resolveComponentFactory(content);\n const modalContentInjector = Injector.create({\n providers: this._providers,\n parent: this._injector\n });\n const componentRef = contentCmptFactory.create(modalContentInjector);\n Object.assign(componentRef.instance, initialState);\n this._applicationRef.attachView(componentRef.hostView);\n return new ContentRef([[componentRef.location.nativeElement]], componentRef.hostView, componentRef);\n }\n const nodes = this._renderer\n ? [this._renderer.createText(`${content}`)]\n : [];\n return new ContentRef([nodes]);\n }\n}\n\nclass ComponentLoaderFactory {\n constructor(_componentFactoryResolver, _ngZone, _injector, _posService, _applicationRef) {\n this._componentFactoryResolver = _componentFactoryResolver;\n this._ngZone = _ngZone;\n this._injector = _injector;\n this._posService = _posService;\n this._applicationRef = _applicationRef;\n }\n /**\n *\n * @param _elementRef\n * @param _viewContainerRef\n * @param _renderer\n */\n createLoader(_elementRef, _viewContainerRef, _renderer) {\n return new ComponentLoader(_viewContainerRef, _renderer, _elementRef, this._injector, this._componentFactoryResolver, this._ngZone, this._applicationRef, this._posService);\n }\n}\nComponentLoaderFactory.ɵfac = function ComponentLoaderFactory_Factory(t) { return new (t || ComponentLoaderFactory)(ɵngcc0.ɵɵinject(ɵngcc0.ComponentFactoryResolver), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.Injector), ɵngcc0.ɵɵinject(ɵngcc1.PositioningService), ɵngcc0.ɵɵinject(ɵngcc0.ApplicationRef)); };\nComponentLoaderFactory.ɵprov = ɵɵdefineInjectable({ factory: function ComponentLoaderFactory_Factory() { return new ComponentLoaderFactory(ɵɵinject(ComponentFactoryResolver), ɵɵinject(NgZone), ɵɵinject(INJECTOR), ɵɵinject(PositioningService), ɵɵinject(ApplicationRef)); }, token: ComponentLoaderFactory, providedIn: \"root\" });\nComponentLoaderFactory.ctorParameters = () => [\n { type: ComponentFactoryResolver },\n { type: NgZone },\n { type: Injector },\n { type: PositioningService },\n { type: ApplicationRef }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ComponentLoaderFactory, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.ComponentFactoryResolver }, { type: ɵngcc0.NgZone }, { type: ɵngcc0.Injector }, { type: ɵngcc1.PositioningService }, { type: ɵngcc0.ApplicationRef }]; }, null); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsComponentRef, ComponentLoader, ComponentLoaderFactory, ContentRef };\n\n//# sourceMappingURL=ngx-bootstrap-component-loader.js.map","import { ɵɵdefineInjectable, Injectable, ɵɵinject, PLATFORM_ID, Inject, NgZone, Directive, ElementRef, Input, NgModule } from '@angular/core';\nimport { isPlatformBrowser, DOCUMENT, CommonModule } from '@angular/common';\nimport { take } 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/** Injectable that ensures only the most recently enabled FocusTrap is active. */\nimport * as ɵngcc0 from '@angular/core';\nclass FocusTrapManager {\n constructor() {\n // A stack of the FocusTraps on the page. Only the FocusTrap at the\n // top of the stack is active.\n this._focusTrapStack = [];\n }\n /**\n * Disables the FocusTrap at the top of the stack, and then pushes\n * the new FocusTrap onto the stack.\n */\n register(focusTrap) {\n // Dedupe focusTraps that register multiple times.\n this._focusTrapStack = this._focusTrapStack.filter((ft) => ft !== focusTrap);\n let stack = this._focusTrapStack;\n if (stack.length) {\n stack[stack.length - 1]._disable();\n }\n stack.push(focusTrap);\n focusTrap._enable();\n }\n /**\n * Removes the FocusTrap from the stack, and activates the\n * FocusTrap that is the new top of the stack.\n */\n deregister(focusTrap) {\n focusTrap._disable();\n const stack = this._focusTrapStack;\n const i = stack.indexOf(focusTrap);\n if (i !== -1) {\n stack.splice(i, 1);\n if (stack.length) {\n stack[stack.length - 1]._enable();\n }\n }\n }\n}\nFocusTrapManager.ɵfac = function FocusTrapManager_Factory(t) { return new (t || FocusTrapManager)(); };\nFocusTrapManager.ɵprov = ɵɵdefineInjectable({ factory: function FocusTrapManager_Factory() { return new FocusTrapManager(); }, token: FocusTrapManager, providedIn: \"root\" });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(FocusTrapManager, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return []; }, 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// Whether the current platform supports the V8 Break Iterator. The V8 check\n// is necessary to detect all Blink based browsers.\nlet hasV8BreakIterator;\n// We need a try/catch around the reference to `Intl`, because accessing it in some cases can\n// cause IE to throw. These cases are tied to particular versions of Windows and can happen if\n// the consumer is providing a polyfilled `Map`. See:\n// https://github.com/Microsoft/ChakraCore/issues/3189\n// https://github.com/angular/components/issues/15687\ntry {\n hasV8BreakIterator = (typeof Intl !== 'undefined' && Intl.v8BreakIterator);\n}\ncatch (_a) {\n hasV8BreakIterator = false;\n}\n/**\n * Service to detect the current platform by comparing the userAgent strings and\n * checking browser-specific global properties.\n */\nclass Platform {\n constructor(_platformId) {\n this._platformId = _platformId;\n // We want to use the Angular platform check because if the Document is shimmed\n // without the navigator, the following checks will fail. This is preferred because\n // sometimes the Document may be shimmed without the user's knowledge or intention\n /** Whether the Angular application is being rendered in the browser. */\n this.isBrowser = this._platformId ?\n isPlatformBrowser(this._platformId) : typeof document === 'object' && !!document;\n /** Whether the current browser is Microsoft Edge. */\n this.EDGE = this.isBrowser && /(edge)/i.test(navigator.userAgent);\n /** Whether the current rendering engine is Microsoft Trident. */\n this.TRIDENT = this.isBrowser && /(msie|trident)/i.test(navigator.userAgent);\n // EdgeHTML and Trident mock Blink specific things and need to be excluded from this check.\n /** Whether the current rendering engine is Blink. */\n this.BLINK = this.isBrowser && (!!(window.chrome || hasV8BreakIterator) &&\n typeof CSS !== 'undefined' && !this.EDGE && !this.TRIDENT);\n // Webkit is part of the userAgent in EdgeHTML, Blink and Trident. Therefore we need to\n // ensure that Webkit runs standalone and is not used as another engine's base.\n /** Whether the current rendering engine is WebKit. */\n this.WEBKIT = this.isBrowser &&\n /AppleWebKit/i.test(navigator.userAgent) && !this.BLINK && !this.EDGE && !this.TRIDENT;\n /** Whether the current platform is Apple iOS. */\n this.IOS = this.isBrowser && /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !('MSStream' in window);\n // It's difficult to detect the plain Gecko engine, because most of the browsers identify\n // them self as Gecko-like browsers and modify the userAgent's according to that.\n // Since we only cover one explicit Firefox case, we can simply check for Firefox\n // instead of having an unstable check for Gecko.\n /** Whether the current browser is Firefox. */\n this.FIREFOX = this.isBrowser && /(firefox|minefield)/i.test(navigator.userAgent);\n /** Whether the current platform is Android. */\n // Trident on mobile adds the android platform to the userAgent to trick detections.\n this.ANDROID = this.isBrowser && /android/i.test(navigator.userAgent) && !this.TRIDENT;\n // Safari browsers will include the Safari keyword in their userAgent. Some browsers may fake\n // this and just place the Safari keyword in the userAgent. To be more safe about Safari every\n // Safari browser should also use Webkit as its layout engine.\n /** Whether the current browser is Safari. */\n this.SAFARI = this.isBrowser && /safari/i.test(navigator.userAgent) && this.WEBKIT;\n }\n}\nPlatform.ɵfac = function Platform_Factory(t) { return new (t || Platform)(ɵngcc0.ɵɵinject(PLATFORM_ID)); };\nPlatform.ɵprov = ɵɵdefineInjectable({ factory: function Platform_Factory() { return new Platform(ɵɵinject(PLATFORM_ID)); }, token: Platform, providedIn: \"root\" });\nPlatform.ctorParameters = () => [\n { type: Object, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(Platform, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: Object, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, 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 * Configuration for the isFocusable method.\n */\nclass IsFocusableConfig {\n constructor() {\n /**\n * Whether to count an element as focusable even if it is not currently visible.\n */\n this.ignoreVisibility = false;\n }\n}\n// The InteractivityChecker leans heavily on the ally.js accessibility utilities.\n// Methods like `isTabbable` are only covering specific edge-cases for the browsers which are\n// supported.\n/**\n * Utility for checking the interactivity of an element, such as whether is is focusable or\n * tabbable.\n */\nclass InteractivityChecker {\n constructor(_platform) {\n this._platform = _platform;\n }\n /**\n * Gets whether an element is disabled.\n *\n * @param element Element to be checked.\n * @returns Whether the element is disabled.\n */\n isDisabled(element) {\n // This does not capture some cases, such as a non-form control with a disabled attribute or\n // a form control inside of a disabled form, but should capture the most common cases.\n return element.hasAttribute('disabled');\n }\n /**\n * Gets whether an element is visible for the purposes of interactivity.\n *\n * This will capture states like `display: none` and `visibility: hidden`, but not things like\n * being clipped by an `overflow: hidden` parent or being outside the viewport.\n *\n * @returns Whether the element is visible.\n */\n isVisible(element) {\n return hasGeometry(element) && getComputedStyle(element).visibility === 'visible';\n }\n /**\n * Gets whether an element can be reached via Tab key.\n * Assumes that the element has already been checked with isFocusable.\n *\n * @param element Element to be checked.\n * @returns Whether the element is tabbable.\n */\n isTabbable(element) {\n // Nothing is tabbable on the server 😎\n if (!this._platform.isBrowser) {\n return false;\n }\n const frameElement = getFrameElement(getWindow(element));\n if (frameElement) {\n // Frame elements inherit their tabindex onto all child elements.\n if (getTabIndexValue(frameElement) === -1) {\n return false;\n }\n // Browsers disable tabbing to an element inside of an invisible frame.\n if (!this.isVisible(frameElement)) {\n return false;\n }\n }\n let nodeName = element.nodeName.toLowerCase();\n let tabIndexValue = getTabIndexValue(element);\n if (element.hasAttribute('contenteditable')) {\n return tabIndexValue !== -1;\n }\n if (nodeName === 'iframe' || nodeName === 'object') {\n // The frame or object's content may be tabbable depending on the content, but it's\n // not possibly to reliably detect the content of the frames. We always consider such\n // elements as non-tabbable.\n return false;\n }\n // In iOS, the browser only considers some specific elements as tabbable.\n if (this._platform.WEBKIT && this._platform.IOS && !isPotentiallyTabbableIOS(element)) {\n return false;\n }\n if (nodeName === 'audio') {\n // Audio elements without controls enabled are never tabbable, regardless\n // of the tabindex attribute explicitly being set.\n if (!element.hasAttribute('controls')) {\n return false;\n }\n // Audio elements with controls are by default tabbable unless the\n // tabindex attribute is set to `-1` explicitly.\n return tabIndexValue !== -1;\n }\n if (nodeName === 'video') {\n // For all video elements, if the tabindex attribute is set to `-1`, the video\n // is not tabbable. Note: We cannot rely on the default `HTMLElement.tabIndex`\n // property as that one is set to `-1` in Chrome, Edge and Safari v13.1. The\n // tabindex attribute is the source of truth here.\n if (tabIndexValue === -1) {\n return false;\n }\n // If the tabindex is explicitly set, and not `-1` (as per check before), the\n // video element is always tabbable (regardless of whether it has controls or not).\n if (tabIndexValue !== null) {\n return true;\n }\n // Otherwise (when no explicit tabindex is set), a video is only tabbable if it\n // has controls enabled. Firefox is special as videos are always tabbable regardless\n // of whether there are controls or not.\n return this._platform.FIREFOX || element.hasAttribute('controls');\n }\n return element.tabIndex >= 0;\n }\n /**\n * Gets whether an element can be focused by the user.\n *\n * @param element Element to be checked.\n * @param config The config object with options to customize this method's behavior\n * @returns Whether the element is focusable.\n */\n isFocusable(element, config) {\n // Perform checks in order of left to most expensive.\n // Again, naive approach that does not capture many edge cases and browser quirks.\n return isPotentiallyFocusable(element) && !this.isDisabled(element) &&\n ((config === null || config === void 0 ? void 0 : config.ignoreVisibility) || this.isVisible(element));\n }\n}\nInteractivityChecker.ɵfac = function InteractivityChecker_Factory(t) { return new (t || InteractivityChecker)(ɵngcc0.ɵɵinject(Platform)); };\nInteractivityChecker.ɵprov = ɵɵdefineInjectable({ factory: function InteractivityChecker_Factory() { return new InteractivityChecker(ɵɵinject(Platform)); }, token: InteractivityChecker, providedIn: \"root\" });\nInteractivityChecker.ctorParameters = () => [\n { type: Platform }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(InteractivityChecker, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: Platform }]; }, null); })();\n/**\n * Returns the frame element from a window object. Since browsers like MS Edge throw errors if\n * the frameElement property is being accessed from a different host address, this property\n * should be accessed carefully.\n */\nfunction getFrameElement(window) {\n try {\n return window.frameElement;\n }\n catch (_a) {\n return null;\n }\n}\n/** Checks whether the specified element has any geometry / rectangles. */\nfunction hasGeometry(element) {\n // Use logic from jQuery to check for an invisible element.\n // See https://github.com/jquery/jquery/blob/master/src/css/hiddenVisibleSelectors.js#L12\n return !!(element.offsetWidth || element.offsetHeight ||\n (typeof element.getClientRects === 'function' && element.getClientRects().length));\n}\n/** Gets whether an element's */\nfunction isNativeFormElement(element) {\n let nodeName = element.nodeName.toLowerCase();\n return nodeName === 'input' ||\n nodeName === 'select' ||\n nodeName === 'button' ||\n nodeName === 'textarea';\n}\n/** Gets whether an element is an ``. */\nfunction isHiddenInput(element) {\n return isInputElement(element) && element.type == 'hidden';\n}\n/** Gets whether an element is an anchor that has an href attribute. */\nfunction isAnchorWithHref(element) {\n return isAnchorElement(element) && element.hasAttribute('href');\n}\n/** Gets whether an element is an input element. */\nfunction isInputElement(element) {\n return element.nodeName.toLowerCase() == 'input';\n}\n/** Gets whether an element is an anchor element. */\nfunction isAnchorElement(element) {\n return element.nodeName.toLowerCase() == 'a';\n}\n/** Gets whether an element has a valid tabindex. */\nfunction hasValidTabIndex(element) {\n if (!element.hasAttribute('tabindex') || element.tabIndex === undefined) {\n return false;\n }\n let tabIndex = element.getAttribute('tabindex');\n // IE11 parses tabindex=\"\" as the value \"-32768\"\n if (tabIndex == '-32768') {\n return false;\n }\n return !!(tabIndex && !isNaN(parseInt(tabIndex, 10)));\n}\n/**\n * Returns the parsed tabindex from the element attributes instead of returning the\n * evaluated tabindex from the browsers defaults.\n */\nfunction getTabIndexValue(element) {\n if (!hasValidTabIndex(element)) {\n return null;\n }\n // See browser issue in Gecko https://bugzilla.mozilla.org/show_bug.cgi?id=1128054\n const tabIndex = parseInt(element.getAttribute('tabindex') || '', 10);\n return isNaN(tabIndex) ? -1 : tabIndex;\n}\n/** Checks whether the specified element is potentially tabbable on iOS */\nfunction isPotentiallyTabbableIOS(element) {\n let nodeName = element.nodeName.toLowerCase();\n let inputType = nodeName === 'input' && element.type;\n return inputType === 'text'\n || inputType === 'password'\n || nodeName === 'select'\n || nodeName === 'textarea';\n}\n/**\n * Gets whether an element is potentially focusable without taking current visible/disabled state\n * into account.\n */\nfunction isPotentiallyFocusable(element) {\n // Inputs are potentially focusable *unless* they're type=\"hidden\".\n if (isHiddenInput(element)) {\n return false;\n }\n return isNativeFormElement(element) ||\n isAnchorWithHref(element) ||\n element.hasAttribute('contenteditable') ||\n hasValidTabIndex(element);\n}\n/** Gets the parent window of a DOM node with regards of being inside of an iframe. */\nfunction getWindow(node) {\n // ownerDocument is null if `node` itself *is* a document.\n return node.ownerDocument && node.ownerDocument.defaultView || window;\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/** Coerces a data-bound value (typically a string) to a boolean. */\nfunction coerceBooleanProperty(value) {\n return value != null && `${value}` !== 'false';\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 * Class that allows for trapping focus within a DOM element.\n *\n * This class currently uses a relatively simple approach to focus trapping.\n * It assumes that the tab order is the same as DOM order, which is not necessarily true.\n * Things like `tabIndex > 0`, flex `order`, and shadow roots can cause the two to misalign.\n *\n * @deprecated Use `ConfigurableFocusTrap` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nclass FocusTrap {\n constructor(_element, _checker, _ngZone, _document, deferAnchors = false) {\n this._element = _element;\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n this._hasAttached = false;\n // Event listeners for the anchors. Need to be regular functions so that we can unbind them later.\n this.startAnchorListener = () => this.focusLastTabbableElement();\n this.endAnchorListener = () => this.focusFirstTabbableElement();\n this._enabled = true;\n if (!deferAnchors) {\n this.attachAnchors();\n }\n }\n /** Whether the focus trap is active. */\n get enabled() {\n return this._enabled;\n }\n set enabled(value) {\n this._enabled = value;\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(value, this._startAnchor);\n this._toggleAnchorTabIndex(value, this._endAnchor);\n }\n }\n /** Destroys the focus trap by cleaning up the anchors. */\n destroy() {\n const startAnchor = this._startAnchor;\n const endAnchor = this._endAnchor;\n if (startAnchor) {\n startAnchor.removeEventListener('focus', this.startAnchorListener);\n if (startAnchor.parentNode) {\n startAnchor.parentNode.removeChild(startAnchor);\n }\n }\n if (endAnchor) {\n endAnchor.removeEventListener('focus', this.endAnchorListener);\n if (endAnchor.parentNode) {\n endAnchor.parentNode.removeChild(endAnchor);\n }\n }\n this._startAnchor = this._endAnchor = null;\n this._hasAttached = false;\n }\n /**\n * Inserts the anchors into the DOM. This is usually done automatically\n * in the constructor, but can be deferred for cases like directives with `*ngIf`.\n * @returns Whether the focus trap managed to attach successfuly. This may not be the case\n * if the target element isn't currently in the DOM.\n */\n attachAnchors() {\n // If we're not on the browser, there can be no focus to trap.\n if (this._hasAttached) {\n return true;\n }\n this._ngZone.runOutsideAngular(() => {\n if (!this._startAnchor) {\n this._startAnchor = this._createAnchor();\n this._startAnchor.addEventListener('focus', this.startAnchorListener);\n }\n if (!this._endAnchor) {\n this._endAnchor = this._createAnchor();\n this._endAnchor.addEventListener('focus', this.endAnchorListener);\n }\n });\n if (this._element.parentNode) {\n this._element.parentNode.insertBefore(this._startAnchor, this._element);\n this._element.parentNode.insertBefore(this._endAnchor, this._element.nextSibling);\n this._hasAttached = true;\n }\n return this._hasAttached;\n }\n /**\n * Waits for the zone to stabilize, then either focuses the first element that the\n * user specified, or the first tabbable element.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusInitialElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusInitialElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the first tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusFirstTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusFirstTabbableElement()));\n });\n }\n /**\n * Waits for the zone to stabilize, then focuses\n * the last tabbable element within the focus trap region.\n * @returns Returns a promise that resolves with a boolean, depending\n * on whether focus was moved successfully.\n */\n focusLastTabbableElementWhenReady() {\n return new Promise(resolve => {\n this._executeOnStable(() => resolve(this.focusLastTabbableElement()));\n });\n }\n /**\n * Get the specified boundary element of the trapped region.\n * @param bound The boundary to get (start or end of trapped region).\n * @returns The boundary element.\n */\n _getRegionBoundary(bound) {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n let markers = this._element.querySelectorAll(`[cdk-focus-region-${bound}], ` +\n `[cdkFocusRegion${bound}], ` +\n `[cdk-focus-${bound}]`);\n for (let i = 0; i < markers.length; i++) {\n // @breaking-change 8.0.0\n if (markers[i].hasAttribute(`cdk-focus-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated ` +\n `attribute will be removed in 8.0.0.`, markers[i]);\n }\n else if (markers[i].hasAttribute(`cdk-focus-region-${bound}`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-region-${bound}', ` +\n `use 'cdkFocusRegion${bound}' instead. The deprecated attribute ` +\n `will be removed in 8.0.0.`, markers[i]);\n }\n }\n if (bound == 'start') {\n return markers.length ? markers[0] : this._getFirstTabbableElement(this._element);\n }\n return markers.length ?\n markers[markers.length - 1] : this._getLastTabbableElement(this._element);\n }\n /**\n * Focuses the element that should be focused when the focus trap is initialized.\n * @returns Whether focus was moved successfully.\n */\n focusInitialElement() {\n // Contains the deprecated version of selector, for temporary backwards comparability.\n const redirectToElement = this._element.querySelector(`[cdk-focus-initial], ` +\n `[cdkFocusInitial]`);\n if (redirectToElement) {\n // @breaking-change 8.0.0\n if (redirectToElement.hasAttribute(`cdk-focus-initial`)) {\n console.warn(`Found use of deprecated attribute 'cdk-focus-initial', ` +\n `use 'cdkFocusInitial' instead. The deprecated attribute ` +\n `will be removed in 8.0.0`, redirectToElement);\n }\n // Warn the consumer if the element they've pointed to\n // isn't focusable, when not in production mode.\n if (!this._checker.isFocusable(redirectToElement)) {\n const focusableChild = this._getFirstTabbableElement(redirectToElement);\n focusableChild === null || focusableChild === void 0 ? void 0 : focusableChild.focus();\n return !!focusableChild;\n }\n redirectToElement.focus();\n return true;\n }\n return this.focusFirstTabbableElement();\n }\n /**\n * Focuses the first tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusFirstTabbableElement() {\n const redirectToElement = this._getRegionBoundary('start');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Focuses the last tabbable element within the focus trap region.\n * @returns Whether focus was moved successfully.\n */\n focusLastTabbableElement() {\n const redirectToElement = this._getRegionBoundary('end');\n if (redirectToElement) {\n redirectToElement.focus();\n }\n return !!redirectToElement;\n }\n /**\n * Checks whether the focus trap has successfully been attached.\n */\n hasAttached() {\n return this._hasAttached;\n }\n /** Get the first tabbable element from a DOM subtree (inclusive). */\n _getFirstTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in DOM order. Note that IE doesn't have `children` for SVG so we fall\n // back to `childNodes` which includes text nodes, comments etc.\n let children = root.children || root.childNodes;\n for (let i = 0; i < children.length; i++) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ?\n this._getFirstTabbableElement(children[i]) :\n null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Get the last tabbable element from a DOM subtree (inclusive). */\n _getLastTabbableElement(root) {\n if (this._checker.isFocusable(root) && this._checker.isTabbable(root)) {\n return root;\n }\n // Iterate in reverse DOM order.\n let children = root.children || root.childNodes;\n for (let i = children.length - 1; i >= 0; i--) {\n let tabbableChild = children[i].nodeType === this._document.ELEMENT_NODE ?\n this._getLastTabbableElement(children[i]) :\n null;\n if (tabbableChild) {\n return tabbableChild;\n }\n }\n return null;\n }\n /** Creates an anchor element. */\n _createAnchor() {\n const anchor = this._document.createElement('div');\n this._toggleAnchorTabIndex(this._enabled, anchor);\n anchor.classList.add('cdk-visually-hidden');\n anchor.classList.add('cdk-focus-trap-anchor');\n anchor.setAttribute('aria-hidden', 'true');\n return anchor;\n }\n /**\n * Toggles the `tabindex` of an anchor, based on the enabled state of the focus trap.\n * @param isEnabled Whether the focus trap is enabled.\n * @param anchor Anchor on which to toggle the tabindex.\n */\n _toggleAnchorTabIndex(isEnabled, anchor) {\n // Remove the tabindex completely, rather than setting it to -1, because if the\n // element has a tabindex, the user might still hit it when navigating with the arrow keys.\n isEnabled ? anchor.setAttribute('tabindex', '0') : anchor.removeAttribute('tabindex');\n }\n /**\n * Toggles the`tabindex` of both anchors to either trap Tab focus or allow it to escape.\n * @param enabled: Whether the anchors should trap Tab.\n */\n toggleAnchors(enabled) {\n if (this._startAnchor && this._endAnchor) {\n this._toggleAnchorTabIndex(enabled, this._startAnchor);\n this._toggleAnchorTabIndex(enabled, this._endAnchor);\n }\n }\n /** Executes a function when the zone is stable. */\n _executeOnStable(fn) {\n if (this._ngZone.isStable) {\n fn();\n }\n else {\n this._ngZone.onStable.pipe(take(1)).subscribe(fn);\n }\n }\n}\n/**\n * Factory that allows easy instantiation of focus traps.\n * @deprecated Use `ConfigurableFocusTrapFactory` instead.\n * @breaking-change for 11.0.0 Remove this class.\n */\nclass FocusTrapFactory {\n constructor(_checker, _ngZone, _document) {\n this._checker = _checker;\n this._ngZone = _ngZone;\n this._document = _document;\n }\n /**\n * Creates a focus-trapped region around the given element.\n * @param element The element around which focus will be trapped.\n * @param deferCaptureElements Defers the creation of focus-capturing elements to be done\n * manually by the user.\n * @returns The created focus trap instance.\n */\n create(element, deferCaptureElements = false) {\n return new FocusTrap(element, this._checker, this._ngZone, this._document, deferCaptureElements);\n }\n}\nFocusTrapFactory.ɵfac = function FocusTrapFactory_Factory(t) { return new (t || FocusTrapFactory)(ɵngcc0.ɵɵinject(InteractivityChecker), ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(DOCUMENT)); };\nFocusTrapFactory.ɵprov = ɵɵdefineInjectable({ factory: function FocusTrapFactory_Factory() { return new FocusTrapFactory(ɵɵinject(InteractivityChecker), ɵɵinject(NgZone), ɵɵinject(DOCUMENT)); }, token: FocusTrapFactory, providedIn: \"root\" });\nFocusTrapFactory.ctorParameters = () => [\n { type: InteractivityChecker },\n { type: NgZone },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(FocusTrapFactory, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: InteractivityChecker }, { type: ɵngcc0.NgZone }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, null); })();\n/** Directive for trapping focus within a region. */\nclass FocusTrapDirective {\n constructor(_elementRef, _focusTrapFactory, _document) {\n this._elementRef = _elementRef;\n this._focusTrapFactory = _focusTrapFactory;\n /** Previously focused element to restore focus to upon destroy when using autoCapture. */\n this._previouslyFocusedElement = null;\n this._autoCapture = false;\n this._document = _document;\n this.focusTrap = this._focusTrapFactory.create(this._elementRef.nativeElement, true);\n }\n /** Whether the focus trap is active. */\n get enabled() {\n return this.focusTrap.enabled;\n }\n set enabled(value) {\n this.focusTrap.enabled = coerceBooleanProperty(value);\n }\n /**\n * Whether the directive should automatically move focus into the trapped region upon\n * initialization and return focus to the previous activeElement upon destruction.\n */\n get autoCapture() {\n return this._autoCapture;\n }\n set autoCapture(value) {\n this._autoCapture = coerceBooleanProperty(value);\n }\n ngOnDestroy() {\n this.focusTrap.destroy();\n // If we stored a previously focused element when using autoCapture, return focus to that\n // element now that the trapped region is being destroyed.\n if (this._previouslyFocusedElement) {\n this._previouslyFocusedElement.focus();\n this._previouslyFocusedElement = null;\n }\n }\n ngAfterContentInit() {\n this.focusTrap.attachAnchors();\n if (this.autoCapture) {\n this._captureFocus();\n }\n }\n ngDoCheck() {\n if (!this.focusTrap.hasAttached()) {\n this.focusTrap.attachAnchors();\n }\n }\n ngOnChanges(changes) {\n const autoCaptureChange = changes['autoCapture'];\n if (autoCaptureChange && !autoCaptureChange.firstChange && this.autoCapture &&\n this.focusTrap.hasAttached()) {\n this._captureFocus();\n }\n }\n _captureFocus() {\n this._previouslyFocusedElement = this._document.activeElement;\n this.focusTrap.focusInitialElementWhenReady();\n }\n}\nFocusTrapDirective.ɵfac = function FocusTrapDirective_Factory(t) { return new (t || FocusTrapDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(FocusTrapFactory), ɵngcc0.ɵɵdirectiveInject(DOCUMENT)); };\nFocusTrapDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: FocusTrapDirective, selectors: [[\"\", \"focusTrap\", \"\"]], inputs: { enabled: [\"cdkTrapFocus\", \"enabled\"], autoCapture: [\"cdkTrapFocusAutoCapture\", \"autoCapture\"] }, exportAs: [\"focusTrap\"], features: [ɵngcc0.ɵɵNgOnChangesFeature] });\nFocusTrapDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: FocusTrapFactory },\n { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }\n];\nFocusTrapDirective.propDecorators = {\n enabled: [{ type: Input, args: ['cdkTrapFocus',] }],\n autoCapture: [{ type: Input, args: ['cdkTrapFocusAutoCapture',] }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(FocusTrapDirective, [{\n type: Directive,\n args: [{\n selector: '[focusTrap]',\n exportAs: 'focusTrap'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: FocusTrapFactory }, { type: undefined, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }]; }, { enabled: [{\n type: Input,\n args: ['cdkTrapFocus']\n }], autoCapture: [{\n type: Input,\n args: ['cdkTrapFocusAutoCapture']\n }] }); })();\n\nclass FocusTrapModule {\n static forRoot() {\n return {\n ngModule: FocusTrapModule,\n providers: [\n FocusTrapManager,\n Platform,\n InteractivityChecker\n ]\n };\n }\n}\nFocusTrapModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: FocusTrapModule });\nFocusTrapModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function FocusTrapModule_Factory(t) { return new (t || FocusTrapModule)(); }, imports: [[CommonModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(FocusTrapModule, { declarations: function () { return [FocusTrapDirective]; }, imports: function () { return [CommonModule]; }, exports: function () { return [FocusTrapDirective]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(FocusTrapModule, [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n declarations: [FocusTrapDirective],\n exports: [FocusTrapDirective]\n }]\n }], null, null); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { FocusTrap, FocusTrapDirective, FocusTrapModule, FocusTrapFactory as ɵa, InteractivityChecker as ɵb, Platform as ɵc, FocusTrapManager as ɵd };\n\n//# sourceMappingURL=ngx-bootstrap-focus-trap.js.map","import { Injectable, InjectionToken, Component, ElementRef, Renderer2, HostListener, EventEmitter, Directive, ViewContainerRef, Optional, Inject, Input, Output, RendererFactory2, NgModule } from '@angular/core';\nimport { isBs3, Utils, document as document$1, window as window$1 } from 'ngx-bootstrap/utils';\nimport { ComponentLoaderFactory } from 'ngx-bootstrap/component-loader';\nimport { PositioningService } from 'ngx-bootstrap/positioning';\nimport { FocusTrapModule } from 'ngx-bootstrap/focus-trap';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nimport * as ɵngcc0 from '@angular/core';\nimport * as ɵngcc1 from 'ngx-bootstrap/focus-trap';\nimport * as ɵngcc2 from 'ngx-bootstrap/component-loader';\n\nconst _c0 = [\"*\"];\nclass BsModalRef {\n constructor() {\n /**\n * Hides the modal\n */\n this.hide = () => void 0;\n /**\n * Sets new class to modal window\n */\n this.setClass = () => void 0;\n }\n}\nBsModalRef.ɵfac = function BsModalRef_Factory(t) { return new (t || BsModalRef)(); };\nBsModalRef.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: BsModalRef, factory: BsModalRef.ɵfac });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(BsModalRef, [{\n type: Injectable\n }], function () { return []; }, null); })();\n\nclass ModalBackdropOptions {\n constructor(options) {\n this.animate = true;\n Object.assign(this, options);\n }\n}\n\nclass ModalOptions {\n}\nModalOptions.ɵfac = function ModalOptions_Factory(t) { return new (t || ModalOptions)(); };\nModalOptions.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: ModalOptions, factory: ModalOptions.ɵfac });\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ModalOptions, [{\n type: Injectable\n }], null, null); })();\nconst modalConfigDefaults = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: false,\n ignoreBackdropClick: false,\n class: '',\n animated: true,\n initialState: {},\n closeInterceptor: void 0\n};\nconst MODAL_CONFIG_DEFAULT_OVERRIDE = new InjectionToken('override-default-config');\nconst CLASS_NAME = {\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n IN: 'in',\n SHOW: 'show' // bs4\n};\nconst SELECTOR = {\n DIALOG: '.modal-dialog',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.navbar-fixed-top, .navbar-fixed-bottom, .is-fixed'\n};\nconst TRANSITION_DURATIONS = {\n MODAL: 300,\n BACKDROP: 150\n};\nconst DISMISS_REASONS = {\n BACKRDOP: 'backdrop-click',\n ESC: 'esc',\n BACK: 'browser-back-navigation-clicked'\n};\n\nclass ModalContainerComponent {\n constructor(options, _element, _renderer) {\n this._element = _element;\n this._renderer = _renderer;\n this.isShown = false;\n this.isAnimated = false;\n this.isModalHiding = false;\n this.clickStartedInContent = false;\n this.config = Object.assign({}, options);\n }\n ngOnInit() {\n if (this.isAnimated) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.FADE);\n }\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n setTimeout(() => {\n this.isShown = true;\n this._renderer.addClass(this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);\n }, this.isAnimated ? TRANSITION_DURATIONS.BACKDROP : 0);\n if (document && document.body) {\n if (this.bsModalService && this.bsModalService.getModalsCount() === 1) {\n this.bsModalService.checkScrollbar();\n this.bsModalService.setScrollbar();\n }\n this._renderer.addClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', 'hidden');\n }\n if (this._element.nativeElement) {\n this._element.nativeElement.focus();\n }\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n var _a;\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n (_a = this.bsModalService) === null || _a === void 0 ? void 0 : _a.setDismissReason(DISMISS_REASONS.BACKRDOP);\n this.hide();\n }\n onPopState() {\n var _a;\n (_a = this.bsModalService) === null || _a === void 0 ? void 0 : _a.setDismissReason(DISMISS_REASONS.BACK);\n this.hide();\n }\n onEsc(event) {\n var _a, _b;\n if (!this.isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard &&\n this.level === ((_a = this.bsModalService) === null || _a === void 0 ? void 0 : _a.getModalsCount())) {\n (_b = this.bsModalService) === null || _b === void 0 ? void 0 : _b.setDismissReason(DISMISS_REASONS.ESC);\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this.isShown) {\n this._hide();\n }\n }\n hide() {\n if (this.isModalHiding || !this.isShown) {\n return;\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n _hide() {\n this.isModalHiding = true;\n this._renderer.removeClass(this._element.nativeElement, isBs3() ? CLASS_NAME.IN : CLASS_NAME.SHOW);\n setTimeout(() => {\n var _a, _b;\n this.isShown = false;\n if (document &&\n document.body &&\n ((_a = this.bsModalService) === null || _a === void 0 ? void 0 : _a.getModalsCount()) === 1) {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n }\n (_b = this.bsModalService) === null || _b === void 0 ? void 0 : _b.hide(this.config.id);\n this.isModalHiding = false;\n }, this.isAnimated ? TRANSITION_DURATIONS.MODAL : 0);\n }\n}\nModalContainerComponent.ɵfac = function ModalContainerComponent_Factory(t) { return new (t || ModalContainerComponent)(ɵngcc0.ɵɵdirectiveInject(ModalOptions), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nModalContainerComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: ModalContainerComponent, selectors: [[\"modal-container\"]], hostAttrs: [\"role\", \"dialog\", \"tabindex\", \"-1\", 1, \"modal\"], hostVars: 3, hostBindings: function ModalContainerComponent_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function ModalContainerComponent_mousedown_HostBindingHandler($event) { return ctx.onClickStarted($event); })(\"click\", function ModalContainerComponent_click_HostBindingHandler($event) { return ctx.onClickStop($event); })(\"popstate\", function ModalContainerComponent_popstate_HostBindingHandler() { return ctx.onPopState(); }, false, ɵngcc0.ɵɵresolveWindow)(\"keydown.esc\", function ModalContainerComponent_keydown_esc_HostBindingHandler($event) { return ctx.onEsc($event); }, false, ɵngcc0.ɵɵresolveWindow);\n } if (rf & 2) {\n ɵngcc0.ɵɵattribute(\"aria-modal\", true)(\"aria-labelledby\", ctx.config.ariaLabelledBy)(\"aria-describedby\", ctx.config.ariaDescribedby);\n } }, ngContentSelectors: _c0, decls: 3, vars: 2, consts: [[\"role\", \"document\", \"focusTrap\", \"\"], [1, \"modal-content\"]], template: function ModalContainerComponent_Template(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵprojectionDef();\n ɵngcc0.ɵɵelementStart(0, \"div\", 0);\n ɵngcc0.ɵɵelementStart(1, \"div\", 1);\n ɵngcc0.ɵɵprojection(2);\n ɵngcc0.ɵɵelementEnd();\n ɵngcc0.ɵɵelementEnd();\n } if (rf & 2) {\n ɵngcc0.ɵɵclassMap(\"modal-dialog\" + (ctx.config.class ? \" \" + ctx.config.class : \"\"));\n } }, directives: [ɵngcc1.FocusTrapDirective], encapsulation: 2 });\nModalContainerComponent.ctorParameters = () => [\n { type: ModalOptions },\n { type: ElementRef },\n { type: Renderer2 }\n];\nModalContainerComponent.propDecorators = {\n onClickStarted: [{ type: HostListener, args: ['mousedown', ['$event'],] }],\n onClickStop: [{ type: HostListener, args: ['click', ['$event'],] }],\n onPopState: [{ type: HostListener, args: ['window:popstate',] }],\n onEsc: [{ type: HostListener, args: ['window:keydown.esc', ['$event'],] }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ModalContainerComponent, [{\n type: Component,\n args: [{\n selector: 'modal-container',\n template: `\n
\n
\n \n
\n
\n `,\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n class: 'modal',\n role: 'dialog',\n tabindex: '-1',\n '[attr.aria-modal]': 'true',\n '[attr.aria-labelledby]': 'config.ariaLabelledBy',\n '[attr.aria-describedby]': 'config.ariaDescribedby'\n }\n }]\n }], function () { return [{ type: ModalOptions }, { type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, { onClickStarted: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], onClickStop: [{\n type: HostListener,\n args: ['click', ['$event']]\n }], onPopState: [{\n type: HostListener,\n args: ['window:popstate']\n }], onEsc: [{\n type: HostListener,\n args: ['window:keydown.esc', ['$event']]\n }] }); })();\n\n/** This component will be added as background layout for modals if enabled */\nclass ModalBackdropComponent {\n constructor(element, renderer) {\n this._isAnimated = false;\n this._isShown = false;\n this.element = element;\n this.renderer = renderer;\n }\n get isAnimated() {\n return this._isAnimated;\n }\n set isAnimated(value) {\n this._isAnimated = value;\n }\n get isShown() {\n return this._isShown;\n }\n set isShown(value) {\n this._isShown = value;\n if (value) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.IN}`);\n }\n else {\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.IN}`);\n }\n if (!isBs3()) {\n if (value) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n }\n else {\n this.renderer.removeClass(this.element.nativeElement, `${CLASS_NAME.SHOW}`);\n }\n }\n }\n ngOnInit() {\n if (this.isAnimated) {\n this.renderer.addClass(this.element.nativeElement, `${CLASS_NAME.FADE}`);\n Utils.reflow(this.element.nativeElement);\n }\n this.isShown = true;\n }\n}\nModalBackdropComponent.ɵfac = function ModalBackdropComponent_Factory(t) { return new (t || ModalBackdropComponent)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2)); };\nModalBackdropComponent.ɵcmp = ɵngcc0.ɵɵdefineComponent({ type: ModalBackdropComponent, selectors: [[\"bs-modal-backdrop\"]], hostAttrs: [1, \"modal-backdrop\"], decls: 0, vars: 0, template: function ModalBackdropComponent_Template(rf, ctx) { }, encapsulation: 2 });\nModalBackdropComponent.ctorParameters = () => [\n { type: ElementRef },\n { type: Renderer2 }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ModalBackdropComponent, [{\n type: Component,\n args: [{\n selector: 'bs-modal-backdrop',\n template: ' ',\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: { class: CLASS_NAME.BACKDROP }\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.Renderer2 }]; }, null); })();\n\n// todo: should we support enforce focus in?\nconst TRANSITION_DURATION = 300;\nconst BACKDROP_TRANSITION_DURATION = 150;\n/** Mark any code with directive to show it's content in modal */\nclass ModalDirective {\n constructor(_element, _viewContainerRef, _renderer, clf, modalDefaultOption) {\n this._element = _element;\n this._renderer = _renderer;\n /** This event fires immediately when the `show` instance method is called. */\n this.onShow = new EventEmitter();\n /** This event is fired when the modal has been made visible to the user\n * (will wait for CSS transitions to complete)\n */\n this.onShown = new EventEmitter();\n /** This event is fired immediately when\n * the hide instance method has been called.\n */\n this.onHide = new EventEmitter();\n /** This event is fired when the modal has finished being\n * hidden from the user (will wait for CSS transitions to complete).\n */\n this.onHidden = new EventEmitter();\n this._isShown = false;\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.timerHideModal = 0;\n this.timerRmBackDrop = 0;\n this.isNested = false;\n this.clickStartedInContent = false;\n this._backdrop = clf.createLoader(_element, _viewContainerRef, _renderer);\n this._config = modalDefaultOption || modalConfigDefaults;\n }\n /** allows to set modal configuration via element property */\n set config(conf) {\n this._config = this.getConfig(conf);\n }\n get config() {\n return this._config;\n }\n get isShown() {\n return this._isShown;\n }\n onClickStarted(event) {\n this.clickStartedInContent = event.target !== this._element.nativeElement;\n }\n onClickStop(event) {\n const clickedInBackdrop = event.target === this._element.nativeElement && !this.clickStartedInContent;\n if (this.config.ignoreBackdropClick ||\n this.config.backdrop === 'static' ||\n !clickedInBackdrop) {\n this.clickStartedInContent = false;\n return;\n }\n this.dismissReason = DISMISS_REASONS.BACKRDOP;\n this.hide(event);\n }\n // todo: consider preventing default and stopping propagation\n onEsc(event) {\n if (!this._isShown) {\n return;\n }\n if (event.keyCode === 27 || event.key === 'Escape') {\n event.preventDefault();\n }\n if (this.config.keyboard) {\n this.dismissReason = DISMISS_REASONS.ESC;\n this.hide();\n }\n }\n ngOnDestroy() {\n if (this._isShown) {\n this._isShown = false;\n this.hideModal();\n this._backdrop.dispose();\n }\n }\n ngOnInit() {\n this._config = this._config || this.getConfig();\n setTimeout(() => {\n if (this._config.show) {\n this.show();\n }\n }, 0);\n }\n /* Public methods */\n /** Allows to manually toggle modal visibility */\n toggle() {\n return this._isShown ? this.hide() : this.show();\n }\n /** Allows to manually open modal */\n show() {\n this.dismissReason = void 0;\n this.onShow.emit(this);\n if (this._isShown) {\n return;\n }\n clearTimeout(this.timerHideModal);\n clearTimeout(this.timerRmBackDrop);\n this._isShown = true;\n this.checkScrollbar();\n this.setScrollbar();\n if (document$1 && document$1.body) {\n if (document$1.body.classList.contains(CLASS_NAME.OPEN)) {\n this.isNested = true;\n }\n else {\n this._renderer.addClass(document$1.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document$1.body, 'overflow-y', 'hidden');\n }\n }\n this.showBackdrop(() => {\n this.showElement();\n });\n }\n /** Check if we can close the modal */\n hide(event) {\n if (!this._isShown) {\n return;\n }\n if (event) {\n event.preventDefault();\n }\n if (this.config.closeInterceptor) {\n this.config.closeInterceptor().then(() => this._hide(), () => undefined);\n return;\n }\n this._hide();\n }\n /** Private methods @internal */\n /**\n * Manually close modal\n * @internal\n */\n _hide() {\n this.onHide.emit(this);\n window$1.clearTimeout(this.timerHideModal);\n window$1.clearTimeout(this.timerRmBackDrop);\n this._isShown = false;\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.removeClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n // this._addClassIn = false;\n if (this._config.animated) {\n this.timerHideModal = window$1.setTimeout(() => this.hideModal(), TRANSITION_DURATION);\n }\n else {\n this.hideModal();\n }\n }\n getConfig(config) {\n return Object.assign({}, this._config, config);\n }\n /**\n * Show dialog\n * @internal\n */\n showElement() {\n // todo: replace this with component loader usage\n if (!this._element.nativeElement.parentNode ||\n this._element.nativeElement.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // don't move modals dom position\n if (document$1 && document$1.body) {\n document$1.body.appendChild(this._element.nativeElement);\n }\n }\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'false');\n this._renderer.setAttribute(this._element.nativeElement, 'aria-modal', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'block');\n this._renderer.setProperty(this._element.nativeElement, 'scrollTop', 0);\n if (this._config.animated) {\n Utils.reflow(this._element.nativeElement);\n }\n // this._addClassIn = true;\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.IN);\n if (!isBs3()) {\n this._renderer.addClass(this._element.nativeElement, CLASS_NAME.SHOW);\n }\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.nativeElement.focus();\n }\n this.onShown.emit(this);\n };\n if (this._config.animated) {\n setTimeout(transitionComplete, TRANSITION_DURATION);\n }\n else {\n transitionComplete();\n }\n }\n /** @internal */\n hideModal() {\n this._renderer.setAttribute(this._element.nativeElement, 'aria-hidden', 'true');\n this._renderer.setStyle(this._element.nativeElement, 'display', 'none');\n this.showBackdrop(() => {\n if (!this.isNested) {\n if (document$1 && document$1.body) {\n this._renderer.removeClass(document$1.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document$1.body, 'overflow-y', '');\n }\n this.resetScrollbar();\n }\n this.resetAdjustments();\n this.focusOtherModal();\n this.onHidden.emit(this);\n });\n }\n // todo: original show was calling a callback when done, but we can use\n // promise\n /** @internal */\n showBackdrop(callback) {\n if (this._isShown &&\n this.config.backdrop &&\n (!this.backdrop || !this.backdrop.instance.isShown)) {\n this.removeBackdrop();\n this._backdrop\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this._config.animated });\n this.backdrop = this._backdrop._componentRef;\n if (!callback) {\n return;\n }\n if (!this._config.animated) {\n callback();\n return;\n }\n setTimeout(callback, BACKDROP_TRANSITION_DURATION);\n }\n else if (!this._isShown && this.backdrop) {\n this.backdrop.instance.isShown = false;\n const callbackRemove = () => {\n this.removeBackdrop();\n if (callback) {\n callback();\n }\n };\n if (this.backdrop.instance.isAnimated) {\n this.timerRmBackDrop = window$1.setTimeout(callbackRemove, BACKDROP_TRANSITION_DURATION);\n }\n else {\n callbackRemove();\n }\n }\n else if (callback) {\n callback();\n }\n }\n /** @internal */\n removeBackdrop() {\n this._backdrop.hide();\n }\n /** Events tricks */\n // no need for it\n // protected setEscapeEvent():void {\n // if (this._isShown && this._config.keyboard) {\n // $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n // if (event.which === 27) {\n // this.hide()\n // }\n // })\n //\n // } else if (!this._isShown) {\n // $(this._element).off(Event.KEYDOWN_DISMISS)\n // }\n // }\n // protected setResizeEvent():void {\n // console.log(this.renderer.listenGlobal('', Event.RESIZE));\n // if (this._isShown) {\n // $(window).on(Event.RESIZE, $.proxy(this._handleUpdate, this))\n // } else {\n // $(window).off(Event.RESIZE)\n // }\n // }\n focusOtherModal() {\n if (this._element.nativeElement.parentElement == null) {\n return;\n }\n const otherOpenedModals = this._element.nativeElement.parentElement.querySelectorAll('.in[bsModal]');\n if (!otherOpenedModals.length) {\n return;\n }\n otherOpenedModals[otherOpenedModals.length - 1].focus();\n }\n /** @internal */\n resetAdjustments() {\n this._renderer.setStyle(this._element.nativeElement, 'paddingLeft', '');\n this._renderer.setStyle(this._element.nativeElement, 'paddingRight', '');\n }\n /** Scroll bar tricks */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document$1.body.clientWidth < window$1.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document$1) {\n return;\n }\n this.originalBodyPadding = parseInt(window$1\n .getComputedStyle(document$1.body)\n .getPropertyValue('padding-right') || 0, 10);\n if (this.isBodyOverflowing) {\n document$1.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document$1.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document$1.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document$1.body, scrollDiv);\n return scrollbarWidth;\n }\n}\nModalDirective.ɵfac = function ModalDirective_Factory(t) { return new (t || ModalDirective)(ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ElementRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.Renderer2), ɵngcc0.ɵɵdirectiveInject(ɵngcc2.ComponentLoaderFactory), ɵngcc0.ɵɵdirectiveInject(MODAL_CONFIG_DEFAULT_OVERRIDE, 8)); };\nModalDirective.ɵdir = ɵngcc0.ɵɵdefineDirective({ type: ModalDirective, selectors: [[\"\", \"bsModal\", \"\"]], hostBindings: function ModalDirective_HostBindings(rf, ctx) { if (rf & 1) {\n ɵngcc0.ɵɵlistener(\"mousedown\", function ModalDirective_mousedown_HostBindingHandler($event) { return ctx.onClickStarted($event); })(\"mouseup\", function ModalDirective_mouseup_HostBindingHandler($event) { return ctx.onClickStop($event); })(\"keydown.esc\", function ModalDirective_keydown_esc_HostBindingHandler($event) { return ctx.onEsc($event); });\n } }, inputs: { config: \"config\", closeInterceptor: \"closeInterceptor\" }, outputs: { onShow: \"onShow\", onShown: \"onShown\", onHide: \"onHide\", onHidden: \"onHidden\" }, exportAs: [\"bs-modal\"] });\nModalDirective.ctorParameters = () => [\n { type: ElementRef },\n { type: ViewContainerRef },\n { type: Renderer2 },\n { type: ComponentLoaderFactory },\n { type: ModalOptions, decorators: [{ type: Optional }, { type: Inject, args: [MODAL_CONFIG_DEFAULT_OVERRIDE,] }] }\n];\nModalDirective.propDecorators = {\n config: [{ type: Input }],\n closeInterceptor: [{ type: Input }],\n onShow: [{ type: Output }],\n onShown: [{ type: Output }],\n onHide: [{ type: Output }],\n onHidden: [{ type: Output }],\n onClickStarted: [{ type: HostListener, args: ['mousedown', ['$event'],] }],\n onClickStop: [{ type: HostListener, args: ['mouseup', ['$event'],] }],\n onEsc: [{ type: HostListener, args: ['keydown.esc', ['$event'],] }]\n};\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ModalDirective, [{\n type: Directive,\n args: [{\n selector: '[bsModal]',\n exportAs: 'bs-modal'\n }]\n }], function () { return [{ type: ɵngcc0.ElementRef }, { type: ɵngcc0.ViewContainerRef }, { type: ɵngcc0.Renderer2 }, { type: ɵngcc2.ComponentLoaderFactory }, { type: ModalOptions, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MODAL_CONFIG_DEFAULT_OVERRIDE]\n }] }]; }, { onShow: [{\n type: Output\n }], onShown: [{\n type: Output\n }], onHide: [{\n type: Output\n }], onHidden: [{\n type: Output\n }], config: [{\n type: Input\n }], onClickStarted: [{\n type: HostListener,\n args: ['mousedown', ['$event']]\n }], onClickStop: [{\n type: HostListener,\n args: ['mouseup', ['$event']]\n }], onEsc: [{\n type: HostListener,\n args: ['keydown.esc', ['$event']]\n }], closeInterceptor: [{\n type: Input\n }] }); })();\n\nclass BsModalService {\n constructor(rendererFactory, clf, modalDefaultOption) {\n this.clf = clf;\n this.modalDefaultOption = modalDefaultOption;\n this.onShow = new EventEmitter();\n this.onShown = new EventEmitter();\n this.onHide = new EventEmitter();\n this.onHidden = new EventEmitter();\n this.isBodyOverflowing = false;\n this.originalBodyPadding = 0;\n this.scrollbarWidth = 0;\n this.modalsCount = 0;\n this.loaders = [];\n this._backdropLoader = this.clf.createLoader();\n this._renderer = rendererFactory.createRenderer(null, null);\n this.config = modalDefaultOption ?\n (Object.assign({}, modalConfigDefaults, modalDefaultOption)) :\n modalConfigDefaults;\n }\n /** Shows a modal */\n show(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n content, config) {\n this.modalsCount++;\n this._createLoaders();\n // must be different per every show() call\n const id = (config === null || config === void 0 ? void 0 : config.id) || (new Date()).getUTCMilliseconds();\n this.config = this.modalDefaultOption ?\n Object.assign({}, modalConfigDefaults, this.modalDefaultOption, config) :\n Object.assign({}, modalConfigDefaults, config);\n this.config.id = id;\n this._showBackdrop();\n this.lastDismissReason = void 0;\n return this._showModal(content);\n }\n hide(id) {\n if (this.modalsCount === 1 || id == null) {\n this._hideBackdrop();\n this.resetScrollbar();\n }\n this.modalsCount = this.modalsCount >= 1 && id != null ? this.modalsCount - 1 : 0;\n setTimeout(() => {\n this._hideModal(id);\n this.removeLoaders(id);\n }, this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0);\n }\n _showBackdrop() {\n const isBackdropEnabled = this.config.backdrop === true || this.config.backdrop === 'static';\n const isBackdropInDOM = !this.backdropRef || !this.backdropRef.instance.isShown;\n if (this.modalsCount === 1) {\n this.removeBackdrop();\n if (isBackdropEnabled && isBackdropInDOM) {\n this._backdropLoader\n .attach(ModalBackdropComponent)\n .to('body')\n .show({ isAnimated: this.config.animated });\n this.backdropRef = this._backdropLoader._componentRef;\n }\n }\n }\n _hideBackdrop() {\n if (!this.backdropRef) {\n return;\n }\n this.backdropRef.instance.isShown = false;\n const duration = this.config.animated ? TRANSITION_DURATIONS.BACKDROP : 0;\n setTimeout(() => this.removeBackdrop(), duration);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n _showModal(content) {\n var _a;\n const modalLoader = this.loaders[this.loaders.length - 1];\n if (this.config && this.config.providers) {\n for (const provider of this.config.providers) {\n modalLoader.provide(provider);\n }\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const bsModalRef = new BsModalRef();\n const modalContainerRef = modalLoader\n .provide({ provide: ModalOptions, useValue: this.config })\n .provide({ provide: BsModalRef, useValue: bsModalRef })\n .attach(ModalContainerComponent)\n .to('body');\n bsModalRef.hide = () => { var _a; return (_a = modalContainerRef.instance) === null || _a === void 0 ? void 0 : _a.hide(); };\n bsModalRef.setClass = (newClass) => {\n if (modalContainerRef.instance) {\n modalContainerRef.instance.config.class = newClass;\n }\n };\n bsModalRef.onHidden = new EventEmitter();\n bsModalRef.onHide = new EventEmitter();\n this.copyEvent(modalLoader.onBeforeHide, bsModalRef.onHide);\n this.copyEvent(modalLoader.onHidden, bsModalRef.onHidden);\n // call 'show' method after assign setClass in bsModalRef.\n // it makes modal component's bsModalRef available to call setClass method\n modalContainerRef.show({\n content,\n isAnimated: this.config.animated,\n initialState: this.config.initialState,\n bsModalService: this,\n id: this.config.id\n });\n if (modalContainerRef.instance) {\n modalContainerRef.instance.level = this.getModalsCount();\n bsModalRef.content = modalLoader.getInnerComponent();\n bsModalRef.id = (_a = modalContainerRef.instance.config) === null || _a === void 0 ? void 0 : _a.id;\n }\n return bsModalRef;\n }\n _hideModal(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => { var _a; return ((_a = loader.instance) === null || _a === void 0 ? void 0 : _a.config.id) === id; });\n const modalLoader = this.loaders[indexToRemove];\n if (modalLoader) {\n modalLoader.hide(id);\n }\n }\n else {\n this.loaders.forEach((loader) => {\n if (loader.instance) {\n loader.hide(loader.instance.config.id);\n }\n });\n }\n }\n getModalsCount() {\n return this.modalsCount;\n }\n setDismissReason(reason) {\n this.lastDismissReason = reason;\n }\n removeBackdrop() {\n this._renderer.removeClass(document.body, CLASS_NAME.OPEN);\n this._renderer.setStyle(document.body, 'overflow-y', '');\n this._backdropLoader.hide();\n this.backdropRef = void 0;\n }\n /** Checks if the body is overflowing and sets scrollbar width */\n /** @internal */\n checkScrollbar() {\n this.isBodyOverflowing = document.body.clientWidth < window.innerWidth;\n this.scrollbarWidth = this.getScrollbarWidth();\n }\n setScrollbar() {\n if (!document) {\n return;\n }\n this.originalBodyPadding = parseInt(window\n .getComputedStyle(document.body)\n .getPropertyValue('padding-right') || '0', 10);\n if (this.isBodyOverflowing) {\n document.body.style.paddingRight = `${this.originalBodyPadding +\n this.scrollbarWidth}px`;\n }\n }\n resetScrollbar() {\n document.body.style.paddingRight = `${this.originalBodyPadding}px`;\n }\n // thx d.walsh\n getScrollbarWidth() {\n const scrollDiv = this._renderer.createElement('div');\n this._renderer.addClass(scrollDiv, CLASS_NAME.SCROLLBAR_MEASURER);\n this._renderer.appendChild(document.body, scrollDiv);\n const scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n this._renderer.removeChild(document.body, scrollDiv);\n return scrollbarWidth;\n }\n _createLoaders() {\n const loader = this.clf.createLoader();\n this.copyEvent(loader.onBeforeShow, this.onShow);\n this.copyEvent(loader.onShown, this.onShown);\n this.copyEvent(loader.onBeforeHide, this.onHide);\n this.copyEvent(loader.onHidden, this.onHidden);\n this.loaders.push(loader);\n }\n removeLoaders(id) {\n if (id != null) {\n const indexToRemove = this.loaders.findIndex(loader => { var _a; return ((_a = loader.instance) === null || _a === void 0 ? void 0 : _a.config.id) === id; });\n if (indexToRemove >= 0) {\n this.loaders.splice(indexToRemove, 1);\n this.loaders.forEach((loader, i) => {\n if (loader.instance) {\n loader.instance.level = i + 1;\n }\n });\n }\n }\n else {\n this.loaders.splice(0, this.loaders.length);\n }\n }\n copyEvent(from, to) {\n from.subscribe((data) => {\n to.emit(this.lastDismissReason || data);\n });\n }\n}\nBsModalService.ɵfac = function BsModalService_Factory(t) { return new (t || BsModalService)(ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2), ɵngcc0.ɵɵinject(ɵngcc2.ComponentLoaderFactory), ɵngcc0.ɵɵinject(MODAL_CONFIG_DEFAULT_OVERRIDE, 8)); };\nBsModalService.ɵprov = ɵngcc0.ɵɵdefineInjectable({ token: BsModalService, factory: BsModalService.ɵfac });\nBsModalService.ctorParameters = () => [\n { type: RendererFactory2 },\n { type: ComponentLoaderFactory },\n { type: ModalOptions, decorators: [{ type: Optional }, { type: Inject, args: [MODAL_CONFIG_DEFAULT_OVERRIDE,] }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(BsModalService, [{\n type: Injectable\n }], function () { return [{ type: ɵngcc0.RendererFactory2 }, { type: ɵngcc2.ComponentLoaderFactory }, { type: ModalOptions, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [MODAL_CONFIG_DEFAULT_OVERRIDE]\n }] }]; }, null); })();\n\nconst focusTrapModule = FocusTrapModule.forRoot();\nclass ModalModule {\n static forRoot() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n static forChild() {\n return {\n ngModule: ModalModule,\n providers: [BsModalService, ComponentLoaderFactory, PositioningService]\n };\n }\n}\nModalModule.ɵmod = ɵngcc0.ɵɵdefineNgModule({ type: ModalModule });\nModalModule.ɵinj = ɵngcc0.ɵɵdefineInjector({ factory: function ModalModule_Factory(t) { return new (t || ModalModule)(); }, imports: [[FocusTrapModule]] });\n(function () { (typeof ngJitMode === \"undefined\" || ngJitMode) && ɵngcc0.ɵɵsetNgModuleScope(ModalModule, { declarations: function () { return [ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent]; }, imports: function () { return [FocusTrapModule]; }, exports: function () { return [ModalBackdropComponent,\n ModalDirective]; } }); })();\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(ModalModule, [{\n type: NgModule,\n args: [{\n imports: [FocusTrapModule],\n declarations: [\n ModalBackdropComponent,\n ModalDirective,\n ModalContainerComponent\n ],\n exports: [ModalBackdropComponent, ModalDirective],\n entryComponents: [ModalBackdropComponent, ModalContainerComponent]\n }]\n }], null, null); })();\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsModalRef, BsModalService, MODAL_CONFIG_DEFAULT_OVERRIDE, ModalBackdropComponent, ModalBackdropOptions, ModalContainerComponent, ModalDirective, ModalModule, ModalOptions, CLASS_NAME as ɵa };\n\n//# sourceMappingURL=ngx-bootstrap-modal.js.map","import { getBsVer } from 'ngx-bootstrap/utils';\nimport { ɵɵdefineInjectable, ɵɵinject, NgZone, RendererFactory2, PLATFORM_ID, Injectable, Inject, ElementRef } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { Subject, merge, fromEvent, of, animationFrameScheduler } from 'rxjs';\n\nimport * as ɵngcc0 from '@angular/core';\nvar MapPlacementInToRL;\n(function (MapPlacementInToRL) {\n MapPlacementInToRL[\"top\"] = \"top\";\n MapPlacementInToRL[\"bottom\"] = \"bottom\";\n MapPlacementInToRL[\"left\"] = \"left\";\n MapPlacementInToRL[\"right\"] = \"right\";\n MapPlacementInToRL[\"auto\"] = \"auto\";\n MapPlacementInToRL[\"end\"] = \"right\";\n MapPlacementInToRL[\"start\"] = \"left\";\n MapPlacementInToRL[\"top left\"] = \"top left\";\n MapPlacementInToRL[\"top right\"] = \"top right\";\n MapPlacementInToRL[\"right top\"] = \"right top\";\n MapPlacementInToRL[\"right bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom right\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom left\"] = \"bottom left\";\n MapPlacementInToRL[\"left bottom\"] = \"left bottom\";\n MapPlacementInToRL[\"left top\"] = \"left top\";\n MapPlacementInToRL[\"top start\"] = \"top left\";\n MapPlacementInToRL[\"top end\"] = \"top right\";\n MapPlacementInToRL[\"end top\"] = \"right top\";\n MapPlacementInToRL[\"end bottom\"] = \"right bottom\";\n MapPlacementInToRL[\"bottom end\"] = \"bottom right\";\n MapPlacementInToRL[\"bottom start\"] = \"bottom left\";\n MapPlacementInToRL[\"start bottom\"] = \"start bottom\";\n MapPlacementInToRL[\"start top\"] = \"left top\";\n})(MapPlacementInToRL || (MapPlacementInToRL = {}));\nvar PlacementForBs5;\n(function (PlacementForBs5) {\n PlacementForBs5[\"top\"] = \"top\";\n PlacementForBs5[\"bottom\"] = \"bottom\";\n PlacementForBs5[\"left\"] = \"start\";\n PlacementForBs5[\"right\"] = \"end\";\n PlacementForBs5[\"auto\"] = \"auto\";\n PlacementForBs5[\"end\"] = \"end\";\n PlacementForBs5[\"start\"] = \"start\";\n PlacementForBs5[\"top left\"] = \"top start\";\n PlacementForBs5[\"top right\"] = \"top end\";\n PlacementForBs5[\"right top\"] = \"end top\";\n PlacementForBs5[\"right bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom right\"] = \"bottom end\";\n PlacementForBs5[\"bottom left\"] = \"bottom start\";\n PlacementForBs5[\"left bottom\"] = \"start bottom\";\n PlacementForBs5[\"left top\"] = \"start top\";\n PlacementForBs5[\"top start\"] = \"top start\";\n PlacementForBs5[\"top end\"] = \"top end\";\n PlacementForBs5[\"end top\"] = \"end top\";\n PlacementForBs5[\"end bottom\"] = \"end bottom\";\n PlacementForBs5[\"bottom end\"] = \"bottom end\";\n PlacementForBs5[\"bottom start\"] = \"bottom start\";\n PlacementForBs5[\"start bottom\"] = \"start bottom\";\n PlacementForBs5[\"start top\"] = \"start top\";\n})(PlacementForBs5 || (PlacementForBs5 = {}));\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window === null || window === void 0 ? void 0 : window.getComputedStyle(element, null);\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n return property ? css && css[property] : css;\n}\n\nconst isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';\n\n/**\n * Determines if the browser is Internet Explorer\n */\n// todo: valorkin fix and drop IE support :evil:\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && !!(window.MSInputMethodContext && /MSIE 10/.test(navigator.userAgent));\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n const noOffsetParent = isIE(10) ? document.body : null;\n // NOTE: 1 DOM access here\n let offsetParent = element === null || element === void 0 ? void 0 : element.offsetParent;\n // Skip hidden elements which don't have an offsetParent\n let sibling = void 0;\n while (offsetParent === noOffsetParent\n && element.nextElementSibling\n && sibling !== element.nextElementSibling) {\n // todo: valorkin fix\n sibling = element.nextElementSibling;\n offsetParent = sibling.offsetParent;\n }\n const nodeName = offsetParent && offsetParent.nodeName;\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return sibling ? sibling.ownerDocument.documentElement : document.documentElement;\n }\n // .offsetParent will return the closest TH, TD or TABLE in case\n if (offsetParent &&\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n return offsetParent;\n}\n\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element);\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n // todo: valorkin fix\n const commonAncestorContainer = range.commonAncestorContainer;\n // Both nodes are inside #document\n if ((element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n return getOffsetParent(commonAncestorContainer);\n }\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n }\n else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n */\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while ((el === null || el === void 0 ? void 0 : el.parentElement) && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Helper to detect borders of a given element\n */\nfunction getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return (parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`]));\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n const _body = body;\n const _html = html;\n const _computedStyle = computedStyle;\n return Math.max(_body[`offset${axis}`], _body[`scroll${axis}`], _html[`client${axis}`], _html[`offset${axis}`], _html[`scroll${axis}`], isIE(10)\n ? (parseInt(_html[`offset${axis}`], 10) +\n parseInt(_computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`], 10) +\n parseInt(_computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`], 10))\n : 0);\n}\nfunction getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) ? getComputedStyle(html) : void 0;\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n */\nfunction getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n return element[upperSide];\n}\n\nfunction getClientRect(offsets) {\n return Object.assign(Object.assign({}, offsets), { right: (offsets.left || 0) + offsets.width, bottom: (offsets.top || 0) + offsets.height });\n}\n\n/**\n * Tells if a given input is a number\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(Number(n));\n}\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction isNumber(value) {\n return typeof value === 'number' || Object.prototype.toString.call(value) === '[object Number]';\n}\n\n/**\n * Get bounding client rect of given element\n */\nfunction getBoundingClientRect(element) {\n const rect = element.getBoundingClientRect();\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n if (rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right)) {\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n }\n }\n catch (e) {\n return rect;\n }\n if (!(rect && isNumber(rect.top) && isNumber(rect.left) && isNumber(rect.bottom) && isNumber(rect.right))) {\n return rect;\n }\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : undefined;\n const width = (sizes === null || sizes === void 0 ? void 0 : sizes.width) || element.clientWidth\n || isNumber(result.right) && isNumber(result.left) && result.right - result.left || 0;\n const height = (sizes === null || sizes === void 0 ? void 0 : sizes.height) || element.clientHeight\n || isNumber(result.bottom) && isNumber(result.top) && result.bottom - result.top || 0;\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n return getClientRect(result);\n}\n\n/**\n * Returns the parentNode or the host of the element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n */\n// todo: valorkin fix\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n default:\n }\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(String(overflow) + String(overflowY) + String(overflowX))) {\n return element;\n }\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Sum or subtract the element scroll values (left and top) from a given rect object\n */\nfunction includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n if (isNumber(rect.top)) {\n rect.top += scrollTop * modifier;\n }\n if (isNumber(rect.bottom)) {\n rect.bottom += scrollTop * modifier;\n }\n if (isNumber(rect.left)) {\n rect.left += scrollLeft * modifier;\n }\n if (isNumber(rect.right)) {\n rect.right += scrollLeft * modifier;\n }\n return rect;\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n var _a, _b, _c, _d, _e, _f;\n const isIE10 = isIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max((_a = parentRect.top) !== null && _a !== void 0 ? _a : 0, 0);\n parentRect.left = Math.max((_b = parentRect.left) !== null && _b !== void 0 ? _b : 0, 0);\n }\n let offsets = getClientRect({\n top: ((_c = childrenRect.top) !== null && _c !== void 0 ? _c : 0) - ((_d = parentRect.top) !== null && _d !== void 0 ? _d : 0) - borderTopWidth,\n left: ((_e = childrenRect.left) !== null && _e !== void 0 ? _e : 0) - ((_f = parentRect.left) !== null && _f !== void 0 ? _f : 0) - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n if (isNumber(offsets.top)) {\n offsets.top -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.bottom)) {\n offsets.bottom -= borderTopWidth - marginTop;\n }\n if (isNumber(offsets.left)) {\n offsets.left -= borderLeftWidth - marginLeft;\n }\n if (isNumber(offsets.right)) {\n offsets.right -= borderLeftWidth - marginLeft;\n }\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n if (isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n const offset = {\n top: scrollTop - Number(relativeOffset === null || relativeOffset === void 0 ? void 0 : relativeOffset.top) + Number(relativeOffset === null || relativeOffset === void 0 ? void 0 : relativeOffset.marginTop),\n left: scrollLeft - Number(relativeOffset === null || relativeOffset === void 0 ? void 0 : relativeOffset.left) + Number(relativeOffset === null || relativeOffset === void 0 ? void 0 : relativeOffset.marginLeft),\n width,\n height\n };\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n */\nfunction isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n return isFixed(getParentNode(element));\n}\n\nfunction getBoundaries(target, host, padding = 0, boundariesElement, fixedPosition = false) {\n // NOTE: 1 DOM access here\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(target) : findCommonOffsetParent(target, host);\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(host));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n }\n else if (boundariesElement === 'window') {\n boundariesNode = target.ownerDocument.documentElement;\n }\n else {\n boundariesNode = boundariesElement;\n }\n const offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n // In case of HTML, we need a different computation\n if (offsets && boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(target.ownerDocument);\n if (isNumber(boundaries.top) && isNumber(offsets.top) && isNumber(offsets.marginTop)) {\n boundaries.top += offsets.top - offsets.marginTop;\n }\n if (isNumber(boundaries.top)) {\n boundaries.bottom = Number(height) + Number(offsets.top);\n }\n if (isNumber(boundaries.left) && isNumber(offsets.left) && isNumber(offsets.marginLeft)) {\n boundaries.left += offsets.left - offsets.marginLeft;\n }\n if (isNumber(boundaries.top)) {\n boundaries.right = Number(width) + Number(offsets.left);\n }\n }\n else if (offsets) {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n // Add paddings\n if (isNumber(boundaries.left)) {\n boundaries.left += padding;\n }\n if (isNumber(boundaries.top)) {\n boundaries.top += padding;\n }\n if (isNumber(boundaries.right)) {\n boundaries.right -= padding;\n }\n if (isNumber(boundaries.bottom)) {\n boundaries.bottom -= padding;\n }\n return boundaries;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n */\nfunction getArea({ width, height }) {\n return width * height;\n}\nfunction computeAutoPlacement(placement, refRect, target, host, allowedPositions = ['top', 'bottom', 'right', 'left'], boundariesElement = 'viewport', padding = 0) {\n var _a, _b, _c, _d;\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n const boundaries = getBoundaries(target, host, padding, boundariesElement);\n const rects = {\n top: {\n width: (_a = boundaries.width) !== null && _a !== void 0 ? _a : 0,\n height: refRect.top && boundaries.top ? refRect.top - boundaries.top : 0\n },\n right: {\n width: boundaries.right && refRect.right ? boundaries.right - refRect.right : 0,\n height: (_b = boundaries.height) !== null && _b !== void 0 ? _b : 0\n },\n bottom: {\n width: (_c = boundaries.width) !== null && _c !== void 0 ? _c : 0,\n height: boundaries.bottom && refRect.bottom ? boundaries.bottom - refRect.bottom : 0\n },\n left: {\n width: refRect.left && boundaries.left ? refRect.left - boundaries.left : 0,\n height: (_d = boundaries.height) !== null && _d !== void 0 ? _d : 0\n }\n };\n const sortedAreas = Object.keys(rects)\n .map((key) => (Object.assign(Object.assign({ key }, rects[key]), { area: getArea(rects[key]) })))\n .sort((a, b) => b.area - a.area);\n let filteredAreas = sortedAreas.filter(({ width, height }) => {\n return width >= target.clientWidth\n && height >= target.clientHeight;\n });\n filteredAreas = filteredAreas.filter((position) => {\n return allowedPositions\n .some((allowedPosition) => {\n return allowedPosition === position.key;\n });\n });\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n const variation = placement.split(' ')[1];\n // for tooltip on auto position\n target.className = target.className.replace(/bs-tooltip-auto/g, `bs-tooltip-${getBsVer().isBs5 ? PlacementForBs5[computedPlacement] : computedPlacement}`);\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n\nfunction getOffsets(data) {\n var _a, _b, _c, _d;\n return {\n width: data.offsets.target.width,\n height: data.offsets.target.height,\n left: Math.floor((_a = data.offsets.target.left) !== null && _a !== void 0 ? _a : 0),\n top: Math.round((_b = data.offsets.target.top) !== null && _b !== void 0 ? _b : 0),\n bottom: Math.round((_c = data.offsets.target.bottom) !== null && _c !== void 0 ? _c : 0),\n right: Math.floor((_d = data.offsets.target.right) !== null && _d !== void 0 ? _d : 0)\n };\n}\n\n/**\n * Get the opposite placement of the given one\n */\nfunction getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n\n/**\n * Get the opposite placement variation of the given one\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'right') {\n return 'left';\n }\n else if (variation === 'left') {\n return 'right';\n }\n return variation;\n}\n\nconst parse = (value, def = 0) => value ? parseFloat(value) : def;\nconst ɵ0 = parse;\nfunction getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window === null || window === void 0 ? void 0 : window.getComputedStyle(element);\n const x = parse(styles === null || styles === void 0 ? void 0 : styles.marginTop) + parse(styles === null || styles === void 0 ? void 0 : styles.marginBottom);\n const y = parse(styles === null || styles === void 0 ? void 0 : styles.marginLeft) + parse(styles === null || styles === void 0 ? void 0 : styles.marginRight);\n return {\n width: Number(element.offsetWidth) + y,\n height: Number(element.offsetHeight) + x\n };\n}\n\n/**\n * Get offsets to the reference element\n */\nfunction getReferenceOffsets(target, host, fixedPosition) {\n const commonOffsetParent = fixedPosition\n ? getFixedPositionOffsetParent(target)\n : findCommonOffsetParent(target, host);\n return getOffsetRectRelativeToArbitraryNode(host, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get offsets to the target\n */\nfunction getTargetOffsets(target, hostOffsets, position) {\n var _a, _b, _c;\n const placement = position.split(' ')[0];\n // Get target node sizes\n const targetRect = getOuterSizes(target);\n // Add position, width and height to our offsets object\n const targetOffsets = {\n width: targetRect.width,\n height: targetRect.height\n };\n // depending by the target placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n targetOffsets[mainSide] =\n ((_a = hostOffsets[mainSide]) !== null && _a !== void 0 ? _a : 0) +\n hostOffsets[measurement] / 2 -\n targetRect[measurement] / 2;\n targetOffsets[secondarySide] = placement === secondarySide\n ? ((_b = hostOffsets[secondarySide]) !== null && _b !== void 0 ? _b : 0) - targetRect[secondaryMeasurement]\n : (_c = hostOffsets[getOppositePlacement(secondarySide)]) !== null && _c !== void 0 ? _c : 0;\n return targetOffsets;\n}\n\nfunction isModifierEnabled(options, modifierName) {\n var _a;\n return !!((_a = options.modifiers[modifierName]) === null || _a === void 0 ? void 0 : _a.enabled);\n}\n\nconst availablePositions = {\n top: ['top', 'top start', 'top end'],\n bottom: ['bottom', 'bottom start', 'bottom end'],\n start: ['start', 'start top', 'start bottom'],\n end: ['end', 'end top', 'end bottom']\n};\nfunction checkPopoverMargin(placement, checkPosition) {\n if (!getBsVer().isBs5) {\n return false;\n }\n return availablePositions[checkPosition].includes(placement);\n}\nfunction checkMargins(placement) {\n if (!getBsVer().isBs5) {\n return '';\n }\n if (checkPopoverMargin(placement, 'end')) {\n return 'ms-2';\n }\n if (checkPopoverMargin(placement, 'start')) {\n return 'me-2';\n }\n if (checkPopoverMargin(placement, 'top')) {\n return 'mb-2';\n }\n if (checkPopoverMargin(placement, 'bottom')) {\n return 'mt-2';\n }\n return '';\n}\n\nfunction updateContainerClass(data, renderer) {\n const target = data.instance.target;\n let containerClass = target.className;\n const dataPlacement = getBsVer().isBs5 ? PlacementForBs5[data.placement] : data.placement;\n if (data.placementAuto) {\n containerClass = containerClass.replace(/bs-popover-auto/g, `bs-popover-${dataPlacement}`);\n containerClass = containerClass.replace(/ms-2|me-2|mb-2|mt-2/g, '');\n containerClass = containerClass.replace(/bs-tooltip-auto/g, `bs-tooltip-${dataPlacement}`);\n containerClass = containerClass.replace(/\\sauto/g, ` ${dataPlacement}`);\n if (containerClass.indexOf('popover') !== -1) {\n containerClass = containerClass + ' ' + checkMargins(dataPlacement);\n }\n if (containerClass.indexOf('popover') !== -1 && containerClass.indexOf('popover-auto') === -1) {\n containerClass += ' popover-auto';\n }\n if (containerClass.indexOf('tooltip') !== -1 && containerClass.indexOf('tooltip-auto') === -1) {\n containerClass += ' tooltip-auto';\n }\n }\n containerClass = containerClass.replace(/left|right|top|bottom|end|start/g, `${dataPlacement.split(' ')[0]}`);\n if (renderer) {\n renderer.setAttribute(target, 'class', containerClass);\n return;\n }\n target.className = containerClass;\n}\n\nfunction setStyles(element, styles, renderer) {\n if (!element || !styles) {\n return;\n }\n Object.keys(styles).forEach((prop) => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 &&\n isNumeric(styles[prop])) {\n unit = 'px';\n }\n if (renderer) {\n renderer.setStyle(element, prop, `${String(styles[prop])}${unit}`);\n return;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n element.style[prop] = String(styles[prop]) + unit;\n });\n}\n\nfunction arrow(data) {\n var _a, _b, _c, _d, _e, _f;\n let targetOffsets = data.offsets.target;\n // if arrowElement is a string, suppose it's a CSS selector\n const arrowElement = data.instance.target.querySelector('.arrow');\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n const isVertical = ['left', 'right'].indexOf(data.placement.split(' ')[0]) !== -1;\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n const placementVariation = data.placement.split(' ')[1];\n // top/left side\n if (((_a = data.offsets.host[opSide]) !== null && _a !== void 0 ? _a : 0) - arrowElementSize < ((_b = targetOffsets[side]) !== null && _b !== void 0 ? _b : 0)) {\n (targetOffsets)[side] -=\n ((_c = targetOffsets[side]) !== null && _c !== void 0 ? _c : 0) - (((_d = data.offsets.host[opSide]) !== null && _d !== void 0 ? _d : 0) - arrowElementSize);\n }\n // bottom/right side\n if (Number((data).offsets.host[side]) + Number(arrowElementSize) > ((_e = targetOffsets[opSide]) !== null && _e !== void 0 ? _e : 0)) {\n (targetOffsets)[side] +=\n Number((data).offsets.host[side]) + Number(arrowElementSize) - Number((targetOffsets)[opSide]);\n }\n targetOffsets = getClientRect(targetOffsets);\n // Compute the sideValue using the updated target offsets\n // take target margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.target);\n const targetMarginSide = parseFloat(css[`margin${sideCapitalized}`]) || 0;\n const targetBorderSide = parseFloat(css[`border${sideCapitalized}Width`]) || 0;\n // compute center of the target\n let center;\n if (!placementVariation) {\n center = Number((data).offsets.host[side]) + Number(data.offsets.host[len] / 2 - arrowElementSize / 2);\n }\n else {\n const targetBorderRadius = parseFloat(css.borderRadius) || 0;\n const targetSideArrowOffset = Number(targetMarginSide + targetBorderSide + targetBorderRadius);\n center = side === placementVariation ?\n Number((data).offsets.host[side]) + targetSideArrowOffset :\n Number((data).offsets.host[side]) + Number(data.offsets.host[len] - targetSideArrowOffset);\n }\n let sideValue = center - ((_f = targetOffsets[side]) !== null && _f !== void 0 ? _f : 0) - targetMarginSide - targetBorderSide;\n // prevent arrowElement from being placed not contiguously to its target\n sideValue = Math.max(Math.min(targetOffsets[len] - (arrowElementSize + 5), sideValue), 0);\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '' // make sure to unset any eventual altSide value from the DOM node\n };\n data.instance.arrow = arrowElement;\n return data;\n}\n\nfunction flip(data) {\n data.offsets.target = getClientRect(data.offsets.target);\n if (!isModifierEnabled(data.options, 'flip')) {\n data.offsets.target = Object.assign(Object.assign({}, data.offsets.target), getTargetOffsets(data.instance.target, data.offsets.host, data.placement));\n return data;\n }\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n 'viewport', false // positionFixed\n );\n let placement = data.placement.split(' ')[0];\n let variation = data.placement.split(' ')[1] || '';\n const offsetsHost = data.offsets.host;\n const target = data.instance.target;\n const host = data.instance.host;\n const adaptivePosition = computeAutoPlacement('auto', offsetsHost, target, host, data.options.allowedPositions);\n const flipOrder = [placement, adaptivePosition];\n flipOrder.forEach((step, index) => {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;\n if (placement !== step || flipOrder.length === index + 1) {\n return;\n }\n placement = data.placement.split(' ')[0];\n // using floor because the host offsets may contain decimals we are not going to consider here\n const overlapsRef = (placement === 'left' &&\n Math.floor((_a = data.offsets.target.right) !== null && _a !== void 0 ? _a : 0) > Math.floor((_b = data.offsets.host.left) !== null && _b !== void 0 ? _b : 0)) ||\n (placement === 'right' &&\n Math.floor((_c = data.offsets.target.left) !== null && _c !== void 0 ? _c : 0) < Math.floor((_d = data.offsets.host.right) !== null && _d !== void 0 ? _d : 0)) ||\n (placement === 'top' &&\n Math.floor((_e = data.offsets.target.bottom) !== null && _e !== void 0 ? _e : 0) > Math.floor((_f = data.offsets.host.top) !== null && _f !== void 0 ? _f : 0)) ||\n (placement === 'bottom' &&\n Math.floor((_g = data.offsets.target.top) !== null && _g !== void 0 ? _g : 0) < Math.floor((_h = data.offsets.host.bottom) !== null && _h !== void 0 ? _h : 0));\n const overflowsLeft = Math.floor((_j = data.offsets.target.left) !== null && _j !== void 0 ? _j : 0) < Math.floor((_k = boundaries.left) !== null && _k !== void 0 ? _k : 0);\n const overflowsRight = Math.floor((_l = data.offsets.target.right) !== null && _l !== void 0 ? _l : 0) > Math.floor((_m = boundaries.right) !== null && _m !== void 0 ? _m : 0);\n const overflowsTop = Math.floor((_o = data.offsets.target.top) !== null && _o !== void 0 ? _o : 0) < Math.floor((_p = boundaries.top) !== null && _p !== void 0 ? _p : 0);\n const overflowsBottom = Math.floor((_q = data.offsets.target.bottom) !== null && _q !== void 0 ? _q : 0) > Math.floor((_r = boundaries.bottom) !== null && _r !== void 0 ? _r : 0);\n const overflowsBoundaries = (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const flippedVariation = ((isVertical && variation === 'left' && overflowsLeft) ||\n (isVertical && variation === 'right' && overflowsRight) ||\n (!isVertical && variation === 'left' && overflowsTop) ||\n (!isVertical && variation === 'right' && overflowsBottom));\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n data.placement = placement + (variation ? ` ${variation}` : '');\n data.offsets.target = Object.assign(Object.assign({}, data.offsets.target), getTargetOffsets(data.instance.target, data.offsets.host, data.placement));\n }\n });\n return data;\n}\n\nfunction initData(targetElement, hostElement, position, options) {\n if (!targetElement || !hostElement) {\n return;\n }\n const hostElPosition = getReferenceOffsets(targetElement, hostElement);\n if (!position.match(/^(auto)*\\s*(left|right|top|bottom|start|end)*$/)\n && !position.match(/^(left|right|top|bottom|start|end)*(?: (left|right|top|bottom|start|end))*$/)) {\n position = 'auto';\n }\n const placementAuto = !!position.match(/auto/g);\n // support old placements 'auto left|right|top|bottom'\n let placement = position.match(/auto\\s(left|right|top|bottom|start|end)/)\n ? position.split(' ')[1] || 'auto'\n : position;\n // Normalize placements that have identical main placement and variation (\"right right\" => \"right\").\n const matches = placement.match(/^(left|right|top|bottom|start|end)* ?(?!\\1)(left|right|top|bottom|start|end)?/);\n if (matches) {\n placement = matches[1] + (matches[2] ? ` ${matches[2]}` : '');\n }\n // \"left right\", \"top bottom\" etc. placements also considered incorrect.\n if (['left right', 'right left', 'top bottom', 'bottom top'].indexOf(placement) !== -1) {\n placement = 'auto';\n }\n placement = computeAutoPlacement(placement, hostElPosition, targetElement, hostElement, options ? options.allowedPositions : undefined);\n const targetOffset = getTargetOffsets(targetElement, hostElPosition, placement);\n return {\n options: options || { modifiers: {} },\n instance: {\n target: targetElement,\n host: hostElement,\n arrow: void 0\n },\n offsets: {\n target: targetOffset,\n host: hostElPosition,\n arrow: void 0\n },\n positionFixed: false,\n placement,\n placementAuto\n };\n}\n\nfunction preventOverflow(data) {\n var _a;\n if (!isModifierEnabled(data.options, 'preventOverflow')) {\n return data;\n }\n // NOTE: DOM access here\n // resets the target Offsets's position so that the document size can be calculated excluding\n // the size of the targetOffsets element itself\n const transformProp = 'transform';\n const targetStyles = data.instance.target.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = targetStyles;\n targetStyles.top = '';\n targetStyles.left = '';\n targetStyles[transformProp] = '';\n const boundaries = getBoundaries(data.instance.target, data.instance.host, 0, // padding\n ((_a = data.options.modifiers.preventOverflow) === null || _a === void 0 ? void 0 : _a.boundariesElement) || 'scrollParent', false // positionFixed\n );\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n targetStyles.top = top;\n targetStyles.left = left;\n targetStyles[transformProp] = transform;\n const order = ['left', 'right', 'top', 'bottom'];\n const check = {\n primary(placement) {\n var _a, _b, _c, _d;\n let value = data.offsets.target[placement];\n // options.escapeWithReference\n if (((_a = data.offsets.target[placement]) !== null && _a !== void 0 ? _a : 0) < ((_b = boundaries[placement]) !== null && _b !== void 0 ? _b : 0)) {\n value = Math.max((_c = data.offsets.target[placement]) !== null && _c !== void 0 ? _c : 0, (_d = boundaries[placement]) !== null && _d !== void 0 ? _d : 0);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n var _a, _b, _c, _d;\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = data.offsets.target[mainSide];\n // escapeWithReference\n if (((_a = data.offsets.target[placement]) !== null && _a !== void 0 ? _a : 0) < ((_b = boundaries[placement]) !== null && _b !== void 0 ? _b : 0)) {\n value = Math.min((_c = data.offsets.target[mainSide]) !== null && _c !== void 0 ? _c : 0, ((_d = boundaries[placement]) !== null && _d !== void 0 ? _d : 0) -\n (placement === 'right' ? data.offsets.target.width : data.offsets.target.height));\n }\n return { [mainSide]: value };\n }\n };\n order.forEach((placement) => {\n const side = ['left', 'top', 'start'].indexOf(placement) !== -1 ? check['primary'] : check['secondary'];\n data.offsets.target = Object.assign(Object.assign({}, data.offsets.target), side(placement));\n });\n return data;\n}\n\nfunction shift(data) {\n var _a;\n const placement = data.placement;\n const basePlacement = placement.split(' ')[0];\n const shiftVariation = placement.split(' ')[1];\n if (shiftVariation) {\n const { host, target } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n const shiftOffsets = {\n start: { [side]: host[side] },\n end: {\n [side]: ((_a = host[side]) !== null && _a !== void 0 ? _a : 0) + host[measurement] - target[measurement]\n }\n };\n data.offsets.target = Object.assign(Object.assign({}, target), {\n [side]: (side === shiftVariation ? shiftOffsets.start[side] : shiftOffsets.end[side])\n });\n }\n return data;\n}\n\nclass Positioning {\n position(hostElement, targetElement /*, round = true*/) {\n return this.offset(hostElement, targetElement /*, false*/);\n }\n offset(hostElement, targetElement /*, round = true*/) {\n return getReferenceOffsets(targetElement, hostElement);\n }\n positionElements(hostElement, targetElement, position, appendToBody, options) {\n const chainOfModifiers = [flip, shift, preventOverflow, arrow];\n const _position = MapPlacementInToRL[position];\n const data = initData(targetElement, hostElement, _position, options);\n if (!data) {\n return;\n }\n return chainOfModifiers.reduce((modifiedData, modifier) => modifier(modifiedData), data);\n }\n}\nconst positionService = new Positioning();\nfunction positionElements(hostElement, targetElement, placement, appendToBody, options, renderer) {\n const data = positionService.positionElements(hostElement, targetElement, placement, appendToBody, options);\n if (!data) {\n return;\n }\n const offsets = getOffsets(data);\n setStyles(targetElement, {\n 'will-change': 'transform',\n top: '0px',\n left: '0px',\n transform: `translate3d(${offsets.left}px, ${offsets.top}px, 0px)`\n }, renderer);\n if (data.instance.arrow) {\n setStyles(data.instance.arrow, data.offsets.arrow, renderer);\n }\n updateContainerClass(data, renderer);\n}\n\nclass PositioningService {\n constructor(ngZone, rendererFactory, platformId) {\n this.update$$ = new Subject();\n this.positionElements = new Map();\n this.isDisabled = false;\n if (isPlatformBrowser(platformId)) {\n ngZone.runOutsideAngular(() => {\n this.triggerEvent$ = merge(fromEvent(window, 'scroll', { passive: true }), fromEvent(window, 'resize', { passive: true }), of(0, animationFrameScheduler), this.update$$);\n this.triggerEvent$.subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this.positionElements\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .forEach((positionElement) => {\n positionElements(_getHtmlElement(positionElement.target), _getHtmlElement(positionElement.element), positionElement.attachment, positionElement.appendToBody, this.options, rendererFactory.createRenderer(null, null));\n });\n });\n });\n }\n }\n position(options) {\n this.addPositionElement(options);\n }\n get event$() {\n return this.triggerEvent$;\n }\n disable() {\n this.isDisabled = true;\n }\n enable() {\n this.isDisabled = false;\n }\n addPositionElement(options) {\n this.positionElements.set(_getHtmlElement(options.element), options);\n }\n calcPosition() {\n this.update$$.next();\n }\n deletePositionElement(elRef) {\n this.positionElements.delete(_getHtmlElement(elRef));\n }\n setOptions(options) {\n this.options = options;\n }\n}\nPositioningService.ɵfac = function PositioningService_Factory(t) { return new (t || PositioningService)(ɵngcc0.ɵɵinject(ɵngcc0.NgZone), ɵngcc0.ɵɵinject(ɵngcc0.RendererFactory2), ɵngcc0.ɵɵinject(PLATFORM_ID)); };\nPositioningService.ɵprov = ɵɵdefineInjectable({ factory: function PositioningService_Factory() { return new PositioningService(ɵɵinject(NgZone), ɵɵinject(RendererFactory2), ɵɵinject(PLATFORM_ID)); }, token: PositioningService, providedIn: \"root\" });\nPositioningService.ctorParameters = () => [\n { type: NgZone },\n { type: RendererFactory2 },\n { type: Number, decorators: [{ type: Inject, args: [PLATFORM_ID,] }] }\n];\n/*@__PURE__*/ (function () { ɵngcc0.ɵsetClassMetadata(PositioningService, [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], function () { return [{ type: ɵngcc0.NgZone }, { type: ɵngcc0.RendererFactory2 }, { type: Number, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }]; }, null); })();\nfunction _getHtmlElement(element) {\n // it means that we got a selector\n if (typeof element === 'string') {\n return document.querySelector(element);\n }\n if (element instanceof ElementRef) {\n return element.nativeElement;\n }\n return element !== null && element !== void 0 ? element : null;\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { PlacementForBs5, Positioning, PositioningService, checkMargins, positionElements };\n\n//# sourceMappingURL=ngx-bootstrap-positioning.js.map","import { isDevMode } from '@angular/core';\n\n/**\n * @copyright Valor Software\n * @copyright Angular ng-bootstrap team\n */\nclass Trigger {\n constructor(open, close) {\n this.open = open;\n this.close = close || open;\n }\n isManual() {\n return this.open === 'manual' || this.close === 'manual';\n }\n}\n\nconst DEFAULT_ALIASES = {\n hover: ['mouseover', 'mouseout'],\n focus: ['focusin', 'focusout']\n};\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction parseTriggers(triggers, aliases = DEFAULT_ALIASES) {\n const trimmedTriggers = (triggers || '').trim();\n if (trimmedTriggers.length === 0) {\n return [];\n }\n const parsedTriggers = trimmedTriggers\n .split(/\\s+/)\n .map((trigger) => trigger.split(':'))\n .map((triggerPair) => {\n const alias = aliases[triggerPair[0]] || triggerPair;\n return new Trigger(alias[0], alias[1]);\n });\n const manualTriggers = parsedTriggers.filter((triggerPair) => triggerPair.isManual());\n if (manualTriggers.length > 1) {\n throw new Error('Triggers parse error: only one manual trigger is allowed');\n }\n if (manualTriggers.length === 1 && parsedTriggers.length > 1) {\n throw new Error('Triggers parse error: manual trigger can\\'t be mixed with other triggers');\n }\n return parsedTriggers;\n}\nfunction listenToTriggers(renderer, \n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntarget, triggers, showFn, hideFn, toggleFn) {\n const parsedTriggers = parseTriggers(triggers);\n const listeners = [];\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n parsedTriggers.forEach((trigger) => {\n if (trigger.open === trigger.close) {\n listeners.push(renderer.listen(target, trigger.open, toggleFn));\n return;\n }\n listeners.push(renderer.listen(target, trigger.open, showFn));\n if (trigger.close) {\n listeners.push(renderer.listen(target, trigger.close, hideFn));\n }\n });\n return () => {\n listeners.forEach((unsubscribeFn) => unsubscribeFn());\n };\n}\nfunction listenToTriggersV2(renderer, options) {\n const parsedTriggers = parseTriggers(options.triggers);\n const target = options.target;\n // do nothing\n if (parsedTriggers.length === 1 && parsedTriggers[0].isManual()) {\n return Function.prototype;\n }\n // all listeners\n const listeners = [];\n // lazy listeners registration\n const _registerHide = [];\n const registerHide = () => {\n // add hide listeners to unregister array\n _registerHide.forEach((fn) => listeners.push(fn()));\n // register hide events only once\n _registerHide.length = 0;\n };\n // register open\\close\\toggle listeners\n parsedTriggers.forEach((trigger) => {\n const useToggle = trigger.open === trigger.close;\n const showFn = useToggle ? options.toggle : options.show;\n if (!useToggle && trigger.close && options.hide) {\n const _hide = renderer.listen(target, trigger.close, options.hide);\n _registerHide.push(() => _hide);\n }\n if (showFn) {\n listeners.push(renderer.listen(target, trigger.open, () => showFn(registerHide)));\n }\n });\n return () => {\n listeners.forEach((unsubscribeFn) => unsubscribeFn());\n };\n}\nfunction registerOutsideClick(renderer, options) {\n if (!options.outsideClick) {\n return Function.prototype;\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return renderer.listen('document', 'click', (event) => {\n if (options.target && options.target.contains(event.target)) {\n return;\n }\n if (options.targets &&\n options.targets.some(target => target.contains(event.target))) {\n return;\n }\n if (options.hide) {\n options.hide();\n }\n });\n}\nfunction registerEscClick(renderer, options) {\n if (!options.outsideEsc) {\n return Function.prototype;\n }\n return renderer.listen('document', 'keyup.esc', (event) => {\n if (options.target && options.target.contains(event.target)) {\n return;\n }\n if (options.targets &&\n options.targets.some(target => target.contains(event.target))) {\n return;\n }\n if (options.hide) {\n options.hide();\n }\n });\n}\n\n/**\n * @license\n * Copyright Google Inc. 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 * JS version of browser APIs. This library can only run in the browser.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst win = (typeof window !== 'undefined' && window) || {};\nconst document = win.document;\nconst location = win.location;\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst gc = win.gc ? () => win.gc() : () => null;\nconst performance = win.performance ? win.performance : null;\nconst Event = win.Event;\nconst MouseEvent = win.MouseEvent;\nconst KeyboardEvent = win.KeyboardEvent;\nconst EventTarget = win.EventTarget;\nconst History = win.History;\nconst Location = win.Location;\nconst EventListener = win.EventListener;\n\nvar BsVerions;\n(function (BsVerions) {\n BsVerions[\"isBs3\"] = \"bs3\";\n BsVerions[\"isBs4\"] = \"bs4\";\n BsVerions[\"isBs5\"] = \"bs5\";\n})(BsVerions || (BsVerions = {}));\nlet guessedVersion;\nfunction _guessBsVersion() {\n if (typeof win.document === 'undefined') {\n return 'bs4';\n }\n const spanEl = win.document.createElement('span');\n spanEl.innerText = 'testing bs version';\n spanEl.classList.add('d-none');\n spanEl.classList.add('visually-hidden');\n win.document.head.appendChild(spanEl);\n const rect = spanEl.getBoundingClientRect();\n const overflowStyle = win.getComputedStyle(spanEl).overflow;\n win.document.head.removeChild(spanEl);\n if (!rect || (rect && rect.top !== 0)) {\n return 'bs3';\n }\n if (overflowStyle && overflowStyle === 'hidden') {\n return 'bs5';\n }\n return 'bs4';\n}\nfunction setTheme(theme) {\n guessedVersion = theme;\n}\n// todo: in ngx-bootstrap, bs4 will became a default one\nfunction isBs3() {\n if (typeof win === 'undefined') {\n return true;\n }\n if (typeof win.__theme === 'undefined') {\n if (guessedVersion) {\n return guessedVersion === 'bs3';\n }\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs3';\n }\n return win.__theme === 'bs3';\n}\nfunction isBs4() {\n if (isBs3())\n return false;\n if (guessedVersion)\n return guessedVersion === 'bs4';\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs4';\n}\nfunction isBs5() {\n if (isBs3() || isBs4())\n return false;\n if (guessedVersion)\n return guessedVersion === 'bs5';\n guessedVersion = _guessBsVersion();\n return guessedVersion === 'bs5';\n}\nfunction getBsVer() {\n return {\n isBs3: isBs3(),\n isBs4: isBs4(),\n isBs5: isBs5()\n };\n}\nfunction currentBsVersion() {\n const bsVer = getBsVer();\n const resVersion = Object.keys(bsVer).find(key => bsVer[key]);\n return BsVerions[resVersion];\n}\n\nclass LinkedList {\n constructor() {\n this.length = 0;\n this.asArray = [];\n // Array methods overriding END\n }\n get(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n return void 0;\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current === null || current === void 0 ? void 0 : current.next;\n }\n return current === null || current === void 0 ? void 0 : current.value;\n }\n add(value, position = this.length) {\n if (position < 0 || position > this.length) {\n throw new Error('Position is out of the list');\n }\n const node = {\n value,\n next: undefined,\n previous: undefined\n };\n if (this.length === 0) {\n this.head = node;\n this.tail = node;\n this.current = node;\n }\n else {\n if (position === 0 && this.head) {\n // first node\n node.next = this.head;\n this.head.previous = node;\n this.head = node;\n }\n else if (position === this.length && this.tail) {\n // last node\n this.tail.next = node;\n node.previous = this.tail;\n this.tail = node;\n }\n else {\n // node in middle\n const currentPreviousNode = this.getNode(position - 1);\n const currentNextNode = currentPreviousNode === null || currentPreviousNode === void 0 ? void 0 : currentPreviousNode.next;\n if (currentPreviousNode && currentNextNode) {\n currentPreviousNode.next = node;\n currentNextNode.previous = node;\n node.previous = currentPreviousNode;\n node.next = currentNextNode;\n }\n }\n }\n this.length++;\n this.createInternalArrayRepresentation();\n }\n remove(position = 0) {\n var _a;\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n if (position === 0 && this.head) {\n // first node\n this.head = this.head.next;\n if (this.head) {\n // there is no second node\n this.head.previous = undefined;\n }\n else {\n // there is no second node\n this.tail = undefined;\n }\n }\n else if (position === this.length - 1 && ((_a = this.tail) === null || _a === void 0 ? void 0 : _a.previous)) {\n // last node\n this.tail = this.tail.previous;\n this.tail.next = undefined;\n }\n else {\n // middle node\n const removedNode = this.getNode(position);\n if ((removedNode === null || removedNode === void 0 ? void 0 : removedNode.next) && removedNode.previous) {\n removedNode.next.previous = removedNode.previous;\n removedNode.previous.next = removedNode.next;\n }\n }\n this.length--;\n this.createInternalArrayRepresentation();\n }\n set(position, value) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n const node = this.getNode(position);\n if (node) {\n node.value = value;\n this.createInternalArrayRepresentation();\n }\n }\n toArray() {\n return this.asArray;\n }\n findAll(fn) {\n let current = this.head;\n const result = [];\n if (!current) {\n return result;\n }\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return result;\n }\n if (fn(current.value, index)) {\n result.push({ index, value: current.value });\n }\n current = current.next;\n }\n return result;\n }\n // Array methods overriding start\n push(...args) {\n args.forEach((arg) => {\n this.add(arg);\n });\n return this.length;\n }\n pop() {\n if (this.length === 0) {\n return;\n }\n const last = this.tail;\n this.remove(this.length - 1);\n return last === null || last === void 0 ? void 0 : last.value;\n }\n unshift(...args) {\n args.reverse();\n args.forEach((arg) => {\n this.add(arg, 0);\n });\n return this.length;\n }\n shift() {\n var _a;\n if (this.length === 0) {\n return undefined;\n }\n const lastItem = (_a = this.head) === null || _a === void 0 ? void 0 : _a.value;\n this.remove();\n return lastItem;\n }\n forEach(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return;\n }\n fn(current.value, index);\n current = current.next;\n }\n }\n indexOf(value) {\n let current = this.head;\n let position = -1;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return position;\n }\n if (current.value === value) {\n position = index;\n break;\n }\n current = current.next;\n }\n return position;\n }\n some(fn) {\n let current = this.head;\n let result = false;\n while (current && !result) {\n if (fn(current.value)) {\n result = true;\n break;\n }\n current = current.next;\n }\n return result;\n }\n every(fn) {\n let current = this.head;\n let result = true;\n while (current && result) {\n if (!fn(current.value)) {\n result = false;\n }\n current = current.next;\n }\n return result;\n }\n toString() {\n return '[Linked List]';\n }\n find(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return;\n }\n if (fn(current.value, index)) {\n return current.value;\n }\n current = current.next;\n }\n }\n findIndex(fn) {\n let current = this.head;\n for (let index = 0; index < this.length; index++) {\n if (!current) {\n return -1;\n }\n if (fn(current.value, index)) {\n return index;\n }\n current = current.next;\n }\n return -1;\n }\n getNode(position) {\n if (this.length === 0 || position < 0 || position >= this.length) {\n throw new Error('Position is out of the list');\n }\n let current = this.head;\n for (let index = 0; index < position; index++) {\n current = current === null || current === void 0 ? void 0 : current.next;\n }\n return current;\n }\n createInternalArrayRepresentation() {\n const outArray = [];\n let current = this.head;\n while (current) {\n outArray.push(current.value);\n current = current.next;\n }\n this.asArray = outArray;\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction OnChange() {\n const sufix = 'Change';\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function OnChangeHandler(target, propertyKey) {\n const _key = ` __${propertyKey}Value`;\n Object.defineProperty(target, propertyKey, {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n get() {\n return this[_key];\n },\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n set(value) {\n const prevValue = this[_key];\n this[_key] = value;\n if (prevValue !== value && this[propertyKey + sufix]) {\n this[propertyKey + sufix].emit(value);\n }\n }\n });\n };\n}\n\nclass Utils {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static reflow(element) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n ((bs) => bs)(element.offsetHeight);\n }\n // source: https://github.com/jquery/jquery/blob/master/src/css/var/getStyles.js\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n static getStyles(elem) {\n // Support: IE <=11 only, Firefox <=30 (#15098, #14150)\n // IE throws on elements created in popups\n // FF meanwhile throws on frame elements through \"defaultView.getComputedStyle\"\n let view = elem.ownerDocument.defaultView;\n if (!view || !view.opener) {\n view = win;\n }\n return view.getComputedStyle(elem);\n }\n static stackOverflowConfig() {\n const bsVer = currentBsVersion();\n return {\n crossorigin: bsVer !== 'bs3' ? \"anonymous\" : undefined,\n integrity: bsVer === 'bs5' ? 'sha384-KyZXEAg3QhqLMpG8r+8fhAXLRk2vvoC2f3B09zVXn8CA5QIVfZOJ3BCsw2P0p/We' : bsVer === 'bs4' ? 'sha384-TX8t27EcRE3e/ihU7zmQxVncDAy5uIKz4rEkgIXeMed4M0jlfIDPvg6uqKI2xXr2' : undefined,\n cdnLink: bsVer === 'bs5' ? 'https://cdn.jsdelivr.net/npm/bootstrap@5.1.0/dist/css/bootstrap.min.css' : bsVer === 'bs4' ? 'https://cdn.jsdelivr.net/npm/bootstrap@4.5.3/dist/css/bootstrap.min.css' : 'https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css',\n };\n }\n}\n\nconst _messagesHash = {};\nconst _hideMsg = typeof console === 'undefined' || !('warn' in console);\nfunction warnOnce(msg) {\n if (!isDevMode() || _hideMsg || msg in _messagesHash) {\n return;\n }\n _messagesHash[msg] = true;\n console.warn(msg);\n}\n\n/**\n * Generated bundle index. Do not edit.\n */\n\nexport { BsVerions, LinkedList, OnChange, Trigger, Utils, currentBsVersion, document, getBsVer, isBs3, listenToTriggers, listenToTriggersV2, parseTriggers, registerEscClick, registerOutsideClick, setTheme, warnOnce, win as window, isBs4 as ɵa, isBs5 as ɵb };\n\n//# sourceMappingURL=ngx-bootstrap-utils.js.map","export default \"\\n \\n\\n
\\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n
\\n\\n\\n\\n
\\n
\\n \\n
\\n

12345 Legal Updates\\n

\\n
\\n\\n\\n
\\n
\\n \\n
\\n\\n
\\n
\\n
\\n
Categories
\\n
    \\n
    \\n
  • \\n \\n
  • \\n \\n \\n
  • \\n \\n
  • \\n
  • \\n \\n
  • \\n
    \\n
\\n
\\n
\\n
\\n
\\n
types
\\n
    \\n
    \\n
  • \\n \\n
  • \\n\\n\\n
  • \\n \\n
  • \\n
  • \\n \\n
  • \\n
    \\n
\\n
\\n
\\n
\\n
\\n
Date
\\n
    \\n
    \\n
  • \\n \\n
  • \\n\\n\\n
  • \\n \\n
  • \\n
  • \\n \\n
  • \\n
    \\n
\\n
\\n
\\n
\\n\\n
\\n \\n
\\n
\\n
\\n
\\n \\n\\n \\n

BIS amends the notification regard…

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…

\\n

Read More\\n

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

BIS amends the notification regard…

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…

\\n

Read More\\n

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

BIS amends the notification regard…

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…\\n

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…\\n

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide\\n notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…\\n

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide\\n notif…\\n

\\n

Read More\\n

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

BIS amends the notification regard…\\n

\\n
\\n

Nov 15, 2021

\\n

The Bureau of Indian Standards (BIS) on November 2, 2021 has issued the amendment in the vide\\n notif…\\n

\\n

Read More\\n

\\n\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n\\n\";","export default \"\\n\\n\\nManupatra Newsroom\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n
\\n
\\n
\\n
\\n
    \\n
  • \\\"LinkedIn\\\"
  • \\n
  • \\\"YouTube\\\"
  • \\n
  • \\\"WhatsApp
  • \\n
  • \\\"Telegram\\\"
  • \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\\n

Manupatra Legal & Regulatory Updates, features the updates across Acts, Articles, Judgements, News, Notifications, categorised under subjects, which are updated daily.

\\n
    \\n
  • Manupatra Legal & Regulatory Updates can be customised as per your subject preference.
  • \\n
  • Set your preferences online by choosing the subjects of your choice and time frequency.
  • \\n
  • An email will be delivered to your email box everyday intimating you, if there is an update under the subject of your choice.
  • \\n
  • Each time you sign in to legal & regulatory updates, you will view the documents updated under the heads Acts, Articles, Judgements, News, Notifications.
  • \\n
  • You can select up to 8 Subjects.
  • \\n
  • You can change your preferences anytime and any number of times.
  • \\n
\\n \\n
\\n
\\n
\\n

Sign In

\\n
\\n \\n

\\n
\\n
Email is required
\\n
Enter Valid Email
\\n
\\n \\n \\n

\\n
OTP is required
\\n\\n Send OTP again\\n Change Email Id\\n

\\n

Don't have an account yet?

\\n

Sign Up Here!

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

REGISTER FOR DAILY LEGAL UPDATES

\\n \\n
\\n
\\n
\\n
\\n \\n
\\n
\\n \\n
\\n
Name is required
\\n
Name length should be minimum 4
\\n
Name length maximum can be 20
\\n
Only characters are allowed
\\n
\\n
\\n
\\n
\\n
\\n \\n \\n
\\n
Email is required
\\n
Enter Valid Email
\\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
\\n
Phone Number is required
\\n
Only digit is allowed
\\n
Phone Number should be 10 digit
\\n
\\n
\\n
\\n \\n
\\n
City is required
\\n
\\n
\\n
\\n \\n
\\n
Field is required
\\n
\\n
\\n \\n
\\n \\n
\\n
Organisation Name is required
\\n
\\n
\\n
\\n \\n
\\n
Recaptcha is required
\\n
\\n
\\n
\\n

We are commited to your privacy. Manupatra uses this information you provide\\n to us to register you for our legal and regularity updates, contact you about our relevant content,\\n products and services. You may unsubscribe from these communications at any time. \\n

\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n\\n\";","import { NgModule } from '@angular/core';\nimport { Routes, RouterModule } from '@angular/router';\n\nimport { LoginComponent } from './login/login.component';\nimport { SignupComponent } from './signup/signup.component';\n\nconst routes: Routes = [{\n path: '',\n data: {\n title: 'Login',\n },\n children: [\n {\n path: '',\n redirectTo: 'custom',\n },\n // {\n // path: 'check',\n // component: LoginComponent,\n // data: {\n // title: 'check',\n // }\n // },\n {\n path: 'custom',\n component: SignupComponent,\n data: {\n title: 'Login',\n }\n },\n ]\n }\n];\n\n@NgModule({\n imports: [RouterModule.forChild(routes)],\n exports: [RouterModule]\n})\nexport class AuthRoutingModule { }\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { ModalModule } from 'ngx-bootstrap/modal';\n\nimport { AuthRoutingModule } from './auth-routing.module';\nimport { LoginComponent } from './login/login.component';\nimport { SignupComponent } from './signup/signup.component';\nimport { NgxCaptchaModule } from 'ngx-captcha';\n\n@NgModule({\n declarations: [LoginComponent, SignupComponent],\n imports: [\n CommonModule,\n AuthRoutingModule,\n FormsModule,\n ReactiveFormsModule,\n ModalModule.forRoot(),\n NgxCaptchaModule\n ]\n})\nexport class AuthModule { }\n","export default \".navbar {\\n padding: 25px 15px 25px 15px !important;\\n background: #fff !important;\\n box-shadow: rgba(122, 107, 107, 0.3) 0px 7px 20px 0px;\\n}\\n\\n.nav-link {\\n margin-left: 15px !important;\\n}\\n\\n.login-btn {\\n background-color: #88241e !important;\\n border-color: #88241e !important;\\n color: white !important;\\n}\\n\\n.search-form {\\n margin-top: 20px !important;\\n margin-bottom: 20px !important;\\n padding: 20px !important;\\n}\\n\\n.breadcrumb-link {\\n text-decoration: none !important;\\n color: #88241e !important;\\n}\\n\\n.box {\\n border: 1px solid transparent;\\n padding: 10px;\\n border-radius: 5px;\\n background-color: #fff;\\n box-shadow: 0 7px 20px 0 rgba(210, 210, 210, 0.5);\\n}\\n\\n.h1,\\n.h2,\\n.h3,\\n.h4,\\n.h5,\\n.h6,\\nh1,\\nh2,\\nh3,\\nh4,\\nh5,\\nh6 {\\n font-weight: 700;\\n}\\n\\n.checkboxwrap {\\n position: relative;\\n width: 100%;\\n list-style: none;\\n padding-left: 0;\\n}\\n\\n.custom-check {\\n position: relative;\\n display: block;\\n padding-right: 15px;\\n}\\n\\n.custom-check input {\\n position: absolute;\\n width: 16px;\\n height: 16px;\\n right: 4px !important;\\n top: 10px;\\n z-index: 2;\\n opacity: 1;\\n cursor: pointer;\\n}\\n\\n.custom-check input + span {\\n display: block;\\n padding: 10px 0;\\n cursor: pointer;\\n}\\n\\n.tags {\\n margin: 0;\\n padding: 0;\\n margin-bottom: 0;\\n}\\n\\n.tags > * {\\n display: inline-block;\\n list-style: none;\\n}\\n\\n.link-black {\\n color: #000;\\n margin: 0 10px 0 0;\\n position: relative;\\n}\\n\\n.h4, h4 {\\n color: #000;\\n font-weight: 700;\\n font-size: 18px;\\n line-height: 24px;\\n}\\n\\na {\\n color: #007bff;\\n text-decoration: none;\\n background-color: transparent;\\n}\\n\\n.card-text-sm {\\n margin-bottom: -1rem !important;\\n -webkit-margin-before: -30px;\\n display: block;\\n -webkit-margin-before: 0;\\n margin-block-start: 0;\\n -webkit-margin-after: 0;\\n margin-block-end: 0;\\n -webkit-margin-start: 0;\\n margin-inline-start: 0;\\n -webkit-margin-end: 0;\\n margin-inline-end: 0;\\n font-weight: 700;\\n}\\n\\n.text-black-50 {\\n font-size: 12px;\\n color: rgba(0, 0, 0, 0.5) !important;\\n margin-top: -5px !important;\\n}\\n\\np {\\n display: block;\\n -webkit-margin-before: 1em;\\n margin-block-start: 1em;\\n -webkit-margin-after: 1em;\\n margin-block-end: 1em;\\n -webkit-margin-start: 0px;\\n margin-inline-start: 0px;\\n -webkit-margin-end: 0px;\\n margin-inline-end: 0px;\\n}\\n\\nP {\\n font-weight: 400;\\n}\\n\\n.a-tag {\\n color: white !important;\\n background-color: #88241e;\\n padding: 5px 5px 5px 5px !important;\\n border-radius: 7px !important;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9sb2dpbi9FOlxcMi4wUHJvamVjdHNcXG5ld3NsZXR0ZXMvc3JjXFxhcHBcXGF1dGhcXGxvZ2luXFxsb2dpbi5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTtFQUNFLHVDQUFBO0VBQ0EsMkJBQUE7RUFDQSxxREFBQTtBQ0NGOztBRENBO0VBQ0UsNEJBQUE7QUNFRjs7QURDQTtFQUNFLG9DQUFBO0VBQ0EsZ0NBQUE7RUFDQSx1QkFBQTtBQ0VGOztBRENBO0VBQ0UsMkJBQUE7RUFDQSw4QkFBQTtFQUNBLHdCQUFBO0FDRUY7O0FEQ0E7RUFDRSxnQ0FBQTtFQUNBLHlCQUFBO0FDRUY7O0FEQ0E7RUFDRSw2QkFBQTtFQUNBLGFBQUE7RUFDQSxrQkFBQTtFQUNBLHNCQUFBO0VBQ0EsaURBQUE7QUNFRjs7QURDQTs7Ozs7Ozs7Ozs7O0VBWUUsZ0JBQUE7QUNFRjs7QURDQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLGdCQUFBO0VBQ0EsZUFBQTtBQ0VGOztBRENBO0VBQ0Usa0JBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7QUNFRjs7QURDQTtFQUNFLGtCQUFBO0VBQ0EsV0FBQTtFQUNBLFlBQUE7RUFDQSxxQkFBQTtFQUNBLFNBQUE7RUFDQSxVQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7QUNFRjs7QURDQTtFQUNFLGNBQUE7RUFDQSxlQUFBO0VBQ0EsZUFBQTtBQ0VGOztBRENBO0VBQ0ksU0FBQTtFQUNBLFVBQUE7RUFDQSxnQkFBQTtBQ0VKOztBREFBO0VBQ0kscUJBQUE7RUFDQSxnQkFBQTtBQ0dKOztBRERBO0VBQ0ksV0FBQTtFQUNBLGtCQUFBO0VBQ0Esa0JBQUE7QUNJSjs7QUREQTtFQUNJLFdBQUE7RUFDQSxnQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtBQ0lKOztBREZBO0VBQ0ksY0FBQTtFQUNBLHFCQUFBO0VBQ0EsNkJBQUE7QUNLSjs7QURGQTtFQUNJLCtCQUFBO0VBQ0EsNEJBQUE7RUFDQSxjQUFBO0VBQ0Esd0JBQUE7VUFBQSxxQkFBQTtFQUNBLHVCQUFBO1VBQUEsbUJBQUE7RUFDQSx1QkFBQTtVQUFBLHNCQUFBO0VBQ0EscUJBQUE7VUFBQSxvQkFBQTtFQUNBLGdCQUFBO0FDS0o7O0FERkE7RUFDSSxlQUFBO0VBQ0Esb0NBQUE7RUFDRCwyQkFBQTtBQ0tIOztBREhBO0VBQ0ksY0FBQTtFQUNBLDBCQUFBO1VBQUEsdUJBQUE7RUFDQSx5QkFBQTtVQUFBLHFCQUFBO0VBQ0EseUJBQUE7VUFBQSx3QkFBQTtFQUNBLHVCQUFBO1VBQUEsc0JBQUE7QUNNSjs7QURKQTtFQUNJLGdCQUFBO0FDT0o7O0FESkE7RUFDSSx1QkFBQTtFQUNBLHlCQUFBO0VBQ0EsbUNBQUE7RUFDQSw2QkFBQTtBQ09KIiwiZmlsZSI6InNyYy9hcHAvYXV0aC9sb2dpbi9sb2dpbi5jb21wb25lbnQuc2NzcyIsInNvdXJjZXNDb250ZW50IjpbIi5uYXZiYXIge1xyXG4gIHBhZGRpbmc6IDI1cHggMTVweCAyNXB4IDE1cHggIWltcG9ydGFudDtcclxuICBiYWNrZ3JvdW5kOiAjZmZmICFpbXBvcnRhbnQ7XHJcbiAgYm94LXNoYWRvdzogcmdiKDEyMiAxMDcgMTA3IC8gMzAlKSAwcHggN3B4IDIwcHggMHB4O1xyXG59XHJcbi5uYXYtbGluayB7XHJcbiAgbWFyZ2luLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcclxufVxyXG5cclxuLmxvZ2luLWJ0biB7XHJcbiAgYmFja2dyb3VuZC1jb2xvcjogIzg4MjQxZSAhaW1wb3J0YW50O1xyXG4gIGJvcmRlci1jb2xvcjogIzg4MjQxZSAhaW1wb3J0YW50O1xyXG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uc2VhcmNoLWZvcm0ge1xyXG4gIG1hcmdpbi10b3A6IDIwcHggIWltcG9ydGFudDtcclxuICBtYXJnaW4tYm90dG9tOiAyMHB4ICFpbXBvcnRhbnQ7XHJcbiAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYnJlYWRjcnVtYi1saW5rIHtcclxuICB0ZXh0LWRlY29yYXRpb246IG5vbmUgIWltcG9ydGFudDtcclxuICBjb2xvcjogIzg4MjQxZSAhaW1wb3J0YW50O1xyXG59XHJcblxyXG4uYm94IHtcclxuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcclxuICBwYWRkaW5nOiAxMHB4O1xyXG4gIGJvcmRlci1yYWRpdXM6IDVweDtcclxuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xyXG4gIGJveC1zaGFkb3c6IDAgN3B4IDIwcHggMCByZ2IoMjEwIDIxMCAyMTAgLyA1MCUpO1xyXG59XHJcblxyXG4uaDEsXHJcbi5oMixcclxuLmgzLFxyXG4uaDQsXHJcbi5oNSxcclxuLmg2LFxyXG5oMSxcclxuaDIsXHJcbmgzLFxyXG5oNCxcclxuaDUsXHJcbmg2IHtcclxuICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4uY2hlY2tib3h3cmFwIHtcclxuICBwb3NpdGlvbjogcmVsYXRpdmU7XHJcbiAgd2lkdGg6IDEwMCU7XHJcbiAgbGlzdC1zdHlsZTogbm9uZTtcclxuICBwYWRkaW5nLWxlZnQ6IDA7XHJcbn1cclxuXHJcbi5jdXN0b20tY2hlY2sge1xyXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxuICBkaXNwbGF5OiBibG9jaztcclxuICBwYWRkaW5nLXJpZ2h0OiAxNXB4O1xyXG59XHJcblxyXG4uY3VzdG9tLWNoZWNrIGlucHV0IHtcclxuICBwb3NpdGlvbjogYWJzb2x1dGU7XHJcbiAgd2lkdGg6IDE2cHg7XHJcbiAgaGVpZ2h0OiAxNnB4O1xyXG4gIHJpZ2h0OiA0cHggIWltcG9ydGFudDtcclxuICB0b3A6IDEwcHg7XHJcbiAgei1pbmRleDogMjtcclxuICBvcGFjaXR5OiAxO1xyXG4gIGN1cnNvcjogcG9pbnRlcjtcclxufVxyXG5cclxuLmN1c3RvbS1jaGVjayBpbnB1dCArIHNwYW4ge1xyXG4gIGRpc3BsYXk6IGJsb2NrO1xyXG4gIHBhZGRpbmc6IDEwcHggMDtcclxuICBjdXJzb3I6IHBvaW50ZXI7XHJcbn1cclxuXHJcbi50YWdzIHtcclxuICAgIG1hcmdpbjogMDtcclxuICAgIHBhZGRpbmc6IDA7XHJcbiAgICBtYXJnaW4tYm90dG9tOiAwO1xyXG59XHJcbi50YWdzPioge1xyXG4gICAgZGlzcGxheTogaW5saW5lLWJsb2NrO1xyXG4gICAgbGlzdC1zdHlsZTogbm9uZTtcclxufVxyXG4ubGluay1ibGFjayB7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIG1hcmdpbjogMCAxMHB4IDAgMDtcclxuICAgIHBvc2l0aW9uOiByZWxhdGl2ZTtcclxufVxyXG5cclxuLmg0LCBoNCB7XHJcbiAgICBjb2xvcjogIzAwMDtcclxuICAgIGZvbnQtd2VpZ2h0OiA3MDA7XHJcbiAgICBmb250LXNpemU6IDE4cHg7XHJcbiAgICBsaW5lLWhlaWdodDogMjRweDtcclxufVxyXG5hIHtcclxuICAgIGNvbG9yOiAjMDA3YmZmO1xyXG4gICAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XHJcbn1cclxuXHJcbi5jYXJkLXRleHQtc20ge1xyXG4gICAgbWFyZ2luLWJvdHRvbTogLTFyZW0gIWltcG9ydGFudDtcclxuICAgIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogLTMwcHg7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMDtcclxuICAgIG1hcmdpbi1ibG9jay1lbmQ6IDA7XHJcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiAwO1xyXG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDA7XHJcbiAgICBmb250LXdlaWdodDogNzAwO1xyXG59XHJcblxyXG4udGV4dC1ibGFjay01MCB7XHJcbiAgICBmb250LXNpemU6IDEycHg7XHJcbiAgICBjb2xvcjogcmdiYSgwLDAsMCwuNSkhaW1wb3J0YW50O1xyXG4gICBtYXJnaW4tdG9wOiAtNXB4ICFpbXBvcnRhbnQ7XHJcbn1cclxucCB7XHJcbiAgICBkaXNwbGF5OiBibG9jaztcclxuICAgIG1hcmdpbi1ibG9jay1zdGFydDogMWVtO1xyXG4gICAgbWFyZ2luLWJsb2NrLWVuZDogMWVtO1xyXG4gICAgbWFyZ2luLWlubGluZS1zdGFydDogMHB4O1xyXG4gICAgbWFyZ2luLWlubGluZS1lbmQ6IDBweDtcclxufVxyXG5QIHtcclxuICAgIGZvbnQtd2VpZ2h0OiA0MDA7XHJcbn1cclxuXHJcbi5hLXRhZ3tcclxuICAgIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xyXG4gICAgYmFja2dyb3VuZC1jb2xvcjogIzg4MjQxZTtcclxuICAgIHBhZGRpbmc6IDVweCA1cHggNXB4IDVweCAhaW1wb3J0YW50O1xyXG4gICAgYm9yZGVyLXJhZGl1czogN3B4ICFpbXBvcnRhbnQ7XHJcbiAgXHJcbn1cclxuIiwiLm5hdmJhciB7XG4gIHBhZGRpbmc6IDI1cHggMTVweCAyNXB4IDE1cHggIWltcG9ydGFudDtcbiAgYmFja2dyb3VuZDogI2ZmZiAhaW1wb3J0YW50O1xuICBib3gtc2hhZG93OiByZ2JhKDEyMiwgMTA3LCAxMDcsIDAuMykgMHB4IDdweCAyMHB4IDBweDtcbn1cblxuLm5hdi1saW5rIHtcbiAgbWFyZ2luLWxlZnQ6IDE1cHggIWltcG9ydGFudDtcbn1cblxuLmxvZ2luLWJ0biB7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODI0MWUgIWltcG9ydGFudDtcbiAgYm9yZGVyLWNvbG9yOiAjODgyNDFlICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiB3aGl0ZSAhaW1wb3J0YW50O1xufVxuXG4uc2VhcmNoLWZvcm0ge1xuICBtYXJnaW4tdG9wOiAyMHB4ICFpbXBvcnRhbnQ7XG4gIG1hcmdpbi1ib3R0b206IDIwcHggIWltcG9ydGFudDtcbiAgcGFkZGluZzogMjBweCAhaW1wb3J0YW50O1xufVxuXG4uYnJlYWRjcnVtYi1saW5rIHtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjODgyNDFlICFpbXBvcnRhbnQ7XG59XG5cbi5ib3gge1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgcGFkZGluZzogMTBweDtcbiAgYm9yZGVyLXJhZGl1czogNXB4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmO1xuICBib3gtc2hhZG93OiAwIDdweCAyMHB4IDAgcmdiYSgyMTAsIDIxMCwgMjEwLCAwLjUpO1xufVxuXG4uaDEsXG4uaDIsXG4uaDMsXG4uaDQsXG4uaDUsXG4uaDYsXG5oMSxcbmgyLFxuaDMsXG5oNCxcbmg1LFxuaDYge1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4uY2hlY2tib3h3cmFwIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB3aWR0aDogMTAwJTtcbiAgbGlzdC1zdHlsZTogbm9uZTtcbiAgcGFkZGluZy1sZWZ0OiAwO1xufVxuXG4uY3VzdG9tLWNoZWNrIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZy1yaWdodDogMTVweDtcbn1cblxuLmN1c3RvbS1jaGVjayBpbnB1dCB7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgd2lkdGg6IDE2cHg7XG4gIGhlaWdodDogMTZweDtcbiAgcmlnaHQ6IDRweCAhaW1wb3J0YW50O1xuICB0b3A6IDEwcHg7XG4gIHotaW5kZXg6IDI7XG4gIG9wYWNpdHk6IDE7XG4gIGN1cnNvcjogcG9pbnRlcjtcbn1cblxuLmN1c3RvbS1jaGVjayBpbnB1dCArIHNwYW4ge1xuICBkaXNwbGF5OiBibG9jaztcbiAgcGFkZGluZzogMTBweCAwO1xuICBjdXJzb3I6IHBvaW50ZXI7XG59XG5cbi50YWdzIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBtYXJnaW4tYm90dG9tOiAwO1xufVxuXG4udGFncyA+ICoge1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGxpc3Qtc3R5bGU6IG5vbmU7XG59XG5cbi5saW5rLWJsYWNrIHtcbiAgY29sb3I6ICMwMDA7XG4gIG1hcmdpbjogMCAxMHB4IDAgMDtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xufVxuXG4uaDQsIGg0IHtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiA3MDA7XG4gIGZvbnQtc2l6ZTogMThweDtcbiAgbGluZS1oZWlnaHQ6IDI0cHg7XG59XG5cbmEge1xuICBjb2xvcjogIzAwN2JmZjtcbiAgdGV4dC1kZWNvcmF0aW9uOiBub25lO1xuICBiYWNrZ3JvdW5kLWNvbG9yOiB0cmFuc3BhcmVudDtcbn1cblxuLmNhcmQtdGV4dC1zbSB7XG4gIG1hcmdpbi1ib3R0b206IC0xcmVtICFpbXBvcnRhbnQ7XG4gIC13ZWJraXQtbWFyZ2luLWJlZm9yZTogLTMwcHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBtYXJnaW4tYmxvY2stc3RhcnQ6IDA7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IDA7XG4gIG1hcmdpbi1pbmxpbmUtc3RhcnQ6IDA7XG4gIG1hcmdpbi1pbmxpbmUtZW5kOiAwO1xuICBmb250LXdlaWdodDogNzAwO1xufVxuXG4udGV4dC1ibGFjay01MCB7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgY29sb3I6IHJnYmEoMCwgMCwgMCwgMC41KSAhaW1wb3J0YW50O1xuICBtYXJnaW4tdG9wOiAtNXB4ICFpbXBvcnRhbnQ7XG59XG5cbnAge1xuICBkaXNwbGF5OiBibG9jaztcbiAgbWFyZ2luLWJsb2NrLXN0YXJ0OiAxZW07XG4gIG1hcmdpbi1ibG9jay1lbmQ6IDFlbTtcbiAgbWFyZ2luLWlubGluZS1zdGFydDogMHB4O1xuICBtYXJnaW4taW5saW5lLWVuZDogMHB4O1xufVxuXG5QIHtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbn1cblxuLmEtdGFnIHtcbiAgY29sb3I6IHdoaXRlICFpbXBvcnRhbnQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICM4ODI0MWU7XG4gIHBhZGRpbmc6IDVweCA1cHggNXB4IDVweCAhaW1wb3J0YW50O1xuICBib3JkZXItcmFkaXVzOiA3cHggIWltcG9ydGFudDtcbn0iXX0= */\";","import { Component, OnInit } from '@angular/core';\nimport { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { UserService } from '../../services/user.service';\nimport { NotificationService } from '../../services/notification.service';\n\n@Component({\n selector: 'app-login',\n templateUrl: './login.component.html',\n styleUrls: ['./login.component.scss']\n})\nexport class LoginComponent implements OnInit {\n\n loginForm: FormGroup;\n signupForm: FormGroup;\n loginformSubmitted = false;\n signupformSubmitted = false;\n OTPError = false;\n showOTPField = false;\n\n constructor(private formBuilder: FormBuilder,\n private userService: UserService,\n private router: Router,\n private notificationService: NotificationService) { }\n\n ngOnInit() {\n this.getProfessions();\n this.createLoginForm();\n this.createSignupForm();\n }\n\n get lform() { return this.loginForm.controls; }\n createLoginForm() {\n this.loginForm = this.formBuilder.group({\n accesstoken: [\"\"],\n email: ['', Validators.required],\n otp: ['']\n });\n }\n\n get sform() { return this.signupForm.controls; }\n createSignupForm() {\n this.signupForm = this.formBuilder.group({\n accesstoken: [\"8yLqTLSqRRu0Y9bRoP-Y9mJN0cM1WlcPI5G5Mk0zQXA0TSigLPC4BA==\"],\n name: ['', Validators.required],\n email: ['', [Validators.required]],\n mobile: ['', [Validators.required]],\n city: ['', Validators.required],\n youare: ['', Validators.required],\n organization: ['Manuptra', Validators.required],\n manusub: [\"0\", Validators.required]\n });\n }\n\n loginUser() {\n this.OTPError = false;\n if (this.loginForm.value.otp != \"\") {\n this.confirmOTP();\n } else {\n if (this.showOTPField == true) {\n this.OTPError = true;\n } else {\n this.sendOTP();\n }\n }\n }\n\n sendOTP() {\n this.loginformSubmitted = true;\n if (this.loginForm.invalid) { return; }\n\n this.userService.login(this.loginForm.value).subscribe((data: any) => {\n console.log(data.Message);\n this.notificationService.showSuccess(\"\", data.Message);\n if (data.Status) {\n this.showOTPField = true;\n }\n })\n }\n\n confirmOTP() {\n this.userService.confirmOTP(this.loginForm.value).subscribe((data: any) => {\n this.notificationService.showSuccess(\"\", data.Message);\n if (data.Status == true) {\n let uid = {\n userId: data.data[0].uid,\n macaddress: \"\"\n }\n this.userService.generateToken(uid).subscribe((d: any) => {\n \n let ldata = {\n userId: data.data[0].uid,\n token: d.data[0].Token,\n email: data.data[0].email\n }\n localStorage.setItem('user', JSON.stringify(ldata));\n this.userService.changeToken(ldata);\n this.router.navigateByUrl('/dashboard');\n })\n }\n })\n }\n\n signupUser() {\n this.signupformSubmitted = true;\n if (this.signupForm.invalid) { return; }\n this.userService.signup(this.signupForm.value).subscribe((data: any) => {\n this.notificationService.showSuccess(\"\", data.Message);\n this.toggleForm();\n this.signupformSubmitted = false;\n this.createSignupForm();\n })\n }\n\n clearLoginForm() {\n this.OTPError = false;\n this.showOTPField = false;\n this.loginformSubmitted = false;\n this.createLoginForm();\n }\n\n toggleForm = () => {\n const container = document.querySelector('.container');\n container.classList.toggle('active');\n };\n\n getProfessions() {\n let data = {\n userid: 'F8FB0CE7-130A-4A6B-95ED-74575A4145ED'\n }\n this.userService.getAllProfessions(data).subscribe((data: any) => {\n console.log(data);\n })\n }\n\n}\n","export default \"\\n@import url(\\\"https://fonts.googleapis.com/css2?family=Montserrat:wght@400;600&display=swap\\\");\\n/***** Modal *****/\\n.modal-content {\\n border-radius: 4px;\\n text-align: left;\\n}\\n.modal-body {\\n padding: 0 25px 15px 25px;\\n}\\n.modal-body img {\\n margin-bottom: 15px;\\n}\\n.modal-header {\\n padding: 25px 25px 15px 25px;\\n}\\n.modal-footer {\\n padding: 15px 25px 25px 25px;\\n}\\n.modal-header, .modal-footer {\\n border: 0;\\n}\\n.modal-header .close {\\n font-size: 36px;\\n color: #888;\\n font-weight: 400;\\n text-shadow: none;\\n opacity: 1;\\n}\\n.modal-footer button {\\n height: 50px;\\n margin: 0;\\n padding: 0 20px;\\n background: #e38f42;\\n border: 0;\\n font-size: 15px;\\n font-weight: 400;\\n line-height: 50px;\\n color: #fff;\\n border-radius: 4px;\\n text-shadow: none;\\n box-shadow: none;\\n transition: all 0.3s;\\n}\\n.modal-footer button:hover {\\n outline: 0;\\n opacity: 0.6;\\n color: #fff;\\n}\\n.modal-footer button:focus, .modal-footer button:active:focus, .modal-footer button.active:focus {\\n outline: 0;\\n opacity: 0.6;\\n color: #fff;\\n box-shadow: none;\\n}\\n.modal-footer button:before {\\n background: none;\\n}\\n/***** Footer *****/\\n.form-control {\\n margin-top: 10px;\\n background-color: #efefef;\\n border-radius: 25px;\\n}\\n@media (min-width: 768px) {\\n .modal-dialog {\\n width: 530px !important;\\n margin: 30px auto;\\n }\\n\\n .elp h1 {\\n margin: 20px 0 0 0;\\n font-size: 30px;\\n font-weight: 600;\\n }\\n\\n .linkpanel {\\n margin: 15px 0 15px 0;\\n overflow: hidden;\\n }\\n\\n .lclbox .box h3 {\\n padding: 0 0 0 18px;\\n }\\n\\n .lclbox .box ul {\\n padding: 0 0 0 38px;\\n }\\n\\n .lclbox .box ul li {\\n line-height: 20px;\\n }\\n\\n .m-linkbtn {\\n margin: 8px 0 0 0;\\n }\\n}\\n/* End Enabling Law Practices */\\n/* CSS Document */\\n.wrapper {\\n margin: 0;\\n padding: 0;\\n width: 1001px;\\n margin: 0 auto;\\n}\\n.shadowmain {\\n box-shadow: 0px 0px 5px 0px rgba(50, 50, 50, 0.79);\\n margin: 0 auto;\\n padding: 0;\\n}\\n.navbar-default {\\n background-color: #fff !important;\\n border-color: #fff !important;\\n}\\n.navbar-nav {\\n float: right !important;\\n margin: 0;\\n}\\n.navbar-collapse {\\n padding-left: 0px !important;\\n padding-right: 0px !important;\\n}\\n.navbar {\\n border-radius: 0px !important;\\n min-height: auto !important;\\n}\\n.navbar-nav > li > a {\\n padding-bottom: 11px !important;\\n padding-top: 10px !important;\\n}\\n.navbar-default .navbar-nav > li > a {\\n color: #000 !important;\\n}\\n.subscribe {\\n padding: 10px 0 0 0;\\n margin: 0;\\n clear: both;\\n overflow: hidden;\\n}\\n.subscribe_inner {\\n background: #ecf7ff none repeat scroll 0 0;\\n border: 1px solid #ccc;\\n margin: 0;\\n overflow: hidden;\\n padding: 10px;\\n}\\n.subs {\\n border-bottom: 1px solid #ccc;\\n border-top: 1px solid #ccc;\\n font-size: 12px;\\n margin: 10px 0 0;\\n overflow: hidden;\\n padding: 15px 15px 5px;\\n text-align: center;\\n}\\n.one {\\n float: left;\\n width: 87%;\\n}\\n.two {\\n float: right;\\n}\\n.subs input {\\n border: 1px solid #ccc;\\n border-radius: 2px;\\n margin: 0;\\n padding: 3px 3px 3px 8px;\\n width: 100%;\\n}\\n.select1 {\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n font-size: 12px;\\n margin: 0 0 0 12px;\\n padding: 4px;\\n float: left;\\n}\\n.select2 {\\n border: 1px solid #ccc;\\n border-radius: 4px;\\n font-size: 12px;\\n margin: 0 0 0 3px;\\n padding: 4px;\\n float: left;\\n}\\n.view_btn {\\n float: left;\\n margin: 0 0 0 3px;\\n}\\n.archive {\\n width: 100%;\\n padding: 5px;\\n height: 50px;\\n border: 1px solid #ccc;\\n border-radius: 3px;\\n margin: 10px 0 0 0;\\n}\\n.spacer_left {\\n padding: 0 10px 0 80px !important;\\n}\\nfooter {\\n margin: 0;\\n padding: 0;\\n}\\n.disclaimer {\\n background: #787a7c;\\n color: #fff;\\n text-align: center;\\n margin: 10px 0 0 0;\\n padding: 5px 0;\\n font-size: 12px;\\n}\\n.disclaimer a {\\n color: #fff;\\n}\\n.modal-dialog {\\n margin: 80px auto !important;\\n min-width: 50% !important;\\n}\\n.modal-header {\\n background: #88241e none repeat scroll 0 0 !important;\\n border-bottom: 1px solid #e5e5e5;\\n min-height: 16.43px;\\n padding: 6px 15px !important;\\n color: #fff !important;\\n}\\nbutton.close {\\n color: #fff;\\n opacity: 1;\\n}\\n@media (max-width: 768px) {\\n .wrapper {\\n margin: 0;\\n padding: 0;\\n width: 100%;\\n margin: 0 auto;\\n }\\n\\n .navbar-brand {\\n float: left;\\n padding: 7px 13px 0;\\n }\\n\\n .navbar-default .navbar-nav > li > a {\\n color: #000;\\n padding: 11px 16px;\\n }\\n\\n .borderstyle {\\n clear: both;\\n padding: 2px 0 0;\\n }\\n\\n .banner_bg {\\n background: #efefef none repeat scroll 0 0;\\n color: #000;\\n height: 272px;\\n padding: 5px;\\n margin: 0 0 10px 0;\\n }\\n\\n .banner-overlay {\\n background: #222 none repeat scroll 0 0;\\n bottom: 5px;\\n color: white;\\n height: 130px;\\n left: 20px;\\n opacity: 0.9;\\n padding: 5px;\\n position: absolute;\\n right: 20px;\\n }\\n\\n .press {\\n height: auto;\\n }\\n\\n .shadowr {\\n margin: 10px 0 0 0;\\n }\\n\\n .one {\\n float: left;\\n width: 84%;\\n }\\n\\n .spacer_left {\\n padding: 0 !important;\\n margin: 10px 0 0 0;\\n }\\n}\\n/* CSS Document */\\nbody {\\n margin: 0;\\n padding: 0;\\n font-family: \\\"Montserrat\\\", sans-serif;\\n color: #000;\\n font-weight: normal;\\n font-size: 12px;\\n}\\n.header {\\n margin: 0;\\n padding: 15px 0;\\n height: 73px;\\n}\\n.logo {\\n margin: 0;\\n padding: 0;\\n float: left;\\n}\\n.header ul {\\n margin: 12px 0 0 0;\\n padding: 0;\\n list-style-type: none;\\n float: right;\\n}\\n.header ul li {\\n margin: 0;\\n padding: 0 5px 0 0;\\n float: left;\\n}\\n.banner {\\n margin: 0;\\n padding: 0;\\n background: #140000;\\n}\\n.wrapperpanel {\\n margin: 0;\\n padding: 60px 0;\\n overflow: hidden;\\n}\\n.content-left {\\n float: left;\\n}\\n.content-left h2 {\\n margin: 0;\\n padding: 0;\\n font-size: 20px;\\n font-weight: 600;\\n line-height: 27px;\\n color: #464646;\\n}\\n.content-left ul {\\n margin: 15px 0 0 30px;\\n padding: 0;\\n}\\n.content-left ul li {\\n margin: 0;\\n padding: 0 0 3px 0;\\n font-size: 17px;\\n font-weight: 500;\\n}\\n.content-right {\\n float: left;\\n}\\n.l-panel {\\n margin: 0;\\n padding: 0 30px 10px;\\n background: #f4f3f3;\\n border: 3px solid #c7c6c6;\\n border-radius: 20px;\\n box-shadow: 0px 3px 6px 0px rgba(0, 0, 0, 0.75);\\n}\\n.l-panel h2 {\\n margin: 0;\\n padding: 20px 0;\\n text-align: center;\\n font-size: 24px;\\n font-weight: 600;\\n color: #88241F;\\n}\\n.form-control {\\n background-color: #f7f7f7 !important;\\n border-radius: 25px !important;\\n border: 1px solid #828282 !important;\\n}\\n.btn_submit {\\n margin: 8px;\\n padding: 4px 20px;\\n background: #88241F;\\n color: #ffffff;\\n border-radius: 20px;\\n border: none;\\n font-size: 16px;\\n width: 115px;\\n}\\nfooter {\\n background: #88241F;\\n text-align: center;\\n padding: 5px 0;\\n margin: 0;\\n}\\nfooter .copyright {\\n color: #ffffff;\\n font-size: 16px;\\n}\\n.img-responsive {\\n max-width: 100%;\\n height: auto;\\n display: block;\\n}\\n/*# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbInNyYy9hcHAvYXV0aC9zaWdudXAvRTpcXDIuMFByb2plY3RzXFxuZXdzbGV0dGVzL3NyY1xcYXBwXFxhdXRoXFxzaWdudXBcXHNpZ251cC5jb21wb25lbnQuc2NzcyIsInNyYy9hcHAvYXV0aC9zaWdudXAvc2lnbnVwLmNvbXBvbmVudC5zY3NzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUEwTVEsNEZBQUE7QUF4TVIsa0JBQUE7QUFFQTtFQUNzRCxrQkFBQTtFQUNyRCxnQkFBQTtBQ0NEO0FERUE7RUFBYyx5QkFBQTtBQ0VkO0FEREE7RUFBa0IsbUJBQUE7QUNLbEI7QURIQTtFQUFnQiw0QkFBQTtBQ09oQjtBRE5BO0VBQWdCLDRCQUFBO0FDVWhCO0FEVEE7RUFBK0IsU0FBQTtBQ2EvQjtBRFhBO0VBQXVCLGVBQUE7RUFBaUIsV0FBQTtFQUFhLGdCQUFBO0VBQWtCLGlCQUFBO0VBQW1CLFVBQUE7QUNtQjFGO0FEakJBO0VBQ0MsWUFBQTtFQUNBLFNBQUE7RUFDRyxlQUFBO0VBQ0gsbUJBQUE7RUFDQSxTQUFBO0VBQ0EsZUFBQTtFQUNHLGdCQUFBO0VBQ0EsaUJBQUE7RUFDQSxXQUFBO0VBQ3FELGtCQUFBO0VBQ3JELGlCQUFBO0VBQ2lELGdCQUFBO0VBQ3VELG9CQUFBO0FDNEI1RztBRDFCQTtFQUE2QixVQUFBO0VBQVksWUFBQTtFQUFjLFdBQUE7QUNnQ3ZEO0FEOUJBO0VBQ0MsVUFBQTtFQUFZLFlBQUE7RUFBYyxXQUFBO0VBQ3VCLGdCQUFBO0FDcUNsRDtBRGxDQTtFQUE4QixnQkFBQTtBQ3NDOUI7QURsQ0EsbUJBQUE7QUFFQTtFQUNJLGdCQUFBO0VBQ0EseUJBQUE7RUFBMkIsbUJBQUE7QUNxQy9CO0FEbkNDO0VBQ0M7SUFDRSx1QkFBQTtJQUNBLGlCQUFBO0VDc0NGOztFRHBDTTtJQUNJLGtCQUFBO0lBQ1IsZUFBQTtJQUNBLGdCQUFBO0VDdUNGOztFRG5DQTtJQUFXLHFCQUFBO0lBQXNCLGdCQUFBO0VDd0NqQzs7RUR0Q0E7SUFBaUIsbUJBQUE7RUMwQ2pCOztFRHpDQTtJQUFpQixtQkFBQTtFQzZDakI7O0VENUNBO0lBQW1CLGlCQUFBO0VDZ0RuQjs7RUQvQ0E7SUFBVyxpQkFBQTtFQ21EWDtBQUNGO0FEbERBLCtCQUFBO0FBRUEsaUJBQUE7QUFDQTtFQUFTLFNBQUE7RUFBVSxVQUFBO0VBQVcsYUFBQTtFQUFjLGNBQUE7QUN1RDVDO0FEdERBO0VBRUEsa0RBQUE7RUFDQSxjQUFBO0VBQ0EsVUFBQTtBQzBEQTtBRHpEQTtFQUNJLGlDQUFBO0VBQ0EsNkJBQUE7QUM0REo7QUQxREE7RUFDSSx1QkFBQTtFQUNBLFNBQUE7QUM2REo7QUQzREE7RUFDSSw0QkFBQTtFQUNBLDZCQUFBO0FDOERKO0FENURBO0VBQ0ksNkJBQUE7RUFDSCwyQkFBQTtBQytERDtBRDdEQTtFQUNJLCtCQUFBO0VBQ0EsNEJBQUE7QUNnRUo7QUQ5REE7RUFDSSxzQkFBQTtBQ2lFSjtBRDdEQTtFQUFXLG1CQUFBO0VBQW9CLFNBQUE7RUFBVSxXQUFBO0VBQVksZ0JBQUE7QUNvRXJEO0FEbkVBO0VBQ0ksMENBQUE7RUFDQSxzQkFBQTtFQUNBLFNBQUE7RUFDQSxnQkFBQTtFQUNBLGFBQUE7QUNzRUo7QURwRUE7RUFDSSw2QkFBQTtFQUNBLDBCQUFBO0VBQ0EsZUFBQTtFQUNBLGdCQUFBO0VBQ0EsZ0JBQUE7RUFDQSxzQkFBQTtFQUNBLGtCQUFBO0FDdUVKO0FEckVBO0VBQUssV0FBQTtFQUFZLFVBQUE7QUMwRWpCO0FEekVBO0VBQUssWUFBQTtBQzZFTDtBRDVFQTtFQUNJLHNCQUFBO0VBQ0Esa0JBQUE7RUFDQSxTQUFBO0VBQ0Esd0JBQUE7RUFDQSxXQUFBO0FDK0VKO0FEN0VBO0VBQ0Usc0JBQUE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxrQkFBQTtFQUNBLFlBQUE7RUFDSCxXQUFBO0FDZ0ZEO0FEOUVDO0VBQ0Msc0JBQUE7RUFDRSxrQkFBQTtFQUNBLGVBQUE7RUFDQSxpQkFBQTtFQUNBLFlBQUE7RUFDSCxXQUFBO0FDaUZEO0FEL0VDO0VBQVUsV0FBQTtFQUFZLGlCQUFBO0FDb0Z2QjtBRG5GQztFQUFTLFdBQUE7RUFBWSxZQUFBO0VBQWEsWUFBQTtFQUFhLHNCQUFBO0VBQXVCLGtCQUFBO0VBQW1CLGtCQUFBO0FDNEYxRjtBRDNGQztFQUFhLGlDQUFBO0FDK0ZkO0FEOUZDO0VBQU8sU0FBQTtFQUFVLFVBQUE7QUNtR2xCO0FEbEdDO0VBQVksbUJBQUE7RUFBb0IsV0FBQTtFQUFZLGtCQUFBO0VBQW1CLGtCQUFBO0VBQW1CLGNBQUE7RUFBZSxlQUFBO0FDMkdsRztBRDFHQztFQUFjLFdBQUE7QUM4R2Y7QUQ3R0M7RUFDRyw0QkFBQTtFQUNBLHlCQUFBO0FDZ0hKO0FEOUdBO0VBQ0kscURBQUE7RUFDQSxnQ0FBQTtFQUNBLG1CQUFBO0VBQ0EsNEJBQUE7RUFDSCxzQkFBQTtBQ2lIRDtBRC9HQTtFQUNJLFdBQUE7RUFDQSxVQUFBO0FDa0hKO0FEaEhBO0VBQ0M7SUFBUyxTQUFBO0lBQVUsVUFBQTtJQUFXLFdBQUE7SUFBWSxjQUFBO0VDdUh6Qzs7RUR0SEQ7SUFDRyxXQUFBO0lBQ0EsbUJBQUE7RUN5SEY7O0VEdkhGO0lBQXFDLFdBQUE7SUFBWSxrQkFBQTtFQzRIL0M7O0VEM0hGO0lBQ0ksV0FBQTtJQUNBLGdCQUFBO0VDOEhGOztFRDVIRjtJQUNJLDBDQUFBO0lBQ0EsV0FBQTtJQUNBLGFBQUE7SUFDQSxZQUFBO0lBQ0gsa0JBQUE7RUMrSEM7O0VEN0hGO0lBQ0ksdUNBQUE7SUFDQSxXQUFBO0lBQ0EsWUFBQTtJQUNBLGFBQUE7SUFDQSxVQUFBO0lBQ0EsWUFBQTtJQUNBLFlBQUE7SUFDQSxrQkFBQTtJQUNBLFdBQUE7RUNnSUY7O0VEOUhGO0lBQU8sWUFBQTtFQ2tJTDs7RURqSUY7SUFBUyxrQkFBQTtFQ3FJUDs7RURwSUY7SUFBSyxXQUFBO0lBQVksVUFBQTtFQ3lJZjs7RUR4SUY7SUFBYSxxQkFBQTtJQUFzQixrQkFBQTtFQzZJakM7QUFDRjtBRHhJQSxpQkFBQTtBQUNBO0VBQUssU0FBQTtFQUFVLFVBQUE7RUFBVyxxQ0FBQTtFQUF1QyxXQUFBO0VBQVksbUJBQUE7RUFBb0IsZUFBQTtBQ2dKakc7QUQvSUE7RUFBUSxTQUFBO0VBQVUsZUFBQTtFQUFnQixZQUFBO0FDcUpsQztBRHBKQTtFQUFNLFNBQUE7RUFBVSxVQUFBO0VBQVcsV0FBQTtBQzBKM0I7QUR6SkE7RUFBVyxrQkFBQTtFQUFtQixVQUFBO0VBQVcscUJBQUE7RUFBc0IsWUFBQTtBQ2dLL0Q7QUQvSkE7RUFBYyxTQUFBO0VBQVUsa0JBQUE7RUFBbUIsV0FBQTtBQ3FLM0M7QURwS0E7RUFBUSxTQUFBO0VBQVUsVUFBQTtFQUFXLG1CQUFBO0FDMEs3QjtBRHpLQTtFQUFjLFNBQUE7RUFBVSxlQUFBO0VBQWdCLGdCQUFBO0FDK0t4QztBRDlLQTtFQUFjLFdBQUE7QUNrTGQ7QURqTEE7RUFDSSxTQUFBO0VBQ0EsVUFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtFQUNBLGlCQUFBO0VBQ0EsY0FBQTtBQ29MSjtBRGxMQTtFQUNDLHFCQUFBO0VBQ0csVUFBQTtBQ3FMSjtBRG5MQTtFQUNDLFNBQUE7RUFDRyxrQkFBQTtFQUNBLGVBQUE7RUFDQSxnQkFBQTtBQ3NMSjtBRHBMQTtFQUFlLFdBQUE7QUN3TGY7QUR2TEE7RUFDSSxTQUFBO0VBQ0Esb0JBQUE7RUFDQSxtQkFBQTtFQUNBLHlCQUFBO0VBQ0EsbUJBQUE7RUFHSiwrQ0FBQTtBQzBMQTtBRHhMQTtFQUNDLFNBQUE7RUFDQSxlQUFBO0VBQ0csa0JBQUE7RUFDQSxlQUFBO0VBQ0EsZ0JBQUE7RUFDQSxjQUFBO0FDMkxKO0FEekxBO0VBQ0ksb0NBQUE7RUFDQSw4QkFBQTtFQUNILG9DQUFBO0FDNExEO0FEMUxBO0VBQ0ksV0FBQTtFQUNBLGlCQUFBO0VBQ0EsbUJBQUE7RUFDQSxjQUFBO0VBQ0EsbUJBQUE7RUFDQSxZQUFBO0VBQ0EsZUFBQTtFQUNBLFlBQUE7QUM2TEo7QUQzTEE7RUFBTyxtQkFBQTtFQUFxQixrQkFBQTtFQUFtQixjQUFBO0VBQWUsU0FBQTtBQ2tNOUQ7QURqTUE7RUFBa0IsY0FBQTtFQUFlLGVBQUE7QUNzTWpDO0FEck1BO0VBQWdCLGVBQUE7RUFBZ0IsWUFBQTtFQUFhLGNBQUE7QUMyTTdDIiwiZmlsZSI6InNyYy9hcHAvYXV0aC9zaWdudXAvc2lnbnVwLmNvbXBvbmVudC5zY3NzIiwic291cmNlc0NvbnRlbnQiOlsiXG5cbi8qKioqKiBNb2RhbCAqKioqKi9cblxuLm1vZGFsLWNvbnRlbnQge1xuXHQtbW96LWJvcmRlci1yYWRpdXM6IDRweDsgLXdlYmtpdC1ib3JkZXItcmFkaXVzOiA0cHg7IGJvcmRlci1yYWRpdXM6IDRweDtcblx0dGV4dC1hbGlnbjogbGVmdDtcbn1cblxuLm1vZGFsLWJvZHkgeyBwYWRkaW5nOiAwIDI1cHggMTVweCAyNXB4OyB9XG4ubW9kYWwtYm9keSBpbWcgeyBtYXJnaW4tYm90dG9tOiAxNXB4OyB9XG5cbi5tb2RhbC1oZWFkZXIgeyBwYWRkaW5nOiAyNXB4IDI1cHggMTVweCAyNXB4OyB9XG4ubW9kYWwtZm9vdGVyIHsgcGFkZGluZzogMTVweCAyNXB4IDI1cHggMjVweDsgfVxuLm1vZGFsLWhlYWRlciwgLm1vZGFsLWZvb3RlciB7IGJvcmRlcjogMDsgfVxuXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7IGZvbnQtc2l6ZTogMzZweDsgY29sb3I6ICM4ODg7IGZvbnQtd2VpZ2h0OiA0MDA7IHRleHQtc2hhZG93OiBub25lOyBvcGFjaXR5OiAxOyB9XG5cbi5tb2RhbC1mb290ZXIgYnV0dG9uIHtcblx0aGVpZ2h0OiA1MHB4O1xuXHRtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMCAyMHB4O1xuXHRiYWNrZ3JvdW5kOiAjZTM4ZjQyO1xuXHRib3JkZXI6IDA7XG5cdGZvbnQtc2l6ZTogMTVweDtcbiAgICBmb250LXdlaWdodDogNDAwO1xuICAgIGxpbmUtaGVpZ2h0OiA1MHB4O1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIC1tb3otYm9yZGVyLXJhZGl1czogNHB4OyAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDsgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIHRleHQtc2hhZG93OiBub25lO1xuICAgIC1tb3otYm94LXNoYWRvdzogbm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOyBib3gtc2hhZG93OiBub25lO1xuICAgIC1vLXRyYW5zaXRpb246IGFsbCAuM3M7IC1tb3otdHJhbnNpdGlvbjogYWxsIC4zczsgLXdlYmtpdC10cmFuc2l0aW9uOiBhbGwgLjNzOyAtbXMtdHJhbnNpdGlvbjogYWxsIC4zczsgdHJhbnNpdGlvbjogYWxsIC4zcztcbn1cbi5tb2RhbC1mb290ZXIgYnV0dG9uOmhvdmVyIHsgb3V0bGluZTogMDsgb3BhY2l0eTogMC42OyBjb2xvcjogI2ZmZjsgfVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbjpmb2N1cywgLm1vZGFsLWZvb3RlciBidXR0b246YWN0aXZlOmZvY3VzLCAubW9kYWwtZm9vdGVyIGJ1dHRvbi5hY3RpdmU6Zm9jdXMgeyBcblx0b3V0bGluZTogMDsgb3BhY2l0eTogMC42OyBjb2xvcjogI2ZmZjsgXG5cdC1tb3otYm94LXNoYWRvdzogbm9uZTsgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lOyBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbjpiZWZvcmUgeyBiYWNrZ3JvdW5kOiBub25lOyB9XG5cblxuXG4vKioqKiogRm9vdGVyICoqKioqL1xuXG4uZm9ybS1jb250cm9se1xuICAgIG1hcmdpbi10b3A6IDEwcHg7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2VmZWZlZjsgYm9yZGVyLXJhZGl1czogMjVweDtcbn1cbiBAbWVkaWEgKG1pbi13aWR0aDogNzY4cHgpIHtcblx0IC5tb2RhbC1kaWFsb2cge1xuICAgIHdpZHRoOiA1MzBweCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMzBweCBhdXRvO1xufVxuICAgICAgICAuZWxwIGgxIHtcbiAgICAgICAgICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICAgICAgfVxuICAgIFxuICAgICBcblx0XHQubGlua3BhbmVse21hcmdpbjoxNXB4IDAgMTVweCAwOyBvdmVyZmxvdzpoaWRkZW47fVxuXHRcdFxuXHRcdC5sY2xib3ggLmJveCBoMyB7cGFkZGluZzogMCAwIDAgMThweDt9XG5cdFx0LmxjbGJveCAuYm94IHVsIHtwYWRkaW5nOiAwIDAgMCAzOHB4O31cblx0XHQubGNsYm94IC5ib3ggdWwgbGl7bGluZS1oZWlnaHQ6MjBweDt9XG5cdFx0Lm0tbGlua2J0bnttYXJnaW46OHB4IDAgMCAwOzt9XG4gICAgICAgfVxuLyogRW5kIEVuYWJsaW5nIExhdyBQcmFjdGljZXMgKi9cblxuLyogQ1NTIERvY3VtZW50ICovXG4ud3JhcHBlcnttYXJnaW46MDsgcGFkZGluZzowOyB3aWR0aDoxMDAxcHg7IG1hcmdpbjowIGF1dG87fVxuLnNoYWRvd21haW57LXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc5KTtcbi1tb3otYm94LXNoYWRvdzowcHggMHB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc5KTtcbmJveC1zaGFkb3c6MHB4IDBweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43OSk7XG5tYXJnaW46MCBhdXRvO1xucGFkZGluZzowO31cbi5uYXZiYXItZGVmYXVsdCB7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xuICAgIGJvcmRlci1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuLm5hdmJhci1uYXYge1xuICAgIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICAgIG1hcmdpbjogMDtcbn1cbi5uYXZiYXItY29sbGFwc2Uge1xuICAgIHBhZGRpbmctbGVmdDogMHB4ICFpbXBvcnRhbnQ7XG4gICAgcGFkZGluZy1yaWdodDogMHB4ICFpbXBvcnRhbnQ7XG59XG4ubmF2YmFyIHtcbiAgICBib3JkZXItcmFkaXVzOiAwcHggIWltcG9ydGFudDtcblx0bWluLWhlaWdodDphdXRvICFpbXBvcnRhbnQ7XG59XG4ubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgcGFkZGluZy1ib3R0b206IDExcHggIWltcG9ydGFudDtcbiAgICBwYWRkaW5nLXRvcDogMTBweCAhaW1wb3J0YW50O1xufVxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgICBjb2xvcjogIzAwMCAhaW1wb3J0YW50O1xufVxuXG5cbi5zdWJzY3JpYmV7cGFkZGluZzoxMHB4IDAgMCAwOyBtYXJnaW46MDsgY2xlYXI6Ym90aDsgb3ZlcmZsb3c6aGlkZGVuO31cbi5zdWJzY3JpYmVfaW5uZXIge1xuICAgIGJhY2tncm91bmQ6ICNlY2Y3ZmYgbm9uZSByZXBlYXQgc2Nyb2xsIDAgMDtcbiAgICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICAgIG1hcmdpbjogMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHBhZGRpbmc6IDEwcHg7XG59XG4uc3VicyB7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gICAgZm9udC1zaXplOiAxMnB4O1xuICAgIG1hcmdpbjogMTBweCAwIDA7XG4gICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICBwYWRkaW5nOiAxNXB4IDE1cHggNXB4O1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbn1cbi5vbmV7ZmxvYXQ6bGVmdDsgd2lkdGg6ODclO31cbi50d297ZmxvYXQ6cmlnaHQ7fVxuLnN1YnMgaW5wdXQge1xuICAgIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogMnB4O1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAzcHggM3B4IDNweCA4cHg7XG4gICAgd2lkdGg6IDEwMCU7XG59XG4uc2VsZWN0MXtcblx0IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46MCAwIDAgMTJweDtcbiAgICBwYWRkaW5nOiA0cHg7XG5cdGZsb2F0OmxlZnQ7XG4gICAgfVxuXHQuc2VsZWN0Mntcblx0IGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gICAgYm9yZGVyLXJhZGl1czogNHB4O1xuICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICBtYXJnaW46MCAwIDAgM3B4O1xuICAgIHBhZGRpbmc6IDRweDtcblx0ZmxvYXQ6bGVmdDtcbiAgICB9XG5cdC52aWV3X2J0bntmbG9hdDpsZWZ0OyBtYXJnaW46MCAwIDAgM3B4O31cblx0LmFyY2hpdmV7d2lkdGg6MTAwJTsgcGFkZGluZzo1cHg7IGhlaWdodDo1MHB4OyBib3JkZXI6MXB4IHNvbGlkICNjY2M7IGJvcmRlci1yYWRpdXM6M3B4OyBtYXJnaW46MTBweCAwIDAgMDt9XG5cdC5zcGFjZXJfbGVmdHtwYWRkaW5nOjAgMTBweCAwIDgwcHggIWltcG9ydGFudDt9XG5cdGZvb3RlcnttYXJnaW46MDsgcGFkZGluZzowO31cblx0LmRpc2NsYWltZXJ7YmFja2dyb3VuZDojNzg3YTdjOyBjb2xvcjojZmZmOyB0ZXh0LWFsaWduOmNlbnRlcjsgbWFyZ2luOjEwcHggMCAwIDA7IHBhZGRpbmc6NXB4IDA7IGZvbnQtc2l6ZToxMnB4O31cblx0LmRpc2NsYWltZXIgYXtjb2xvcjojZmZmO31cblx0Lm1vZGFsLWRpYWxvZyB7XG4gICAgbWFyZ2luOiA4MHB4IGF1dG8gIWltcG9ydGFudDtcbiAgICBtaW4td2lkdGg6IDUwJSAhaW1wb3J0YW50O1xufVxuLm1vZGFsLWhlYWRlciB7XG4gICAgYmFja2dyb3VuZDogIzg4MjQxZSBub25lIHJlcGVhdCBzY3JvbGwgMCAwICFpbXBvcnRhbnQ7XG4gICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG4gICAgbWluLWhlaWdodDogMTYuNDNweDtcbiAgICBwYWRkaW5nOiA2cHggMTVweCAhaW1wb3J0YW50O1xuXHRjb2xvcjojZmZmICFpbXBvcnRhbnQ7XG59XG5idXR0b24uY2xvc2Uge1xuICAgIGNvbG9yOiAjZmZmO1xuICAgIG9wYWNpdHk6IDE7XG59XG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcblx0LndyYXBwZXJ7bWFyZ2luOjA7IHBhZGRpbmc6MDsgd2lkdGg6MTAwJTsgbWFyZ2luOjAgYXV0bzt9XG5cdC5uYXZiYXItYnJhbmQge1xuICAgIGZsb2F0OiBsZWZ0O1xuICAgIHBhZGRpbmc6IDdweCAxM3B4IDA7XG59XG4ubmF2YmFyLWRlZmF1bHQgLm5hdmJhci1uYXYgPiBsaSA+IGF7Y29sb3I6IzAwMDsgcGFkZGluZzoxMXB4IDE2cHg7fVxuLmJvcmRlcnN0eWxlIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwYWRkaW5nOiAycHggMCAwO1xufVxuLmJhbm5lcl9iZyB7XG4gICAgYmFja2dyb3VuZDogI2VmZWZlZiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGhlaWdodDogMjcycHg7XG4gICAgcGFkZGluZzogNXB4O1xuXHRtYXJnaW46MCAwIDEwcHggMDtcbn1cbi5iYW5uZXItb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogIzIyMiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICAgIGJvdHRvbTogNXB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDIwcHg7XG59XG4ucHJlc3N7aGVpZ2h0OmF1dG87fVxuLnNoYWRvd3J7bWFyZ2luOjEwcHggMCAwIDA7fVxuLm9uZXtmbG9hdDpsZWZ0OyB3aWR0aDo4NCU7fVxuLnNwYWNlcl9sZWZ0e3BhZGRpbmc6MCAhaW1wb3J0YW50OyBtYXJnaW46MTBweCAwIDAgMDt9XG59XG5cblxuQGltcG9ydCB1cmwoJ2h0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TW9udHNlcnJhdDp3Z2h0QDQwMDs2MDAmZGlzcGxheT1zd2FwJyk7XG5cbi8qIENTUyBEb2N1bWVudCAqL1xuYm9keXttYXJnaW46MDsgcGFkZGluZzowOyBmb250LWZhbWlseTogJ01vbnRzZXJyYXQnLCBzYW5zLXNlcmlmOyBjb2xvcjojMDAwOyBmb250LXdlaWdodDpub3JtYWw7IGZvbnQtc2l6ZToxMnB4IDt9XG4uaGVhZGVye21hcmdpbjowOyBwYWRkaW5nOjE1cHggMDsgaGVpZ2h0OjczcHg7fVxuLmxvZ297bWFyZ2luOjA7IHBhZGRpbmc6MDsgZmxvYXQ6bGVmdDt9XG4uaGVhZGVyIHVse21hcmdpbjoxMnB4IDAgMCAwOyBwYWRkaW5nOjA7IGxpc3Qtc3R5bGUtdHlwZTpub25lOyBmbG9hdDpyaWdodDt9XG4uaGVhZGVyIHVsIGxpe21hcmdpbjowOyBwYWRkaW5nOjAgNXB4IDAgMDsgZmxvYXQ6bGVmdDt9XG4uYmFubmVye21hcmdpbjowOyBwYWRkaW5nOjA7IGJhY2tncm91bmQ6IzE0MDAwMDt9XG4ud3JhcHBlcnBhbmVse21hcmdpbjowOyBwYWRkaW5nOjYwcHggMDsgb3ZlcmZsb3c6aGlkZGVuO31cbi5jb250ZW50LWxlZnR7ZmxvYXQ6bGVmdDt9XG4uY29udGVudC1sZWZ0IGgyIHtcbiAgICBtYXJnaW46IDA7XG4gICAgcGFkZGluZzogMDtcbiAgICBmb250LXNpemU6IDIwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBsaW5lLWhlaWdodDogMjdweDtcbiAgICBjb2xvcjogIzQ2NDY0Njtcbn1cbi5jb250ZW50LWxlZnQgdWx7XG5cdG1hcmdpbjogMTVweCAwIDAgMzBweDtcbiAgICBwYWRkaW5nOiAwO1xufVxuLmNvbnRlbnQtbGVmdCB1bCBsaXtcblx0bWFyZ2luOiAwO1xuICAgIHBhZGRpbmc6IDAgMCAzcHggMDtcbiAgICBmb250LXNpemU6IDE3cHg7XG4gICAgZm9udC13ZWlnaHQ6IDUwMDtcbn1cbi5jb250ZW50LXJpZ2h0e2Zsb2F0OmxlZnQ7fVxuLmwtcGFuZWwge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwIDMwcHggMTBweDtcbiAgICBiYWNrZ3JvdW5kOiAjZjRmM2YzO1xuICAgIGJvcmRlcjogM3B4IHNvbGlkICNjN2M2YzY7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcblx0LXdlYmtpdC1ib3gtc2hhZG93OiAwcHggM3B4IDZweCAwcHggcmdiYSgwLDAsMCwwLjc1KTtcbi1tb3otYm94LXNoYWRvdzogMHB4IDNweCA2cHggMHB4IHJnYmEoMCwwLDAsMC43NSk7XG5ib3gtc2hhZG93OiAwcHggM3B4IDZweCAwcHggcmdiYSgwLDAsMCwwLjc1KTtcbn1cbi5sLXBhbmVsIGgyIHtcblx0bWFyZ2luOjA7XG5cdHBhZGRpbmc6MjBweCAwO1xuICAgIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgICBmb250LXNpemU6IDI0cHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgICBjb2xvcjogIzg4MjQxRjtcbn1cbi5mb3JtLWNvbnRyb2wge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3ZjcgIWltcG9ydGFudDtcbiAgICBib3JkZXItcmFkaXVzOiAyNXB4ICFpbXBvcnRhbnQ7XG5cdGJvcmRlcjoxcHggc29saWQgIzgyODI4MiAhaW1wb3J0YW50O1xufVxuLmJ0bl9zdWJtaXQge1xuICAgIG1hcmdpbjogOHB4O1xuICAgIHBhZGRpbmc6IDRweCAyMHB4O1xuICAgIGJhY2tncm91bmQ6ICM4ODI0MUY7XG4gICAgY29sb3I6ICNmZmZmZmY7XG4gICAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgICBib3JkZXI6IG5vbmU7XG4gICAgZm9udC1zaXplOiAxNnB4O1xuICAgIHdpZHRoOiAxMTVweDtcbn1cbmZvb3RlcntiYWNrZ3JvdW5kOiAjODgyNDFGOyB0ZXh0LWFsaWduOmNlbnRlcjsgcGFkZGluZzo1cHggMDsgbWFyZ2luOjA7fVxuZm9vdGVyIC5jb3B5cmlnaHR7Y29sb3I6I2ZmZmZmZjsgZm9udC1zaXplOjE2cHg7fVxuLmltZy1yZXNwb25zaXZle21heC13aWR0aDogMTAwJTtoZWlnaHQ6IGF1dG87ZGlzcGxheTpibG9jazt9IiwiLyoqKioqIE1vZGFsICoqKioqL1xuQGltcG9ydCB1cmwoXCJodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU1vbnRzZXJyYXQ6d2dodEA0MDA7NjAwJmRpc3BsYXk9c3dhcFwiKTtcbi5tb2RhbC1jb250ZW50IHtcbiAgLW1vei1ib3JkZXItcmFkaXVzOiA0cHg7XG4gIC13ZWJraXQtYm9yZGVyLXJhZGl1czogNHB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIHRleHQtYWxpZ246IGxlZnQ7XG59XG5cbi5tb2RhbC1ib2R5IHtcbiAgcGFkZGluZzogMCAyNXB4IDE1cHggMjVweDtcbn1cblxuLm1vZGFsLWJvZHkgaW1nIHtcbiAgbWFyZ2luLWJvdHRvbTogMTVweDtcbn1cblxuLm1vZGFsLWhlYWRlciB7XG4gIHBhZGRpbmc6IDI1cHggMjVweCAxNXB4IDI1cHg7XG59XG5cbi5tb2RhbC1mb290ZXIge1xuICBwYWRkaW5nOiAxNXB4IDI1cHggMjVweCAyNXB4O1xufVxuXG4ubW9kYWwtaGVhZGVyLCAubW9kYWwtZm9vdGVyIHtcbiAgYm9yZGVyOiAwO1xufVxuXG4ubW9kYWwtaGVhZGVyIC5jbG9zZSB7XG4gIGZvbnQtc2l6ZTogMzZweDtcbiAgY29sb3I6ICM4ODg7XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG4gIHRleHQtc2hhZG93OiBub25lO1xuICBvcGFjaXR5OiAxO1xufVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbiB7XG4gIGhlaWdodDogNTBweDtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDIwcHg7XG4gIGJhY2tncm91bmQ6ICNlMzhmNDI7XG4gIGJvcmRlcjogMDtcbiAgZm9udC1zaXplOiAxNXB4O1xuICBmb250LXdlaWdodDogNDAwO1xuICBsaW5lLWhlaWdodDogNTBweDtcbiAgY29sb3I6ICNmZmY7XG4gIC1tb3otYm9yZGVyLXJhZGl1czogNHB4O1xuICAtd2Via2l0LWJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICB0ZXh0LXNoYWRvdzogbm9uZTtcbiAgLW1vei1ib3gtc2hhZG93OiBub25lO1xuICAtd2Via2l0LWJveC1zaGFkb3c6IG5vbmU7XG4gIGJveC1zaGFkb3c6IG5vbmU7XG4gIC1vLXRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAtbW96LXRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAtd2Via2l0LXRyYW5zaXRpb246IGFsbCAwLjNzO1xuICAtbXMtdHJhbnNpdGlvbjogYWxsIDAuM3M7XG4gIHRyYW5zaXRpb246IGFsbCAwLjNzO1xufVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbjpob3ZlciB7XG4gIG91dGxpbmU6IDA7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY29sb3I6ICNmZmY7XG59XG5cbi5tb2RhbC1mb290ZXIgYnV0dG9uOmZvY3VzLCAubW9kYWwtZm9vdGVyIGJ1dHRvbjphY3RpdmU6Zm9jdXMsIC5tb2RhbC1mb290ZXIgYnV0dG9uLmFjdGl2ZTpmb2N1cyB7XG4gIG91dGxpbmU6IDA7XG4gIG9wYWNpdHk6IDAuNjtcbiAgY29sb3I6ICNmZmY7XG4gIC1tb3otYm94LXNoYWRvdzogbm9uZTtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiBub25lO1xuICBib3gtc2hhZG93OiBub25lO1xufVxuXG4ubW9kYWwtZm9vdGVyIGJ1dHRvbjpiZWZvcmUge1xuICBiYWNrZ3JvdW5kOiBub25lO1xufVxuXG4vKioqKiogRm9vdGVyICoqKioqL1xuLmZvcm0tY29udHJvbCB7XG4gIG1hcmdpbi10b3A6IDEwcHg7XG4gIGJhY2tncm91bmQtY29sb3I6ICNlZmVmZWY7XG4gIGJvcmRlci1yYWRpdXM6IDI1cHg7XG59XG5cbkBtZWRpYSAobWluLXdpZHRoOiA3NjhweCkge1xuICAubW9kYWwtZGlhbG9nIHtcbiAgICB3aWR0aDogNTMwcHggIWltcG9ydGFudDtcbiAgICBtYXJnaW46IDMwcHggYXV0bztcbiAgfVxuXG4gIC5lbHAgaDEge1xuICAgIG1hcmdpbjogMjBweCAwIDAgMDtcbiAgICBmb250LXNpemU6IDMwcHg7XG4gICAgZm9udC13ZWlnaHQ6IDYwMDtcbiAgfVxuXG4gIC5saW5rcGFuZWwge1xuICAgIG1hcmdpbjogMTVweCAwIDE1cHggMDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICB9XG5cbiAgLmxjbGJveCAuYm94IGgzIHtcbiAgICBwYWRkaW5nOiAwIDAgMCAxOHB4O1xuICB9XG5cbiAgLmxjbGJveCAuYm94IHVsIHtcbiAgICBwYWRkaW5nOiAwIDAgMCAzOHB4O1xuICB9XG5cbiAgLmxjbGJveCAuYm94IHVsIGxpIHtcbiAgICBsaW5lLWhlaWdodDogMjBweDtcbiAgfVxuXG4gIC5tLWxpbmtidG4ge1xuICAgIG1hcmdpbjogOHB4IDAgMCAwO1xuICB9XG59XG4vKiBFbmQgRW5hYmxpbmcgTGF3IFByYWN0aWNlcyAqL1xuLyogQ1NTIERvY3VtZW50ICovXG4ud3JhcHBlciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbiAgd2lkdGg6IDEwMDFweDtcbiAgbWFyZ2luOiAwIGF1dG87XG59XG5cbi5zaGFkb3dtYWluIHtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMHB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc5KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggMHB4IDVweCAwcHggcmdiYSg1MCwgNTAsIDUwLCAwLjc5KTtcbiAgYm94LXNoYWRvdzogMHB4IDBweCA1cHggMHB4IHJnYmEoNTAsIDUwLCA1MCwgMC43OSk7XG4gIG1hcmdpbjogMCBhdXRvO1xuICBwYWRkaW5nOiAwO1xufVxuXG4ubmF2YmFyLWRlZmF1bHQge1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG4gIGJvcmRlci1jb2xvcjogI2ZmZiAhaW1wb3J0YW50O1xufVxuXG4ubmF2YmFyLW5hdiB7XG4gIGZsb2F0OiByaWdodCAhaW1wb3J0YW50O1xuICBtYXJnaW46IDA7XG59XG5cbi5uYXZiYXItY29sbGFwc2Uge1xuICBwYWRkaW5nLWxlZnQ6IDBweCAhaW1wb3J0YW50O1xuICBwYWRkaW5nLXJpZ2h0OiAwcHggIWltcG9ydGFudDtcbn1cblxuLm5hdmJhciB7XG4gIGJvcmRlci1yYWRpdXM6IDBweCAhaW1wb3J0YW50O1xuICBtaW4taGVpZ2h0OiBhdXRvICFpbXBvcnRhbnQ7XG59XG5cbi5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgcGFkZGluZy1ib3R0b206IDExcHggIWltcG9ydGFudDtcbiAgcGFkZGluZy10b3A6IDEwcHggIWltcG9ydGFudDtcbn1cblxuLm5hdmJhci1kZWZhdWx0IC5uYXZiYXItbmF2ID4gbGkgPiBhIHtcbiAgY29sb3I6ICMwMDAgIWltcG9ydGFudDtcbn1cblxuLnN1YnNjcmliZSB7XG4gIHBhZGRpbmc6IDEwcHggMCAwIDA7XG4gIG1hcmdpbjogMDtcbiAgY2xlYXI6IGJvdGg7XG4gIG92ZXJmbG93OiBoaWRkZW47XG59XG5cbi5zdWJzY3JpYmVfaW5uZXIge1xuICBiYWNrZ3JvdW5kOiAjZWNmN2ZmIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDA7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIG1hcmdpbjogMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTBweDtcbn1cblxuLnN1YnMge1xuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkICNjY2M7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luOiAxMHB4IDAgMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgcGFkZGluZzogMTVweCAxNXB4IDVweDtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xufVxuXG4ub25lIHtcbiAgZmxvYXQ6IGxlZnQ7XG4gIHdpZHRoOiA4NyU7XG59XG5cbi50d28ge1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5zdWJzIGlucHV0IHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogMnB4O1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDNweCAzcHggM3B4IDhweDtcbiAgd2lkdGg6IDEwMCU7XG59XG5cbi5zZWxlY3QxIHtcbiAgYm9yZGVyOiAxcHggc29saWQgI2NjYztcbiAgYm9yZGVyLXJhZGl1czogNHB4O1xuICBmb250LXNpemU6IDEycHg7XG4gIG1hcmdpbjogMCAwIDAgMTJweDtcbiAgcGFkZGluZzogNHB4O1xuICBmbG9hdDogbGVmdDtcbn1cblxuLnNlbGVjdDIge1xuICBib3JkZXI6IDFweCBzb2xpZCAjY2NjO1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGZvbnQtc2l6ZTogMTJweDtcbiAgbWFyZ2luOiAwIDAgMCAzcHg7XG4gIHBhZGRpbmc6IDRweDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi52aWV3X2J0biB7XG4gIGZsb2F0OiBsZWZ0O1xuICBtYXJnaW46IDAgMCAwIDNweDtcbn1cblxuLmFyY2hpdmUge1xuICB3aWR0aDogMTAwJTtcbiAgcGFkZGluZzogNXB4O1xuICBoZWlnaHQ6IDUwcHg7XG4gIGJvcmRlcjogMXB4IHNvbGlkICNjY2M7XG4gIGJvcmRlci1yYWRpdXM6IDNweDtcbiAgbWFyZ2luOiAxMHB4IDAgMCAwO1xufVxuXG4uc3BhY2VyX2xlZnQge1xuICBwYWRkaW5nOiAwIDEwcHggMCA4MHB4ICFpbXBvcnRhbnQ7XG59XG5cbmZvb3RlciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmRpc2NsYWltZXIge1xuICBiYWNrZ3JvdW5kOiAjNzg3YTdjO1xuICBjb2xvcjogI2ZmZjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBtYXJnaW46IDEwcHggMCAwIDA7XG4gIHBhZGRpbmc6IDVweCAwO1xuICBmb250LXNpemU6IDEycHg7XG59XG5cbi5kaXNjbGFpbWVyIGEge1xuICBjb2xvcjogI2ZmZjtcbn1cblxuLm1vZGFsLWRpYWxvZyB7XG4gIG1hcmdpbjogODBweCBhdXRvICFpbXBvcnRhbnQ7XG4gIG1pbi13aWR0aDogNTAlICFpbXBvcnRhbnQ7XG59XG5cbi5tb2RhbC1oZWFkZXIge1xuICBiYWNrZ3JvdW5kOiAjODgyNDFlIG5vbmUgcmVwZWF0IHNjcm9sbCAwIDAgIWltcG9ydGFudDtcbiAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNlNWU1ZTU7XG4gIG1pbi1oZWlnaHQ6IDE2LjQzcHg7XG4gIHBhZGRpbmc6IDZweCAxNXB4ICFpbXBvcnRhbnQ7XG4gIGNvbG9yOiAjZmZmICFpbXBvcnRhbnQ7XG59XG5cbmJ1dHRvbi5jbG9zZSB7XG4gIGNvbG9yOiAjZmZmO1xuICBvcGFjaXR5OiAxO1xufVxuXG5AbWVkaWEgKG1heC13aWR0aDogNzY4cHgpIHtcbiAgLndyYXBwZXIge1xuICAgIG1hcmdpbjogMDtcbiAgICBwYWRkaW5nOiAwO1xuICAgIHdpZHRoOiAxMDAlO1xuICAgIG1hcmdpbjogMCBhdXRvO1xuICB9XG5cbiAgLm5hdmJhci1icmFuZCB7XG4gICAgZmxvYXQ6IGxlZnQ7XG4gICAgcGFkZGluZzogN3B4IDEzcHggMDtcbiAgfVxuXG4gIC5uYXZiYXItZGVmYXVsdCAubmF2YmFyLW5hdiA+IGxpID4gYSB7XG4gICAgY29sb3I6ICMwMDA7XG4gICAgcGFkZGluZzogMTFweCAxNnB4O1xuICB9XG5cbiAgLmJvcmRlcnN0eWxlIHtcbiAgICBjbGVhcjogYm90aDtcbiAgICBwYWRkaW5nOiAycHggMCAwO1xuICB9XG5cbiAgLmJhbm5lcl9iZyB7XG4gICAgYmFja2dyb3VuZDogI2VmZWZlZiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICAgIGNvbG9yOiAjMDAwO1xuICAgIGhlaWdodDogMjcycHg7XG4gICAgcGFkZGluZzogNXB4O1xuICAgIG1hcmdpbjogMCAwIDEwcHggMDtcbiAgfVxuXG4gIC5iYW5uZXItb3ZlcmxheSB7XG4gICAgYmFja2dyb3VuZDogIzIyMiBub25lIHJlcGVhdCBzY3JvbGwgMCAwO1xuICAgIGJvdHRvbTogNXB4O1xuICAgIGNvbG9yOiB3aGl0ZTtcbiAgICBoZWlnaHQ6IDEzMHB4O1xuICAgIGxlZnQ6IDIwcHg7XG4gICAgb3BhY2l0eTogMC45O1xuICAgIHBhZGRpbmc6IDVweDtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDIwcHg7XG4gIH1cblxuICAucHJlc3Mge1xuICAgIGhlaWdodDogYXV0bztcbiAgfVxuXG4gIC5zaGFkb3dyIHtcbiAgICBtYXJnaW46IDEwcHggMCAwIDA7XG4gIH1cblxuICAub25lIHtcbiAgICBmbG9hdDogbGVmdDtcbiAgICB3aWR0aDogODQlO1xuICB9XG5cbiAgLnNwYWNlcl9sZWZ0IHtcbiAgICBwYWRkaW5nOiAwICFpbXBvcnRhbnQ7XG4gICAgbWFyZ2luOiAxMHB4IDAgMCAwO1xuICB9XG59XG4vKiBDU1MgRG9jdW1lbnQgKi9cbmJvZHkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQtZmFtaWx5OiBcIk1vbnRzZXJyYXRcIiwgc2Fucy1zZXJpZjtcbiAgY29sb3I6ICMwMDA7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG4gIGZvbnQtc2l6ZTogMTJweDtcbn1cblxuLmhlYWRlciB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMTVweCAwO1xuICBoZWlnaHQ6IDczcHg7XG59XG5cbi5sb2dvIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmbG9hdDogbGVmdDtcbn1cblxuLmhlYWRlciB1bCB7XG4gIG1hcmdpbjogMTJweCAwIDAgMDtcbiAgcGFkZGluZzogMDtcbiAgbGlzdC1zdHlsZS10eXBlOiBub25lO1xuICBmbG9hdDogcmlnaHQ7XG59XG5cbi5oZWFkZXIgdWwgbGkge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDAgNXB4IDAgMDtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5iYW5uZXIge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDA7XG4gIGJhY2tncm91bmQ6ICMxNDAwMDA7XG59XG5cbi53cmFwcGVycGFuZWwge1xuICBtYXJnaW46IDA7XG4gIHBhZGRpbmc6IDYwcHggMDtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbn1cblxuLmNvbnRlbnQtbGVmdCB7XG4gIGZsb2F0OiBsZWZ0O1xufVxuXG4uY29udGVudC1sZWZ0IGgyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwO1xuICBmb250LXNpemU6IDIwcHg7XG4gIGZvbnQtd2VpZ2h0OiA2MDA7XG4gIGxpbmUtaGVpZ2h0OiAyN3B4O1xuICBjb2xvcjogIzQ2NDY0Njtcbn1cblxuLmNvbnRlbnQtbGVmdCB1bCB7XG4gIG1hcmdpbjogMTVweCAwIDAgMzBweDtcbiAgcGFkZGluZzogMDtcbn1cblxuLmNvbnRlbnQtbGVmdCB1bCBsaSB7XG4gIG1hcmdpbjogMDtcbiAgcGFkZGluZzogMCAwIDNweCAwO1xuICBmb250LXNpemU6IDE3cHg7XG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG59XG5cbi5jb250ZW50LXJpZ2h0IHtcbiAgZmxvYXQ6IGxlZnQ7XG59XG5cbi5sLXBhbmVsIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAwIDMwcHggMTBweDtcbiAgYmFja2dyb3VuZDogI2Y0ZjNmMztcbiAgYm9yZGVyOiAzcHggc29saWQgI2M3YzZjNjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgLXdlYmtpdC1ib3gtc2hhZG93OiAwcHggM3B4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgLW1vei1ib3gtc2hhZG93OiAwcHggM3B4IDZweCAwcHggcmdiYSgwLCAwLCAwLCAwLjc1KTtcbiAgYm94LXNoYWRvdzogMHB4IDNweCA2cHggMHB4IHJnYmEoMCwgMCwgMCwgMC43NSk7XG59XG5cbi5sLXBhbmVsIGgyIHtcbiAgbWFyZ2luOiAwO1xuICBwYWRkaW5nOiAyMHB4IDA7XG4gIHRleHQtYWxpZ246IGNlbnRlcjtcbiAgZm9udC1zaXplOiAyNHB4O1xuICBmb250LXdlaWdodDogNjAwO1xuICBjb2xvcjogIzg4MjQxRjtcbn1cblxuLmZvcm0tY29udHJvbCB7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmN2Y3ZjcgIWltcG9ydGFudDtcbiAgYm9yZGVyLXJhZGl1czogMjVweCAhaW1wb3J0YW50O1xuICBib3JkZXI6IDFweCBzb2xpZCAjODI4MjgyICFpbXBvcnRhbnQ7XG59XG5cbi5idG5fc3VibWl0IHtcbiAgbWFyZ2luOiA4cHg7XG4gIHBhZGRpbmc6IDRweCAyMHB4O1xuICBiYWNrZ3JvdW5kOiAjODgyNDFGO1xuICBjb2xvcjogI2ZmZmZmZjtcbiAgYm9yZGVyLXJhZGl1czogMjBweDtcbiAgYm9yZGVyOiBub25lO1xuICBmb250LXNpemU6IDE2cHg7XG4gIHdpZHRoOiAxMTVweDtcbn1cblxuZm9vdGVyIHtcbiAgYmFja2dyb3VuZDogIzg4MjQxRjtcbiAgdGV4dC1hbGlnbjogY2VudGVyO1xuICBwYWRkaW5nOiA1cHggMDtcbiAgbWFyZ2luOiAwO1xufVxuXG5mb290ZXIgLmNvcHlyaWdodCB7XG4gIGNvbG9yOiAjZmZmZmZmO1xuICBmb250LXNpemU6IDE2cHg7XG59XG5cbi5pbWctcmVzcG9uc2l2ZSB7XG4gIG1heC13aWR0aDogMTAwJTtcbiAgaGVpZ2h0OiBhdXRvO1xuICBkaXNwbGF5OiBibG9jaztcbn0iXX0= */\";","import { Component, OnInit, ViewChild } from '@angular/core';\n\nimport { BsModalService,ModalDirective } from 'ngx-bootstrap/modal';\n\nimport { FormGroup, FormControl, FormBuilder, Validators, FormArray } from '@angular/forms';\nimport { Router } from '@angular/router';\n\nimport { UserService } from '../../services/user.service';\nimport { NotificationService } from '../../services/notification.service';\nimport { asLiteral } from '@angular/compiler/src/render3/view/util';\n\n\n@Component({\n selector: 'app-signup',\n templateUrl: './signup.component.html',\n styleUrls: ['./signup.component.scss']\n})\nexport class SignupComponent implements OnInit {\n @ViewChild('myModal',{static:false})public myModal: ModalDirective;\n\n youAre : any = [\"Lawyer\",\"Corporate\",\"Government\",\"Academia\",\"Student\",\"Non Law Professional\",\"Other\"];\n subs : any = [{name:\"Yes\",value:\"1\"},{name:\"No\",value:\"0\"},]\n public siteKey : any;\n\n constructor(private formBuilder: FormBuilder,\n private userService: UserService,\n private router: Router,\n private notificationService: NotificationService,\n private modalService : BsModalService) { }\n\n openModel(myModal) {\n this.myModal.show();\n }\n closeModel() {\n this.myModal.hide();\n\n // this.modalService._hideModal(1);\n }\n\n\n loginForm: FormGroup;\n signupForm: FormGroup;\n loginformSubmitted = false;\n signupformSubmitted = false;\n OTPError = false;\n showOTPField = false;\n\n\n\n ngOnInit() {\n this.getProfessions();\n this.createLoginForm();\n this.createSignupForm();\n }\n\n get lform() { return this.loginForm.controls; }\n createLoginForm() {\n this.loginForm = this.formBuilder.group({\n accesstoken: [\"8yLqTLSqRRu0Y9bRoP-Y9mJN0cM1WlcPI5G5Mk0zQXA0TSigLPC4BA==\"],\n email: ['', Validators.required],\n otp: [''],\n });\n }\n\n get sform() { return this.signupForm.controls; }\n createSignupForm() {\n this.signupForm = this.formBuilder.group({\n accesstoken: [\"8yLqTLSqRRu0Y9bRoP-Y9mJN0cM1WlcPI5G5Mk0zQXA0TSigLPC4BA==\"],\n name: ['', [Validators.required,Validators.minLength(4), Validators.maxLength(20), Validators.pattern(\"^[a-zA-Z ]+$\")]],\n email: ['', [Validators.required,Validators.email]],\n mobile: ['', [Validators.required,Validators.minLength(10), Validators.maxLength(10),Validators.pattern(\"^[0-9]*$\")]],\n city: ['', Validators.required],\n youare: ['', Validators.required],\n organization: ['', Validators.required],\n manusub: [''],\n recaptcha: ['', Validators.required],\n otp:['']\n });\n //this.siteKey = \"6LfwXl0dAAAAALnk8J1CgAacJECoeIWl_mL39OhK\";\n this.siteKey = \"6LfGCLAdAAAAAFLPsMQT5xrT-bT2GCZs0P5acm9u\";\n \n }\n loginUser() {\n /* this.OTPError = false;\n if (this.loginForm.value.otp != \"\") {\n this.confirmOTP();\n } else {\n if (this.showOTPField == true) {\n this.OTPError = true;\n } else {*/\n // this.sendOTP();\n //}\n //}\n\n this.confirmOTP();\n }\n\n\n sendOTP() {\n console.log(this.loginForm.value);\n this.loginformSubmitted = true;\n if (this.loginForm.invalid) { return; }\n\n this.userService.login(this.loginForm.value).subscribe((data: any) => {\n console.log(data.Message);\n this.notificationService.showSuccess(\"\", data.Message);\n if (data.Status) {\n //this.showOTPField = true;\n // code commented by sudhakar as no OTP required\n this.showOTPField = false;\n }\n })\n }\n\n confirmOTP() { \n this.userService.confirmOTP(this.loginForm.value).subscribe((data: any) => {\n \n this.notificationService.showSuccess(\"\", data.Message);\n if (data.Status == true) {\n let uid = {\n userId: data.data[0].uid,\n macaddress: \"\"\n }\n this.userService.generateToken(uid).subscribe((d: any) => {\n let ldata = {\n userId: data.data[0].uid,\n token: d.data[0].Token,\n email: data.data[0].vEmail\n }\n localStorage.setItem('user', JSON.stringify(ldata));\n this.userService.changeToken(ldata);\n //this.router.navigate(['/dashboard']);\n this.router.navigateByUrl('/dashboard');\n \n })\n }\n })\n }\n\n signupUser() {\n if(this.emailVerified != true){\n this.notificationService.showError(\"\",\"Please Verify Email first\");\n return;\n }\n this.signupForm.value.manusub = this.signupForm.value.manusub.charAt(0);\n this.signupForm.value.youare = this.signupForm.value.youare.charAt(0);\n this.signupformSubmitted = true;\n console.log(this.signupForm);\n if (this.signupForm.invalid) { return; }\n console.log(this.signupForm);\n this.userService.signup(this.signupForm.value).subscribe((data: any) => {\n this.notificationService.showSuccess(\"\", data.Message);\n this.toggleForm();\n this.signupformSubmitted = false;\n this.createSignupForm();\n this.closeModel();\n })\n }\n\n clearLoginForm() {\n this.OTPError = false;\n this.showOTPField = false;\n this.loginformSubmitted = false;\n this.createLoginForm();\n }\n\n toggleForm = () => {\n const container = document.querySelector('.container');\n container.classList.toggle('active');\n };\n\n getProfessions() {\n let data = {\n userid: 'F8FB0CE7-130A-4A6B-95ED-74575A4145ED'\n }\n this.userService.getAllProfessions(data).subscribe((data: any) => {\n // console.log(data);\n })\n }\n\n\n changeOrganization(e) {\n this.signupForm.controls.youare.setValue(e.target.value, {\n onlySelf: true\n })\n }\n \n // Getter method for accessing form controls\n get organizationName() {\n return this.signupForm.get('youare');\n }\n\n\n changeSubscription(e) {\n this.signupForm.controls.manusub.setValue(e.target.value, {\n onlySelf: true\n })\n }\n \n // Getter method for accessing form controls\n get subscribed() {\n return this.signupForm.get('manusub');\n }\n\n\n showOTPbox = false;\n signupOTP = \"\";\n emailVerified = false;\n sendOTPForValidEmail(){\n if(this.signupForm.value.email == \"\"){\n this.notificationService.showError(\"\",\"Email can not be empty\");\n return;\n }\n let data = {\n accesstoken: \"8yLqTLSqRRu0Y9bRoP-Y9mJN0cM1WlcPI5G5Mk0zQXA0TSigLPC4BA==\",\n email: this.signupForm.value.email\n }\n this.userService.sendOTPForSignup(data).subscribe((data:any)=>{\n if(data?.Message == \"This email \"+ this.signupForm.value.email +\" is already registered, please enter another.\"){\n this.signupForm.value.email = \"\";\n this.notificationService.showError(\"\",data?.Message);\n }else{\n this.showOTPbox = true;\n this.notificationService.showSuccess(\"\",data?.Message);\n }\n console.log(data);\n })\n }\n\n confirmOTPForValidEmail(){\n console.log(this.signupForm.value.otp);\n if(this.signupForm.value.otp == \"\"){\n this.notificationService.showError(\"\",\"OTP can not be empty\");\n return;\n }\n let data = {\n accesstoken: \"8yLqTLSqRRu0Y9bRoP-Y9mJN0cM1WlcPI5G5Mk0zQXA0TSigLPC4BA==\",\n email: this.signupForm.value.email,\n otp : this.signupForm.value.otp\n }\n this.userService.confirmOTPForSignup(data).subscribe((data:any)=>{\n if(data?.Message == \"Invalid OTP\" || data?.Message == \"OOPs something went wrong\"){\n this.notificationService.showError(\"\",data?.Message);\n }else{\n this.notificationService.showSuccess(\"\",data?.Message);\n this.emailVerified = true;\n }\n })\n }\n}\n"],"sourceRoot":"webpack:///"}