{"version":3,"sources":["webpack:///D:/a/1/s/src/app/core/pipes/leadingZero/leading-zero.shared.pipe.ts","webpack:///D:/a/1/s/src/app/core/components/selector/selector.shared.component.ts","webpack:///D:/a/1/s/src/app/core/components/selector/selector.shared.component.html","webpack:///D:/a/1/s/src/app/core/components/selector/selector.shared.module.ts","webpack:///D:/a/1/s/src/app/core/components/commonItem/common-item.shared.module.ts","webpack:///D:/a/1/s/src/app/core/components/commonItem/index.ts","webpack:///D:/a/1/s/src/app/core/directives/maxOnScreenHeight/max-on-screen-height.shared.directive.ts","webpack:///D:/a/1/s/src/app/core/components/commonItem/common-item.shared.component.ts","webpack:///D:/a/1/s/src/app/core/components/commonItem/common-item.shared.component.html","webpack:///D:/a/1/s/src/app/core/pipes/leadingZero/leading-zero.pipe.module.ts","webpack:///D:/a/1/s/src/app/core/components/quantity/quantity.shared.module.ts","webpack:///D:/a/1/s/src/app/core/components/quantity/index.ts","webpack:///D:/a/1/s/src/app/core/directives/maxOnScreenHeight/max-on-screen-height.directive.shared.module.ts","webpack:///D:/a/1/s/src/app/core/components/quantity/quantity.shared.component.ts","webpack:///D:/a/1/s/src/app/core/components/quantity/quantity.shared.component.html"],"names":["LeadingZeroPipe","value","converted","Number","isNaN","finalValue","SelectorComponent","renderer2","elementRef","changeDetectorRef","super","selected","size","feelDeselected","feelSelected","iconDeselected","iconSelected","onSelected","onDeselected","ngOnInit","$event","this","emit","markForCheck","SelectorModule","CommonItemModule","MaxOnScreenHeightDirective","_elementRef","_maxOnScreenHeightService","_scrollService","_changeDetectorRef","_init","height","transition","parent","disabledBelow","directiveSubHeight","maxHeight","_elem","nativeElement","registerId","tempMode","getAttribute","console","warn","subRegisterId","parentElement","_mode","updateRequest","setTimeout","registerSource","registerHeightAdjustItem","minHeight","_setMinHeightListenerSubscription","registerItem","registerTarget","_windowResizeListener$","_setWindowEventListener","_windowUpdateListener$","_setHeightListenerSubscription","closed","unsubscribe","_heightUpdateListener$","eventName","window","pipe","a","subscribe","key","innerWidth","getHeightListener$","newHeight","subHeight","requestUpdate","CommonItemComponent","config","edit","quantity","total","bottomPadding","selectable","onEditClick","mode","max","remove","minimumHide","disabled","canDecrement","canIncrement","onDecrement","onIncrement","onRemove","onEdit","LeadingZeroPipeModule","QuantityModule","MaxOnScreenHeightDirectiveSharedModule","QuantityComponent","showDecrementButton","showRemoveButton","isDecrementButtonDisabled","isIncrementButtonDisabled","maskDecrementButtons","btnNegativeFeel","btnPostiveFeel","setButtonsFeel","updateFlags","changes","event","previousValue","nextValue","handleIncrement"],"mappings":"+IAGO,Y,MAAMA,EACT,UAAUC,GACN,IAAIC,EAEJ,GAAqB,iBAAVD,GAGP,GAFAC,EAAYC,OAAOF,GAEfE,OAAOC,MAAMF,GAAc,OAAOD,OAGtCC,EAAYD,EAEhB,IAAII,EAAqB,GAAGH,IAU5B,OARIA,EAAY,IAAMA,GAAa,IAC/BG,EAAa,IAAIH,KAGjBA,EAAY,GAAKA,GAAa,KAC9BG,EAAa,MAAM,EAAIH,KAGpBG,G,6CAtBFL,I,2CAAAA,EAAe,U,GAArB,I,kCCHP,sF,uCCEQ,8BAC4B,uEAAuD,O,uBAD1B,oBAAa,wBAAb,CAAa,0B,uCAEtE,8BACI,yEAAwD,O,uBADL,oBAAa,sBAAb,CAAa,wBDMrE,Y,MAAMM,UAA0B,IAWnC,YACWC,EACAC,EACAC,GAEPC,MAAMH,EAAWC,EAAYC,GAJtB,KAAAF,YACA,KAAAC,aACA,KAAAC,oBAbK,KAAAE,UAAoB,EACpB,KAAAC,KAAmC,KACnC,KAAAC,eAAoD,qBACpD,KAAAC,aAAkD,gBAClD,KAAAC,eAAyB,OACzB,KAAAC,aAAuB,YAEtB,KAAAC,WAAkC,IAAI,IACtC,KAAAC,aAAoC,IAAI,IAUzD,WACIR,MAAMS,WAGH,eAAeC,GAClBC,KAAKJ,WAAWK,KAAKF,GAErBC,KAAKZ,kBAAkBc,eAGpB,iBAAiBH,GACpBC,KAAKH,aAAaI,KAAKF,GAEvBC,KAAKZ,kBAAkBc,eAG3B,iBACI,OAAOF,KAAKV,U,6CApCPL,GAAiB,gC,uBAAjBA,EAAiB,2pBCV9B,gBACI,gBACI,oCAEA,oCAEJ,OACJ,Q,MAJuE,mCAEtB,oC,uFDK1C,I,0HEYA,Y,MAAMkB,G,8BAAAA,I,oDAAAA,IAAc,UAFZ,GAAE,SARJ,CACL,IACA,IACA,Q,GAOD,GCEA,Q,MAAMC,G,8BAAAA,I,oDAAAA,IAAgB,UAFd,GAAE,SATJ,CACL,IACA,IACA,EACA,Q,GAOD,GCxBP,mC,kCCaA,kGAMO,Y,MAAMC,EAqBT,YACYC,EACAC,EACAC,EACAC,GAHA,KAAAH,cACA,KAAAC,4BACA,KAAAC,iBACA,KAAAC,qBAvBJ,KAAAC,OAAiB,EAOc,KAAAC,OAAiB,KAChB,KAAAC,WAAqB,KAG7C,KAAAC,QAAkB,EAClB,KAAAC,cAAwB,KACxB,KAAAC,mBAA6B,KAC7B,KAAAC,UAAoB,KAYpC,WAEI,GADAhB,KAAKiB,MAAQjB,KAAKM,YAAYY,eACzBlB,KAAKiB,MAAO,OAEjB,GAAIjB,WAAKmB,WAAsD,OAE/D,MAAMC,EAAWpB,KAAKiB,MAAMI,aAAa,kCACzC,MAAiB,WAAbD,GAAsC,WAAbA,GAAsC,WAAbA,GAAsC,SAAbA,EACpEE,QAAQC,KAAK,sCAAsCH,qDACtDpB,KAAKiB,MAAO,yEAGfjB,KAAKmB,WAKQ,SAAbC,GAAoC,WAAbA,GAA2BpB,KAAKwB,eAKxDxB,KAAKa,SACLb,KAAKiB,MAAQjB,KAAKiB,MAAMQ,eAE5BzB,KAAK0B,MAAQN,OACbpB,KAAKU,OAAQ,IARFY,QAAQC,KAAK,+CAA+CH,qDAC/DpB,KAAKiB,MAAO,oDANTK,QAAQC,KAAK,4CAA4CH,qDAC5DpB,KAAKiB,MAAO,kDAexB,cACQjB,KAAKU,OAASV,KAAKmB,YACnBnB,KAAKO,0BAA0BoB,cAAc3B,KAAKmB,YAI1D,kBACIS,WAAW,KACP,GAAK5B,KAAKU,MACV,OAAQV,KAAK0B,OACT,IAAK,SACD1B,KAAKO,0BAA0BsB,eAAe7B,KAAKmB,WAAYnB,KAAKiB,OACpE,MAEJ,IAAK,SACDjB,KAAKO,0BAA0BuB,yBAAyB9B,KAAKmB,WAAYnB,KAAKwB,cAAexB,KAAKiB,OAC9FjB,KAAK+B,WAAW/B,KAAKgC,kCAAkChC,KAAKwB,eAChE,MAEJ,IAAK,OACDxB,KAAKO,0BAA0B0B,aAAajC,KAAKmB,WAAYnB,KAAKwB,cAAexB,KAAKiB,OACtF,MAEJ,IAAK,SACDjB,KAAKO,0BAA0B2B,eAAelC,KAAKmB,WAAYnB,KAAKiB,OAEpEjB,KAAKmC,uBAAyBnC,KAAKoC,wBAAwB,UAC3DpC,KAAKqC,uBAAyBrC,KAAKoC,wBAAwB,UAE3DpC,KAAKsC,+BAA+BtC,KAAKmB,cAGlD,GAGP,cACI,GAAKnB,KAAKU,MACV,OAAQV,KAAK0B,OACT,IAAK,SACD1B,KAAKO,0BAA0BsB,eAAe7B,KAAKmB,WAAY,MAC/D,MAEJ,IAAK,SACDnB,KAAKO,0BAA0BuB,yBAAyB9B,KAAKmB,WAAY,MACzE,MAEJ,IAAK,OACDnB,KAAKO,0BAA0B0B,aAAajC,KAAKmB,WAAYnB,KAAKwB,cAAe,MACjF,MAEJ,IAAK,SACDxB,KAAKO,0BAA0B2B,eAAelC,KAAKmB,WAAY,MAC3DnB,KAAKmC,yBAA2BnC,KAAKmC,uBAAuBI,QAAQvC,KAAKmC,uBAAuBK,cAChGxC,KAAKqC,yBAA2BrC,KAAKqC,uBAAuBE,QAAQvC,KAAKqC,uBAAuBG,cAChGxC,KAAKyC,yBAA2BzC,KAAKyC,uBAAuBF,QAAQvC,KAAKyC,uBAAuBD,eAKxG,wBAAwBE,GAC5B,OAAO,YAAUC,OAAQD,GACpBE,KACG,SAAAC,EAAA,CAAU,MAEbC,UAAU,KACP9C,KAAKO,0BAA0B2B,eAAelC,KAAKmB,WAAYnB,KAAKiB,SAIxE,+BAA+B8B,KAC9B/C,KAAKc,eAAiB6B,OAAOK,YAAchD,KAAKc,iBACjDd,KAAKW,OAAS,IACdX,KAAKY,WAAa,mBAEtBgB,WAAW,KAGP5B,KAAKyC,uBAAyBzC,KAAKO,0BAA0B0C,mBAAmBF,GAC3ED,UAAUI,IACP,GAAIlD,KAAKc,eAAiB6B,OAAOK,WAAahD,KAAKc,cAC/Cd,KAAKW,OAAS,KACdX,KAAKY,WAAa,SACf,CACH,MAAMuC,EAAanD,KAAuB,mBAAIA,KAAKe,mBAAqB,EACxEf,KAAKW,OAASX,KAAKgB,WAAakC,EAAYlD,KAAKgB,UAAY,GAAGhB,KAAKgB,UAAYmC,IAAc,GAAGD,EAAYC,IAC9GnD,KAAKQ,eAAe4C,gBACpBpD,KAAKS,mBAAmBP,kBAIpCF,KAAKO,0BAA0BoB,cAAcoB,IAC9C,KAGC,kCAAkCA,GACtCnB,WAAW,KACP5B,KAAKO,0BAA0B0C,mBAAmBF,GAC7CD,UAAUI,IACPlD,KAAKW,OACDX,KAAKgB,WAAakC,EAAYlD,KAAKgB,UAC/BhB,KAAK+B,WAAamB,EAAYlD,KAAK+B,UAC/B,GAAG/B,KAAK+B,YAAc,GAAGmB,IAAc,GAAGlD,KAAKgB,YAC3DhB,KAAKQ,eAAe4C,gBACpBpD,KAAKS,mBAAmBP,iBAGhCF,KAAKO,0BAA0BoB,cAAcoB,IAC9C,M,6CApKE1C,GAA0B,0C,uBAA1BA,EAA0B,gG,iSAAhC,I,kCCnBP,8G,qFCKY,gBAAkD,Q,mBAAoG,Q,oBAApG,uG,sBAClD,gBAAiD,sBAAW,Q,yBAKxD,iBAA0D,QAAe,Q,qBAAf,6B,yBAC1D,iBAAiE,QAAkB,Q,qBAAlB,gC,uCAGrE,iBACI,6BAA+C,2EAAqC,0EAChB,OACxE,O,wBADkD,qC,yBARtD,gBACI,gBACI,uBACA,uBACJ,OAEA,uBAIJ,Q,oBAR8C,mCACI,sCAGT,gD,uCAMzC,iBAEI,iBACI,yBAA4C,mEAAiD,qBAC7F,OACJ,OAEA,iBACI,6BAGI,4EAAuC,sEAAvC,CAAuC,iEACL,OAC1C,OAEJ,O,uBAZmF,4BAK5B,4CAA6B,8BAA7B,CAA6B,sBAA7B,CAA6B,sBAA7B,CAA6B,cAA7B,CAA6B,4BAA7B,CAA6B,kBAA7B,CAA6B,cAA7B,CAA6B,c,mEDrBrF,Y,MAAMgD,EA8BT,YACwCC,GAAA,KAAAA,SA3BxB,KAAAC,MAAgB,EAChB,KAAAC,SAAmB,KACnB,KAAAC,MAAgB,KAChB,KAAAC,eAAyB,EACzB,KAAAC,YAAsB,EACtB,KAAArE,UAAoB,EAEnB,KAAAsE,YAAmC,IAAI,IAGxC,KAAAC,KAA8C,OAC9C,KAAAC,IAAc,KACd,KAAAC,QAAkB,EAClB,KAAAC,aAAuB,EAEvB,KAAAC,UAAoB,EACpB,KAAAC,cAAwB,EACxB,KAAAC,cAAwB,EAEvB,KAAAC,YAA0E,IAAI,IAC9E,KAAAC,YAA0E,IAAI,IAC9E,KAAAC,SAAuE,IAAI,IAC3E,KAAAC,OAA8B,IAAI,IAClC,KAAA3E,WAAkC,IAAI,IACtC,KAAAC,aAAoC,IAAI,IAMzD,YAGO,gBAAgBE,GACnBC,KAAKqE,YAAYpE,KAAKF,GAGnB,gBAAgBA,GACnBC,KAAKoE,YAAYnE,KAAKF,GAGnB,aAAaA,GAChBC,KAAKsE,SAASrE,KAAKF,GAGhB,WAAWA,GACdC,KAAKuE,OAAOtE,KAAKF,GAGd,eAAeA,GAClBC,KAAKJ,WAAWK,KAAKF,GAGlB,iBAAiBA,GACpBC,KAAKH,aAAaI,KAAKF,I,6CA1DlBsD,GAAmB,KA+BhB,O,uBA/BHA,EAAmB,q/CCRhC,gBACI,gBAEI,gBACI,eAA+B,QAAS,OACxC,uBACA,sBACJ,OAEA,sBAYA,uBAiBJ,OACJ,Q,MAvCyB,qDAIkB,sBACC,iCACA,gCAGP,gFAYA,8B,inEDb9B,I,0EEQA,Y,MAAMmB,G,8BAAAA,I,oDAAAA,M,GAAN,G,gBCMA,Y,MAAMC,G,8BAAAA,I,oDAAAA,IAAc,UAFZ,GAAE,SARJ,CACL,IACA,IACA,M,GAOD,GCtBP,mC,oFCYO,Y,MAAMC,G,8BAAAA,I,oDAAAA,M,GAAN,I,kCCZP,sF,8ECMY,8BACsC,qEAEtC,O,uBAHmB,iDAA2C,cAA3C,CAA2C,2B,uCAK9D,+BACyC,wEAEzC,O,uBAHmB,iDAA2C,cAA3C,CAA2C,yBAA3C,CAA2C,yC,sFDHnE,Y,MAAMC,EAiCT,cAhCO,KAAAC,qBAA+B,EAC/B,KAAAC,kBAA4B,EAC5B,KAAAC,2BAAqC,EACrC,KAAAC,2BAAqC,EACrC,KAAAC,sBAAgC,EAEhC,KAAAC,gBAAqD,qBACrD,KAAAC,eAAoD,qBAW3C,KAAArB,KAA8C,OAC9C,KAAAC,IAAc,KAEd,KAAAC,QAAkB,EAClB,KAAAC,aAAuB,EAEvB,KAAAC,UAAoB,EACpB,KAAAC,cAAwB,EACxB,KAAAC,cAAwB,EAEvB,KAAAC,YAA0E,IAAI,IAC9E,KAAAC,YAA0E,IAAI,IAC9E,KAAAC,SAAuE,IAAI,IAI5F,WACItE,KAAKmF,iBACLnF,KAAKoF,cAGT,YAAYC,GACRrF,KAAKoF,cAGF,iBAEH,OAAQpF,KAAK6D,MACT,IAAK,UACD7D,KAAKiF,gBAAkB,WACvBjF,KAAKkF,eAAiB,WACtB,MAEJ,IAAK,SACDlF,KAAKiF,gBAAkB,oBACvBjF,KAAKkF,eAAiB,qBAS3B,cACHlF,KAAK6E,kBAAmC,IAAhB7E,KAAK+D,QAAqC,IAAlB/D,KAAKwD,SACrDxD,KAAK4E,qBAAsC,IAAhB5E,KAAK+D,QAAmB/D,KAAKwD,SAAW,IAAqB,IAAhBxD,KAAK+D,OAE7E/D,KAAK8E,0BAA4B9E,KAAKwD,UAAY,IAAMxD,KAAKiE,WAAkC,IAAtBjE,KAAKkE,aAC9ElE,KAAK+E,0BAA4B/E,KAAKwD,WAAaxD,KAAK8D,MAAQ9D,KAAKiE,WAAkC,IAAtBjE,KAAKmE,aAEtFnE,KAAKgF,qBAAuBhF,KAAKgE,aAAehE,KAAKwD,UAAY,GAAKxD,KAAKgE,aAAejF,MAAMiB,KAAKwD,UAGlG,gBAAgBzD,GACnBC,KAAKqE,YAAYpE,KAAK,CAClBqF,MAAOvF,EACPwF,cAAevF,KAAKwD,SACpBgC,UAAWxF,KAAKwD,SAAW,IAI5B,gBAAgBzD,GACnBC,KAAKoE,YAAYnE,KAAK,CAClBqF,MAAOvF,EACPwF,cAAevF,KAAKwD,SACpBgC,UAAWxF,KAAKwD,SAAW,IAI5B,aAAazD,GAChBC,KAAKsE,SAASrE,KAAK,CACfqF,MAAOvF,EACPwF,cAAevF,KAAKwD,SACpBgC,UAAW,K,6CA7FVb,I,uBAAAA,EAAiB,omCCR9B,gBAEI,gBAEI,gBAEI,oCAKA,oCAKJ,OAEA,gBACI,kBACI,Q,sBACJ,OACJ,OAEA,gBAEI,+BAAsE,mCAAW,EAAAc,gBAAA,MAEjF,OAEJ,OAEJ,OACJ,Q,MAjCK,uFACD,sCAG8C,0DAIF,wCAKP,2CAOzB,4CAMe,4BAAa,wBAAb,CAAa,0C,igCDlBrC","file":"x","sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n@Pipe({ name: 'leadingZero' })\r\nexport class LeadingZeroPipe implements PipeTransform {\r\n transform(value: any): string {\r\n let converted: number;\r\n\r\n if (typeof value !== 'number') {\r\n converted = Number(value);\r\n\r\n if (Number.isNaN(converted)) { return value; }\r\n\r\n } else {\r\n converted = value;\r\n }\r\n let finalValue: string = `${converted}`;\r\n\r\n if (converted < 10 && converted >= 0) {\r\n finalValue = `0${converted}`;\r\n }\r\n\r\n if (converted < 0 && converted > -10) {\r\n finalValue = `-0${-1 * converted}`;\r\n }\r\n\r\n return finalValue;\r\n }\r\n}\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, ChangeDetectorRef, ElementRef, Renderer2 } from '@angular/core';\r\n\r\nimport { CircleBtnComponent } from '@shared/core/components/buttons';\r\n\r\n@Component({\r\n selector: 'shared-selector',\r\n templateUrl: './selector.shared.component.html',\r\n styleUrls: ['./selector.shared.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class SelectorComponent extends CircleBtnComponent implements OnInit {\r\n @Input() public selected: boolean = false;\r\n @Input() public size: OLO.Components.BUTTON_SIZE = null;\r\n @Input() public feelDeselected: OLO.Components.BUTTON_CIRCLE_FEEL = 'positive-secondary';\r\n @Input() public feelSelected: OLO.Components.BUTTON_CIRCLE_FEEL = 'positive-full';\r\n @Input() public iconDeselected: string = 'plus';\r\n @Input() public iconSelected: string = 'checkmark';\r\n\r\n @Output() public onSelected: EventEmitter = new EventEmitter();\r\n @Output() public onDeselected: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n public renderer2: Renderer2,\r\n public elementRef: ElementRef,\r\n public changeDetectorRef: ChangeDetectorRef\r\n ) {\r\n super(renderer2, elementRef, changeDetectorRef);\r\n }\r\n\r\n ngOnInit(): void {\r\n super.ngOnInit();\r\n }\r\n\r\n public handleSelected($event: Event): void {\r\n this.onSelected.emit($event);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public handleDeselected($event: Event): void {\r\n this.onDeselected.emit($event);\r\n\r\n this.changeDetectorRef.markForCheck();\r\n }\r\n\r\n public get isSelected(): boolean {\r\n return this.selected;\r\n }\r\n\r\n}\r\n","
\r\n
\r\n \r\n \r\n
\r\n
","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { IconModule } from '@shared/core/components/icon';\r\nimport { ButtonsModule } from '@shared/core/components/buttons';\r\n\r\nimport { SelectorComponent } from './selector.shared.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n SelectorComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ButtonsModule,\r\n IconModule,\r\n ],\r\n exports: [\r\n SelectorComponent\r\n ],\r\n providers: [],\r\n})\r\nexport class SelectorModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { CommonItemComponent } from './common-item.shared.component';\r\n\r\nimport { QuantityModule } from '@shared/core/components/quantity';\r\nimport { LinkModule } from '@shared/core/components/link';\r\nimport { SelectorModule } from '@shared/core/components/selector';\r\n\r\n@NgModule({\r\n declarations: [\r\n CommonItemComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n QuantityModule,\r\n SelectorModule,\r\n LinkModule,\r\n ],\r\n exports: [\r\n CommonItemComponent\r\n ],\r\n providers: [],\r\n})\r\nexport class CommonItemModule { }\r\n","export * from './common-item.shared.module';","//\r\n// This directive is used to register elements for height calculations of inner element list\r\n// It can be used for multiple types: source, height, target, item\r\n// 'source' - will register entire source element for TOP offset calculations\r\n// 'height' - will register elements that will be used to calculate cart content's height\r\n// 'target' - will register element - cart items list - and will listen to height updated\r\n// 'item' - will register cart item for height calculations\r\n//\r\nimport { Directive, AfterViewInit, OnInit, OnDestroy, ElementRef, Input, HostBinding, OnChanges, ChangeDetectorRef } from '@angular/core';\r\n\r\nimport * as Services from '@shared/core/services';\r\nimport { ScrollService } from '@shared/core/directives/scroll/scroll.shared.service';\r\n\r\nimport { Subscription, fromEvent } from 'rxjs';\r\nimport { auditTime } from 'rxjs/operators';\r\n\r\n@Directive({\r\n selector: '[directive-max-on-screen-height]',\r\n})\r\nexport class MaxOnScreenHeightDirective implements AfterViewInit, OnInit, OnDestroy, OnChanges {\r\n private _mode: 'source' | 'height' | 'target' | 'item';\r\n private _init: boolean = false;\r\n private _elem: HTMLElement;\r\n\r\n private _heightUpdateListener$: Subscription;\r\n private _windowResizeListener$: Subscription;\r\n private _windowUpdateListener$: Subscription;\r\n\r\n @HostBinding('style.height.px') public height: string = null;\r\n @HostBinding('style.transition') public transition: string = null;\r\n @Input() public registerId: string;\r\n @Input() public subRegisterId: string;\r\n @Input() public parent: boolean = false; /* Instead of this element, get it's parent element */\r\n @Input() public disabledBelow: number = null;\r\n @Input() public directiveSubHeight: number = null;\r\n @Input() public maxHeight: number = null;\r\n @Input() public changes: any; /* Helper to check if element's dimensions have changed */\r\n @Input() public minHeight: number;\r\n\r\n\r\n constructor(\r\n private _elementRef: ElementRef,\r\n private _maxOnScreenHeightService: Services.MaxOnScreenHeightService,\r\n private _scrollService: ScrollService,\r\n private _changeDetectorRef: ChangeDetectorRef\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n this._elem = this._elementRef.nativeElement;\r\n if (!this._elem) return;\r\n\r\n if (this.registerId === null || this.registerId === undefined) return;\r\n\r\n const tempMode = this._elem.getAttribute('directive-max-on-screen-height');\r\n if (tempMode !== 'source' && tempMode !== 'height' && tempMode !== 'target' && tempMode !== 'item') {\r\n return console.warn(`Mode invalid or not defined (mode: ${tempMode}) in \"directive-max-on-screen-height\" for element`,\r\n this._elem, ' Please add one of the following values: source, height, target, item');\r\n }\r\n\r\n if (!this.registerId) {\r\n return console.warn(`\"registerId\" property not defined (mode: ${tempMode}) in \"directive-max-on-screen-height\" for element`,\r\n this._elem, ' This value should be unique string of a group');\r\n }\r\n\r\n if ((tempMode === 'item' || tempMode === 'height') && !this.subRegisterId) {\r\n return console.warn(`\"subRegisterId\" property not defined (mode: ${tempMode}) in \"directive-max-on-screen-height\" for element`,\r\n this._elem, ' This value should be unique string of this item');\r\n }\r\n\r\n if (this.parent) {\r\n this._elem = this._elem.parentElement;\r\n }\r\n this._mode = tempMode;\r\n this._init = true;\r\n }\r\n\r\n ngOnChanges(): void {\r\n if (this._init && this.registerId) {\r\n this._maxOnScreenHeightService.updateRequest(this.registerId);\r\n }\r\n }\r\n\r\n ngAfterViewInit(): void {\r\n setTimeout(() => {\r\n if (!this._init) return;\r\n switch (this._mode) {\r\n case 'source':\r\n this._maxOnScreenHeightService.registerSource(this.registerId, this._elem);\r\n break;\r\n\r\n case 'height':\r\n this._maxOnScreenHeightService.registerHeightAdjustItem(this.registerId, this.subRegisterId, this._elem);\r\n if (this.minHeight) this._setMinHeightListenerSubscription(this.subRegisterId);\r\n break;\r\n\r\n case 'item':\r\n this._maxOnScreenHeightService.registerItem(this.registerId, this.subRegisterId, this._elem);\r\n break;\r\n\r\n case 'target':\r\n this._maxOnScreenHeightService.registerTarget(this.registerId, this._elem);\r\n\r\n this._windowResizeListener$ = this._setWindowEventListener('resize');\r\n this._windowUpdateListener$ = this._setWindowEventListener('update');\r\n\r\n this._setHeightListenerSubscription(this.registerId);\r\n break;\r\n }\r\n }, 0);\r\n }\r\n\r\n ngOnDestroy(): void {\r\n if (!this._init) return;\r\n switch (this._mode) {\r\n case 'source':\r\n this._maxOnScreenHeightService.registerSource(this.registerId, null);\r\n break;\r\n\r\n case 'height':\r\n this._maxOnScreenHeightService.registerHeightAdjustItem(this.registerId, null);\r\n break;\r\n\r\n case 'item':\r\n this._maxOnScreenHeightService.registerItem(this.registerId, this.subRegisterId, null);\r\n break;\r\n\r\n case 'target':\r\n this._maxOnScreenHeightService.registerTarget(this.registerId, null);\r\n if (this._windowResizeListener$ && !this._windowResizeListener$.closed) this._windowResizeListener$.unsubscribe();\r\n if (this._windowUpdateListener$ && !this._windowUpdateListener$.closed) this._windowUpdateListener$.unsubscribe();\r\n if (this._heightUpdateListener$ && !this._heightUpdateListener$.closed) this._heightUpdateListener$.unsubscribe();\r\n break;\r\n }\r\n }\r\n\r\n private _setWindowEventListener(eventName: string): Subscription {\r\n return fromEvent(window, eventName)\r\n .pipe(\r\n auditTime(200)\r\n )\r\n .subscribe(() => {\r\n this._maxOnScreenHeightService.registerTarget(this.registerId, this._elem); /* Will update height when resizing */\r\n });\r\n }\r\n\r\n private _setHeightListenerSubscription(key: string): void {\r\n if (!this.disabledBelow || window.innerWidth >= this.disabledBelow) {\r\n this.height = '0';\r\n this.transition = 'height .2s ease';\r\n }\r\n setTimeout(() => {\r\n /* http://support.taskretail.com.au:8080/browse/TOLO-59 */\r\n\r\n this._heightUpdateListener$ = this._maxOnScreenHeightService.getHeightListener$(key)\r\n .subscribe(newHeight => {\r\n if (this.disabledBelow && window.innerWidth < this.disabledBelow) {\r\n this.height = null;\r\n this.transition = null;\r\n } else {\r\n const subHeight = (this.directiveSubHeight) ? this.directiveSubHeight : 0;\r\n this.height = this.maxHeight && newHeight > this.maxHeight ? `${this.maxHeight - subHeight}` : `${newHeight - subHeight}`;\r\n this._scrollService.requestUpdate(); /* Make sure scroll position is updated! */\r\n this._changeDetectorRef.markForCheck();\r\n }\r\n });\r\n\r\n this._maxOnScreenHeightService.updateRequest(key);\r\n }, 201);\r\n }\r\n\r\n private _setMinHeightListenerSubscription(key: string): void {\r\n setTimeout(() => {\r\n this._maxOnScreenHeightService.getHeightListener$(key)\r\n .subscribe(newHeight => {\r\n this.height =\r\n this.maxHeight && newHeight > this.maxHeight ?\r\n this.minHeight && newHeight < this.minHeight ?\r\n `${this.minHeight}` : `${newHeight}` : `${this.maxHeight}`;\r\n this._scrollService.requestUpdate(); /* Make sure scroll position is updated! */\r\n this._changeDetectorRef.markForCheck();\r\n });\r\n\r\n this._maxOnScreenHeightService.updateRequest(key);\r\n }, 201);\r\n }\r\n}\r\n","import { Component, OnInit, Output, EventEmitter, Input, Inject } from '@angular/core';\r\nimport * as Tokens from '@shared/core/tokens';\r\n\r\n@Component({\r\n selector: 'shared-common-item',\r\n templateUrl: './common-item.shared.component.html',\r\n styleUrls: ['./common-item.shared.component.scss']\r\n})\r\nexport class CommonItemComponent implements OnInit {\r\n @Input() public title: string;\r\n @Input() public description: string;\r\n @Input() public subDescription: string;\r\n @Input() public edit: boolean = false;\r\n @Input() public quantity: number = null;\r\n @Input() public total: number = null;\r\n @Input() public bottomPadding: boolean = false;\r\n @Input() public selectable: boolean = false;\r\n @Input() public selected: boolean = false;\r\n\r\n @Output() public onEditClick: EventEmitter = new EventEmitter();\r\n\r\n /* For quantity */\r\n @Input() public mode: OLO.Components.Quantity.QUANTITY_MODE = 'mini';\r\n @Input() public max: number = 9999;\r\n @Input() public remove: boolean = true; /* Show remove when quantity equals 1 */\r\n @Input() public minimumHide: boolean = false; /* Hide decrement / remove button when quantity equals 1 */\r\n @Input() public size: OLO.Components.BUTTON_SIZE;\r\n @Input() public disabled: boolean = false;\r\n @Input() public canDecrement: boolean = true; /* Can override components calculations */\r\n @Input() public canIncrement: boolean = true; /* Can override components calculations */\r\n\r\n @Output() public onDecrement: EventEmitter = new EventEmitter();\r\n @Output() public onIncrement: EventEmitter = new EventEmitter();\r\n @Output() public onRemove: EventEmitter = new EventEmitter();\r\n @Output() public onEdit: EventEmitter = new EventEmitter();\r\n @Output() public onSelected: EventEmitter = new EventEmitter();\r\n @Output() public onDeselected: EventEmitter = new EventEmitter();\r\n\r\n constructor(\r\n @Inject(Tokens.CONFIG_TOKEN) public config: IConfig,\r\n ) { }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n public handleIncrement($event: OLO.Components.Quantity.IQuantityOutputEvent): void {\r\n this.onIncrement.emit($event);\r\n }\r\n\r\n public handleDecrement($event: OLO.Components.Quantity.IQuantityOutputEvent): void {\r\n this.onDecrement.emit($event);\r\n }\r\n\r\n public handleRemove($event: OLO.Components.Quantity.IQuantityOutputEvent): void {\r\n this.onRemove.emit($event);\r\n }\r\n\r\n public handleEdit($event: Event): void {\r\n this.onEdit.emit($event);\r\n }\r\n\r\n public handleSelected($event: Event): void {\r\n this.onSelected.emit($event);\r\n }\r\n\r\n public handleDeselected($event: Event): void {\r\n this.onDeselected.emit($event);\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n

{{title}}

\r\n
{{total | currency : config.localization.currency:'symbol-narrow':null: config.localization.locale}}
\r\n
Unavailable
\r\n
\r\n\r\n
\r\n
\r\n
{{description}}
\r\n
{{subDescription}}
\r\n
\r\n\r\n
\r\n \r\n
\r\n
\r\n\r\n
\r\n\r\n
\r\n Edit item\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 { NgModule } from '@angular/core';\r\n\r\nimport { LeadingZeroPipe } from './leading-zero.shared.pipe';\r\n\r\nconst toExport: any[] = [\r\n LeadingZeroPipe\r\n];\r\n\r\n@NgModule({\r\n declarations: [\r\n ...toExport,\r\n ],\r\n exports: [\r\n ...toExport,\r\n ],\r\n})\r\nexport class LeadingZeroPipeModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { LeadingZeroPipeModule } from '@shared/core/pipes/leadingZero';\r\nimport { ButtonsModule } from '@shared/core/components/buttons';\r\n\r\nimport { QuantityComponent } from './quantity.shared.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n QuantityComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n ButtonsModule,\r\n LeadingZeroPipeModule,\r\n ],\r\n exports: [\r\n QuantityComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class QuantityModule { }\r\n","export * from './quantity.shared.module';\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MaxOnScreenHeightDirective } from './max-on-screen-height.shared.directive';\r\n\r\n@NgModule({\r\n declarations: [\r\n MaxOnScreenHeightDirective\r\n ],\r\n exports: [\r\n MaxOnScreenHeightDirective\r\n ],\r\n})\r\nexport class MaxOnScreenHeightDirectiveSharedModule { }\r\n","import { Component, OnInit, Input, Output, EventEmitter, ChangeDetectionStrategy, OnChanges, SimpleChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'shared-quantity',\r\n templateUrl: './quantity.shared.component.html',\r\n styleUrls: ['./quantity.shared.component.scss'],\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class QuantityComponent implements OnInit, OnChanges {\r\n public showDecrementButton: boolean = true;\r\n public showRemoveButton: boolean = false;\r\n public isDecrementButtonDisabled: boolean = false;\r\n public isIncrementButtonDisabled: boolean = false;\r\n public maskDecrementButtons: boolean = false;\r\n\r\n public btnNegativeFeel: OLO.Components.BUTTON_CIRCLE_FEEL = 'negative-secondary';\r\n public btnPostiveFeel: OLO.Components.BUTTON_CIRCLE_FEEL = 'positive-secondary';\r\n /*\r\n Mode 'normal'\r\n Large buttons - used inside wizzard counter\r\n\r\n Mode 'compact'\r\n Medium buttons, buttons with transparent background - used for modal counter\r\n\r\n Mode 'mini'\r\n Used for wizzard and cart items - similar to normal, but smaller\r\n */\r\n @Input() public mode: OLO.Components.Quantity.QUANTITY_MODE = 'mini';\r\n @Input() public max: number = 9999;\r\n @Input() public quantity: number;\r\n @Input() public remove: boolean = false; /* Show remove when quantity equals 1 */\r\n @Input() public minimumHide: boolean = false; /* Hide decrement / remove button when quantity equals 1 */\r\n @Input() public size: OLO.Components.BUTTON_SIZE;\r\n @Input() public disabled: boolean = false;\r\n @Input() public canDecrement: boolean = true; /* Can override components calculations */\r\n @Input() public canIncrement: boolean = true; /* Can override components calculations */\r\n\r\n @Output() public onDecrement: EventEmitter = new EventEmitter();\r\n @Output() public onIncrement: EventEmitter = new EventEmitter();\r\n @Output() public onRemove: EventEmitter = new EventEmitter();\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this.setButtonsFeel();\r\n this.updateFlags();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.updateFlags();\r\n }\r\n\r\n public setButtonsFeel(): void {\r\n /* Set buttons feel */\r\n switch (this.mode) {\r\n case 'compact':\r\n this.btnNegativeFeel = 'negative';\r\n this.btnPostiveFeel = 'positive';\r\n break;\r\n\r\n case 'normal':\r\n this.btnNegativeFeel = 'negative-outlined';\r\n this.btnPostiveFeel = 'positive-tiertary';\r\n break;\r\n\r\n case 'mini':\r\n default:\r\n /* Do nothing - defaults */\r\n }\r\n }\r\n\r\n public updateFlags(): void {\r\n this.showRemoveButton = this.remove === true && this.quantity === 1;\r\n this.showDecrementButton = this.remove === true && this.quantity > 1 || this.remove === false;\r\n\r\n this.isDecrementButtonDisabled = this.quantity <= 1 && !this.disabled || this.canDecrement === false;\r\n this.isIncrementButtonDisabled = this.quantity === this.max && !this.disabled || this.canIncrement === false;\r\n\r\n this.maskDecrementButtons = this.minimumHide && this.quantity <= 1 || this.minimumHide && isNaN(this.quantity);\r\n }\r\n\r\n public handleIncrement($event: Event): void {\r\n this.onIncrement.emit({\r\n event: $event,\r\n previousValue: this.quantity,\r\n nextValue: this.quantity + 1,\r\n });\r\n }\r\n\r\n public handleDecrement($event: Event): void {\r\n this.onDecrement.emit({\r\n event: $event,\r\n previousValue: this.quantity,\r\n nextValue: this.quantity - 1,\r\n });\r\n }\r\n\r\n public handleRemove($event: Event): void {\r\n this.onRemove.emit({\r\n event: $event,\r\n previousValue: this.quantity,\r\n nextValue: 0,\r\n });\r\n }\r\n}\r\n","
\r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n
\r\n\r\n \r\n \r\n\r\n
\r\n\r\n
\r\n
\r\n"]}