{"version":3,"sources":["webpack:///./src/$_lazy_route_resource lazy namespace object","webpack:///./src/app/app.component.css","webpack:///./src/app/app.component.html","webpack:///./src/app/app.component.ts","webpack:///./src/app/app.module.ts","webpack:///./src/app/app.routes.ts","webpack:///./src/app/errors/404.component.ts","webpack:///./src/app/home/dashboard/dashboard.component.css","webpack:///./src/app/home/dashboard/dashboard.component.html","webpack:///./src/app/home/dashboard/dashboard.component.ts","webpack:///./src/app/home/index.ts","webpack:///./src/app/home/version.component.ts","webpack:///./src/app/nav/nav-bar.component.css","webpack:///./src/app/nav/nav-bar.component.html","webpack:///./src/app/nav/nav-bar.component.ts","webpack:///./src/app/nav/nav-title.component.css","webpack:///./src/app/nav/nav-title.component.html","webpack:///./src/app/nav/nav-title.component.ts","webpack:///./src/app/nav/nav.service.ts","webpack:///./src/app/products/create/product-create.component.html","webpack:///./src/app/products/create/product-create.component.ts","webpack:///./src/app/products/details/product-details-images.component.html","webpack:///./src/app/products/details/product-details-images.component.ts","webpack:///./src/app/products/details/product-details-modelinfo.component.html","webpack:///./src/app/products/details/product-details-modelinfo.component.ts","webpack:///./src/app/products/details/product-details.component.css","webpack:///./src/app/products/details/product-details.component.html","webpack:///./src/app/products/details/product-details.component.ts","webpack:///./src/app/products/index.ts","webpack:///./src/app/products/list/product-list-resolver.service.ts","webpack:///./src/app/products/list/product-list-route-activator.service.ts","webpack:///./src/app/products/list/product-list.component.css","webpack:///./src/app/products/list/product-list.component.html","webpack:///./src/app/products/list/product-list.component.ts","webpack:///./src/app/products/product-route-activator.service.ts","webpack:///./src/app/products/shared/index.ts","webpack:///./src/app/products/shared/products-filter-hasimages.pipe.ts","webpack:///./src/app/products/shared/products-filter-noimages.pipe.ts","webpack:///./src/app/products/shared/products-filter.pipe.ts","webpack:///./src/app/products/shared/products.service.ts","webpack:///./src/app/products/thumbnail/product-thumbnail.component.css","webpack:///./src/app/products/thumbnail/product-thumbnail.component.html","webpack:///./src/app/products/thumbnail/product-thumbnail.component.ts","webpack:///./src/app/user/shared/auth.interceptor.ts","webpack:///./src/app/user/shared/auth.service.ts","webpack:///./src/environments/environment.ts","webpack:///./src/main.ts"],"names":[],"mappings":";;;;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA,qC;;;;;;;;;;;ACxBA,4BAA4B,kCAAkC,KAAK,C;;;;;;;;;;;ACAnE,2P;;;;;;;;;;;;;;;;;;;;;;;;;ACA0C;AACe;AAOzD;IAGE,sBAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;QAFrC,iBAAY,GAAG,KAAK,CAAC;IAIrB,CAAC;IAED,+BAAQ,GAAR;QACG,IAAI,CAAC,IAAI,CAAC,yBAAyB,EAAE,CAAC;IACzC,CAAC;IAED,qCAAc,GAAd,UAAe,gBAAyB;QACtC,IAAI,CAAC,YAAY,GAAG,gBAAgB,CAAC;IACvC,CAAC;IAbU,YAAY;QALxB,+DAAS,CAAC;YACT,QAAQ,EAAE,UAAU;;;SAGrB,CAAC;yCAI0B,qEAAW;OAH1B,YAAY,CAexB;IAAD,mBAAC;CAAA;AAfwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRiC;AACjB;AACM;AAEN;AAEM;AACW;AACQ;AAK5C;AAYI;AAEiC;AACF;AACQ;AACU;AACb;AACR;AACD;AACuB;AAqC5E;IAAA;IAAyB,CAAC;IAAb,SAAS;QAnCrB,8DAAQ,CAAC;YACR,YAAY,EAAE;gBACZ,2DAAY;gBACZ,sEAAe;gBACf,2EAAiB;gBACjB,8DAAkB;gBAClB,4DAAgB;gBAChB,oEAAoB;gBACpB,yEAAyB;gBACzB,uEAAuB;gBACvB,gFAAgC;gBAChC,6EAA6B;gBAC7B,sEAAsB;gBACtB,uEAAiB;gBACjB,yFAAkB;gBAClB,2EAA2B;gBAC3B,0EAA0B;aAC3B;YACD,OAAO,EAAE;gBACP,uEAAa;gBACb,4DAAY,CAAC,OAAO,CAAC,qDAAS,CAAC;gBAC/B,sEAAgB;gBAChB,+EAAyB;gBACzB,mEAAmB,CAAC,UAAU,CAAC,EAAC,4BAA4B,EAAE,OAAO,EAAC,CAAC;aACxE;YACD,SAAS,EAAE;gBACT,+DAAe;gBACf,qEAAqB;gBACrB,yEAAyB;gBACzB,sEAAW;gBACX,mEAAiB;gBACjB,EAAE,OAAO,EAAE,uEAAiB,EAAE,QAAQ,EAAE,8EAAe,EAAE,KAAK,EAAE,IAAI,EAAE;aACvE;YACD,SAAS,EAAE,CAAC,2DAAY,CAAC;SAC1B,CAAC;OACW,SAAS,CAAI;IAAD,gBAAC;CAAA;AAAJ;;;;;;;;;;;;;;;;;;ACtEqC;AAOjC;AACkB;AAErC,IAAM,SAAS,GAAW;IAC7B,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,sEAAsB,EAAE;IAC3D,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE,oEAAoB,EAAE,WAAW,EAAE,CAAC,yEAAyB,CAAC,EAAE;IACnG,EAAE,IAAI,EAAE,sBAAsB,EAAE,SAAS,EAAE,uEAAuB,EAAE,WAAW,EAAE,CAAC,qEAAqB,CAAC,EAAE;IAC1G,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,wDAAkB,EAAE;IAC/C,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,uEAAiB,EAAE;IAC7C,EAAE,IAAI,EAAE,EAAE,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE;IACpD,EAAE,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,+BAA+B,EAAE;IAC/D,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,wDAAkB,EAAE;CAChD,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;ACpBwC;AAa1C;IACI;IAEA,CAAC;IAHQ,iBAAiB;QAX7B,+DAAS,CAAC;YACP,QAAQ,EAAE,qDAET;YACD,MAAM,EAAE,CAAC,kHAKP,CAAC;SACN,CAAC;;OACW,iBAAiB,CAI7B;IAAD,wBAAC;CAAA;AAJ6B;;;;;;;;;;;;ACb9B,yBAAyB,sBAAsB,qBAAqB,kCAAkC,2BAA2B,0BAA0B,2BAA2B,oBAAoB,0BAA0B,KAAK,kBAAkB,wBAAwB,2BAA2B,KAAK,iBAAiB,wBAAwB,2BAA2B,KAAK,C;;;;;;;;;;;ACA5X,0kB;;;;;;;;;;;;;;;;;;;;;;;;;;ACC0C;AACkB;AACG;AAQ/D;IAGE,4BAAoB,GAAsB,EAAU,IAAiB;QAAjD,QAAG,GAAH,GAAG,CAAmB;QAAU,SAAI,GAAJ,IAAI,CAAa;QAFrE,mBAAc,GAAG,EAAE,CAAC;QAGlB,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,WAAW,CAAC,CAAC;QAEnC,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;QAC7B,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAE9B,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACvD,CAAC;IAXU,kBAAkB;QAN9B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;;;SAI1B,CAAC;yCAIyB,yEAAiB,EAAgB,4EAAW;OAH1D,kBAAkB,CAY9B;IAAD,yBAAC;CAAA;AAZ8B;;;;;;;;;;;;;;;;;;;;ACXiB;AACZ;;;;;;;;;;;;;;;;;;;;;;ACDM;AAkB1C;IAhBA;QAiBI,YAAO,GAAG,OAAO,CAAC;IACtB,CAAC;IAFY,gBAAgB;QAhB5B,+DAAS,CAAE;YACR,QAAQ,EAAE,aAAa;YACvB,QAAQ,EAAE,sDAAsD;YAChE,MAAM,EAAE,CAAC,uOAWR,CAAC;SACL,CAAC;OACW,gBAAgB,CAE5B;IAAD,uBAAC;CAAA;AAF4B;;;;;;;;;;;;AClB7B,4BAA4B,gDAAgD,wBAAwB,oBAAoB,kBAAkB,mBAAmB,yBAAyB,sBAAsB,KAAK,mBAAmB,sBAAsB,uCAAuC,4BAA4B,KAAK,iEAAiE,0BAA0B,wBAAwB,oBAAoB,oBAAoB,KAAK,iCAAiC,oBAAoB,wBAAwB,oBAAoB,KAAK,yCAAyC,2BAA2B,kBAAkB,iBAAiB,wBAAwB,KAAK,sCAAsC,KAAK,kDAAkD,2BAA2B,mBAAmB,wBAAwB,oBAAoB,+BAA+B,4BAA4B,2BAA2B,qBAAqB,oBAAoB,sBAAsB,gCAAgC,4BAA4B,sDAAsD,KAAK,uCAAuC,wBAAwB,qBAAqB,KAAK,sCAAsC,2BAA2B,2BAA2B,KAAK,sCAAsC,yBAAyB,mCAAmC,KAAK,kBAAkB,yBAAyB,mDAAmD,mCAAmC,sCAAsC,2EAA2E,yEAAyE,6GAA6G,wFAAwF,mIAAmI,0GAA0G,uBAAuB,SAAS,uBAAuB,kDAAkD,2BAA2B,qBAAqB,oBAAoB,6BAA6B,gCAAgC,4BAA4B,yBAAyB,oBAAoB,KAAK,6BAA6B,mDAAmD,KAAK,C;;;;;;;;;;;ACA1iF,u2DAAu2D,WAAW,0tCAA0tC,cAAc,6yBAA6yB,yV;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAv0H;AACN;AACR;AACM;AAOxD;IA0BE,yBACU,IAAiB,EACjB,GAAsB,EACtB,IAAqB;QAH/B,iBA8BC;QA7BS,SAAI,GAAJ,IAAI,CAAa;QACjB,QAAG,GAAH,GAAG,CAAmB;QACtB,SAAI,GAAJ,IAAI,CAAiB;QA5BrB,gBAAW,GAAG,IAAI,0DAAY,EAAW,CAAC;QAEpD,cAAS,GAAG,KAAK,CAAC;QAElB,gBAAW,GAAG,KAAK,CAAC;QACpB,aAAQ,GAAG,KAAK,CAAC;QACjB,aAAQ,GAAG,KAAK,CAAC;QACjB,WAAM,GAAG,KAAK,CAAC;QACf,YAAO,GAAG,KAAK,CAAC;QAChB,mBAAc,GAAG,KAAK,CAAC;QAEvB,cAAS,GAAG,EAAE,CAAC;QAEf,kBAAa,GAAG,CAAC,CAAC;QAClB,kBAAa,GAAG,CAAC,CAAC;QAClB,mBAAc,GAAG,CAAC,CAAC;QACnB,gBAAW,GAAG,CAAC,CAAC;QAChB,iBAAY,GAAG,CAAC,CAAC;QAEjB,gBAAW,GAAG,EAAE,CAAC;QACjB,gBAAW,GAAG,OAAO,CAAC;QACtB,iBAAY,GAAG,EAAE,CAAC;QAQhB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAEtC,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,eAAK,IAAI,YAAI,CAAC,SAAS,GAAG,KAAK,EAAtB,CAAsB,CAAC,CAAC;QAE3D,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAI,IAAI,YAAI,CAAC,aAAa,GAAG,IAAI,EAAzB,CAAyB,CAAC,CAAC;QAClE,GAAG,CAAC,gBAAgB,CAAC,SAAS,CAAC,cAAI,IAAI,YAAI,CAAC,aAAa,GAAG,IAAI,EAAzB,CAAyB,CAAC,CAAC;QAClE,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC,cAAI,IAAI,YAAI,CAAC,cAAc,GAAG,IAAI,EAA1B,CAA0B,CAAC,CAAC;QAGpE,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,iBAAO,IAAI,YAAI,CAAC,eAAe,GAAG,OAAO,EAA9B,CAA8B,CAAC,CAAC;QAC5E,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,cAAQ,KAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE7E,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,eAAK,IAAI,YAAI,CAAC,YAAY,GAAG,KAAK,EAAzB,CAAyB,CAAC,CAAC;QAEhF;;2EAEmE;QAEjE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC;YACvB,KAAI,CAAC,WAAW,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAC3C,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACxC,KAAI,CAAC,QAAQ,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACxC,KAAI,CAAC,MAAM,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACtC,KAAI,CAAC,OAAO,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACvC,KAAI,CAAC,cAAc,GAAG,KAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QACnD,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gCAAM,GAAN;QACE,IAAI,CAAC,SAAS,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC;QAEjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED,oCAAU,GAAV;QACE,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC;IACD,oCAAU,GAAV;QACE,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAI,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;IAChC,CAAC;IACD,qCAAW,GAAX;QACE,IAAI,CAAC,GAAG,CAAC,mBAAmB,EAAE,CAAC;IACjC,CAAC;IAED,0CAAgB,GAAhB,UAAiB,CAAC;QAChB,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACvD,CAAC;IA5ES;QAAT,4DAAM,EAAE;;wDAA2C;IADzC,eAAe;QAL3B,+DAAS,CAAC;YACT,QAAQ,EAAE,aAAa;;;SAGxB,CAAC;yCA4BgB,qEAAW;YACZ,8DAAiB;YAChB,yDAAe;OA7BpB,eAAe,CA8E3B;IAAD,sBAAC;CAAA;AA9E2B;;;;;;;;;;;;ACV5B,8BAA8B,wBAAwB,iBAAiB,kBAAkB,oBAAoB,gDAAgD,wBAAwB,yBAAyB,qBAAqB,iBAAiB,kBAAkB,4BAA4B,wBAAwB,KAAK,C;;;;;;;;;;;ACA/T,6CAA6C,WAAW,O;;;;;;;;;;;;;;;;;;;;;;;;;ACAd;AACQ;AAOlD;IAGE,2BAAoB,GAAsB;QAA1C,iBAEC;QAFmB,QAAG,GAAH,GAAG,CAAmB;QAF1C,cAAS,GAAG,EAAE,CAAC;QAGb,GAAG,CAAC,WAAW,CAAC,SAAS,CAAC,eAAK,IAAI,YAAI,CAAC,SAAS,GAAG,KAAK,EAAtB,CAAsB,CAAC,CAAC;IAC7D,CAAC;IALU,iBAAiB;QAL7B,+DAAS,CAAC;YACT,QAAQ,EAAE,eAAe;;;SAG1B,CAAC;yCAIyB,8DAAiB;OAH/B,iBAAiB,CAO7B;IAAD,wBAAC;CAAA;AAP6B;;;;;;;;;;;;;;;;;;;;;;;;;;ACRmC;AAClC;AAG/B;IAyBI;QAxBU,sBAAiB,GAA0B,IAAI,0DAAY,EAAE,CAAC;QAC9D,sBAAiB,GAA0B,IAAI,0DAAY,EAAE,CAAC;QAC9D,uBAAkB,GAA0B,IAAI,0DAAY,EAAE,CAAC;QAEzE,4BAA4B;QACpB,eAAU,GAAG,IAAI,4CAAO,EAAU,CAAC;QAEnC,oBAAe,GAAG,IAAI,4CAAO,EAAU,CAAC;QACxC,oBAAe,GAAG,IAAI,4CAAO,EAAU,CAAC;QACxC,qBAAgB,GAAG,IAAI,4CAAO,EAAU,CAAC;QAEzC,kBAAa,GAAG,IAAI,4CAAO,EAAU,CAAC;QACtC,mBAAc,GAAG,IAAI,4CAAO,EAAU,CAAC;QAE/C,4BAA4B;QAC5B,gBAAW,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY,EAAE,CAAC;QAE7C,qBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QACvD,qBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,YAAY,EAAE,CAAC;QACvD,sBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEzD,mBAAc,GAAG,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,CAAC;QACnD,oBAAe,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;IAErC,CAAC;IAEjB,2BAA2B;IAC3B,wCAAY,GAAZ,UAAa,KAAa;QACtB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,4CAAgB,GAAhB,UAAiB,IAAY;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,4CAAgB,GAAhB,UAAiB,IAAY;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IACD,6CAAiB,GAAjB,UAAkB,IAAY;QAC1B,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;IAED,8CAAkB,GAAlB;QACI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,8CAAkB,GAAlB;QACI,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC;IACD,+CAAmB,GAAnB;QACI,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACvC,CAAC;IAjDS;QAAT,4DAAM,EAAE;kCAAoB,0DAAY;gEAA+B;IAC9D;QAAT,4DAAM,EAAE;kCAAoB,0DAAY;gEAA+B;IAC9D;QAAT,4DAAM,EAAE;kCAAqB,0DAAY;iEAA+B;IAHhE,iBAAiB;QAD7B,gEAAU,EAAE;;OACA,iBAAiB,CAmD7B;IAAD,wBAAC;CAAA;AAnD6B;;;;;;;;;;;;ACJ9B,uC;;;;;;;;;;;;;;;;;;;;;;;;;;ACAkD;AACW;AACZ;AAKjD;IAGE,gCAAoB,eAAgC,EAAU,KAAoB;QAA9D,oBAAe,GAAf,eAAe,CAAiB;QAAU,UAAK,GAAL,KAAK,CAAe;IAElF,CAAC;IAED,yCAAQ,GAAR;QACE,mFAAmF;IACrF,CAAC;IATU,sBAAsB;QAHlC,+DAAS,CAAC;;SAEV,CAAC;yCAIqC,wEAAe,EAAgB,8DAAc;OAHvE,sBAAsB,CAUlC;IAAD,6BAAC;CAAA;AAVkC;;;;;;;;;;;;ACPnC,8JAA8J,uBAAuB,u0BAAu0B,0DAA0D,+mBAA+mB,yCAAyC,4CAA4C,2BAA2B,GAAG,YAAY,GAAG,cAAc,4T;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA9uD;AACW;AAC5B;AACM;AAM5D;IAOI,uCACU,WAAuB,EACvB,GAAsB,EACtB,IAAqB;QAH/B,iBAYE;QAXQ,gBAAW,GAAX,WAAW,CAAY;QACvB,QAAG,GAAH,GAAG,CAAmB;QACtB,SAAI,GAAJ,IAAI,CAAiB;QARrB,gBAAW,GAAG,IAAI,0DAAY,EAAW,CAAC;QAC1C,eAAU,GAAG,IAAI,0DAAY,EAAW,CAAC;QAkBnD,YAAO,GAAW,EAAE,CAAC;QACrB,SAAI,GAAG,EAAE,CAAC;QACV,oBAAe,GAAG,KAAK,CAAC;QAXtB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QAExB,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,SAAS,CAAC;YACpC,iBAAiB;YACjB,KAAI,CAAC,eAAe,GAAG,CAAC,KAAI,CAAC,eAAe,CAAC;YAC7C,KAAI,CAAC,UAAU,GAAG,CAAC,KAAI,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,CAAC;IACJ,CAAC;IAMF,sDAAc,GAAd,UAAgB,CAAC;QACf,gCAAgC;QAChC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAED,mDAAW,GAAX,UAAY,OAAe;QAA3B,iBAMC;QALC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,0CAA0C,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,CAAC,SAAS,CACpH;YACE,KAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAC7B,CAAC,CACF,CAAC;IACJ,CAAC;IAED,mDAAW,GAAX;QAAA,iBAsBC;QArBC,IAAM,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;QAE/B,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QAChD,CAAC;QAED,IAAM,OAAO,GAAG,EAAC,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAC,cAAc,EAAE,OAAO,EAAC,CAAC,EAAC,CAAC;QAEtE,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,0CAA0C,GAAG,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,CACzH,cAAI;YACF,KAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5B,KAAI,CAAC,eAAe,GAAG,KAAK,CAAC;YAE7B,4CAA4C;YAC5C,KAAI,CAAC,IAAI,GAAG,IAAc,CAAC;YAC3B,OAAO,CAAC,GAAG,CAAE,KAAI,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC,EACD,UAAC,GAAsB;YACrB,OAAO,CAAC,GAAG,CAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAI,sBAAsB;QACtD,CAAC,CACF,CAAC;IACJ,CAAC;IA7DQ;QAAR,2DAAK,EAAE;;kEAAmB;IACjB;QAAT,4DAAM,EAAE;;sEAA2C;IAC1C;QAAT,4DAAM,EAAE;;qEAA0C;IAH1C,6BAA6B;QAJzC,+DAAS,CAAC;YACP,QAAQ,EAAE,4BAA4B;;SAEzC,CAAC;yCASyB,+DAAU;YAClB,yEAAiB;YAChB,uDAAe;OAVtB,6BAA6B,CA+DzC;IAAD,oCAAC;CAAA;AA/DyC;;;;;;;;;;;;ACT1C,sXAAsX,wBAAwB,oOAAoO,8BAA8B,kbAAkb,eAAe,sNAAsN,2BAA2B,oQAAoQ,oBAAoB,yMAAyM,mBAAmB,wQAAwQ,sBAAsB,8bAA8b,wBAAwB,8RAA8R,sBAAsB,waAAwa,kBAAkB,0QAA0Q,oBAAoB,sQAAsQ,cAAc,uBAAuB,cAAc,uQAAuQ,mBAAmB,yG;;;;;;;;;;;;;;;;;;;;;;;;ACAxlI;AAOjD;IAMI;QACI,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IARQ;QAAR,2DAAK,EAAE;;qEAAmB;IADlB,gCAAgC;QAJ5C,+DAAS,CAAC;YACP,QAAQ,EAAE,+BAA+B;;SAE5C,CAAC;;OACW,gCAAgC,CAU5C;IAAD,uCAAC;CAAA;AAV4C;;;;;;;;;;;;ACP7C,2DAA2D,yBAAyB,wBAAwB,oBAAoB,KAAK,6CAA6C,yBAAyB,wBAAwB,8BAA8B,KAAK,mDAAmD,wBAAwB,yBAAyB,KAAK,0DAA0D,sCAAsC,KAAK,yDAAyD,8BAA8B,4BAA4B,iCAAiC,KAAK,yCAAyC,yBAAyB,KAAK,mDAAmD,0BAA0B,wBAAwB,kCAAkC,yBAAyB,2BAA2B,qBAAqB,+BAA+B,4CAA4C,QAAQ,2DAA2D,8BAA8B,KAAK,+CAA+C,4BAA4B,KAAK,C;;;;;;;;;;;ACAroC,+BAA+B,cAAc,2Y;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAK;AACW;AACJ;AAEG;AAM5D;IAME,iCACU,IAAqB,EACrB,MAAc,EACd,KAAqB,EACrB,GAAsB;QAHtB,SAAI,GAAJ,IAAI,CAAiB;QACrB,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACrB,QAAG,GAAH,GAAG,CAAmB;QARhC,eAAU,GAAG,KAAK,CAAC;IASb,CAAC;IAEP,0CAAQ,GAAR;QAAA,iBAMC;QALC,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,SAAS,CAAC,cAAQ,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAE5E,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAED,kDAAgB,GAAhB,UAAiB,aAAsB;QACrC,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;IAC3C,CAAC;IAED,iDAAe,GAAf,UAAgB,YAAqB;QACnC,EAAE,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;YAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAAC,CAAC;IAC1C,CAAC;IAED,4CAAU,GAAV;QAAA,iBA6CC;QA5CC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAI;YACpE,KAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACpB,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC3D,EAAE,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtB,OAAO,CAAC,GAAG,CAAC,2BAA2B,GAAG,KAAI,CAAC,YAAY,CAAC,CAAC;YAC/D,CAAC;YAAC,IAAI,CAAC,CAAC;gBACN,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;YACD,EAAE,CAAC,CAAC,CAAC,KAAI,CAAC,YAAY,CAAC,CAAC,CAAC;gBACvB,KAAI,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAC5D,CAAC;YAED,KAAI,CAAC,GAAG,CAAC,YAAY,CAAC,KAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;YAErD,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACvD,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;YAE9B,KAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAI,CAAC,OAAO,CAAC,CAAC;YAEjD,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACnC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,GAAG,KAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,KAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpG,CAAC,CAAC,CAAC;YAEH;;;;;;;;;;;;;;;;;;eAkBG;QAAE,CAAC,EACL,eAAK,IAAI,YAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,CAAC,EAA3B,CAA2B,CAAC,CAAC;IACrC,CAAC;IAED,qDAAmB,GAAnB;QACE,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;QAC9D,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACf,CAAC;IAjFU,uBAAuB;QAJnC,+DAAS,CAAC;;;SAGV,CAAC;yCAQgB,wEAAe;YACb,sDAAM;YACP,8DAAc;YAChB,yEAAiB;OAVrB,uBAAuB,CAkFnC;IAAD,8BAAC;CAAA;AAlFmC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVU;AACM;AACU;AACH;AACT;AACU;AACP;AACH;AACM;AACzB;AACyB;AACD;;;;;;;;;;;;;;;;;;;;;;;;;;ACXZ;AAEkB;AAG7D;IACI,6BAAqB,cAA+B;QAA/B,mBAAc,GAAd,cAAc,CAAiB;IAEpD,CAAC;IAED,qCAAO,GAAP;QACI,MAAM,CAAC,KAAK,CAAC,CAAC,8DAA8D;IAChF,CAAC;IAPQ,mBAAmB;QAD/B,gEAAU,EAAE;yCAE4B,wEAAe;OAD3C,mBAAmB,CAQ/B;IAAD,0BAAC;CAAA;AAR+B;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLW;AACmC;AACjB;AAG7D;IACI,mCAAoB,cAA+B,EAAU,MAAc;QAAvD,mBAAc,GAAd,cAAc,CAAiB;QAAU,WAAM,GAAN,MAAM,CAAQ;IAE3E,CAAC;IAED,+CAAW,GAAX,UAAY,KAA6B;QACrC,IAAM,aAAa,GAAG,IAAI,CAAC,cAAc,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;QAE/E,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;YACjB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnC,CAAC;QACD,MAAM,CAAC,aAAa,CAAC;IACzB,CAAC;IAZQ,yBAAyB;QADrC,gEAAU,EAAE;yCAE2B,wEAAe,EAAkB,sDAAM;OADlE,yBAAyB,CAarC;IAAD,gCAAC;CAAA;AAbqC;;;;;;;;;;;;ACLtC,2BAA2B,yBAAyB,iCAAiC,yBAAyB,kBAAkB,yBAAyB,mBAAmB,2BAA2B,sBAAsB,oBAAoB,KAAK,kBAAkB,wBAAwB,0BAA0B,2BAA2B,oBAAoB,KAAK,YAAY,wBAAwB,yBAAyB,oBAAoB,0BAA0B,KAAK,C;;;;;;;;;;;ACA9d,24BAA24B,wDAAwD,6fAA6f,iDAAiD,6Y;;;;;;;;;;;;;;;;;;;;;;;;;;;ACA/7C;AACW;AACJ;AAEG;AAO5D;IAQE,8BACU,eAAgC,EAChC,MAAc,EACd,KAAqB,EACrB,GAAsB;QAHtB,oBAAe,GAAf,eAAe,CAAiB;QAChC,WAAM,GAAN,MAAM,CAAQ;QACd,UAAK,GAAL,KAAK,CAAgB;QACrB,QAAG,GAAH,GAAG,CAAmB;QAVhC,YAAO,GAAG,IAAI,CAAC;QACf,sBAAiB,GAAG,KAAK,CAAC;QAC1B,eAAU,GAAG,KAAK,CAAC;QACnB,WAAM,GAAG,KAAK,CAAC;QACf,YAAO,GAAG,OAAO,CAAC;IASlB,CAAC;IAED,uCAAQ,GAAR;QAAA,iBAkBC;QAjBC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,eAAK;YACjC,oCAAoC;YACpC,KAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC/B,KAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;YACnB,KAAI,CAAC,eAAe,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;iBAC9C,SAAS,CAAC,kBAAQ;gBACjB,KAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,CAAC,CAAC,CAAC;YAEL,KAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAC7B,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,SAAS,CAAC;gBACnC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;YACH,oCAAoC;YAEpC,KAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,2CAAY,GAAZ,UAAa,WAAmB;QAC9B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;QACrB,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;QAE/B,MAAM,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC;YACpB,KAAK,SAAS;gBACZ,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;gBAC9B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,KAAK,CAAC;YACR,KAAK,QAAQ;gBACX,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;gBACvB,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;gBACzB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;gBACxB,KAAK,CAAC;YACR;gBACE,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;gBACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;gBACvB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;gBACtB,KAAK,CAAC;QACR,CAAC;IACH,CAAC;IAED,uCAAQ,GAAR,UAAS,EAAU;QACjB,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACX,KAAK,SAAS;gBACZ,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,+CAA+C;gBAC/C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;gBACtC,KAAK,CAAC;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC/B,KAAK,CAAC;YACR,KAAK,MAAM;gBACT,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,4CAA4C;gBAC5C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBAC9B,KAAK,CAAC;YACR,KAAK,IAAI;gBACP,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,0CAA0C;gBAC1C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;gBACrC,KAAK,CAAC;YACR,KAAK,KAAK;gBACR,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,2CAA2C;gBAC3C,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;gBAC/B,KAAK,CAAC;YAER;gBACE,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBAC7B,KAAK,CAAC;QACV,CAAC;IACH,CAAC;IA7FU,oBAAoB;QALhC,+DAAS,CAAC;YACT,QAAQ,EAAE,kBAAkB;;;SAG7B,CAAC;yCAU2B,wEAAe;YACxB,sDAAM;YACP,8DAAc;YAChB,yEAAiB;OAZrB,oBAAoB,CA+FhC;IAAD,2BAAC;CAAA;AA/FgC;;;;;;;;;;;;;;;;;;;;;;;;;;;ACXU;AACmC;AAClB;AAG5D;IACI,+BACY,cAA+B,EAC/B,MAAc;QADd,mBAAc,GAAd,cAAc,CAAiB;QAC/B,WAAM,GAAN,MAAM,CAAQ;IAG1B,CAAC;IAED,2CAAW,GAAX,UAAY,KAA6B;QAAzC,iBAWC;QAVG,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,cAAI;YAC9D,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,CAAC,CAAC,CAAC;gBACf,MAAM,CAAC,IAAI,CAAC;YAChB,CAAC;YACD,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;QACpC,CAAC,EACG,aAAG;YACC,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QACP,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAnBQ,qBAAqB;QADjC,gEAAU,EAAE;yCAGmB,wEAAe;YACvB,sDAAM;OAHjB,qBAAqB,CAoBjC;IAAD,4BAAC;CAAA;AApBiC;;;;;;;;;;;;;;;;;ACLA;;;;;;;;;;;;;;;;;;;;;;ACAkB;AAKpD;IAAA;IAKA,CAAC;IAJC,+CAAS,GAAT,UAAU,QAAoB;QAC1B,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,QAAQ,CAAC;QAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,GAAG,CAAC,EAAlD,CAAkD,CAAC,CAAC;IACxF,CAAC;IAJU,2BAA2B;QADvC,0DAAI,CAAC,EAAE,IAAI,EAAE,6BAA6B,EAAE,CAAC;OACjC,2BAA2B,CAKvC;IAAD,kCAAC;CAAA;AALuC;;;;;;;;;;;;;;;;;;;;;;ACLY;AAKpD;IAAA;IAKA,CAAC;IAJC,8CAAS,GAAT,UAAU,QAAoB;QAC1B,EAAE,CAAC,CAAC,CAAC,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC;YAAC,MAAM,CAAC,QAAQ,CAAC;QAAC,CAAC;QAC1D,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAApD,CAAoD,CAAC,CAAC;IAC1F,CAAC;IAJU,0BAA0B;QADtC,0DAAI,CAAC,EAAE,IAAI,EAAE,4BAA4B,EAAE,CAAC;OAChC,0BAA0B,CAKtC;IAAD,iCAAC;CAAA;AALsC;;;;;;;;;;;;;;;;;;;;;;ACLa;AAKpD;IAAA;IAwCA,CAAC;IAvCC,sCAAS,GAAT,UAAU,QAAoB,EAAE,MAAc,EAAE,OAAe,EAAE,MAAc;QAC7E,IAAI,gBAAgB,GAAG,QAAQ,CAAC;QAEhC,EAAE,CAAC,CAAC,QAAQ,IAAI,IAAI,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,QAAQ,CAAC;QAClB,CAAC;QAED,SAAS;QACT,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YACnC,YAAY;YACZ,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAO;gBACxC,cAAO,CAAC,UAAU,KAAK,CAAC,IAAI,OAAO,CAAC,UAAU,KAAK,CAAC;YAApD,CAAoD,CACrD,CAAC;QACJ,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,MAAM,IAAI,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC;YAC1C,SAAS;YACT,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAO;gBACxC,cAAO,CAAC,UAAU,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,eAAe,EAAE,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC,eAAe,EAAE,CAAC;YAA1G,CAA0G,CAC3G,CAAC;QACJ,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,MAAM;YACN,gBAAgB,GAAG,QAAQ,CAAC,MAAM,CAAC,iBAAO,IAAI,cAAO,CAAC,UAAU,KAAK,CAAC,EAAxB,CAAwB,CAAC,CAAC;QAC1E,CAAC;QAED,UAAU;QACV,EAAE,CAAC,CAAC,OAAO,IAAI,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC;YACrC,gBAAgB,GAAG,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC;gBACrD,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,MAAM,CAAC,CAAC,CAAC,CAAC;gBACZ,CAAC;gBACD,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;oBAC9B,MAAM,CAAC,CAAC,CAAC;gBACX,CAAC;gBACD,MAAM,CAAC,CAAC,CAAC;YACX,CAAC,CAAC,CAAC;QACL,CAAC;QAGD,MAAM,CAAC,gBAAgB,CAAC;IAC1B,CAAC;IAvCU,kBAAkB;QAD9B,0DAAI,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC;OACxB,kBAAkB,CAwC9B;IAAD,yBAAC;CAAA;AAxC8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACLY;AACY;AAEuC;AAC7C;AACc;AAI/D;IAWE,yBACU,IAAgB,EAChB,IAAiB;QADjB,SAAI,GAAJ,IAAI,CAAY;QAChB,SAAI,GAAJ,IAAI,CAAa;QAZnB,qBAAgB,GAAG,IAAI,4CAAO,EAAY,CAAC;QACnD,sBAAiB,GAAG,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE,CAAC;QAEjD,6BAAwB,GAAG,IAAI,4CAAO,EAAW,CAAC;QAC1D,8BAAyB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE,CAAC;QAEjE,sBAAiB,GAAG,CAAC,CAAC;QACtB,8BAAyB,GAAG,IAAI,4CAAO,EAAU,CAAC;QAC1D,+BAA0B,GAAG,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC;IAKvE,CAAC;IAEG,qCAAW,GAAnB,UAAoB,KAAwB,EAAE,IAAiB;QAC7D,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC;YACtC,kEAAkE;YAClE,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC3D,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,sDAAsD;YACtD,6DAA6D;YAC7D,OAAO,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC;YACjC,yCAAyC;YACzC,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,yBAAyB,EAAE,CAAC;YAEjC,OAAO,CAAC,KAAK,CACX,2BAAyB,KAAK,CAAC,MAAM,OAAI;iBACzC,eAAa,KAAK,CAAC,KAAO,EAAC,CAAC;QAChC,CAAC;QAED,wDAAwD;QACxD,MAAM,CAAC,uDAAU,CACf,iDAAiD,CAAC,CAAC;IACvD,CAAC;IACD,4CAAkB,GAAlB,UAAmB,OAAiB;QAClC,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,qCAAW,GAAX,UAAY,IAAY;QAAxB,iBAeC;QAdC,mFAAmF;QACnF,IAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAE7C,EAAE,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAa,yCAAyC,EACxE,EAAE,MAAM,EAAE,IAAI,+DAAU,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,EAAE,GAAG,OAAO,CAAC,EAAE,CAAC;iBAChE,IAAI,CACH,0DAAG,CAAC,iBAAO;gBACT,OAAO,CAAC,IAAI,CAAC,UAAC,CAAC,EAAE,CAAC,IAAK,QAAC,CAAC,gBAAgB,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAhD,CAAgD,CAAC,CAAC;YAC3E,CAAC,CAAC,CAAC;iBACJ,IAAI,CACH,iEAAU,CAAC,eAAK,IAAI,YAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CACxD,CAAC;QACN,CAAC;IACH,CAAC;IAED,oCAAU,GAAV,UAAW,EAAU;QAArB,iBAIC;QAHC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAW,0CAA0C,GAAG,EAAE,CAAC,CAAC,IAAI,CAClF,iEAAU,CAAC,eAAK,IAAI,YAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAI,CAAC,IAAI,CAAC,EAAlC,CAAkC,CAAC,CACxD,CAAC;IACJ,CAAC;IAGD,0CAAgB,GAAhB,UAAiB,IAAY;QAC3B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,2CAAiB,GAAjB,UAAkB,IAAY;QAC5B,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;YACb,KAAK,SAAS;gBACZ,MAAM,CAAC,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,CAAC,CAAC,CAAC;YACX,KAAK,MAAM;gBACT,MAAM,CAAC,CAAC,CAAC;YACX,KAAK,IAAI;gBACP,MAAM,CAAC,CAAC,CAAC;YACX,KAAK,KAAK;gBACR,MAAM,CAAC,CAAC,CAAC;YAEX;gBACE,MAAM,CAAC,CAAC,CAAC,CAAC;QACd,CAAC;IACH,CAAC;IACD,6CAAmB,GAAnB,UAAoB,OAAO;QACzB,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YAChB,KAAK,CAAC;gBACJ,MAAM,CAAC,MAAM,CAAC;YAChB,KAAK,CAAC;gBACJ,MAAM,CAAC,MAAM,CAAC;YAChB,KAAK,CAAC;gBACJ,MAAM,CAAC,IAAI,CAAC;YACd,KAAK,CAAC;gBACJ,MAAM,CAAC,KAAK,CAAC;YACf;gBACE,MAAM,CAAC,SAAS,CAAC;QACrB,CAAC;IACH,CAAC;IAED,4CAAkB,GAAlB,UAAmB,OAAiB,EAAE,WAAmB;QAAzD,iBAiBC;QAhBC,gGAAgG;QAChG,IAAI,KAAK,CAAC;QAEV,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QAExD;;aAEK;QACL,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAG;YACxB,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBACX,OAAO,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,YAAY,CAAC,CAAC;gBACtD,KAAK,GAAG,KAAI,CAAC,wBAAwB,CAAC,GAAG,EAAE,OAAO,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YACtE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC5B,CAAC;IAED,kDAAwB,GAAxB,UAAyB,YAA2B,EAAE,SAAiB,EAAE,WAAmB;QAC1F,IAAM,OAAO,GAAG,uCAAuC,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC;QAC1F,IAAI,KAAK,CAAC;QAEV,EAAE,CAAC,CAAC,YAAY,IAAI,WAAW,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,EAAtC,CAAsC,CAAC,CAAC;QACjF,CAAC;QAAC,IAAI,CAAC,CAAC;YACN,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,WAAC,IAAI,QAAC,CAAC,EAAE,KAAK,WAAW,EAApB,CAAoB,CAAC,CAAC;QAC/D,CAAC;QAED,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,GAAG,SAAS,GAAG,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,CAAC;IAED,wCAAc,GAAd,UAAe,CAAC,EAAE,SAAiB;QACjC,gCAAgC;QAChC,IAAM,KAAK,GAAU,EAAE,CAAC;QAExB,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/C,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAChC,CAAC;QAED,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;IACrC,CAAC;IACD,qCAAW,GAAX,UAAY,SAAiB,EAAE,KAAY;QAA3C,iBA2BC;QA1BC,IAAI,CAAC,gBAAgB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAEpC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACtC,IAAM,OAAO,GAAG,IAAI,QAAQ,EAAE,CAAC;YAE/B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YAEvC,IAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAE,cAAc,EAAE,mCAAmC,EAAE,CAAC,EAAE,CAAC;YACtG,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAC;YAC/B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,0CAA0C,GAAG,SAAS,GAAG,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,SAAS,CAC7G,cAAI;gBAEF,4CAA4C;gBAC5C,IAAM,IAAI,GAAG,IAAc,CAAC;gBAC5B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBAElB,KAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC,EACD,UAAC,GAAsB;gBACrB,0EAA0E;gBAC1E,KAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;gBACzB,KAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC3C,CAAC,CACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,0CAAgB,GAAhB,UAAiB,WAAmB;QAClC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC;QACtC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IACD,0CAAgB,GAAhB,UAAiB,WAAmB;QAClC,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC;QACtC,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;IAC9D,CAAC;IApLU,eAAe;QAD3B,gEAAU,EAAE;yCAaK,+DAAU;YACV,4EAAW;OAbhB,eAAe,CAqL3B;IAAD,sBAAC;CAAA;AArL2B;AAuL5B,IAAM,QAAQ,GAAe,EAAE,CAAC;;;;;;;;;;;;AChMhC,oCAAoC,0BAA0B,6BAA6B,wBAAwB,KAAK,6BAA6B,kCAAkC,kCAAkC,KAAK,C;;;;;;;;;;;ACA9N,2OAA2O,0BAA0B,qCAAqC,cAAc,gDAAgD,eAAe,iH;;;;;;;;;;;;;;;;;;;;;;;;ACAtU;AAQjD;IAAA;IAEA,CAAC;IADY;QAAR,2DAAK,EAAE;;8DAAmB;IADlB,yBAAyB;QALrC,+DAAS,CAAC;YACT,QAAQ,EAAE,uBAAuB;;;SAGlC,CAAC;OACW,yBAAyB,CAErC;IAAD,gCAAC;CAAA;AAFqC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACRK;AAC8D;AAG3E;AAEwB;AACT;AAG7C;IACE,yBAAoB,IAAiB;QAAjB,SAAI,GAAJ,IAAI,CAAa;IAAI,CAAC;IAE1C,mCAAS,GAAT,UACE,GAAqB,EACrB,IAAiB;QAGjB,0CAA0C;QAC1C,IAAI,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACrD,IAAM,UAAU,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,mEAAgB,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAElF,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC;YAC1B,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;QAChC,CAAC;QAGD,kCAAkC;QAClC,IAAM,OAAO,GAAG,IAAI,gEAAW,CAAC,EAAE,eAAe,EAAE,SAAS,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;QAE1G,iDAAiD;QACjD,IAAI,WAAW,GAAG,kBAAkB,CAAC;QACrC,EAAE,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;YACpC,WAAW,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAChD,CAAC;QAED,sEAAsE;QACtE,EAAE,CAAC,CAAC,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC;YAC5B,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,WAAW,CAAC,CAAC;QAC3C,CAAC;QAED,gEAAgE;QAChE,IAAM,SAAS,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAElD,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAChC,CAAC;IAnCU,eAAe;QAD3B,gEAAU,EAAE;yCAEe,yDAAW;OAD1B,eAAe,CAoC3B;IAAD,sBAAC;CAAA;AApC2B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACVe;AAEuC;AACjC;AACkB;AAC1B;AACa;AAGtD;IAcI,qBACY,IAAgB,EAChB,MAAc;QADd,SAAI,GAAJ,IAAI,CAAY;QAChB,WAAM,GAAN,MAAM,CAAQ;QAdlB,iBAAY,GAA2B,IAAI,oDAAe,CAAQ,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;QACzH,eAAU,GAAG,IAAI,mEAAgB,EAAE,CAAC;QAE5B,gBAAW,GAAsB,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;QAI1E,sBAAiB,GAA6B,IAAI,oDAAe,CAAU,KAAK,CAAC,CAAC;QAC1F,uBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;QACnD,iBAAY,GAA6B,IAAI,oDAAe,CAAU,KAAK,CAAC,CAAC;QACrF,kBAAa,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,EAAE,CAAC;IAMjD,CAAC;IAEO,iCAAW,GAAnB,UAAoB,KAAwB,EAAE,IAAiB;QAC3D,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,YAAY,UAAU,CAAC,CAAC,CAAC;YACpC,kEAAkE;YAClE,OAAO,CAAC,KAAK,CAAC,oBAAoB,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC7D,CAAC;QAAC,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM,KAAK,GAAG,CAAC,CAAC,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,sDAAsD;YACtD,6DAA6D;YAE7D,OAAO,CAAC,KAAK,CACT,2BAAyB,KAAK,CAAC,MAAM,OAAI;iBACzC,eAAa,KAAK,CAAC,KAAO,EAAC,CAAC;QACpC,CAAC;QACD,wDAAwD;QACxD,MAAM,CAAC,uDAAU,CACb,iDAAiD,CAAC,CAAC;IAC3D,CAAC;IAED,+BAAS,GAAT,UAAU,QAAgB,EAAE,QAAgB;QAA5C,iBAkBK;QAjBD,EAAE,CAAC,CAAC,QAAQ,IAAI,QAAQ,CAAC,CAAC,CAAC;YACvB,IAAI,CAAC,UAAU,GAAG,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;QACjE,CAAC;QAED,EAAE,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACtB,IAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;YAErF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,+CAA+C,EAAE,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC;iBAC3F,IAAI,CAAC,0DAAG,CAAC,cAAI;gBACV,KAAI,CAAC,KAAK,GAAW,IAAI,CAAC;gBAC1B,cAAc,CAAC,OAAO,CAAC,eAAe,EAAE,KAAI,CAAC,KAAK,CAAC,CAAC;gBACpD,KAAI,CAAC,yBAAyB,EAAE,CAAC;YACrC,CAAC,EAAE,aAAG,IAAK,KAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBAChD,IAAI,CACD,iEAAU,CAAC,eAAK,IAAI,YAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAI,CAAC,EAA7B,CAA6B,CAAC,CACnD,CAAC;QACJ,CAAC;IACL,CAAC;IAET,oCAAc,GAAd,UAAe,UAAkB;QAAjC,iBAcC;QAbG,IAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QACrF,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,4DAA4D,EAAE,UAAU,EAAE,OAAO,CAAC;aACvG,SAAS,CAAC,iBAAO;YACd,KAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,SAAS,CAAC;gBAC3C,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC;YACpC,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,UAAC,GAAsB;YACtB,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC;gBAC/B,OAAO,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;YAC5C,CAAC;YAAC,IAAI,CAAC,CAAC;gBACJ,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;YACjD,CAAC;QACL,CAAC,CAAC,CAAC;IACP,CAAC;IAED,0CAAoB,GAApB,UAAqB,KAAc;QAC/B,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvC,CAAC;IACD,qCAAe,GAAf,UAAgB,KAAc;QAC1B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEG,qCAAe,GAAf;QACI,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;IACjF,CAAC;IAED,+CAAyB,GAAzB;QAAA,iBA8BC;QA7BG,IAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE1D,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;YACxB,oCAAoC;YACpC,qEAAqE;YACrE,qDAAqD;YAErD,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,iDAAiD,CAAC;iBAClE,IAAI,CACD,0DAAG,CACH,cAAI;gBACJ,EAAE,CAAC,CAAC,IAAI,YAAY,MAAM,CAAC,CAAC,CAAC;oBACzB,KAAI,CAAC,YAAY,CAAC,IAAI,CAAQ,IAAI,CAAC,CAAC;oBACpC,uDAAuD;gBAC3D,CAAC;gBAAC,IAAI,CAAC,CAAC;oBACJ,KAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;gBACzC,CAAC;YACL,CAAC,CACJ,CAAC;iBACD,IAAI,CACD,iEAAU,CAAC,eAAK,IAAI,YAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAI,CAAC,EAA7B,CAA6B,CAAC,CACnD;iBACE,SAAS,EAAE,CAAC;QACrB,CAAC;QAAC,IAAI,CAAC,CAAC;YACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IAED,4BAAM,GAAN;QACI,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAC,EAAE,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAC,CAAC,CAAC;QAC9E,cAAc,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;QAE3C,IAAM,OAAO,GAAG,EAAE,OAAO,EAAE,IAAI,gEAAW,CAAC,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;QAErF,qDAAqD;QACrD,MAAM,CAAC,IAAI,CAAC;IAChB,CAAC;IAED,+BAAS,GAAT,UAAU,EAAU;QAChB,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;YAC5D,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACnE,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC;oBACpD,MAAM,CAAC,IAAI,CAAC;gBAChB,CAAC;YACL,CAAC;QACL,CAAC;QACD,MAAM,CAAC,KAAK,CAAC;IACjB,CAAC;IACD,wCAAkB,GAAlB;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,mBAAmB,CAAC;QAC/B,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC;QAC5B,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,gBAAgB,CAAC;QAC5B,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,cAAc,CAAC;QAC1B,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YACrB,MAAM,CAAC,eAAe,CAAC;QAC3B,CAAC;QACD,EAAE,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACtB,MAAM,CAAC,sBAAsB,CAAC;QAClC,CAAC;QACD,MAAM,CAAC,mBAAmB,CAAC;IAC/B,CAAC;IAED,mCAAa,GAAb;QACI,EAAE,CAAC,CAAC,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,UAAU,GAAG,CAAE,CAAC,CAAC,CAAC;YACpE,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,UAAU,CAAC;QACnD,CAAC;QACD,MAAM,CAAC,CAAC,CAAC;IACb,CAAC;IAED,8BAAQ,GAAR;QACI,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAE7B,IAAM,MAAM,GAAG,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;QACvD,IAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE1D,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YACV,IAAI,CAAC,MAAM,EAAE,CAAC;YACd,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;QACzC,CAAC;QACD,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;YACb,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACzC,CAAC;QACD,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;IACnD,CAAC;IAtLQ,WAAW;QADvB,gEAAU,EAAE;yCAgBS,+DAAU;YACR,sDAAM;OAhBjB,WAAW,CAuLvB;IAAD,kBAAC;CAAA;AAvLuB;;;;;;;;;;;;;;ACTxB;AAAA,gFAAgF;AAChF,2EAA2E;AAC3E,gEAAgE;AAEzD,IAAM,WAAW,GAAG;IACzB,UAAU,EAAE,KAAK;CAClB,CAAC;AAEF;;;;;GAKG;AACH,mEAAmE;;;;;;;;;;;;;;;;;;ACdpB;AAC4B;AAE9B;AACY;AAEzD,EAAE,CAAC,CAAC,qEAAW,CAAC,UAAU,CAAC,CAAC,CAAC;IAC3B,oEAAc,EAAE,CAAC;AACnB,CAAC;AAED,gGAAsB,EAAE,CAAC,eAAe,CAAC,yDAAS,CAAC;KAChD,KAAK,CAAC,aAAG,IAAI,cAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAhB,CAAgB,CAAC,CAAC","file":"main.js","sourcesContent":["var map = {\n\t\"./user/user.module\": [\n\t\t\"./src/app/user/user.module.ts\",\n\t\t\"user-user-module\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error('Cannot find module \"' + req + '\".');\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar module = __webpack_require__(ids[0]);\n\t\treturn module;\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = \"./src/$$_lazy_route_resource lazy recursive\";\nmodule.exports = webpackAsyncContext;","module.exports = \".content {\\r\\n margin: 40px 0px 60px 0px;\\r\\n}\"","module.exports = \"\\r\\n\\r\\n\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\"","import { Component } from '@angular/core';\r\nimport { AuthService } from './user/shared/auth.service';\r\n\r\n@Component({\r\n selector: 'app-root',\r\n templateUrl: 'app.component.html',\r\n styleUrls: ['app.component.css']\r\n})\r\nexport class AppComponent {\r\n navIsVisible = false;\r\n\r\n constructor(private auth: AuthService) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.auth.checkAuthenticationStatus();\r\n }\r\n\r\n onNavbarToggle(isNavbarExpanded: boolean) {\r\n this.navIsVisible = isNavbarExpanded;\r\n }\r\n\r\n}\r\n","import { BrowserModule } from '@angular/platform-browser';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\n\nimport { AppRoutes } from './app.routes';\n\nimport { AppComponent } from './app.component';\nimport { NavBarComponent } from './nav/nav-bar.component';\nimport { AngularFileUploaderModule } from 'angular-file-uploader';\n\nimport {\n DashboardComponent,\n VersionComponent\n} from './home/index';\n\nimport {\n ProductListComponent,\n ProductThumbnailComponent,\n ProductDetailsComponent, ProductDetailsModelinfoComponent, ProductDetailsImagesComponent,\n ProductsService,\n ProductRouteActivator,\n ProductListRouteActivator,\n ProductCreateComponent,\n FilterProductsPipeHasImages,\n FilterProductsPipeNoImages\n} from './products/index';\n\nimport { Error404Component } from './errors/404.component';\nimport { AuthService } from './user/shared/auth.service';\nimport { AuthInterceptor } from './user/shared/auth.interceptor';\nimport { HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';\nimport { NavTitleComponent } from './nav/nav-title.component';\nimport { NavigationService } from './nav/nav.service';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FilterProductsPipe } from './products/shared/products-filter.pipe';\n\n@NgModule({\n declarations: [\n AppComponent,\n NavBarComponent,\n NavTitleComponent,\n DashboardComponent,\n VersionComponent,\n ProductListComponent,\n ProductThumbnailComponent,\n ProductDetailsComponent,\n ProductDetailsModelinfoComponent,\n ProductDetailsImagesComponent,\n ProductCreateComponent,\n Error404Component,\n FilterProductsPipe,\n FilterProductsPipeHasImages,\n FilterProductsPipeNoImages\n ],\n imports: [\n BrowserModule,\n RouterModule.forRoot(AppRoutes),\n HttpClientModule,\n AngularFileUploaderModule,\n ReactiveFormsModule.withConfig({warnOnNgModelWithFormControl: 'never'})\n ],\n providers: [\n ProductsService,\n ProductRouteActivator,\n ProductListRouteActivator,\n AuthService,\n NavigationService,\n { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true }\n ],\n bootstrap: [AppComponent]\n})\nexport class AppModule { }\n","import { Routes } from '@angular/router';\r\nimport { Error404Component } from './errors/404.component';\r\nimport {\r\n ProductListComponent,\r\n ProductDetailsComponent,\r\n ProductRouteActivator,\r\n ProductListRouteActivator,\r\n ProductCreateComponent\r\n} from './products/index';\r\nimport { DashboardComponent } from './home';\r\n\r\nexport const AppRoutes: Routes = [\r\n { path: 'products/new', component: ProductCreateComponent },\r\n { path: 'products/:id', component: ProductListComponent, canActivate: [ProductListRouteActivator] },\r\n { path: 'products/details/:id', component: ProductDetailsComponent, canActivate: [ProductRouteActivator] },\r\n { path: 'home', component: DashboardComponent },\r\n { path: '404', component: Error404Component },\r\n { path: '', redirectTo: '/home', pathMatch: 'full' },\r\n { path: 'user', loadChildren: './user/user.module#UserModule' },\r\n { path: '**', component: DashboardComponent }\r\n];\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n template: `\r\n

404

\r\n `,\r\n styles: [`\r\n .errorMessage {\r\n margin-top: 150px;\r\n font-size: 170px;\r\n text-align: center;\r\n }`]\r\n})\r\nexport class Error404Component {\r\n constructor() {\r\n\r\n }\r\n}\r\n","module.exports = \".link {\\r\\n height: 146px;\\r\\n width: 146px;\\r\\n background-color: #6F6F6F;\\r\\n border-radius: 4px;\\r\\n margin-left: auto;\\r\\n margin-right: auto;\\r\\n color: #fff;\\r\\n padding: 5px 20px;\\r\\n}\\r\\n.link .image {\\r\\n font-size: 70px;\\r\\n text-align: center;\\r\\n}\\r\\n.link .name {\\r\\n font-size: 16px;\\r\\n text-align: center;\\r\\n}\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Produkter
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Log ud
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n\"","\r\nimport { Component } from '@angular/core';\r\nimport { NavigationService } from 'src/app/nav/nav.service';\r\nimport { AuthService } from 'src/app/user/shared/auth.service';\r\n\r\n@Component({\r\n selector: 'app-dashboard',\r\n templateUrl: 'dashboard.component.html',\r\n styleUrls: ['dashboard.component.css']\r\n\r\n})\r\nexport class DashboardComponent {\r\n navProductList = '';\r\n\r\n constructor(private nav: NavigationService, private auth: AuthService) {\r\n this.nav.setPageTitle('Dashboard');\r\n\r\n this.nav.setNavButtonLeft(0);\r\n this.nav.setNavButtonMain(0);\r\n this.nav.setNavButtonRight(0);\r\n\r\n this.navProductList = this.auth.getFirstModuleLink();\r\n }\r\n}\r\n","export * from './dashboard/dashboard.component';\r\nexport * from './version.component';\r\n","import { Component } from '@angular/core';\r\n\r\n@Component ({\r\n selector: 'app-version',\r\n template: '
Version: {{version}}
',\r\n styles: [`\r\n .version-info {\r\n position: absolute;\r\n left: 0px;\r\n right: 0px;\r\n bottom: 80px;\r\n width: 100%;\r\n text-align: center;\r\n font-size: 11px;\r\n color: #999999;\r\n }\r\n `]\r\n})\r\nexport class VersionComponent {\r\n version = '1.0.5';\r\n}\r\n","module.exports = \".nav-bar {\\r\\n background-color: rgba(100,100,100,0.8);\\r\\n position: fixed;\\r\\n bottom: 0px;\\r\\n left: 0px;\\r\\n width:100%;\\r\\n min-height: 50px;\\r\\n z-index: 1000;\\r\\n}\\r\\n.nav-bar-main {\\r\\n display: flex;\\r\\n justify-content: space-between;\\r\\n align-items: center;\\r\\n}\\r\\n.nav-bar .nav-bar-main-left,\\r\\n.nav-bar .nav-bar-main-right{\\r\\n padding: 0px 20px;\\r\\n font-size: 32px;\\r\\n color: #eee;\\r\\n width: 60px;\\r\\n}\\r\\n.nav-bar .nav-bar-main-info {\\r\\n width: 30px;\\r\\n font-size: 18px;\\r\\n color: #aaa;\\r\\n}\\r\\n.nav-bar .nav-bar-main-info-counter {\\r\\n position: relative;\\r\\n left: 2px;\\r\\n top: 5px;\\r\\n font-size: 14px;\\r\\n}\\r\\n/* .nav-bar .nav-bar-main-center {\\r\\n}\\r\\n */\\r\\n.nav-bar .nav-bar-main-center .circle {\\r\\n position: relative;\\r\\n top: -10px;\\r\\n font-size: 28px;\\r\\n color: #fff;\\r\\n border: 3px solid #444;\\r\\n background: #006EB7;\\r\\n border-radius: 50%;\\r\\n height: 64px;\\r\\n width: 64px;\\r\\n display: flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n box-shadow: 2px 2px 4px rgba(100,100,100,0.8);\\r\\n}\\r\\n.nav-bar .nav-bar-main-center img {\\r\\n max-width: 32px;\\r\\n height: auto;\\r\\n}\\r\\n.nav-bar-main-right .fa-stack-2x {\\r\\n font-size: inherit;\\r\\n position: relative;\\r\\n}\\r\\n.nav-bar-main-right .fa-stack-1x {\\r\\n font-size: 0.5em;\\r\\n color: rgba(100,100,100,1);\\r\\n}\\r\\n.nav-bar-sub {\\r\\n min-height: 80px;\\r\\n background-color: rgba(0, 110, 183, 0.294);\\r\\n border-top: 1px solid #444;\\r\\n border-bottom: 1px solid #444;\\r\\n\\r\\n /* Make this scrollable when needed */\\r\\n overflow-x: auto;\\r\\n /* We don't want vertical scrolling */\\r\\n overflow-y: hidden;\\r\\n /* For WebKit implementations, provide inertia scrolling */\\r\\n -webkit-overflow-scrolling: touch;\\r\\n /* We don't want internal inline elements to wrap */\\r\\n white-space: nowrap;\\r\\n /* Make an auto-hiding scroller for the 3 people using a IE */\\r\\n -ms-overflow-style: -ms-autohiding-scrollbar;\\r\\n /* Remove the default scrollbar for WebKit implementations */\\r\\n -webkit-scrollbar: none;\\r\\n padding: 15px;\\r\\n }\\r\\n.nav-bar-sub-link {\\r\\n background-color: rgba(68, 68, 68, 0.753);\\r\\n border-radius: 50%;\\r\\n height: 48px;\\r\\n width: 48px;\\r\\n display: inline-flex;\\r\\n justify-content: center;\\r\\n align-items: center;\\r\\n margin: 0px 15px;\\r\\n color: #fff;\\r\\n}\\r\\n.nav-bar-sub-link.active{\\r\\n background-color: rgba(243, 111, 3, 0.637);\\r\\n}\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n 0\\\">\\r\\n \\r\\n {{navInfoRight}}\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\"","import { Component, Output, EventEmitter } from '@angular/core';\r\nimport { AuthService } from '../user/shared/auth.service';\r\nimport { NavigationService } from './nav.service';\r\nimport { ProductsService, IProduct } from '../products';\r\n\r\n@Component({\r\n selector: 'app-nav-bar',\r\n templateUrl: 'nav-bar.component.html',\r\n styleUrls: ['nav-bar.component.css']\r\n})\r\nexport class NavBarComponent {\r\n @Output() navExpanded = new EventEmitter();\r\n\r\n isVisible = false;\r\n\r\n showCaravan = false;\r\n showTent = false;\r\n showBoat = false;\r\n showMC = false;\r\n showCar = false;\r\n showWatersport = false;\r\n\r\n pageTitle = '';\r\n\r\n navButtonLeft = 0;\r\n navButtonMain = 0;\r\n navButtonRight = 0;\r\n navInfoLeft = 0;\r\n navInfoRight = 0;\r\n\r\n navLinkLeft = '';\r\n navLinkMain = '/home';\r\n navLinkRight = '';\r\n\r\n selectedProduct: IProduct;\r\n\r\n constructor(\r\n private auth: AuthService,\r\n private nav: NavigationService,\r\n private prod: ProductsService) {\r\n this.navExpanded.emit(this.isVisible);\r\n\r\n nav.page_title$.subscribe(title => this.pageTitle = title);\r\n\r\n nav.nav_button_left$.subscribe(bkey => this.navButtonLeft = bkey);\r\n nav.nav_button_main$.subscribe(bkey => this.navButtonMain = bkey);\r\n nav.nav_button_right$.subscribe(bkey => this.navButtonRight = bkey);\r\n\r\n\r\n prod.selected_product$.subscribe(product => this.selectedProduct = product);\r\n prod.selected_product_updated$.subscribe(() => { this.navButtonRight = 3; });\r\n\r\n prod.file_upload_count_updated$.subscribe(count => this.navInfoRight = count);\r\n\r\n /* nav.nav_link_left$.subscribe(url => this.navLinkLeft = url);\r\n nav.nav_link_main$.subscribe(url => this.navLinkMain = url);\r\n nav.nav_link_right$.subscribe(url => this.navLinkRight = url); */\r\n\r\n auth.currentUser.subscribe(() => {\r\n this.showCaravan = this.auth.hasModule(12);\r\n this.showTent = this.auth.hasModule(11);\r\n this.showBoat = this.auth.hasModule(21);\r\n this.showMC = this.auth.hasModule(22);\r\n this.showCar = this.auth.hasModule(23);\r\n this.showWatersport = this.auth.hasModule(211);\r\n });\r\n }\r\n\r\n toggle() {\r\n this.isVisible = !this.isVisible;\r\n\r\n this.navExpanded.emit(this.isVisible);\r\n }\r\n\r\n click_left() {\r\n this.nav.clickNavButtonLeft();\r\n }\r\n click_main() {\r\n this.toggle();\r\n this.nav.clickNavButtonMain();\r\n }\r\n click_right() {\r\n this.nav.clickNavButtonRight();\r\n }\r\n\r\n click_fileupload(e) {\r\n this.prod.getFileDetails(e, this.selectedProduct.Id);\r\n }\r\n}\r\n","module.exports = \".nav-title {\\r\\n position: fixed;\\r\\n top: 0px;\\r\\n left: 0px;\\r\\n width: 100%;\\r\\n background-color: rgba(255,255,255,0.8);\\r\\n font-size: 20px;\\r\\n font-weight: 700;\\r\\n z-index: 900;\\r\\nheight: 32px;\\r\\ndisplay: flex;\\r\\njustify-content: center;\\r\\nalign-items: center;\\r\\n}\"","module.exports = \"
{{pageTitle}}
\"","import { Component } from '@angular/core';\r\nimport { NavigationService } from './nav.service';\r\n\r\n@Component({\r\n selector: 'app-nav-title',\r\n templateUrl: 'nav-title.component.html',\r\n styleUrls: ['nav-title.component.css']\r\n})\r\nexport class NavTitleComponent {\r\n pageTitle = '';\r\n\r\n constructor(private nav: NavigationService) {\r\n nav.page_title$.subscribe(title => this.pageTitle = title);\r\n }\r\n\r\n}\r\n","import { Injectable, Output, EventEmitter } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\n\r\n@Injectable()\r\nexport class NavigationService {\r\n @Output() click_button_left: EventEmitter = new EventEmitter();\r\n @Output() click_button_main: EventEmitter = new EventEmitter();\r\n @Output() click_button_right: EventEmitter = new EventEmitter();\r\n\r\n // Observable string sources\r\n private page_title = new Subject();\r\n\r\n private nav_button_left = new Subject();\r\n private nav_button_main = new Subject();\r\n private nav_button_right = new Subject();\r\n\r\n private nav_info_left = new Subject();\r\n private nav_info_right = new Subject();\r\n\r\n // Observable string streams\r\n page_title$ = this.page_title.asObservable();\r\n\r\n nav_button_left$ = this.nav_button_left.asObservable();\r\n nav_button_main$ = this.nav_button_main.asObservable();\r\n nav_button_right$ = this.nav_button_right.asObservable();\r\n\r\n nav_info_left$ = this.nav_info_left.asObservable();\r\n nav_info_right$ = this.nav_info_right.asObservable();\r\n\r\n constructor() { }\r\n\r\n // Service message commands\r\n setPageTitle(title: string) {\r\n this.page_title.next(title);\r\n }\r\n\r\n setNavButtonLeft(bkey: number) {\r\n this.nav_button_left.next(bkey);\r\n }\r\n setNavButtonMain(bkey: number) {\r\n this.nav_button_main.next(bkey);\r\n }\r\n setNavButtonRight(bkey: number) {\r\n this.nav_button_right.next(bkey);\r\n }\r\n\r\n clickNavButtonLeft() {\r\n this.click_button_left.emit(true);\r\n }\r\n clickNavButtonMain() {\r\n this.click_button_main.emit(true);\r\n }\r\n clickNavButtonRight() {\r\n this.click_button_right.emit(true);\r\n }\r\n}\r\n","module.exports = \"

Nyt produkt

\"","import { Component, OnInit } from '@angular/core';\r\nimport { ProductsService } from '../shared/products.service';\r\nimport { ActivatedRoute } from '@angular/router';\r\n\r\n@Component({\r\n templateUrl: './product-create.component.html'\r\n})\r\nexport class ProductCreateComponent implements OnInit{\r\n product: any\r\n\r\n constructor(private productsService: ProductsService, private route:ActivatedRoute) {\r\n \r\n }\r\n\r\n ngOnInit() {\r\n //this.product = this.productsService.getProduct(+this.route.snapshot.params['id'])\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n Billeder ({{product.Images.length}})\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n \\r\\n\\r\\n
\\r\\n
\"","import { Component, Input, EventEmitter, Output } from '@angular/core';\r\nimport { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { IProduct, ProductsService } from '../shared';\r\nimport { NavigationService } from 'src/app/nav/nav.service';\r\n\r\n@Component({\r\n selector: 'app-product-details-images',\r\n templateUrl: './product-details-images.component.html'\r\n})\r\nexport class ProductDetailsImagesComponent {\r\n @Input() product: IProduct;\r\n @Output() imgUploaded = new EventEmitter();\r\n @Output() imgDeleted = new EventEmitter();\r\n\r\n showImages: boolean;\r\n\r\n constructor (\r\n private httpService: HttpClient,\r\n private nav: NavigationService,\r\n private prod: ProductsService\r\n ) {\r\n this.showImages = false;\r\n\r\n this.nav.click_button_right.subscribe(() => {\r\n // alert('baah');\r\n this.isUploadVisible = !this.isUploadVisible;\r\n this.showImages = !this.showImages;\r\n });\r\n }\r\n\r\n myFiles: any [] = [];\r\n sMsg = '';\r\n isUploadVisible = false;\r\n\r\n getFileDetails (e) {\r\n // console.log (e.target.files);\r\n for (let i = 0; i < e.target.files.length; i++) {\r\n this.myFiles.push(e.target.files[i]);\r\n }\r\n }\r\n\r\n deleteImage(imageId: number) {\r\n this.httpService.delete('https://adminapi.danbase.dk/v1/products/' + this.product.Id + '/images/' + imageId).subscribe(\r\n () => {\r\n this.imgDeleted.emit(true);\r\n }\r\n );\r\n }\r\n\r\n uploadFiles () {\r\n const frmData = new FormData();\r\n\r\n for (let i = 0; i < this.myFiles.length; i++) {\r\n frmData.append('fileUpload', this.myFiles[i]);\r\n }\r\n\r\n const options = {headers: new HttpHeaders({'Content-Type': 'false'})};\r\n\r\n this.httpService.post('https://adminapi.danbase.dk/v1/products/' + this.product.Id + '/images', frmData, options).subscribe(\r\n data => {\r\n this.imgUploaded.emit(true);\r\n this.isUploadVisible = false;\r\n\r\n // SHOW A MESSAGE RECEIVED FROM THE WEB API.\r\n this.sMsg = data as string;\r\n console.log (this.sMsg);\r\n },\r\n (err: HttpErrorResponse) => {\r\n console.log (err.message); // SHOW ERRORS IF ANY.\r\n }\r\n );\r\n }\r\n}\r\n","module.exports = \"
\\r\\n
\\r\\n
Prissætning
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Pris
\\r\\n
{{product?.Price| number}} kr.
\\r\\n
\\r\\n
0\\\">\\r\\n
Førpris
\\r\\n
{{product?.BeforePrice |number}} kr.
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Producent - Model
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Produktionsår
\\r\\n
{{product?.Year}}
\\r\\n
\\r\\n
\\r\\n
Producent
\\r\\n
{{product?.ManufacturerName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Model
\\r\\n
{{product?.ModelName}}
\\r\\n
\\r\\n
\\r\\n
Type
\\r\\n
{{product?.TypeName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Variant
\\r\\n
{{product?.VariantName}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Beskrivelse
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Promotiontekst
\\r\\n
{{product?.PromotionText}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Beskrivelsestekst
\\r\\n
{{product?.Description}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n
Oplysninger
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Vognnummer
\\r\\n
{{product?.StockNo}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Oprettet d.
\\r\\n
{{product?.CreatedAt}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Url
\\r\\n \\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
Video
\\r\\n
{{product?.VideoUrl}}
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n\\r\\n
\\r\\n\"","import { Component, Input } from '@angular/core';\r\nimport { IProduct } from '../shared';\r\n\r\n@Component({\r\n selector: 'app-product-details-modelinfo',\r\n templateUrl: './product-details-modelinfo.component.html'\r\n})\r\nexport class ProductDetailsModelinfoComponent {\r\n @Input() product: IProduct;\r\n\r\n showPriceInfo: boolean;\r\n showModelInfo: boolean;\r\n\r\n constructor() {\r\n this.showPriceInfo = true;\r\n this.showModelInfo = true;\r\n }\r\n}\r\n","module.exports = \":host ::ng-deep .product-details .label {\\r\\n padding-top: 8px;\\r\\n font-size: 12px;\\r\\n color: #666;\\r\\n}\\r\\n:host ::ng-deep .product-details .value {\\r\\n text-align: left;\\r\\n font-size: 16px;\\r\\n word-wrap: break-word;\\r\\n}\\r\\n:host ::ng-deep .product-details .value.price {\\r\\n font-size: 24px;\\r\\n font-weight: 600;\\r\\n}\\r\\n:host ::ng-deep .product-details .value.before-price {\\r\\n text-decoration: line-through;\\r\\n}\\r\\n:host ::ng-deep .product-details .value.description {\\r\\n white-space: pre-wrap;\\r\\n text-align: justify;\\r\\n text-justify: inter-word;\\r\\n}\\r\\n/* :host ::ng-deep .product-details {\\r\\n max-width: 300px;\\r\\n} */\\r\\n:host ::ng-deep .product-details .category {\\r\\n font-weight: bold;\\r\\n font-size: 16px;\\r\\n text-transform: uppercase;\\r\\n margin-top: 15px;\\r\\n margin-bottom: 5px;\\r\\n padding: 5px;\\r\\n background-color: #ccc;\\r\\n/* border-bottom: 2px solid #006EB7;\\r\\n */}\\r\\n:host ::ng-deep .product-details .category .fold-icon {\\r\\n display: inline-block;\\r\\n}\\r\\n:host ::ng-deep .product-details .details {\\r\\n margin-bottom: 20px;\\r\\n}\"","module.exports = \"\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\nimport { ProductsService } from '../shared/products.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IProduct } from '../shared';\r\nimport { NavigationService } from 'src/app/nav/nav.service';\r\n\r\n@Component({\r\n templateUrl: './product-details.component.html',\r\n styleUrls: ['./product-details.component.css']\r\n})\r\nexport class ProductDetailsComponent implements OnInit {\r\n product: IProduct;\r\n isEditable = false;\r\n afuConfig: any;\r\n productImage: string;\r\n\r\n constructor(\r\n private prod: ProductsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private nav: NavigationService\r\n ) { }\r\n\r\n ngOnInit() {\r\n this.getProduct();\r\n\r\n this.prod.selected_product_updated$.subscribe(() => { this.getProduct(); });\r\n\r\n this.nav.setNavButtonRight(3);\r\n }\r\n\r\n onImagesUploaded(isImgUploaded: boolean) {\r\n if (isImgUploaded) { this.getProduct(); }\r\n }\r\n\r\n onImagesDeleted(isImgDeleted: boolean) {\r\n if (isImgDeleted) { this.getProduct(); }\r\n }\r\n\r\n getProduct() {\r\n this.prod.getProduct(+this.route.snapshot.params['id']).subscribe(data => {\r\n this.product = data;\r\n this.productImage = this.prod.getProductImageUri(data, 99);\r\n if (this.productImage) {\r\n console.log('Hej, her er dit billede: ' + this.productImage);\r\n } else {\r\n this.productImage = this.prod.getProductImageUri(data, 2);\r\n }\r\n if (!this.productImage) {\r\n this.productImage = this.prod.getProductImageUri(data, 1);\r\n }\r\n\r\n this.nav.setPageTitle(this.product.ModelDescription);\r\n\r\n this.nav.setNavButtonLeft(1);\r\n this.nav.setNavButtonMain(this.product.ProductGroupId);\r\n this.nav.setNavButtonRight(3);\r\n\r\n this.prod.setSelectedProduct(this.product);\r\n\r\nthis.nav.click_button_left.subscribe(() => {\r\n this.router.navigate(['/products/' + this.prod.getProductGroupLink(this.product.ProductGroupId)]);\r\n});\r\n\r\n/* const token = sessionStorage.getItem('danbase-token');\r\n\r\n this.afuConfig = {\r\n multiple: true,\r\n formatsAllowed: '.jpg,.png',\r\n maxSize: '20',\r\n uploadAPI: {\r\n url: 'https://adminapi.danbase.dk/v1/products/' + this.product.Id + '/images',\r\n headers: {\r\n 'Content-Type' : 'text/plain;charset=UTF-8',\r\n 'Authorization' : `Bearer ${token}`\r\n }\r\n },\r\n theme: 'dragNDrop',\r\n hideProgressBar: false,\r\n hideResetBtn: true,\r\n hideSelectBtn: false\r\n };\r\n */ },\r\n error => this.router.navigate(['/']));\r\n }\r\n\r\n getProductGroupLink() {\r\n if (this.product) {\r\nreturn this.prod.getProductGroupLink(this.product.ProductGroupId);\r\n }\r\n return false;\r\n }\r\n}\r\n","export * from './list/product-list.component';\r\nexport * from './details/product-details.component';\r\nexport * from './details/product-details-modelinfo.component';\r\nexport * from './details/product-details-images.component';\r\nexport * from './product-route-activator.service';\r\nexport * from './list/product-list-route-activator.service';\r\nexport * from './list/product-list-resolver.service';\r\nexport * from './create/product-create.component';\r\nexport * from './thumbnail/product-thumbnail.component';\r\nexport * from './shared/index';\r\nexport * from './shared/products-filter-hasimages.pipe';\r\nexport * from './shared/products-filter-noimages.pipe';\r\n","import { Injectable } from '@angular/core';\r\nimport { Resolve } from '@angular/router';\r\nimport { ProductsService } from '../shared/products.service';\r\n\r\n@Injectable()\r\nexport class ProductListResolver implements Resolve {\r\n constructor (private productService: ProductsService) {\r\n\r\n }\r\n\r\n resolve() {\r\n return false; // this.productService.getProducts().map(products => products)\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { ProductsService } from '../shared/products.service';\r\n\r\n@Injectable()\r\nexport class ProductListRouteActivator implements CanActivate {\r\n constructor(private productService: ProductsService, private router: Router) {\r\n\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n const productExists = this.productService.checkProductName(route.params['id']);\r\n\r\n if (!productExists) {\r\n this.router.navigate(['/404']);\r\n }\r\n return productExists;\r\n }\r\n}\r\n","module.exports = \".header {\\r\\n font-weight: 700;\\r\\n position: -webkit-sticky;\\r\\n position: sticky;\\r\\n top: 32px;\\r\\n background: #fff;\\r\\n z-index:10;\\r\\n font-style: italic;\\r\\n opacity: 0.95;\\r\\n color: #666;\\r\\n}\\r\\n\\r\\n.loading {\\r\\n font-size: 96px;\\r\\n padding: 60px 0px;\\r\\n text-align: center;\\r\\n color: #aaa;\\r\\n}\\r\\n\\r\\nh3 {\\r\\n font-size: 16px;\\r\\n font-weight: 700;\\r\\n margin: 0px;\\r\\n padding: 10px 0px;\\r\\n}\"","module.exports = \"
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n
\\r\\n \\r\\n
\\r\\n \\r\\n
\\r\\n\\r\\n
\\r\\n
\\r\\n

Viser {{(products | filterProductsPipe:filter:orderby)?.length}} produkter

\\r\\n
\\r\\n
\\r\\n
\\r\\n
Mærke
\\r\\n
År
\\r\\n
Pris
\\r\\n
\\r\\n \\r\\n
\\r\\n\"","import { Component, OnInit } from '@angular/core';\r\nimport { ProductsService } from '../shared/products.service';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { IProduct } from '../shared';\r\nimport { NavigationService } from 'src/app/nav/nav.service';\r\n\r\n@Component({\r\n selector: 'app-product-list',\r\n templateUrl: './product-list.component.html',\r\n styleUrls: ['product-list.component.css']\r\n})\r\nexport class ProductListComponent implements OnInit {\r\n products: IProduct[];\r\n showAll = true;\r\n showMissingImages = false;\r\n showLatest = false;\r\n filter = 'all';\r\n orderby = 'model';\r\n\r\n constructor(\r\n private productsService: ProductsService,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n private nav: NavigationService\r\n ) {\r\n\r\n }\r\n\r\n ngOnInit() {\r\n this.route.paramMap.subscribe(param => {\r\n // this.title = param.get('id') + \"\"\r\n this.setTitle(param.get('id'));\r\n this.products = [];\r\n this.productsService.getProducts(param.get('id'))\r\n .subscribe(products => {\r\n this.products = products;\r\n });\r\n\r\n this.nav.setNavButtonLeft(1);\r\n this.nav.click_button_left.subscribe(() => {\r\n this.router.navigate(['/home/']);\r\n });\r\n // this.nav.setNavLinkLeft('/home');\r\n\r\n this.nav.setNavButtonRight(0);\r\n });\r\n }\r\n\r\n click_filter(button_name: string) {\r\n this.showAll = false;\r\n this.showLatest = false;\r\n this.showMissingImages = false;\r\n\r\n switch (button_name) {\r\n case 'noimage':\r\n this.showMissingImages = true;\r\n this.orderby = 'model';\r\n this.filter = 'noimage';\r\n break;\r\n case 'latest':\r\n this.showLatest = true;\r\n this.orderby = 'created';\r\n this.filter = 'lastest';\r\n break;\r\n default:\r\n this.showAll = true;\r\n this.orderby = 'model';\r\n this.filter = 'all';\r\n break;\r\n }\r\n }\r\n\r\n setTitle(id: string) {\r\n switch (id) {\r\n case 'caravan':\r\n this.nav.setNavButtonMain(1);\r\n // this.nav.setNavLinkMain('products/caravan');\r\n this.nav.setPageTitle('Campingvogne');\r\n break;\r\n case 'tent':\r\n this.nav.setNavButtonMain(2);\r\n // this.nav.setNavLinkMain('products/tent');\r\n this.nav.setPageTitle('Telte');\r\n break;\r\n case 'boat':\r\n this.nav.setNavButtonMain(3);\r\n // this.nav.setNavLinkMain('products/boat');\r\n this.nav.setPageTitle('Både');\r\n break;\r\n case 'mc':\r\n this.nav.setNavButtonMain(4);\r\n // this.nav.setNavLinkMain('products/mc');\r\n this.nav.setPageTitle('Motorcykler');\r\n break;\r\n case 'car':\r\n this.nav.setNavButtonMain(5);\r\n // this.nav.setNavLinkMain('products/car');\r\n this.nav.setPageTitle('Biler');\r\n break;\r\n\r\n default:\r\n this.nav.setNavButtonMain(0);\r\n break;\r\n }\r\n }\r\n\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { CanActivate, ActivatedRouteSnapshot, Router } from '@angular/router';\r\nimport { ProductsService } from './shared/products.service';\r\n\r\n@Injectable()\r\nexport class ProductRouteActivator implements CanActivate {\r\n constructor(\r\n private productService: ProductsService,\r\n private router: Router\r\n ) {\r\n\r\n }\r\n\r\n canActivate(route: ActivatedRouteSnapshot) {\r\n this.productService.getProduct(+route.params['id']).subscribe(prod => {\r\n if (prod != null) {\r\n return true;\r\n }\r\n this.router.navigate(['/home']);\r\n },\r\n err => {\r\n this.router.navigate(['/user/login']);\r\n });\r\n return true;\r\n }\r\n}\r\n","export * from './products.service'\r\nexport * from './product.model'\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { IProduct } from './index';\r\n\r\n@Pipe({ name: 'filterProductsPipeHasImages' })\r\nexport class FilterProductsPipeHasImages implements PipeTransform {\r\n transform(products: IProduct[]) {\r\n if (!products || products === null) { return products; }\r\n return products.filter(product => product.StatusCode === 1 && product.ImageCount > 0);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { IProduct } from './index';\r\n\r\n@Pipe({ name: 'filterProductsPipeNoImages' })\r\nexport class FilterProductsPipeNoImages implements PipeTransform {\r\n transform(products: IProduct[]) {\r\n if (!products || products === null) { return products; }\r\n return products.filter(product => product.StatusCode === 1 && product.ImageCount === 0);\r\n }\r\n}\r\n","import { Pipe, PipeTransform } from '@angular/core';\r\n\r\nimport { IProduct } from './index';\r\n\r\n@Pipe({ name: 'filterProductsPipe' })\r\nexport class FilterProductsPipe implements PipeTransform {\r\n transform(products: IProduct[], filter: string, orderby: string, search: string) {\r\n let filteredProducts = products;\r\n\r\n if (products == null) {\r\n return products;\r\n }\r\n\r\n // filter\r\n if (filter && filter === 'noimage') {\r\n // no images\r\n filteredProducts = products.filter(product =>\r\n product.StatusCode === 1 && product.ImageCount === 0\r\n );\r\n } else if (filter && filter === 'lastest') {\r\n // latest\r\n filteredProducts = products.filter(product =>\r\n product.StatusCode === 1 && new Date(product.CreatedAt).getMilliseconds() > (new Date().getMilliseconds())\r\n );\r\n } else {\r\n // all\r\n filteredProducts = products.filter(product => product.StatusCode === 1);\r\n }\r\n\r\n // orderby\r\n if (orderby && orderby === 'created') {\r\n filteredProducts = filteredProducts.sort(function (a, b) {\r\n if (a.CreatedAt < b.CreatedAt) {\r\n return -1;\r\n }\r\n if (a.CreatedAt > b.CreatedAt) {\r\n return 1;\r\n }\r\n return 0;\r\n });\r\n }\r\n\r\n\r\n return filteredProducts;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable, throwError, Subject } from 'rxjs';\r\nimport { IProduct } from './product.model';\r\nimport { HttpClient, HttpParams, HttpErrorResponse, HttpHeaders } from '@angular/common/http';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { AuthService } from 'src/app/user/shared/auth.service';\r\nimport { IProductImage } from './product-image.model';\r\n\r\n@Injectable()\r\nexport class ProductsService {\r\n private selected_product = new Subject();\r\n selected_product$ = this.selected_product.asObservable();\r\n\r\n private selected_product_updated = new Subject();\r\n selected_product_updated$ = this.selected_product_updated.asObservable();\r\n\r\n private file_upload_count = 0;\r\n private file_upload_count_updated = new Subject();\r\n file_upload_count_updated$ = this.file_upload_count_updated.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private auth: AuthService,\r\n ) { }\r\n\r\n private handleError(error: HttpErrorResponse, auth: AuthService) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n console.log('trying to relogin');\r\n // this.auth.checkAuthenticationStatus();\r\n auth.logout();\r\n auth.checkAuthenticationStatus();\r\n\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n\r\n // return an observable with a user-facing error message\r\n return throwError(\r\n 'Something bad happened; please try again later.');\r\n }\r\n setSelectedProduct(product: IProduct) {\r\n this.selected_product.next(product);\r\n }\r\n\r\n getProducts(name: string): Observable {\r\n // const _token = this.auth.getToken(); // sessionStorage.getItem('danbase-token');\r\n const groupId = this.getProductGroupId(name);\r\n\r\n if (groupId > 0) {\r\n return this.http.get('https://adminapi.danbase.dk/v1/products',\r\n { params: new HttpParams().set('ProductGroupId', '' + groupId) })\r\n .pipe(\r\n tap(results => {\r\n results.sort((x, y) => x.ModelDescription < y.ModelDescription ? -1 : 1);\r\n }))\r\n .pipe(\r\n catchError(error => this.handleError(error, this.auth))\r\n );\r\n }\r\n }\r\n\r\n getProduct(id: number): Observable {\r\n return this.http.get('https://adminapi.danbase.dk/v1/products/' + id).pipe(\r\n catchError(error => this.handleError(error, this.auth))\r\n );\r\n }\r\n\r\n\r\n checkProductName(name: string): boolean {\r\n console.log(name);\r\n return (this.getProductGroupId(name) > 0);\r\n }\r\n\r\n getProductGroupId(name: string): number {\r\n switch (name) {\r\n case 'caravan':\r\n return 1;\r\n case 'tent':\r\n return 2;\r\n case 'boat':\r\n return 3;\r\n case 'mc':\r\n return 4;\r\n case 'car':\r\n return 5;\r\n\r\n default:\r\n return -1;\r\n }\r\n }\r\n getProductGroupLink(groupId) {\r\n switch (groupId) {\r\n case 2:\r\n return 'tent';\r\n case 3:\r\n return 'boat';\r\n case 4:\r\n return 'mc';\r\n case 5:\r\n return 'car';\r\n default:\r\n return 'caravan';\r\n }\r\n }\r\n\r\n getProductImageUri(product: IProduct, imageFormat: number) {\r\n /* const baseUri = 'https://danbase.dk/Content/Resellers/' + this.auth.getResellerId() + '/'; */\r\n let image;\r\n\r\n console.log('Antal billeder: ' + product.Images.length);\r\n\r\n /* if (product.Images.length > 0 && imageFormat === 0) {\r\n imageFormat = product.Images[0].Formats.find(f => f.Id === 1 || f.Id === 2 || f.Id === 9).Id;\r\n } */\r\n product.Images.forEach(img => {\r\n if (!image) {\r\n console.log('i ' + img.Formats.length + ' formatter');\r\n image = this.getProductImageFormatUri(img, product.Id, imageFormat);\r\n }\r\n });\r\n\r\n return image ? image : '';\r\n }\r\n\r\n getProductImageFormatUri(productImage: IProductImage, productId: number, imageFormat: number) {\r\n const baseUri = 'https://danbase.dk/Content/Resellers/' + this.auth.getResellerId() + '/';\r\n let image;\r\n\r\n if (productImage && imageFormat === 0) {\r\n image = productImage.Formats.find(f => f.Id === 1 || f.Id === 2 || f.Id === 9);\r\n } else {\r\n image = productImage.Formats.find(f => f.Id === imageFormat);\r\n }\r\n\r\n return image ? baseUri + productId + '/' + image.Image : '';\r\n }\r\n\r\n getFileDetails(e, productId: number) {\r\n // console.log (e.target.files);\r\n const files: any[] = [];\r\n\r\n for (let i = 0; i < e.target.files.length; i++) {\r\n files.push(e.target.files[i]);\r\n }\r\n\r\n this.uploadFiles(productId, files);\r\n }\r\n uploadFiles(productId: number, files: any[]) {\r\n this.addUploadCounter(files.length);\r\n\r\n for (let i = 0; i < files.length; i++) {\r\n const frmData = new FormData();\r\n\r\n frmData.append('fileUpload', files[i]);\r\n\r\n const options = { headers: new HttpHeaders({ 'Content-Type': 'application/x-www-form-urlencoded' }) };\r\n console.log('uploading image');\r\n this.http.post('https://adminapi.danbase.dk/v1/products/' + productId + '/images/', frmData, options).subscribe(\r\n data => {\r\n\r\n // SHOW A MESSAGE RECEIVED FROM THE WEB API.\r\n const sMsg = data as string;\r\n console.log(sMsg);\r\n\r\n this.subUploadCounter(1);\r\n this.selected_product_updated.next(true);\r\n },\r\n (err: HttpErrorResponse) => {\r\n // This is done because of errors from HTTP options request on IOS devices\r\n this.subUploadCounter(1);\r\n this.selected_product_updated.next(true);\r\n }\r\n );\r\n }\r\n }\r\n\r\n addUploadCounter(files_count: number) {\r\n this.file_upload_count += files_count;\r\n this.file_upload_count_updated.next(this.file_upload_count);\r\n }\r\n subUploadCounter(files_count: number) {\r\n this.file_upload_count -= files_count;\r\n this.file_upload_count_updated.next(this.file_upload_count);\r\n }\r\n}\r\n\r\nconst PRODUCTS: IProduct[] = [];\r\n","module.exports = \".product-list-row{\\r\\n padding-top: 15px;\\r\\n padding-bottom: 15px;\\r\\n cursor: pointer;\\r\\n}\\r\\n.product-list-row:hover {\\r\\n border: 1px solid #cccccc;\\r\\n background-color: #eeeeee;\\r\\n}\"","module.exports = \"
\\r\\n
0\\\"> {{product.ModelDescription}}
\\r\\n
{{product.Year}}
\\r\\n
{{product.Price}} kr.
\\r\\n \\r\\n
\"","import { Component, Input } from '@angular/core';\r\nimport { IProduct } from '../shared';\r\n\r\n@Component({\r\n selector: 'app-product-thumbnail',\r\n templateUrl: './product-thumbnail.component.html',\r\n styleUrls: ['./product-thumbnail.component.css']\r\n})\r\nexport class ProductThumbnailComponent {\r\n @Input() product: IProduct;\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpHandler, HttpRequest, HttpEvent, HttpHeaders } from '@angular/common/http';\r\n\r\nimport { Observable } from 'rxjs/Observable';\r\nimport 'rxjs/add/operator/do';\r\n\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable()\r\nexport class AuthInterceptor implements HttpInterceptor {\r\n constructor(private auth: AuthService) { }\r\n\r\n intercept(\r\n req: HttpRequest,\r\n next: HttpHandler\r\n ): Observable> {\r\n\r\n // check token if expired try silent login\r\n let _token = sessionStorage.getItem('danbase-token');\r\n const _isExpired = _token ? new JwtHelperService().isTokenExpired(_token) : false;\r\n\r\n if (!_token || _isExpired) {\r\n _token = this.auth.getToken();\r\n }\r\n\r\n\r\n // Create a header with auth-token\r\n const headers = new HttpHeaders({ 'Authorization': 'Bearer ' + sessionStorage.getItem('danbase-token') });\r\n\r\n // Set content-type (default to application/json)\r\n let contenttype = 'application/json';\r\n if (req.headers.has('Content-Type')) {\r\n contenttype = req.headers.get('Content-Type');\r\n }\r\n\r\n // If content-type is not false, then use it (fixes posting multipart)\r\n if (contenttype !== 'false') {\r\n headers.set('Content-Type', contenttype);\r\n }\r\n\r\n // Make a clone of the request and replace the header with a new\r\n const duplicate = req.clone({ headers: headers });\r\n\r\n return next.handle(duplicate);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IUser } from './user.model';\r\nimport { HttpClient, HttpHeaders, HttpErrorResponse } from '@angular/common/http';\r\nimport { tap, catchError } from 'rxjs/operators';\r\nimport { of, BehaviorSubject, Observable, throwError } from 'rxjs';\r\nimport { Router } from '@angular/router';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\n\r\n@Injectable()\r\nexport class AuthService {\r\n private _loginUser: any;\r\n private _currentUser: BehaviorSubject = new BehaviorSubject({Id: 0, Name: 'Anonumous', Modules: [], Username: ''});\r\n private jwt_helper = new JwtHelperService();\r\n\r\n public readonly currentUser: Observable = this._currentUser.asObservable();\r\n\r\n token: string;\r\n\r\n private requestAccessCode: BehaviorSubject = new BehaviorSubject(false);\r\n requestAccessCode$ = this.requestAccessCode.asObservable();\r\n private invalidLogin: BehaviorSubject = new BehaviorSubject(false);\r\n invalidLogin$ = this.invalidLogin.asObservable();\r\n\r\n constructor(\r\n private http: HttpClient,\r\n private router: Router) {\r\n\r\n }\r\n\r\n private handleError(error: HttpErrorResponse, auth: AuthService) {\r\n if (error.error instanceof ErrorEvent) {\r\n // A client-side or network error occurred. Handle it accordingly.\r\n console.error('An error occurred:', error.error.message);\r\n } else if (error.status === 401) {\r\n auth.requestAccessCode.next(false);\r\n auth.invalidLogin.next(true);\r\n } else {\r\n // The backend returned an unsuccessful response code.\r\n // The response body may contain clues as to what went wrong,\r\n\r\n console.error(\r\n `Backend returned code ${error.status}, ` +\r\n `body was: ${error.error}`);\r\n }\r\n // return an observable with a user-facing error message\r\n return throwError(\r\n 'Something bad happened; please try again later.');\r\n }\r\n\r\n loginUser(userName: string, password: string) {\r\n if (userName && password) {\r\n this._loginUser = { Username: userName, Password: password };\r\n }\r\n\r\n if (this._loginUser) {\r\n const options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n\r\n return this.http.post('https://adminapi.danbase.dk/v1/account/login/', this._loginUser, options)\r\n .pipe(tap(data => {\r\n this.token = data;\r\n sessionStorage.setItem('danbase-token', this.token);\r\n this.checkAuthenticationStatus();\r\n }, err => {this.requestAccessCode.next(true); }))\r\n .pipe(\r\n catchError(error => this.handleError(error, this))\r\n );\r\n }\r\n }\r\n\r\nsendAccessCode(accessCode: string) {\r\n const options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n return this.http.post('https://adminapi.danbase.dk/v1/account/validateaccesscode/', accessCode, options)\r\n .subscribe(success => {\r\n this.loginUser(undefined, undefined).subscribe(() => {\r\n this.router.navigate(['/home']);\r\n });\r\n }, (err: HttpErrorResponse) => {\r\n if (err.error instanceof Error) {\r\n console.log('Client-side error occured.');\r\n } else {\r\n console.log('Hurra en error: ' + err.status);\r\n }\r\n });\r\n}\r\n\r\nsetRequestAccessCode(state: boolean) {\r\n this.requestAccessCode.next(state);\r\n}\r\nsetInvalidLogin(state: boolean) {\r\n this.invalidLogin.next(state);\r\n}\r\n\r\n isAuthenticated() {\r\n return !!(this._currentUser.getValue && this._currentUser.getValue().Id > 0);\r\n }\r\n\r\n checkAuthenticationStatus() {\r\n const _token = sessionStorage.getItem('danbase-token');\r\n const _isExpired = this.jwt_helper.isTokenExpired(_token);\r\n\r\n if (_token && !_isExpired) {\r\n // let _headers = new HttpHeaders();\r\n // _headers.set('Content-Type', 'application/x-www-form-urlencoded');\r\n // _headers.set('Authorization', \"Bearer \" + _token);\r\n\r\n return this.http.get('https://adminapi.danbase.dk/v1/account/confirm/')\r\n .pipe(\r\n tap(\r\n data => {\r\n if (data instanceof Object) {\r\n this._currentUser.next(data);\r\n // this.currentUser.subscribe(res => console.log(res));\r\n } else {\r\n this.router.navigate(['user/login']);\r\n }\r\n }\r\n ))\r\n .pipe(\r\n catchError(error => this.handleError(error, this))\r\n )\r\n .subscribe();\r\n } else {\r\n this.router.navigate(['user/login']);\r\n }\r\n\r\n return false;\r\n }\r\n\r\n logout() {\r\n this._currentUser.next({Id: 0, Name: 'Anonumous', Modules: [], Username: ''});\r\n sessionStorage.removeItem('danbase-token');\r\n\r\n const options = { headers: new HttpHeaders({ 'Content-Type': 'application/json' }) };\r\n\r\n // return this.http.post('/api/logout', {}, options);\r\n return true;\r\n }\r\n\r\n hasModule(id: number) {\r\n if (this._currentUser && this._currentUser.getValue().Modules) {\r\n for (let i = 0; i < this._currentUser.getValue().Modules.length; i++) {\r\n if (this._currentUser.getValue().Modules[i].Id === id) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n }\r\n getFirstModuleLink() {\r\n if (this.hasModule(12)) {\r\n return '/products/caravan';\r\n }\r\n if (this.hasModule(11)) {\r\n return '/products/tent';\r\n }\r\n if (this.hasModule(21)) {\r\n return '/products/boat';\r\n }\r\n if (this.hasModule(22)) {\r\n return '/products/mc';\r\n }\r\n if (this.hasModule(23)) {\r\n return '/products/car';\r\n }\r\n if (this.hasModule(211)) {\r\n return '/products/watersport';\r\n }\r\n return '/products/caravan';\r\n }\r\n\r\n getResellerId() {\r\n if (this._currentUser && this._currentUser.getValue().ResellerId > 0 ) {\r\n return this._currentUser.getValue().ResellerId;\r\n }\r\n return 0;\r\n }\r\n\r\n getToken() {\r\n console.log('getting token');\r\n\r\n const _token = sessionStorage.getItem('danbase-token');\r\n const _isExpired = this.jwt_helper.isTokenExpired(_token);\r\n\r\n if (!_token) {\r\n this.logout();\r\n this.router.navigate(['user/login']);\r\n }\r\n if (_isExpired) {\r\n this.loginUser(undefined, undefined);\r\n }\r\n return sessionStorage.getItem('danbase-token');\r\n }\r\n}\r\n","// This file can be replaced during build by using the `fileReplacements` array.\n// `ng build ---prod` replaces `environment.ts` with `environment.prod.ts`.\n// The list of file replacements can be found in `angular.json`.\n\nexport const environment = {\n production: false\n};\n\n/*\n * In development mode, to ignore zone related error stack frames such as\n * `zone.run`, `zoneDelegate.invokeTask` for easier debugging, you can\n * import the following file, but please comment it out in production mode\n * because it will have performance impact when throw error\n */\n// import 'zone.js/dist/zone-error'; // Included with Angular CLI.\n","import { enableProdMode } from '@angular/core';\nimport { platformBrowserDynamic } from '@angular/platform-browser-dynamic';\n\nimport { AppModule } from './app/app.module';\nimport { environment } from './environments/environment';\n\nif (environment.production) {\n enableProdMode();\n}\n\nplatformBrowserDynamic().bootstrapModule(AppModule)\n .catch(err => console.log(err));\n"],"sourceRoot":""}