@sd-angular/core 1.1.75 → 1.1.78

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/bundles/sd-angular-core-filter.umd.js +1 -1
  2. package/bundles/sd-angular-core-filter.umd.js.map +1 -1
  3. package/bundles/sd-angular-core-filter.umd.min.js +1 -1
  4. package/bundles/sd-angular-core-grid-material.umd.js +4 -4
  5. package/bundles/sd-angular-core-grid-material.umd.js.map +1 -1
  6. package/bundles/sd-angular-core-grid-material.umd.min.js +1 -1
  7. package/bundles/sd-angular-core-grid-material.umd.min.js.map +1 -1
  8. package/bundles/sd-angular-core-grid.umd.js +5 -5
  9. package/bundles/sd-angular-core-grid.umd.js.map +1 -1
  10. package/bundles/sd-angular-core-grid.umd.min.js +1 -1
  11. package/bundles/sd-angular-core-grid.umd.min.js.map +1 -1
  12. package/bundles/sd-angular-core-input-number.umd.js +29 -16
  13. package/bundles/sd-angular-core-input-number.umd.js.map +1 -1
  14. package/bundles/sd-angular-core-input-number.umd.min.js +1 -1
  15. package/bundles/sd-angular-core-input-number.umd.min.js.map +1 -1
  16. package/bundles/sd-angular-core-popover.umd.js +1 -1
  17. package/bundles/sd-angular-core-popover.umd.min.js +1 -1
  18. package/bundles/sd-angular-core-popover.umd.min.js.map +1 -1
  19. package/esm2015/filter/src/lib/filter.component.js +2 -2
  20. package/esm2015/grid/src/lib/components/grid-config/grid-config.component.js +2 -2
  21. package/esm2015/grid/src/lib/components/grid-desktop-inline-filter/grid-desktop-inline-filter.component.js +2 -2
  22. package/esm2015/grid/src/lib/components/grid-popup-editor/grid-popup-editor.component.js +2 -2
  23. package/esm2015/grid/src/lib/components/grid-popup-filter/grid-popup-filter.component.js +2 -2
  24. package/esm2015/grid/src/lib/components/grid-popup-quick-filter-detail/grid-popup-quick-filter-detail.component.js +2 -2
  25. package/esm2015/grid-material/src/lib/components/column-inline-filter/column-inline-filter.component.js +2 -2
  26. package/esm2015/grid-material/src/lib/components/dynamic-column/dynamic-column.component.js +2 -2
  27. package/esm2015/grid-material/src/lib/components/grid-filter/grid-filter.component.js +2 -2
  28. package/esm2015/grid-material/src/lib/components/popup-filter/popup-filter.component.js +2 -2
  29. package/esm2015/input-number/src/lib/input-number.component.js +32 -19
  30. package/esm2015/popover/src/lib/popover/popover.component.js +1 -1
  31. package/fesm2015/sd-angular-core-filter.js +1 -1
  32. package/fesm2015/sd-angular-core-filter.js.map +1 -1
  33. package/fesm2015/sd-angular-core-grid-material.js +4 -4
  34. package/fesm2015/sd-angular-core-grid-material.js.map +1 -1
  35. package/fesm2015/sd-angular-core-grid.js +5 -5
  36. package/fesm2015/sd-angular-core-grid.js.map +1 -1
  37. package/fesm2015/sd-angular-core-input-number.js +31 -18
  38. package/fesm2015/sd-angular-core-input-number.js.map +1 -1
  39. package/fesm2015/sd-angular-core-popover.js +1 -1
  40. package/filter/sd-angular-core-filter.metadata.json +1 -1
  41. package/grid/sd-angular-core-grid.metadata.json +1 -1
  42. package/grid-material/sd-angular-core-grid-material.metadata.json +1 -1
  43. package/input-number/sd-angular-core-input-number.metadata.json +1 -1
  44. package/input-number/src/lib/input-number.component.d.ts +2 -0
  45. package/package.json +1 -1
  46. package/popover/sd-angular-core-popover.metadata.json +1 -1
  47. package/{sd-angular-core-1.1.75.tgz → sd-angular-core-1.1.78.tgz} +0 -0
@@ -460,7 +460,7 @@
460
460
  encapsulation: core.ViewEncapsulation.None,
461
461
  exportAs: "sdPopover",
462
462
  changeDetection: core.ChangeDetectionStrategy.OnPush,
463
- styles: [".text-black400{color:#757575}.sd-popover-panel{background:#fff;position:relative}.sd-popover-panel .sd-popover-arrow{clear:both;height:0;left:50%;position:absolute;width:0}.sd-popover-panel.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%;transform:translateX(-6px) translateY(-1px)}.sd-popover-panel.sd-popover-above:after{content:\" \";display:block;height:16px;position:absolute;width:100%}.sd-popover-panel.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%;transform:translateX(-6px) translateY(1px)}.sd-popover-panel.sd-popover-below:before{content:\" \";display:block;height:16px;position:absolute;width:100%}.sd-popover--normal{background:#fff;color:#000}.sd-popover--normal.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--normal.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--primary{background:#e7e9ff;color:#2962ff}.sd-popover--primary.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--primary.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--info{background:#e7e9ff;color:#2962ff}.sd-popover--info.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--info.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--success{background:#dbefdc;color:#4caf50}.sd-popover--success.sd-popover-above .sd-popover-arrow{border-color:#dbefdc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--success.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #dbefdc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--warning{background:#ffeacc;color:#ff9600}.sd-popover--warning.sd-popover-above .sd-popover-arrow{border-color:#ffeacc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--warning.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #ffeacc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--danger{background:#fed5d0;color:#f82c13}.sd-popover--danger.sd-popover-above .sd-popover-arrow{border-color:#fed5d0 transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--danger.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fed5d0;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover-content{padding:16px}"]
463
+ styles: [".text-black400{color:#757575}.sd-popover-panel{background:#fff;position:relative;width:100%}.sd-popover-panel .sd-popover-arrow{clear:both;height:0;left:50%;position:absolute;width:0}.sd-popover-panel.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%;transform:translateX(-6px) translateY(-1px)}.sd-popover-panel.sd-popover-above:after{content:\" \";display:block;height:16px;position:absolute;width:100%}.sd-popover-panel.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%;transform:translateX(-6px) translateY(1px)}.sd-popover-panel.sd-popover-below:before{content:\" \";display:block;height:16px;position:absolute;width:100%}.sd-popover--normal{background:#fff;color:#000}.sd-popover--normal.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--normal.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--primary{background:#e7e9ff;color:#2962ff}.sd-popover--primary.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--primary.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--info{background:#e7e9ff;color:#2962ff}.sd-popover--info.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--info.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--success{background:#dbefdc;color:#4caf50}.sd-popover--success.sd-popover-above .sd-popover-arrow{border-color:#dbefdc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--success.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #dbefdc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--warning{background:#ffeacc;color:#ff9600}.sd-popover--warning.sd-popover-above .sd-popover-arrow{border-color:#ffeacc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--warning.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #ffeacc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--danger{background:#fed5d0;color:#f82c13}.sd-popover--danger.sd-popover-above .sd-popover-arrow{border-color:#fed5d0 transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--danger.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fed5d0;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover-content{padding:16px}"]
464
464
  },] }
465
465
  ];
466
466
  PopoverComponent.ctorParameters = function () { return [
@@ -12,5 +12,5 @@
12
12
  LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
13
13
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
14
14
  PERFORMANCE OF THIS SOFTWARE.
15
- ***************************************************************************** */Object.create;Object.create;function v(e,o,t,r){if("a"===t&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof o?e!==o||!r:!o.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?r:"a"===t?r.call(e):r?r.value:o.get(e)}function u(e,o,t,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof o?e!==o||!n:!o.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,t):n?n.value=t:o.set(e,t),t}var f,h=function(e){this.templateRef=e};h.decorators=[{type:o.Directive,args:[{selector:"[sdPopoverContent]"}]}],h.ctorParameters=function(){return[{type:o.TemplateRef}]};var b,g,w,m,y,x,k,C,P,O,M,T,E=function(){function e(e,t){var n=this;this.cdRef=e,this.deviceService=t,this.classList={},this.panelId="sd-popover-panel-"+r.v4(),this.isMobileOrTablet=!1,this.mouseState$=new p.BehaviorSubject(!1),this.trigger=null,this.panelClass="",this.width="sm",this.height="auto",this.type="normal",f.set(this,void 0),this.closed=new o.EventEmitter,this.close=function(){n.mouseState$.next(!1),n.closed.emit()},this.setPositionClasses=function(e){var o;void 0===e&&(e=n.position);var t=n.classList;t["sd-popover-above"]="above"===e,t["sd-popover-below"]="below"===e,null===(o=n.cdRef)||void 0===o||o.markForCheck()},this.addArrowTranslateX=function(e){var o=document.querySelector("#"+n.panelId+" .sd-popover-arrow");if(o&&e)try{var t=window.getComputedStyle(o),r=new WebKitCSSMatrix(t.transform),p=r.m41+e,a=r.m42;o.style.transform="translateX("+p+"px) translateY("+a+"px)"}catch(e){}},this.setMouseState=function(e){if(!e){var o=document.activeElement,t=n.panel.nativeElement;if(null==t?void 0:t.contains(o))return}n.mouseState$.next(e)},this.isMobileOrTablet=!t.isDesktop()}return Object.defineProperty(e.prototype,"position",{get:function(){return v(this,f)},set:function(e){u(this,f,e),this.setPositionClasses()},enumerable:!1,configurable:!0}),e.prototype._hostClick=function(e){var o;(null===(o=this.panel)||void 0===o?void 0:o.nativeElement)&&(this.panel.nativeElement.contains(e)||this.setMouseState(!1))},e.prototype.ngOnChanges=function(e){var o;if(e.type){var t=e.type.currentValue,r=e.type.previousValue;this.classList=null!==(o=this.classList)&&void 0!==o?o:{"sd-popover--normal":!0},r&&(this.classList["sd-popover--"+r]=!1),t&&(this.classList["sd-popover--"+t]=!0)}},e.prototype.ngOnInit=function(){if(this.setPositionClasses(),this.width=this.width||"80vw",!this.isMobileOrTablet)switch(this.width){case"lg":this.width="80vw";break;case"md":this.width="60vw";break;case"sm":this.width="40vw"}},e.prototype.ngOnDestroy=function(){this.closed.complete(),this.mouseState$.complete()},e}();f=new WeakMap,E.decorators=[{type:o.Component,args:[{selector:"sd-popover",template:'<ng-template let-data="data">\r\n <div\r\n class="sd-popover-panel mat-elevation-z6"\r\n [id]="panelId"\r\n [ngClass]="classList"\r\n tabindex="-1"\r\n role="menu"\r\n (mouseenter)="setMouseState(true)"\r\n (mouseleave)="setMouseState(false)"\r\n cdkTrapFocus\r\n #panel\r\n >\r\n <div class="sd-popover-content bg-white p-16">\r\n <ng-container *ngIf="popoverContent?.templateRef">\r\n <ng-container *ngTemplateOutlet="popoverContent.templateRef; context:{data: data}"></ng-container>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class="sd-popover-arrow"></div>\r\n </div>\r\n</ng-template>',encapsulation:o.ViewEncapsulation.None,exportAs:"sdPopover",changeDetection:o.ChangeDetectionStrategy.OnPush,styles:['.text-black400{color:#757575}.sd-popover-panel{background:#fff;position:relative}.sd-popover-panel .sd-popover-arrow{clear:both;height:0;left:50%;position:absolute;width:0}.sd-popover-panel.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%;transform:translateX(-6px) translateY(-1px)}.sd-popover-panel.sd-popover-above:after{content:" ";display:block;height:16px;position:absolute;width:100%}.sd-popover-panel.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%;transform:translateX(-6px) translateY(1px)}.sd-popover-panel.sd-popover-below:before{content:" ";display:block;height:16px;position:absolute;width:100%}.sd-popover--normal{background:#fff;color:#000}.sd-popover--normal.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--normal.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--primary{background:#e7e9ff;color:#2962ff}.sd-popover--primary.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--primary.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--info{background:#e7e9ff;color:#2962ff}.sd-popover--info.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--info.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--success{background:#dbefdc;color:#4caf50}.sd-popover--success.sd-popover-above .sd-popover-arrow{border-color:#dbefdc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--success.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #dbefdc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--warning{background:#ffeacc;color:#ff9600}.sd-popover--warning.sd-popover-above .sd-popover-arrow{border-color:#ffeacc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--warning.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #ffeacc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--danger{background:#fed5d0;color:#f82c13}.sd-popover--danger.sd-popover-above .sd-popover-arrow{border-color:#fed5d0 transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--danger.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fed5d0;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover-content{padding:16px}']}]}],E.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:n.DeviceDetectorService}]},E.propDecorators={templateRef:[{type:o.ViewChild,args:[o.TemplateRef]}],panel:[{type:o.ViewChild,args:["panel"]}],popoverContent:[{type:o.ContentChild,args:[h]}],panelClass:[{type:o.Input}],width:[{type:o.Input}],height:[{type:o.Input}],type:[{type:o.Input}],position:[{type:o.Input}],closed:[{type:o.Output}],_hostClick:[{type:o.HostListener,args:["document:click",["$event.target"]]}]};var R=function(){function e(e,t,r,n,a,i,l){var c=this;this._overlay=e,this._element=t,this._ngZone=r,this.viewContainerRef=n,this.elementRef=a,this.platform=i,this._dir=l,b.set(this,null),g.set(this,p.Subscription.EMPTY),w.set(this,void 0),m.set(this,new p.Subject),this.popoverOpen=!1,y.set(this,void 0),this.disabled=!1,this.popoverOpened=new o.EventEmitter,this.popoverClosed=new o.EventEmitter,this.openPopover=function(){if(!c.popoverOpen){var e=v(c,C).call(c),o=e.getConfig(),t=o.positionStrategy;v(c,P).call(c,t),o.hasBackdrop=!1,e.attach(v(c,k).call(c)),c.popover.trigger=c,v(c,x).call(c,!0)}},this.closePopover=function(){c.popover.closed.emit()},x.set(this,(function(e){c.popoverOpen=e,c.popoverOpen?c.popoverOpened.emit():c.popoverClosed.emit()})),k.set(this,(function(){var e;return v(c,w)&&v(c,w).templateRef===c.popover.templateRef&&(null===(e=v(c,w).context)||void 0===e?void 0:e.data)===c.popoverData||u(c,w,new d.TemplatePortal(c.popover.templateRef,c.viewContainerRef,{data:c.popoverData})),v(c,w)})),C.set(this,(function(){if(!v(c,b)){var e=v(c,O).call(c);v(c,M).call(c,e.positionStrategy),u(c,b,c._overlay.create(e))}return v(c,b)})),P.set(this,(function(e){var o="top",t="bottom";switch(c.popover.position){case"above":o="top",t="bottom";break;case"below":o="bottom",t="top"}e.withPositions([{originX:"center",originY:o,overlayX:"center",overlayY:t,offsetY:"top"==o?-16:16},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetX:0,offsetY:-16},{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetX:0,offsetY:16}])})),O.set(this,(function(){return new s.OverlayConfig({positionStrategy:c._overlay.position().flexibleConnectedTo(c._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".sd-popover-panel"),backdropClass:"cdk-overlay-transparent-backdrop",panelClass:c.popover.panelClass,direction:c._dir,width:c.popover.width,height:c.popover.height})})),M.set(this,(function(e){c.popover.setPositionClasses&&e.positionChanges.subscribe((function(e){var o,t="top"===e.connectionPair.overlayY?"below":"above";c._ngZone?c._ngZone.run((function(){return c.popover.setPositionClasses(t)})):c.popover.setPositionClasses(t);var r=c.elementRef.nativeElement,n=null===(o=c.viewContainerRef.get(0))||void 0===o?void 0:o.rootNodes[0];if(r&&n){var p=r.getBoundingClientRect(),a=n.getBoundingClientRect(),s=p.left+p.width/2-(a.left+a.width/2);c.popover.addArrowTranslateX(s)}}))})),T.set(this,(function(){v(c,b)&&c.popoverOpen&&(v(c,b).detach(),v(c,x).call(c,!1))}))}return Object.defineProperty(e.prototype,"popover",{get:function(){return v(this,y)},set:function(e){var o=this;e!==v(this,y)&&(u(this,y,e),v(this,g).unsubscribe(),e&&u(this,g,e.closed.subscribe((function(){v(o,T).call(o)}))))},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;if(this.popover){var o=this.elementRef.nativeElement,t=p.merge(p.fromEvent(o,"mouseenter").pipe(l.mapTo(!0)),p.fromEvent(o,"mouseleave").pipe(l.mapTo(!1))),r=this.popover.mouseState$.pipe(l.filter((function(o){return!e.popover.trigger||e.popover.trigger==e})));p.merge(r,t).pipe(l.debounceTime(100),l.distinctUntilChanged(),l.filter((function(){return e.platform.isBrowser})),l.takeUntil(v(this,m))).subscribe((function(o){o&&!e.disabled?e.openPopover():e.closePopover()}))}},e.prototype.ngOnDestroy=function(){v(this,m).next(),v(this,m).complete(),v(this,b)&&(v(this,b).dispose(),u(this,b,null))},e}();b=new WeakMap,g=new WeakMap,w=new WeakMap,m=new WeakMap,y=new WeakMap,x=new WeakMap,k=new WeakMap,C=new WeakMap,P=new WeakMap,O=new WeakMap,M=new WeakMap,T=new WeakMap,R.decorators=[{type:o.Directive,args:[{selector:"[sdPopoverTriggerFor]",host:{"aria-haspopup":"true",class:"sd-popover-trigger"},exportAs:"sdPopoverTrigger"}]}],R.ctorParameters=function(){return[{type:s.Overlay},{type:o.ElementRef},{type:o.NgZone},{type:o.ViewContainerRef},{type:o.ElementRef},{type:i.Platform},{type:a.Directionality,decorators:[{type:o.Optional}]}]},R.propDecorators={popover:[{type:o.Input,args:["sdPopoverTriggerFor"]}],popoverData:[{type:o.Input,args:["sdPopoverData"]}],disabled:[{type:o.Input,args:["sdPopoverDisabled"]}],popoverOpened:[{type:o.Output}],popoverClosed:[{type:o.Output}]};var S=function(){};S.decorators=[{type:o.NgModule,args:[{declarations:[E,R,h],imports:[t.CommonModule,c.A11yModule],exports:[E,R,h]}]}],e.PopoverComponent=E,e.PopoverContentDirective=h,e.PopoverTriggerDirective=R,e.SdPopoverModule=S,Object.defineProperty(e,"__esModule",{value:!0})}));
15
+ ***************************************************************************** */Object.create;Object.create;function v(e,o,t,r){if("a"===t&&!r)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof o?e!==o||!r:!o.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===t?r:"a"===t?r.call(e):r?r.value:o.get(e)}function u(e,o,t,r,n){if("m"===r)throw new TypeError("Private method is not writable");if("a"===r&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof o?e!==o||!n:!o.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===r?n.call(e,t):n?n.value=t:o.set(e,t),t}var f,h=function(e){this.templateRef=e};h.decorators=[{type:o.Directive,args:[{selector:"[sdPopoverContent]"}]}],h.ctorParameters=function(){return[{type:o.TemplateRef}]};var b,g,w,m,y,x,k,C,P,O,M,T,E=function(){function e(e,t){var n=this;this.cdRef=e,this.deviceService=t,this.classList={},this.panelId="sd-popover-panel-"+r.v4(),this.isMobileOrTablet=!1,this.mouseState$=new p.BehaviorSubject(!1),this.trigger=null,this.panelClass="",this.width="sm",this.height="auto",this.type="normal",f.set(this,void 0),this.closed=new o.EventEmitter,this.close=function(){n.mouseState$.next(!1),n.closed.emit()},this.setPositionClasses=function(e){var o;void 0===e&&(e=n.position);var t=n.classList;t["sd-popover-above"]="above"===e,t["sd-popover-below"]="below"===e,null===(o=n.cdRef)||void 0===o||o.markForCheck()},this.addArrowTranslateX=function(e){var o=document.querySelector("#"+n.panelId+" .sd-popover-arrow");if(o&&e)try{var t=window.getComputedStyle(o),r=new WebKitCSSMatrix(t.transform),p=r.m41+e,a=r.m42;o.style.transform="translateX("+p+"px) translateY("+a+"px)"}catch(e){}},this.setMouseState=function(e){if(!e){var o=document.activeElement,t=n.panel.nativeElement;if(null==t?void 0:t.contains(o))return}n.mouseState$.next(e)},this.isMobileOrTablet=!t.isDesktop()}return Object.defineProperty(e.prototype,"position",{get:function(){return v(this,f)},set:function(e){u(this,f,e),this.setPositionClasses()},enumerable:!1,configurable:!0}),e.prototype._hostClick=function(e){var o;(null===(o=this.panel)||void 0===o?void 0:o.nativeElement)&&(this.panel.nativeElement.contains(e)||this.setMouseState(!1))},e.prototype.ngOnChanges=function(e){var o;if(e.type){var t=e.type.currentValue,r=e.type.previousValue;this.classList=null!==(o=this.classList)&&void 0!==o?o:{"sd-popover--normal":!0},r&&(this.classList["sd-popover--"+r]=!1),t&&(this.classList["sd-popover--"+t]=!0)}},e.prototype.ngOnInit=function(){if(this.setPositionClasses(),this.width=this.width||"80vw",!this.isMobileOrTablet)switch(this.width){case"lg":this.width="80vw";break;case"md":this.width="60vw";break;case"sm":this.width="40vw"}},e.prototype.ngOnDestroy=function(){this.closed.complete(),this.mouseState$.complete()},e}();f=new WeakMap,E.decorators=[{type:o.Component,args:[{selector:"sd-popover",template:'<ng-template let-data="data">\r\n <div\r\n class="sd-popover-panel mat-elevation-z6"\r\n [id]="panelId"\r\n [ngClass]="classList"\r\n tabindex="-1"\r\n role="menu"\r\n (mouseenter)="setMouseState(true)"\r\n (mouseleave)="setMouseState(false)"\r\n cdkTrapFocus\r\n #panel\r\n >\r\n <div class="sd-popover-content bg-white p-16">\r\n <ng-container *ngIf="popoverContent?.templateRef">\r\n <ng-container *ngTemplateOutlet="popoverContent.templateRef; context:{data: data}"></ng-container>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n <div class="sd-popover-arrow"></div>\r\n </div>\r\n</ng-template>',encapsulation:o.ViewEncapsulation.None,exportAs:"sdPopover",changeDetection:o.ChangeDetectionStrategy.OnPush,styles:['.text-black400{color:#757575}.sd-popover-panel{background:#fff;position:relative;width:100%}.sd-popover-panel .sd-popover-arrow{clear:both;height:0;left:50%;position:absolute;width:0}.sd-popover-panel.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%;transform:translateX(-6px) translateY(-1px)}.sd-popover-panel.sd-popover-above:after{content:" ";display:block;height:16px;position:absolute;width:100%}.sd-popover-panel.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%;transform:translateX(-6px) translateY(1px)}.sd-popover-panel.sd-popover-below:before{content:" ";display:block;height:16px;position:absolute;width:100%}.sd-popover--normal{background:#fff;color:#000}.sd-popover--normal.sd-popover-above .sd-popover-arrow{border-color:#fff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--normal.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--primary{background:#e7e9ff;color:#2962ff}.sd-popover--primary.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--primary.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--info{background:#e7e9ff;color:#2962ff}.sd-popover--info.sd-popover-above .sd-popover-arrow{border-color:#e7e9ff transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--info.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #e7e9ff;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--success{background:#dbefdc;color:#4caf50}.sd-popover--success.sd-popover-above .sd-popover-arrow{border-color:#dbefdc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--success.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #dbefdc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--warning{background:#ffeacc;color:#ff9600}.sd-popover--warning.sd-popover-above .sd-popover-arrow{border-color:#ffeacc transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--warning.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #ffeacc;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover--danger{background:#fed5d0;color:#f82c13}.sd-popover--danger.sd-popover-above .sd-popover-arrow{border-color:#fed5d0 transparent transparent;border-style:solid;border-width:12px 12px 0;top:100%}.sd-popover--danger.sd-popover-below .sd-popover-arrow{border-color:transparent transparent #fed5d0;border-style:solid;border-width:0 12px 12px;bottom:100%}.sd-popover-content{padding:16px}']}]}],E.ctorParameters=function(){return[{type:o.ChangeDetectorRef},{type:n.DeviceDetectorService}]},E.propDecorators={templateRef:[{type:o.ViewChild,args:[o.TemplateRef]}],panel:[{type:o.ViewChild,args:["panel"]}],popoverContent:[{type:o.ContentChild,args:[h]}],panelClass:[{type:o.Input}],width:[{type:o.Input}],height:[{type:o.Input}],type:[{type:o.Input}],position:[{type:o.Input}],closed:[{type:o.Output}],_hostClick:[{type:o.HostListener,args:["document:click",["$event.target"]]}]};var R=function(){function e(e,t,r,n,a,i,l){var c=this;this._overlay=e,this._element=t,this._ngZone=r,this.viewContainerRef=n,this.elementRef=a,this.platform=i,this._dir=l,b.set(this,null),g.set(this,p.Subscription.EMPTY),w.set(this,void 0),m.set(this,new p.Subject),this.popoverOpen=!1,y.set(this,void 0),this.disabled=!1,this.popoverOpened=new o.EventEmitter,this.popoverClosed=new o.EventEmitter,this.openPopover=function(){if(!c.popoverOpen){var e=v(c,C).call(c),o=e.getConfig(),t=o.positionStrategy;v(c,P).call(c,t),o.hasBackdrop=!1,e.attach(v(c,k).call(c)),c.popover.trigger=c,v(c,x).call(c,!0)}},this.closePopover=function(){c.popover.closed.emit()},x.set(this,(function(e){c.popoverOpen=e,c.popoverOpen?c.popoverOpened.emit():c.popoverClosed.emit()})),k.set(this,(function(){var e;return v(c,w)&&v(c,w).templateRef===c.popover.templateRef&&(null===(e=v(c,w).context)||void 0===e?void 0:e.data)===c.popoverData||u(c,w,new d.TemplatePortal(c.popover.templateRef,c.viewContainerRef,{data:c.popoverData})),v(c,w)})),C.set(this,(function(){if(!v(c,b)){var e=v(c,O).call(c);v(c,M).call(c,e.positionStrategy),u(c,b,c._overlay.create(e))}return v(c,b)})),P.set(this,(function(e){var o="top",t="bottom";switch(c.popover.position){case"above":o="top",t="bottom";break;case"below":o="bottom",t="top"}e.withPositions([{originX:"center",originY:o,overlayX:"center",overlayY:t,offsetY:"top"==o?-16:16},{originX:"center",originY:"top",overlayX:"center",overlayY:"bottom",offsetX:0,offsetY:-16},{originX:"center",originY:"bottom",overlayX:"center",overlayY:"top",offsetX:0,offsetY:16}])})),O.set(this,(function(){return new s.OverlayConfig({positionStrategy:c._overlay.position().flexibleConnectedTo(c._element).withLockedPosition().withGrowAfterOpen().withTransformOriginOn(".sd-popover-panel"),backdropClass:"cdk-overlay-transparent-backdrop",panelClass:c.popover.panelClass,direction:c._dir,width:c.popover.width,height:c.popover.height})})),M.set(this,(function(e){c.popover.setPositionClasses&&e.positionChanges.subscribe((function(e){var o,t="top"===e.connectionPair.overlayY?"below":"above";c._ngZone?c._ngZone.run((function(){return c.popover.setPositionClasses(t)})):c.popover.setPositionClasses(t);var r=c.elementRef.nativeElement,n=null===(o=c.viewContainerRef.get(0))||void 0===o?void 0:o.rootNodes[0];if(r&&n){var p=r.getBoundingClientRect(),a=n.getBoundingClientRect(),s=p.left+p.width/2-(a.left+a.width/2);c.popover.addArrowTranslateX(s)}}))})),T.set(this,(function(){v(c,b)&&c.popoverOpen&&(v(c,b).detach(),v(c,x).call(c,!1))}))}return Object.defineProperty(e.prototype,"popover",{get:function(){return v(this,y)},set:function(e){var o=this;e!==v(this,y)&&(u(this,y,e),v(this,g).unsubscribe(),e&&u(this,g,e.closed.subscribe((function(){v(o,T).call(o)}))))},enumerable:!1,configurable:!0}),e.prototype.ngAfterViewInit=function(){var e=this;if(this.popover){var o=this.elementRef.nativeElement,t=p.merge(p.fromEvent(o,"mouseenter").pipe(l.mapTo(!0)),p.fromEvent(o,"mouseleave").pipe(l.mapTo(!1))),r=this.popover.mouseState$.pipe(l.filter((function(o){return!e.popover.trigger||e.popover.trigger==e})));p.merge(r,t).pipe(l.debounceTime(100),l.distinctUntilChanged(),l.filter((function(){return e.platform.isBrowser})),l.takeUntil(v(this,m))).subscribe((function(o){o&&!e.disabled?e.openPopover():e.closePopover()}))}},e.prototype.ngOnDestroy=function(){v(this,m).next(),v(this,m).complete(),v(this,b)&&(v(this,b).dispose(),u(this,b,null))},e}();b=new WeakMap,g=new WeakMap,w=new WeakMap,m=new WeakMap,y=new WeakMap,x=new WeakMap,k=new WeakMap,C=new WeakMap,P=new WeakMap,O=new WeakMap,M=new WeakMap,T=new WeakMap,R.decorators=[{type:o.Directive,args:[{selector:"[sdPopoverTriggerFor]",host:{"aria-haspopup":"true",class:"sd-popover-trigger"},exportAs:"sdPopoverTrigger"}]}],R.ctorParameters=function(){return[{type:s.Overlay},{type:o.ElementRef},{type:o.NgZone},{type:o.ViewContainerRef},{type:o.ElementRef},{type:i.Platform},{type:a.Directionality,decorators:[{type:o.Optional}]}]},R.propDecorators={popover:[{type:o.Input,args:["sdPopoverTriggerFor"]}],popoverData:[{type:o.Input,args:["sdPopoverData"]}],disabled:[{type:o.Input,args:["sdPopoverDisabled"]}],popoverOpened:[{type:o.Output}],popoverClosed:[{type:o.Output}]};var S=function(){};S.decorators=[{type:o.NgModule,args:[{declarations:[E,R,h],imports:[t.CommonModule,c.A11yModule],exports:[E,R,h]}]}],e.PopoverComponent=E,e.PopoverContentDirective=h,e.PopoverTriggerDirective=R,e.SdPopoverModule=S,Object.defineProperty(e,"__esModule",{value:!0})}));
16
16
  //# sourceMappingURL=sd-angular-core-popover.umd.min.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/popover/src/lib/directives/popover-content.directive.ts","../../../../projects/sd-core/popover/src/lib/popover/popover.component.ts","../../../../projects/sd-core/popover/src/lib/directives/popover-trigger.directive.ts","../../../../projects/sd-core/popover/src/lib/popover.module.ts"],"names":["Object","create","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","PopoverComponent","cdRef","deviceService","_this","classList","panelId","uuid.v4","isMobileOrTablet","mouseState$","BehaviorSubject","trigger","panelClass","width","height","type","_xPosition","closed","EventEmitter","close","next","emit","setPositionClasses","pos","position","classes","_a","markForCheck","addArrowTranslateX","offset","arrowElement","document","querySelector","style","window","getComputedStyle","matrix","WebKitCSSMatrix","transform","translateX","m41","translateY","m42","error","setMouseState","visible","activeElement","panelElement","panel","nativeElement","contains","isDesktop","defineProperty","prototype","_hostClick","targetElement","ngOnChanges","changes","currentValue","preType","previousValue","sd-popover--normal","ngOnInit","ngOnDestroy","complete","Component","template","encapsulation","ViewEncapsulation","None","exportAs","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","DeviceDetectorService","ViewChild","ContentChild","PopoverContentDirective","Input","Output","HostListener","PopoverTriggerDirective","_overlay","_element","_ngZone","viewContainerRef","elementRef","platform","_dir","_overlayRef","_popoverClose$","Subscription","EMPTY","_portal","_destroy$","Subject","popoverOpen","_popover","disabled","popoverOpened","popoverClosed","openPopover","overlayRef","_createOverlay","overlayConfig","getConfig","positionStrategy","_setPosition","hasBackdrop","attach","_getPortal","popover","_setIsPopoverOpen","closePopover","isOpen","context","data","popoverData","TemplatePortal","config","_getOverlayConfig","_subscribeToPositions","originY","overlayY","withPositions","originX","overlayX","offsetY","offsetX","OverlayConfig","flexibleConnectedTo","withLockedPosition","withGrowAfterOpen","withTransformOriginOn","backdropClass","direction","positionChanges","subscribe","change","connectionPair","run","originElement","overlayElement","rootNodes","originRect","getBoundingClientRect","overlayRect","left","_destroyPopover","detach","unsubscribe","ngAfterViewInit","hostMouseState$","merge","fromEvent","pipe","mapTo","popoverMouseState$","filter","v","debounceTime","distinctUntilChanged","isBrowser","takeUntil","dispose","host","aria-haspopup","class","Overlay","ElementRef","NgZone","ViewContainerRef","Platform","Directionality","decorators","Optional","NgModule","declarations","imports","CommonModule","A11yModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdPopoverContent]'\r\n})\r\nexport class PopoverContentDirective {\r\n\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n OnChanges,\r\n SimpleChanges,\r\n ContentChild\r\n} from \"@angular/core\";\r\nimport { Position } from \"../popover.model\";\r\nimport * as uuid from \"uuid\";\r\nimport { DeviceDetectorService } from \"ngx-device-detector\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { PopoverTriggerDirective } from \"../directives/popover-trigger.directive\";\r\nimport { PopoverContentDirective } from \"../directives/popover-content.directive\";\r\n\r\nexport interface SdPopover {\r\n close: () => void;\r\n}\r\n\r\n@Component({\r\n selector: \"sd-popover\",\r\n templateUrl: \"./popover.component.html\",\r\n styleUrls: [\"./popover.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: \"sdPopover\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PopoverComponent implements SdPopover, OnChanges, OnInit, OnDestroy {\r\n classList: Record<string, boolean> = {};\r\n panelId = `sd-popover-panel-${uuid.v4()}`;\r\n isMobileOrTablet = false;\r\n mouseState$ = new BehaviorSubject<boolean>(false);\r\n trigger: PopoverTriggerDirective = null;\r\n\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @ViewChild(\"panel\") panel: ElementRef<HTMLDivElement>;\r\n @ContentChild(PopoverContentDirective) popoverContent: PopoverContentDirective\r\n\r\n @Input() panelClass: string = \"\";\r\n @Input() width: \"lg\" | \"md\" | \"sm\" | string = \"sm\";\r\n @Input() height: string = \"auto\";\r\n @Input() type: 'normal' | 'primary' | 'info' | 'success' | 'warning' | 'danger' = \"normal\";\r\n @Input()\r\n get position(): Position {\r\n return this.#xPosition;\r\n }\r\n set position(value: Position) {\r\n this.#xPosition = value;\r\n this.setPositionClasses();\r\n }\r\n #xPosition: Position;\r\n\r\n @Output() readonly closed = new EventEmitter<void>();\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n _hostClick(targetElement) {\r\n if (this.panel?.nativeElement) {\r\n const isInside = this.panel.nativeElement.contains(targetElement);\r\n if (!isInside) {\r\n this.setMouseState(false);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private deviceService: DeviceDetectorService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.type) {\r\n const type = changes.type.currentValue;\r\n const preType = changes.type.previousValue;\r\n this.classList = this.classList ?? {\r\n 'sd-popover--normal': true\r\n };\r\n if (preType) {\r\n this.classList[`sd-popover--${preType}`] = false;\r\n }\r\n if (type) {\r\n this.classList[`sd-popover--${type}`] = true;\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPositionClasses();\r\n this.width = this.width || \"80vw\";\r\n if (!this.isMobileOrTablet) {\r\n switch (this.width) {\r\n case \"lg\":\r\n this.width = \"80vw\";\r\n break;\r\n case \"md\":\r\n this.width = \"60vw\";\r\n break;\r\n case \"sm\":\r\n this.width = \"40vw\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closed.complete();\r\n this.mouseState$.complete();\r\n }\r\n\r\n close = () => {\r\n this.mouseState$.next(false);\r\n this.closed.emit();\r\n };\r\n\r\n setPositionClasses = (pos: Position = this.position) => {\r\n const classes = this.classList;\r\n classes[\"sd-popover-above\"] = pos === \"above\";\r\n classes[\"sd-popover-below\"] = pos === \"below\";\r\n\r\n this.cdRef?.markForCheck();\r\n };\r\n\r\n addArrowTranslateX = (offset: number) => {\r\n const arrowElement: HTMLElement = document.querySelector(`#${this.panelId} .sd-popover-arrow`);\r\n if (arrowElement && offset) {\r\n try {\r\n const style = window.getComputedStyle(arrowElement);\r\n const matrix = new WebKitCSSMatrix(style.transform);\r\n const translateX = matrix.m41 + offset;\r\n const translateY = matrix.m42;\r\n arrowElement.style.transform = `translateX(${translateX}px) translateY(${translateY}px)`;\r\n } catch (error) {}\r\n }\r\n };\r\n\r\n setMouseState = (visible: boolean) => {\r\n if (!visible) {\r\n // chỉ được tắt khi đang không focus element nào bên trong panel\r\n // tránh lỗi có control mở overlay khiến cho mất mouseenter ở panel\r\n const activeElement = document.activeElement;\r\n const panelElement = this.panel.nativeElement;\r\n if (panelElement?.contains(activeElement)) {\r\n return;\r\n }\r\n }\r\n this.mouseState$.next(visible);\r\n };\r\n}\r\n","import { Directionality } from \"@angular/cdk/bidi\";\r\nimport {\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef,\r\n} from \"@angular/cdk/overlay\";\r\nimport { Platform } from \"@angular/cdk/platform\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { fromEvent, merge, Subject, Subscription } from \"rxjs\";\r\nimport {\r\n auditTime,\r\n debounceTime,\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n mapTo,\r\n takeUntil,\r\n tap,\r\n} from \"rxjs/operators\";\r\nimport { Position } from \"../popover.model\";\r\nimport { PopoverComponent } from \"../popover/popover.component\";\r\n\r\n@Directive({\r\n selector: \"[sdPopoverTriggerFor]\",\r\n host: {\r\n \"aria-haspopup\": \"true\",\r\n class: \"sd-popover-trigger\",\r\n },\r\n exportAs: \"sdPopoverTrigger\",\r\n})\r\nexport class PopoverTriggerDirective implements AfterViewInit, OnDestroy {\r\n #overlayRef: OverlayRef | null = null;\r\n #popoverClose$ = Subscription.EMPTY;\r\n #portal: TemplatePortal;\r\n #destroy$ = new Subject();\r\n\r\n popoverOpen = false;\r\n\r\n @Input(\"sdPopoverTriggerFor\")\r\n get popover() {\r\n return this.#popover;\r\n }\r\n set popover(popover: PopoverComponent) {\r\n if (popover === this.#popover) {\r\n return;\r\n }\r\n this.#popover = popover;\r\n this.#popoverClose$.unsubscribe();\r\n if (popover) {\r\n this.#popoverClose$ = popover.closed.subscribe(() => {\r\n this.#destroyPopover();\r\n });\r\n }\r\n }\r\n #popover: PopoverComponent;\r\n\r\n @Input(\"sdPopoverData\")\r\n popoverData: any;\r\n\r\n @Input(\"sdPopoverDisabled\")\r\n disabled: boolean = false;\r\n\r\n @Output() popoverOpened = new EventEmitter<void>();\r\n @Output() popoverClosed = new EventEmitter<void>();\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _element: ElementRef<HTMLElement>,\r\n private _ngZone: NgZone,\r\n private viewContainerRef: ViewContainerRef,\r\n private elementRef: ElementRef,\r\n private platform: Platform,\r\n @Optional() private _dir: Directionality\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.popover) {\r\n const nativeElement = this.elementRef.nativeElement;\r\n\r\n const hostMouseState$ = merge(\r\n fromEvent(nativeElement, \"mouseenter\").pipe(mapTo(true)),\r\n fromEvent(nativeElement, \"mouseleave\").pipe(mapTo(false))\r\n );\r\n\r\n const popoverMouseState$ = this.popover.mouseState$.pipe(\r\n // chỉ lấy luồng emit open bởi chính trigger (tránh lỗi nhiều trigger cho một popover)\r\n filter((v) => !this.popover.trigger || this.popover.trigger == this)\r\n );\r\n\r\n const mergedMouseState$ = merge(popoverMouseState$, hostMouseState$);\r\n\r\n mergedMouseState$\r\n .pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n filter(() => this.platform.isBrowser),\r\n takeUntil(this.#destroy$)\r\n )\r\n .subscribe((visible) => {\r\n if (visible && !this.disabled) {\r\n this.openPopover();\r\n } else {\r\n this.closePopover();\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#destroy$.next();\r\n this.#destroy$.complete();\r\n if (this.#overlayRef) {\r\n this.#overlayRef.dispose();\r\n this.#overlayRef = null;\r\n }\r\n }\r\n\r\n openPopover = () => {\r\n if (this.popoverOpen) {\r\n return;\r\n }\r\n\r\n const overlayRef = this.#createOverlay();\r\n const overlayConfig = overlayRef.getConfig();\r\n const positionStrategy =\r\n overlayConfig.positionStrategy as FlexibleConnectedPositionStrategy;\r\n this.#setPosition(positionStrategy);\r\n overlayConfig.hasBackdrop = false;\r\n overlayRef.attach(this.#getPortal());\r\n this.popover.trigger = this;\r\n this.#setIsPopoverOpen(true);\r\n };\r\n\r\n closePopover = () => {\r\n this.popover.closed.emit();\r\n };\r\n\r\n #setIsPopoverOpen = (isOpen: boolean) => {\r\n this.popoverOpen = isOpen;\r\n this.popoverOpen ? this.popoverOpened.emit() : this.popoverClosed.emit();\r\n };\r\n\r\n #getPortal = (): TemplatePortal => {\r\n if (\r\n !this.#portal ||\r\n this.#portal.templateRef !== this.popover.templateRef ||\r\n this.#portal.context?.data !== this.popoverData\r\n ) {\r\n this.#portal = new TemplatePortal(\r\n this.popover.templateRef,\r\n this.viewContainerRef,\r\n {\r\n data: this.popoverData\r\n }\r\n );\r\n }\r\n\r\n return this.#portal;\r\n };\r\n\r\n #createOverlay = () => {\r\n if (!this.#overlayRef) {\r\n const config = this.#getOverlayConfig();\r\n this.#subscribeToPositions(\r\n config.positionStrategy as FlexibleConnectedPositionStrategy\r\n );\r\n this.#overlayRef = this._overlay.create(config);\r\n }\r\n\r\n return this.#overlayRef;\r\n };\r\n\r\n #setPosition = (positionStrategy: FlexibleConnectedPositionStrategy) => {\r\n let originX: \"start\" | \"center\" | \"end\" = \"center\";\r\n let originY: \"top\" | \"center\" | \"bottom\" = \"top\";\r\n let overlayX: \"start\" | \"center\" | \"end\" = \"center\";\r\n let overlayY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\r\n let offsetX = 0;\r\n let offsetY = 16;\r\n\r\n switch (this.popover.position) {\r\n case \"above\":\r\n originY = \"top\";\r\n overlayY = \"bottom\";\r\n break;\r\n case \"below\":\r\n originY = \"bottom\";\r\n overlayY = \"top\";\r\n break;\r\n }\r\n\r\n positionStrategy.withPositions([\r\n // theo input\r\n { originX, originY, overlayX, overlayY, offsetY: originY == \"top\" ? -offsetY : offsetY },\r\n // giữa trên\r\n {\r\n originX: \"center\",\r\n originY: \"top\",\r\n overlayX: \"center\",\r\n overlayY: \"bottom\",\r\n offsetX,\r\n offsetY: -offsetY,\r\n },\r\n // giữa dưới\r\n {\r\n originX: \"center\",\r\n originY: \"bottom\",\r\n overlayX: \"center\",\r\n overlayY: \"top\",\r\n offsetX,\r\n offsetY,\r\n },\r\n ]);\r\n };\r\n\r\n #getOverlayConfig = () => {\r\n return new OverlayConfig({\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._element)\r\n .withLockedPosition()\r\n .withGrowAfterOpen()\r\n .withTransformOriginOn(\".sd-popover-panel\"),\r\n backdropClass: \"cdk-overlay-transparent-backdrop\",\r\n panelClass: this.popover.panelClass,\r\n direction: this._dir,\r\n width: this.popover.width,\r\n height: this.popover.height,\r\n });\r\n };\r\n\r\n #subscribeToPositions = (position: FlexibleConnectedPositionStrategy) => {\r\n if (this.popover.setPositionClasses) {\r\n position.positionChanges.subscribe((change) => {\r\n const pos: Position =\r\n change.connectionPair.overlayY === \"top\" ? \"below\" : \"above\";\r\n\r\n if (this._ngZone) {\r\n this._ngZone.run(() => this.popover.setPositionClasses(pos));\r\n } else {\r\n this.popover.setPositionClasses(pos);\r\n }\r\n\r\n const originElement: HTMLElement = this.elementRef.nativeElement;\r\n const overlayElement: HTMLElement = (\r\n this.viewContainerRef.get(0) as any\r\n )?.rootNodes[0];\r\n if (originElement && overlayElement) {\r\n const originRect = originElement.getBoundingClientRect();\r\n const overlayRect = overlayElement.getBoundingClientRect();\r\n const originLeft = originRect.left + originRect.width / 2;\r\n const overlayLeft = overlayRect.left + overlayRect.width / 2;\r\n\r\n const offset = originLeft - overlayLeft;\r\n\r\n this.popover.addArrowTranslateX(offset);\r\n }\r\n });\r\n }\r\n };\r\n\r\n #destroyPopover = () => {\r\n if (!this.#overlayRef || !this.popoverOpen) {\r\n return;\r\n }\r\n this.#overlayRef.detach();\r\n this.#setIsPopoverOpen(false);\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover/popover.component';\r\nimport { PopoverTriggerDirective } from './directives/popover-trigger.directive';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { PopoverContentDirective } from './directives/popover-content.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PopoverComponent, \r\n PopoverTriggerDirective, \r\n PopoverContentDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n A11yModule\r\n ],\r\n exports: [\r\n PopoverComponent, \r\n PopoverTriggerDirective,\r\n PopoverContentDirective\r\n ]\r\n})\r\nexport class SdPopoverModule { }\r\n"]}
1
+ {"version":3,"sources":["../../../../node_modules/tslib/tslib.es6.js","../../../../projects/sd-core/popover/src/lib/directives/popover-content.directive.ts","../../../../projects/sd-core/popover/src/lib/popover/popover.component.ts","../../../../projects/sd-core/popover/src/lib/directives/popover-trigger.directive.ts","../../../../projects/sd-core/popover/src/lib/popover.module.ts"],"names":["Object","create","__classPrivateFieldGet","receiver","state","kind","f","TypeError","has","call","value","get","__classPrivateFieldSet","set","templateRef","this","Directive","args","selector","TemplateRef","PopoverComponent","cdRef","deviceService","_this","classList","panelId","uuid.v4","isMobileOrTablet","mouseState$","BehaviorSubject","trigger","panelClass","width","height","type","_xPosition","closed","EventEmitter","close","next","emit","setPositionClasses","pos","position","classes","_a","markForCheck","addArrowTranslateX","offset","arrowElement","document","querySelector","style","window","getComputedStyle","matrix","WebKitCSSMatrix","transform","translateX","m41","translateY","m42","error","setMouseState","visible","activeElement","panelElement","panel","nativeElement","contains","isDesktop","defineProperty","prototype","_hostClick","targetElement","ngOnChanges","changes","currentValue","preType","previousValue","sd-popover--normal","ngOnInit","ngOnDestroy","complete","Component","template","encapsulation","ViewEncapsulation","None","exportAs","changeDetection","ChangeDetectionStrategy","OnPush","ChangeDetectorRef","DeviceDetectorService","ViewChild","ContentChild","PopoverContentDirective","Input","Output","HostListener","PopoverTriggerDirective","_overlay","_element","_ngZone","viewContainerRef","elementRef","platform","_dir","_overlayRef","_popoverClose$","Subscription","EMPTY","_portal","_destroy$","Subject","popoverOpen","_popover","disabled","popoverOpened","popoverClosed","openPopover","overlayRef","_createOverlay","overlayConfig","getConfig","positionStrategy","_setPosition","hasBackdrop","attach","_getPortal","popover","_setIsPopoverOpen","closePopover","isOpen","context","data","popoverData","TemplatePortal","config","_getOverlayConfig","_subscribeToPositions","originY","overlayY","withPositions","originX","overlayX","offsetY","offsetX","OverlayConfig","flexibleConnectedTo","withLockedPosition","withGrowAfterOpen","withTransformOriginOn","backdropClass","direction","positionChanges","subscribe","change","connectionPair","run","originElement","overlayElement","rootNodes","originRect","getBoundingClientRect","overlayRect","left","_destroyPopover","detach","unsubscribe","ngAfterViewInit","hostMouseState$","merge","fromEvent","pipe","mapTo","popoverMouseState$","filter","v","debounceTime","distinctUntilChanged","isBrowser","takeUntil","dispose","host","aria-haspopup","class","Overlay","ElementRef","NgZone","ViewContainerRef","Platform","Directionality","decorators","Optional","NgModule","declarations","imports","CommonModule","A11yModule","exports"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { Directive, TemplateRef } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[sdPopoverContent]'\r\n})\r\nexport class PopoverContentDirective {\r\n\r\n constructor(public templateRef: TemplateRef<any>) { }\r\n\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostListener,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n ViewChild,\r\n ViewEncapsulation,\r\n OnChanges,\r\n SimpleChanges,\r\n ContentChild\r\n} from \"@angular/core\";\r\nimport { Position } from \"../popover.model\";\r\nimport * as uuid from \"uuid\";\r\nimport { DeviceDetectorService } from \"ngx-device-detector\";\r\nimport { BehaviorSubject } from \"rxjs\";\r\nimport { PopoverTriggerDirective } from \"../directives/popover-trigger.directive\";\r\nimport { PopoverContentDirective } from \"../directives/popover-content.directive\";\r\n\r\nexport interface SdPopover {\r\n close: () => void;\r\n}\r\n\r\n@Component({\r\n selector: \"sd-popover\",\r\n templateUrl: \"./popover.component.html\",\r\n styleUrls: [\"./popover.component.scss\"],\r\n encapsulation: ViewEncapsulation.None,\r\n exportAs: \"sdPopover\",\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PopoverComponent implements SdPopover, OnChanges, OnInit, OnDestroy {\r\n classList: Record<string, boolean> = {};\r\n panelId = `sd-popover-panel-${uuid.v4()}`;\r\n isMobileOrTablet = false;\r\n mouseState$ = new BehaviorSubject<boolean>(false);\r\n trigger: PopoverTriggerDirective = null;\r\n\r\n @ViewChild(TemplateRef) templateRef: TemplateRef<any>;\r\n @ViewChild(\"panel\") panel: ElementRef<HTMLDivElement>;\r\n @ContentChild(PopoverContentDirective) popoverContent: PopoverContentDirective\r\n\r\n @Input() panelClass: string = \"\";\r\n @Input() width: \"lg\" | \"md\" | \"sm\" | string = \"sm\";\r\n @Input() height: string = \"auto\";\r\n @Input() type: 'normal' | 'primary' | 'info' | 'success' | 'warning' | 'danger' = \"normal\";\r\n @Input()\r\n get position(): Position {\r\n return this.#xPosition;\r\n }\r\n set position(value: Position) {\r\n this.#xPosition = value;\r\n this.setPositionClasses();\r\n }\r\n #xPosition: Position;\r\n\r\n @Output() readonly closed = new EventEmitter<void>();\r\n\r\n @HostListener('document:click', ['$event.target'])\r\n _hostClick(targetElement) {\r\n if (this.panel?.nativeElement) {\r\n const isInside = this.panel.nativeElement.contains(targetElement);\r\n if (!isInside) {\r\n this.setMouseState(false);\r\n }\r\n }\r\n }\r\n\r\n constructor(\r\n private cdRef: ChangeDetectorRef,\r\n private deviceService: DeviceDetectorService\r\n ) {\r\n this.isMobileOrTablet = !deviceService.isDesktop();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n if(changes.type) {\r\n const type = changes.type.currentValue;\r\n const preType = changes.type.previousValue;\r\n this.classList = this.classList ?? {\r\n 'sd-popover--normal': true\r\n };\r\n if (preType) {\r\n this.classList[`sd-popover--${preType}`] = false;\r\n }\r\n if (type) {\r\n this.classList[`sd-popover--${type}`] = true;\r\n }\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPositionClasses();\r\n this.width = this.width || \"80vw\";\r\n if (!this.isMobileOrTablet) {\r\n switch (this.width) {\r\n case \"lg\":\r\n this.width = \"80vw\";\r\n break;\r\n case \"md\":\r\n this.width = \"60vw\";\r\n break;\r\n case \"sm\":\r\n this.width = \"40vw\";\r\n break;\r\n }\r\n }\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.closed.complete();\r\n this.mouseState$.complete();\r\n }\r\n\r\n close = () => {\r\n this.mouseState$.next(false);\r\n this.closed.emit();\r\n };\r\n\r\n setPositionClasses = (pos: Position = this.position) => {\r\n const classes = this.classList;\r\n classes[\"sd-popover-above\"] = pos === \"above\";\r\n classes[\"sd-popover-below\"] = pos === \"below\";\r\n\r\n this.cdRef?.markForCheck();\r\n };\r\n\r\n addArrowTranslateX = (offset: number) => {\r\n const arrowElement: HTMLElement = document.querySelector(`#${this.panelId} .sd-popover-arrow`);\r\n if (arrowElement && offset) {\r\n try {\r\n const style = window.getComputedStyle(arrowElement);\r\n const matrix = new WebKitCSSMatrix(style.transform);\r\n const translateX = matrix.m41 + offset;\r\n const translateY = matrix.m42;\r\n arrowElement.style.transform = `translateX(${translateX}px) translateY(${translateY}px)`;\r\n } catch (error) {}\r\n }\r\n };\r\n\r\n setMouseState = (visible: boolean) => {\r\n if (!visible) {\r\n // chỉ được tắt khi đang không focus element nào bên trong panel\r\n // tránh lỗi có control mở overlay khiến cho mất mouseenter ở panel\r\n const activeElement = document.activeElement;\r\n const panelElement = this.panel.nativeElement;\r\n if (panelElement?.contains(activeElement)) {\r\n return;\r\n }\r\n }\r\n this.mouseState$.next(visible);\r\n };\r\n}\r\n","import { Directionality } from \"@angular/cdk/bidi\";\r\nimport {\r\n FlexibleConnectedPositionStrategy,\r\n Overlay,\r\n OverlayConfig,\r\n OverlayRef,\r\n} from \"@angular/cdk/overlay\";\r\nimport { Platform } from \"@angular/cdk/platform\";\r\nimport { TemplatePortal } from \"@angular/cdk/portal\";\r\nimport {\r\n AfterContentInit,\r\n AfterViewInit,\r\n Directive,\r\n ElementRef,\r\n EventEmitter,\r\n Input,\r\n NgZone,\r\n OnDestroy,\r\n Optional,\r\n Output,\r\n ViewContainerRef,\r\n} from \"@angular/core\";\r\nimport { fromEvent, merge, Subject, Subscription } from \"rxjs\";\r\nimport {\r\n auditTime,\r\n debounceTime,\r\n distinctUntilChanged,\r\n filter,\r\n map,\r\n mapTo,\r\n takeUntil,\r\n tap,\r\n} from \"rxjs/operators\";\r\nimport { Position } from \"../popover.model\";\r\nimport { PopoverComponent } from \"../popover/popover.component\";\r\n\r\n@Directive({\r\n selector: \"[sdPopoverTriggerFor]\",\r\n host: {\r\n \"aria-haspopup\": \"true\",\r\n class: \"sd-popover-trigger\",\r\n },\r\n exportAs: \"sdPopoverTrigger\",\r\n})\r\nexport class PopoverTriggerDirective implements AfterViewInit, OnDestroy {\r\n #overlayRef: OverlayRef | null = null;\r\n #popoverClose$ = Subscription.EMPTY;\r\n #portal: TemplatePortal;\r\n #destroy$ = new Subject();\r\n\r\n popoverOpen = false;\r\n\r\n @Input(\"sdPopoverTriggerFor\")\r\n get popover() {\r\n return this.#popover;\r\n }\r\n set popover(popover: PopoverComponent) {\r\n if (popover === this.#popover) {\r\n return;\r\n }\r\n this.#popover = popover;\r\n this.#popoverClose$.unsubscribe();\r\n if (popover) {\r\n this.#popoverClose$ = popover.closed.subscribe(() => {\r\n this.#destroyPopover();\r\n });\r\n }\r\n }\r\n #popover: PopoverComponent;\r\n\r\n @Input(\"sdPopoverData\")\r\n popoverData: any;\r\n\r\n @Input(\"sdPopoverDisabled\")\r\n disabled: boolean = false;\r\n\r\n @Output() popoverOpened = new EventEmitter<void>();\r\n @Output() popoverClosed = new EventEmitter<void>();\r\n\r\n constructor(\r\n private _overlay: Overlay,\r\n private _element: ElementRef<HTMLElement>,\r\n private _ngZone: NgZone,\r\n private viewContainerRef: ViewContainerRef,\r\n private elementRef: ElementRef,\r\n private platform: Platform,\r\n @Optional() private _dir: Directionality\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n if (this.popover) {\r\n const nativeElement = this.elementRef.nativeElement;\r\n\r\n const hostMouseState$ = merge(\r\n fromEvent(nativeElement, \"mouseenter\").pipe(mapTo(true)),\r\n fromEvent(nativeElement, \"mouseleave\").pipe(mapTo(false))\r\n );\r\n\r\n const popoverMouseState$ = this.popover.mouseState$.pipe(\r\n // chỉ lấy luồng emit open bởi chính trigger (tránh lỗi nhiều trigger cho một popover)\r\n filter((v) => !this.popover.trigger || this.popover.trigger == this)\r\n );\r\n\r\n const mergedMouseState$ = merge(popoverMouseState$, hostMouseState$);\r\n\r\n mergedMouseState$\r\n .pipe(\r\n debounceTime(100),\r\n distinctUntilChanged(),\r\n filter(() => this.platform.isBrowser),\r\n takeUntil(this.#destroy$)\r\n )\r\n .subscribe((visible) => {\r\n if (visible && !this.disabled) {\r\n this.openPopover();\r\n } else {\r\n this.closePopover();\r\n }\r\n });\r\n }\r\n }\r\n\r\n ngOnDestroy() {\r\n this.#destroy$.next();\r\n this.#destroy$.complete();\r\n if (this.#overlayRef) {\r\n this.#overlayRef.dispose();\r\n this.#overlayRef = null;\r\n }\r\n }\r\n\r\n openPopover = () => {\r\n if (this.popoverOpen) {\r\n return;\r\n }\r\n\r\n const overlayRef = this.#createOverlay();\r\n const overlayConfig = overlayRef.getConfig();\r\n const positionStrategy =\r\n overlayConfig.positionStrategy as FlexibleConnectedPositionStrategy;\r\n this.#setPosition(positionStrategy);\r\n overlayConfig.hasBackdrop = false;\r\n overlayRef.attach(this.#getPortal());\r\n this.popover.trigger = this;\r\n this.#setIsPopoverOpen(true);\r\n };\r\n\r\n closePopover = () => {\r\n this.popover.closed.emit();\r\n };\r\n\r\n #setIsPopoverOpen = (isOpen: boolean) => {\r\n this.popoverOpen = isOpen;\r\n this.popoverOpen ? this.popoverOpened.emit() : this.popoverClosed.emit();\r\n };\r\n\r\n #getPortal = (): TemplatePortal => {\r\n if (\r\n !this.#portal ||\r\n this.#portal.templateRef !== this.popover.templateRef ||\r\n this.#portal.context?.data !== this.popoverData\r\n ) {\r\n this.#portal = new TemplatePortal(\r\n this.popover.templateRef,\r\n this.viewContainerRef,\r\n {\r\n data: this.popoverData\r\n }\r\n );\r\n }\r\n\r\n return this.#portal;\r\n };\r\n\r\n #createOverlay = () => {\r\n if (!this.#overlayRef) {\r\n const config = this.#getOverlayConfig();\r\n this.#subscribeToPositions(\r\n config.positionStrategy as FlexibleConnectedPositionStrategy\r\n );\r\n this.#overlayRef = this._overlay.create(config);\r\n }\r\n\r\n return this.#overlayRef;\r\n };\r\n\r\n #setPosition = (positionStrategy: FlexibleConnectedPositionStrategy) => {\r\n let originX: \"start\" | \"center\" | \"end\" = \"center\";\r\n let originY: \"top\" | \"center\" | \"bottom\" = \"top\";\r\n let overlayX: \"start\" | \"center\" | \"end\" = \"center\";\r\n let overlayY: \"top\" | \"center\" | \"bottom\" = \"bottom\";\r\n let offsetX = 0;\r\n let offsetY = 16;\r\n\r\n switch (this.popover.position) {\r\n case \"above\":\r\n originY = \"top\";\r\n overlayY = \"bottom\";\r\n break;\r\n case \"below\":\r\n originY = \"bottom\";\r\n overlayY = \"top\";\r\n break;\r\n }\r\n\r\n positionStrategy.withPositions([\r\n // theo input\r\n { originX, originY, overlayX, overlayY, offsetY: originY == \"top\" ? -offsetY : offsetY },\r\n // giữa trên\r\n {\r\n originX: \"center\",\r\n originY: \"top\",\r\n overlayX: \"center\",\r\n overlayY: \"bottom\",\r\n offsetX,\r\n offsetY: -offsetY,\r\n },\r\n // giữa dưới\r\n {\r\n originX: \"center\",\r\n originY: \"bottom\",\r\n overlayX: \"center\",\r\n overlayY: \"top\",\r\n offsetX,\r\n offsetY,\r\n },\r\n ]);\r\n };\r\n\r\n #getOverlayConfig = () => {\r\n return new OverlayConfig({\r\n positionStrategy: this._overlay\r\n .position()\r\n .flexibleConnectedTo(this._element)\r\n .withLockedPosition()\r\n .withGrowAfterOpen()\r\n .withTransformOriginOn(\".sd-popover-panel\"),\r\n backdropClass: \"cdk-overlay-transparent-backdrop\",\r\n panelClass: this.popover.panelClass,\r\n direction: this._dir,\r\n width: this.popover.width,\r\n height: this.popover.height,\r\n });\r\n };\r\n\r\n #subscribeToPositions = (position: FlexibleConnectedPositionStrategy) => {\r\n if (this.popover.setPositionClasses) {\r\n position.positionChanges.subscribe((change) => {\r\n const pos: Position =\r\n change.connectionPair.overlayY === \"top\" ? \"below\" : \"above\";\r\n\r\n if (this._ngZone) {\r\n this._ngZone.run(() => this.popover.setPositionClasses(pos));\r\n } else {\r\n this.popover.setPositionClasses(pos);\r\n }\r\n\r\n const originElement: HTMLElement = this.elementRef.nativeElement;\r\n const overlayElement: HTMLElement = (\r\n this.viewContainerRef.get(0) as any\r\n )?.rootNodes[0];\r\n if (originElement && overlayElement) {\r\n const originRect = originElement.getBoundingClientRect();\r\n const overlayRect = overlayElement.getBoundingClientRect();\r\n const originLeft = originRect.left + originRect.width / 2;\r\n const overlayLeft = overlayRect.left + overlayRect.width / 2;\r\n\r\n const offset = originLeft - overlayLeft;\r\n\r\n this.popover.addArrowTranslateX(offset);\r\n }\r\n });\r\n }\r\n };\r\n\r\n #destroyPopover = () => {\r\n if (!this.#overlayRef || !this.popoverOpen) {\r\n return;\r\n }\r\n this.#overlayRef.detach();\r\n this.#setIsPopoverOpen(false);\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { PopoverComponent } from './popover/popover.component';\r\nimport { PopoverTriggerDirective } from './directives/popover-trigger.directive';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { PopoverContentDirective } from './directives/popover-content.directive';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n PopoverComponent, \r\n PopoverTriggerDirective, \r\n PopoverContentDirective\r\n ],\r\n imports: [\r\n CommonModule,\r\n A11yModule\r\n ],\r\n exports: [\r\n PopoverComponent, \r\n PopoverTriggerDirective,\r\n PopoverContentDirective\r\n ]\r\n})\r\nexport class SdPopoverModule { }\r\n"]}
@@ -145,7 +145,7 @@ _prefix = new WeakMap(), _filterOptionChanges = new WeakMap(), _subscription = n
145
145
  SdFilter.decorators = [
146
146
  { type: Component, args: [{
147
147
  selector: 'sd-filter',
148
- template: "<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hi\u1EC3n th\u1ECB</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input *ngIf=\"item.type === 'number'\" [label]=\"item.title\" type=\"number\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->",
148
+ template: "<div *ngIf=\"information\" class=\"c-container\">\r\n <div class=\"c-header\">\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">filter_alt</mat-icon>\r\n </button>\r\n <span>Hi\u1EC3n th\u1ECB</span>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">add</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">settings</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">download</mat-icon>\r\n </button>\r\n <button class=\"mx-2\" aria-hidden=\"true\" mat-icon-button>\r\n <mat-icon class=\"c-icon\">close</mat-icon>\r\n </button>\r\n </div>\r\n </div>\r\n <div class=\"c-body row mx-0\">\r\n <ng-container *ngFor=\"let item of filterOption?.filters\">\r\n <div *ngIf=\"information.visible[item.field] !== false\" class=\"col-lg-2 col-md-3 col-sm-6 px-8\">\r\n <sd-input *ngIf=\"item.type === 'string'\" [label]=\"item.title\" type=\"text\"\r\n [(model)]=\"information.filter[item.field]\" (keyupEnter)=\"onFilter(item)\">\r\n </sd-input>\r\n <sd-input-number *ngIf=\"item.type === 'number'\" [label]=\"item.title\" [(model)]=\"information.filter[item.field]\"\r\n (keyupEnter)=\"onFilter(item)\">\r\n </sd-input-number>\r\n <sd-select *ngIf=\"item.type === 'bool'\" [label]=\"item.title\" [items]=\"[{value:true,display:item.option?.displayOnTrue || 'True' },\r\n {value:false,display:item.option?.displayOnFalse || 'False' }]\" valueField=\"value\" displayField=\"display\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n <ng-container *ngIf=\"item.type === 'values-local'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" [selectAll]=\"item.option.selectAll\" multiple=\"true\">\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"item.option?.selection === 'AUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLEAUTOCOMPLETE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-select *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-select>\r\n </ng-container>\r\n <ng-container *ngIf=\"item.type === 'values-server'\">\r\n <sd-select *ngIf=\"item.option?.selection === 'MULTIPLE'\" [label]=\"item.title\"\r\n [items]=\"item | sdValuesLocal | async\" [valueField]=\"item.option.valueField\"\r\n [displayField]=\"item.option.displayField\" [(model)]=\"information.filter[item.field]\"\r\n (sdChange)=\"onFilter(item)\" filtered multiple>\r\n </sd-select>\r\n <sd-autocomplete *ngIf=\"!item.option?.selection\" [label]=\"item.title\" [items]=\"item | sdValuesLocal | async\"\r\n [valueField]=\"item.option.valueField\" [displayField]=\"item.option.displayField\"\r\n [(model)]=\"information.filter[item.field]\" (sdChange)=\"onFilter(item)\">\r\n </sd-autocomplete>\r\n </ng-container>\r\n <sd-date-time *ngIf=\"item.type ==='date' || item.type ==='datetime'\" [label]=\"item.title\"\r\n [(model)]=\"information.filter[item.field]\" [type]=\"item.type\" [min]=\"item?.option?.min\"\r\n [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-time>\r\n <sd-date-range *ngIf=\"item.type ==='daterange'\" [label]=\"item.title\"\r\n [(from)]=\"information.filter[item.field].from\" [(to)]=\"information.filter[item.field].to\"\r\n [min]=\"item?.option?.min\" [max]=\"item?.option?.max\" (sdChange)=\"onFilter(item)\">\r\n </sd-date-range>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n<!-- <sd-popup-filter [columns]=\"columns\" [externalFilters]=\"externalFilters\" (changeFilter)=\"onChangeFilter($event)\"\r\n (clearFilter)=\"onReset()\" [filterDefs]=\"filterDefs\">\r\n </sd-popup-filter> -->",
149
149
  styles: [".c-container .c-header{align-items:center;display:flex;height:48px;justify-content:space-between;padding:0 20px}.c-container mat-icon.c-icon{color:rgba(0,0,0,.54)!important}.c-container button:focus{outline:none}:host ::ng-deep .mat-form-field-wrapper{padding-bottom:0}"]
150
150
  },] }
151
151
  ];
@@ -158,4 +158,4 @@ SdFilter.propDecorators = {
158
158
  _filterOption: [{ type: Input, args: ['option',] }],
159
159
  sdFilterDefs: [{ type: ContentChildren, args: [SdFilterDefDirective,] }]
160
160
  };
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZmlsdGVyLyIsInNvdXJjZXMiOlsic3JjL2xpYi9maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTZELGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGVBQWUsRUFBdUIsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBTyxTQUFTLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRdkUsTUFBTSxPQUFPLFFBQVE7SUFrQm5CLFlBQ1UsYUFBb0MsRUFDcEMsY0FBZ0MsRUFDaEMsYUFBOEI7UUFGOUIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFwQnhDLGtCQUFVLHNDQUFzQyxFQUFDO1FBVWpELCtCQUF1QixJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLEVBQUM7UUFDakUsd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFDSSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUF3QixDQUFDO1FBQzVGLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qixr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QUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO2dCQUNyQywyQ0FBQSxJQUFJLEVBQVMsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBaURELFdBQVc7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztZQXhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLG13S0FBc0M7O2FBRXZDOzs7WUFYUSxxQkFBcUI7WUFJVixnQkFBZ0I7WUFEM0IsZUFBZTs7OzRCQWFyQixLQUFLLFNBQUMsUUFBUTsyQkFTZCxlQUFlLFNBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgKiBhcyBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFNkRmlsdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLWZpbHRlci1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTZEZpbHRlckluZm9ybWF0aW9uLCBGaWx0ZXJPYmplY3QsIFNkRmlsdGVyT3B0aW9uLCBTZFF1aWNrRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nLCBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHsgU2RDYWNoZVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NhY2hlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RGaWx0ZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICNwcmVmaXggPSAnNjFkMjJlOGUtZWVlOC00YWFkLThlMWMtMDQ0YTUzMmZlYTkxJztcclxuICBzZXR0aW5nOiBTZFNldHRpbmc8U2RGaWx0ZXJJbmZvcm1hdGlvbj47XHJcbiAgZmlsdGVyT3B0aW9uOiBTZEZpbHRlck9wdGlvbjtcclxuICBASW5wdXQoJ29wdGlvbicpIHNldCBfZmlsdGVyT3B0aW9uKG9wdGlvbjogU2RGaWx0ZXJPcHRpb24pIHtcclxuICAgIGNvbnNvbGUubG9nKG9wdGlvbik7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyT3B0aW9uID0gb3B0aW9uO1xyXG4gICAgICB0aGlzLiNmaWx0ZXJPcHRpb25DaGFuZ2VzLm5leHQob3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcbiAgI2ZpbHRlck9wdGlvbkNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNkRmlsdGVyT3B0aW9uPihudWxsKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oU2RGaWx0ZXJEZWZEaXJlY3RpdmUpIHNkRmlsdGVyRGVmcyA9IG5ldyBRdWVyeUxpc3Q8U2RGaWx0ZXJEZWZEaXJlY3RpdmU+KCk7XHJcbiAgaXNNb2JpbGVPclRhYmxldCA9IGZhbHNlO1xyXG4gIGZpbHRlckNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlck9iamVjdD4oe30pO1xyXG4gIGZpbHRlckluZm9ybWF0aW9uOiBPYnNlcnZhYmxlPFNkRmlsdGVySW5mb3JtYXRpb24+O1xyXG4gIGluZm9ybWF0aW9uOiBTZEZpbHRlckluZm9ybWF0aW9uO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZFNldHRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBTZEZpbHRlclNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICF0aGlzLmRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGlmICghdGhpcy4ja2V5KSB7XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkRmlsdGVySW5mb3JtYXRpb24+KHV1aWQudjQoKSwge1xyXG4gICAgLy8gICAgIHR5cGU6ICdzZXNzaW9uJyxcclxuICAgIC8vICAgICBkZWZhdWx0OiB7XHJcbiAgICAvLyAgICAgICBmaWx0ZXI6IHt9LFxyXG4gICAgLy8gICAgICAgdmlzaWJsZToge30sXHJcbiAgICAvLyAgICAgICBxdWlja0ZpbHRlcnM6IFtdLFxyXG4gICAgLy8gICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogbnVsbFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih0aGlzLiNrZXksIHtcclxuICAgIC8vICAgICBkZWZhdWx0OiB7XHJcbiAgICAvLyAgICAgICBmaWx0ZXI6IHt9LFxyXG4gICAgLy8gICAgICAgdmlzaWJsZToge30sXHJcbiAgICAvLyAgICAgICBxdWlja0ZpbHRlcnM6IFtdLFxyXG4gICAgLy8gICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogbnVsbFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuI2ZpbHRlck9wdGlvbkNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJPcHRpb24pKS5zdWJzY3JpYmUoKGZpbHRlck9wdGlvbikgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhmaWx0ZXJPcHRpb24pO1xyXG4gICAgICBpZiAoIWZpbHRlck9wdGlvbikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkZWZhdWx0SW5mb3JtYXRpb246IFNkRmlsdGVySW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgZmlsdGVyOiB7fSxcclxuICAgICAgICB2aXNpYmxlOiB7fSxcclxuICAgICAgICBxdWlja0ZpbHRlcnM6IGZpbHRlck9wdGlvbj8ucXVpY2tGaWx0ZXI/LmRlZmF1bHRzIHx8IFtdLFxyXG4gICAgICAgIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IGZpbHRlck9wdGlvbj8ucXVpY2tGaWx0ZXI/LnNlbGVjdGVkRGVmYXVsdFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoIWZpbHRlck9wdGlvbi5rZXkpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih1dWlkLnY0KCksIHtcclxuICAgICAgICAgIHR5cGU6ICdzZXNzaW9uJyxcclxuICAgICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRJbmZvcm1hdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkRmlsdGVySW5mb3JtYXRpb24+KHtcclxuICAgICAgICAgIHByZWZpeDogdGhpcy4jcHJlZml4LFxyXG4gICAgICAgICAga2V5OiBmaWx0ZXJPcHRpb24ua2V5XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgZGVmYXVsdDogZGVmYXVsdEluZm9ybWF0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbmZvcm1hdGlvbiA9IHRoaXMuc2V0dGluZy5nZXQoKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5pbmZvcm1hdGlvbik7XHJcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5zZXR0aW5nLm9ic2VydmVyLnN1YnNjcmliZShmaWx0ZXJJbmZvcm1hdGlvbiA9PiB7XHJcbiAgICAgICAgdGhpcy5pbmZvcm1hdGlvbiA9IGZpbHRlckluZm9ybWF0aW9uO1xyXG4gICAgICAgIHRoaXMuI2Zvcm1hdChmaWx0ZXJPcHRpb24/LmZpbHRlcnMsIHRoaXMuaW5mb3JtYXRpb24pO1xyXG4gICAgICB9KSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlciA9IChmaWx0ZXI/OiBGaWx0ZXIpID0+IHtcclxuICAgIHRoaXMuZmlsdGVyQ2hhbmdlcy5uZXh0KHtcclxuICAgICAgZmlsdGVyOiB7IC4uLnRoaXMuaW5mb3JtYXRpb24uZmlsdGVyIH0sXHJcbiAgICAgIGZpbHRlckRlZjogeyAuLi50aGlzLmluZm9ybWF0aW9uLmZpbHRlckRlZiB9LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldHRpbmcuc2V0KHRoaXMuaW5mb3JtYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5mb3JtYXRpb24uZmlsdGVyID0ge307XHJcbiAgICB0aGlzLmluZm9ybWF0aW9uLmZpbHRlckRlZiA9IHt9O1xyXG4gICAgdGhpcy5vbkZpbHRlcigpO1xyXG4gIH1cclxuXHJcbiAgI2Zvcm1hdCA9IChmaWx0ZXJzOiBGaWx0ZXJbXSwgaW5mb3JtYXRpb246IFNkRmlsdGVySW5mb3JtYXRpb24pID0+IHtcclxuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcclxuICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0ge1xyXG4gICAgICAgICAgZnJvbTogaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0/LmZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdPy50byA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0gaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0gPz8gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjZmlyc3RMb2FkID0gKGZpbHRlcnM6IEZpbHRlcltdLCBpbmZvcm1hdGlvbjogU2RGaWx0ZXJJbmZvcm1hdGlvbikgPT4ge1xyXG4gICAgaWYgKGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIgJiYgaW5mb3JtYXRpb24ucXVpY2tGaWx0ZXJzLnNvbWUoZSA9PiBlLmNvZGUgPT09IGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIpKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gaW5mb3JtYXRpb24ucXVpY2tGaWx0ZXJzLmZpbmQoZSA9PiBlLmNvZGUgPT09IGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIpO1xyXG4gICAgICBpbmZvcm1hdGlvbi5maWx0ZXIgPSB7IC4uLnNlbGVjdGVkLmZpbHRlciB9O1xyXG4gICAgICBpbmZvcm1hdGlvbi5maWx0ZXJEZWYgPSB7IC4uLnNlbGVjdGVkLmZpbHRlckRlZiB9O1xyXG4gICAgICB0aGlzLiNmb3JtYXQoZmlsdGVycywgaW5mb3JtYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xyXG4gICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0ge1xyXG4gICAgICAgICAgICBmcm9tOiBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXT8uZnJvbSA/PyBmaWx0ZXIuZGVmYXVsdD8uZnJvbSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIHRvOiBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXT8udG8gPz8gZmlsdGVyLmRlZmF1bHQ/LnRvID8/IHVuZGVmaW5lZFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0gPSBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXSA/PyBmaWx0ZXIuZGVmYXVsdCA/PyB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyID0gKGFyZ3M6IHtcclxuICAgIGZpbHRlcjogYW55LFxyXG4gICAgZmlsdGVyRGVmOiBhbnlcclxuICB9KSA9PiB7XHJcbiAgICBjb25zdCB7IGZpbHRlciwgZmlsdGVyRGVmIH0gPSBhcmdzO1xyXG4gICAgdGhpcy5pbmZvcm1hdGlvbiA9IHtcclxuICAgICAgLi4udGhpcy5pbmZvcm1hdGlvbixcclxuICAgICAgZmlsdGVyOiB7IC4uLmZpbHRlciB9LFxyXG4gICAgICBmaWx0ZXJEZWY6IHsgLi4uZmlsdGVyRGVmIH1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
161
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJDOi9Vc2Vycy9uZ2hpYXR0MTVfb25lbW91bnQvRG9jdW1lbnRzL2xpYi1jb3JlLXVpL3Byb2plY3RzL3NkLWNvcmUvZmlsdGVyLyIsInNvdXJjZXMiOlsic3JjL2xpYi9maWx0ZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQTZELGVBQWUsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEksT0FBTyxFQUFFLGVBQWUsRUFBdUIsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFFLE9BQU8sRUFBTyxTQUFTLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRCxPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUU3QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUU1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFhLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFRdkUsTUFBTSxPQUFPLFFBQVE7SUFrQm5CLFlBQ1UsYUFBb0MsRUFDcEMsY0FBZ0MsRUFDaEMsYUFBOEI7UUFGOUIsa0JBQWEsR0FBYixhQUFhLENBQXVCO1FBQ3BDLG1CQUFjLEdBQWQsY0FBYyxDQUFrQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBaUI7UUFwQnhDLGtCQUFVLHNDQUFzQyxFQUFDO1FBVWpELCtCQUF1QixJQUFJLGVBQWUsQ0FBaUIsSUFBSSxDQUFDLEVBQUM7UUFDakUsd0JBQWdCLElBQUksWUFBWSxFQUFFLEVBQUM7UUFDSSxpQkFBWSxHQUFHLElBQUksU0FBUyxFQUF3QixDQUFDO1FBQzVGLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUN6Qixr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QUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO2dCQUN6RSxJQUFJLENBQUMsV0FBVyxHQUFHLGlCQUFpQixDQUFDO2dCQUNyQywyQ0FBQSxJQUFJLEVBQVMsWUFBWSxhQUFaLFlBQVksdUJBQVosWUFBWSxDQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEQsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDTixDQUFDO0lBaURELFdBQVc7UUFDVCw0Q0FBbUIsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQzs7OztZQXhJRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFdBQVc7Z0JBQ3JCLGl3S0FBc0M7O2FBRXZDOzs7WUFYUSxxQkFBcUI7WUFJVixnQkFBZ0I7WUFEM0IsZUFBZTs7OzRCQWFyQixLQUFLLFNBQUMsUUFBUTsyQkFTZCxlQUFlLFNBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIFZpZXdDaGlsZCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBDb250ZW50Q2hpbGRyZW4sIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIFN1YmplY3QsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xyXG5pbXBvcnQgKiBhcyBoYXNoIGZyb20gJ29iamVjdC1oYXNoJztcclxuaW1wb3J0IHsgRGV2aWNlRGV0ZWN0b3JTZXJ2aWNlIH0gZnJvbSAnbmd4LWRldmljZS1kZXRlY3Rvcic7XHJcbmltcG9ydCB7IFNkRmlsdGVyRGVmRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL3NkLWZpbHRlci1kZWYuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRmlsdGVyLCBTZEZpbHRlckluZm9ybWF0aW9uLCBGaWx0ZXJPYmplY3QsIFNkRmlsdGVyT3B0aW9uLCBTZFF1aWNrRmlsdGVyIH0gZnJvbSAnLi9maWx0ZXIubW9kZWwnO1xyXG5pbXBvcnQgeyBTZEZpbHRlclNlcnZpY2UgfSBmcm9tICcuL2ZpbHRlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2RTZXR0aW5nLCBTZFNldHRpbmdTZXJ2aWNlIH0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS9zZXR0aW5nJztcclxuaW1wb3J0IHsgU2RDYWNoZVNlcnZpY2UgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL2NhY2hlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZmlsdGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9maWx0ZXIuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RGaWx0ZXIgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xyXG4gICNwcmVmaXggPSAnNjFkMjJlOGUtZWVlOC00YWFkLThlMWMtMDQ0YTUzMmZlYTkxJztcclxuICBzZXR0aW5nOiBTZFNldHRpbmc8U2RGaWx0ZXJJbmZvcm1hdGlvbj47XHJcbiAgZmlsdGVyT3B0aW9uOiBTZEZpbHRlck9wdGlvbjtcclxuICBASW5wdXQoJ29wdGlvbicpIHNldCBfZmlsdGVyT3B0aW9uKG9wdGlvbjogU2RGaWx0ZXJPcHRpb24pIHtcclxuICAgIGNvbnNvbGUubG9nKG9wdGlvbik7XHJcbiAgICBpZiAob3B0aW9uKSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyT3B0aW9uID0gb3B0aW9uO1xyXG4gICAgICB0aGlzLiNmaWx0ZXJPcHRpb25DaGFuZ2VzLm5leHQob3B0aW9uKTtcclxuICAgIH1cclxuICB9XHJcbiAgI2ZpbHRlck9wdGlvbkNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNkRmlsdGVyT3B0aW9uPihudWxsKTtcclxuICAjc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xyXG4gIEBDb250ZW50Q2hpbGRyZW4oU2RGaWx0ZXJEZWZEaXJlY3RpdmUpIHNkRmlsdGVyRGVmcyA9IG5ldyBRdWVyeUxpc3Q8U2RGaWx0ZXJEZWZEaXJlY3RpdmU+KCk7XHJcbiAgaXNNb2JpbGVPclRhYmxldCA9IGZhbHNlO1xyXG4gIGZpbHRlckNoYW5nZXMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEZpbHRlck9iamVjdD4oe30pO1xyXG4gIGZpbHRlckluZm9ybWF0aW9uOiBPYnNlcnZhYmxlPFNkRmlsdGVySW5mb3JtYXRpb24+O1xyXG4gIGluZm9ybWF0aW9uOiBTZEZpbHRlckluZm9ybWF0aW9uO1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBkZXZpY2VTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHNldHRpbmdTZXJ2aWNlOiBTZFNldHRpbmdTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBmaWx0ZXJTZXJ2aWNlOiBTZEZpbHRlclNlcnZpY2UpIHtcclxuICAgIHRoaXMuaXNNb2JpbGVPclRhYmxldCA9ICF0aGlzLmRldmljZVNlcnZpY2UuaXNEZXNrdG9wKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIC8vIGlmICghdGhpcy4ja2V5KSB7XHJcbiAgICAvLyAgIHRoaXMuc2V0dGluZyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkRmlsdGVySW5mb3JtYXRpb24+KHV1aWQudjQoKSwge1xyXG4gICAgLy8gICAgIHR5cGU6ICdzZXNzaW9uJyxcclxuICAgIC8vICAgICBkZWZhdWx0OiB7XHJcbiAgICAvLyAgICAgICBmaWx0ZXI6IHt9LFxyXG4gICAgLy8gICAgICAgdmlzaWJsZToge30sXHJcbiAgICAvLyAgICAgICBxdWlja0ZpbHRlcnM6IFtdLFxyXG4gICAgLy8gICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogbnVsbFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9IGVsc2Uge1xyXG4gICAgLy8gICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih0aGlzLiNrZXksIHtcclxuICAgIC8vICAgICBkZWZhdWx0OiB7XHJcbiAgICAvLyAgICAgICBmaWx0ZXI6IHt9LFxyXG4gICAgLy8gICAgICAgdmlzaWJsZToge30sXHJcbiAgICAvLyAgICAgICBxdWlja0ZpbHRlcnM6IFtdLFxyXG4gICAgLy8gICAgICAgc2VsZWN0ZWRRdWlja0ZpbHRlcjogbnVsbFxyXG4gICAgLy8gICAgIH1cclxuICAgIC8vICAgfSk7XHJcbiAgICAvLyB9XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLiNzdWJzY3JpcHRpb24uYWRkKHRoaXMuI2ZpbHRlck9wdGlvbkNoYW5nZXMucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJPcHRpb24pKS5zdWJzY3JpYmUoKGZpbHRlck9wdGlvbikgPT4ge1xyXG4gICAgICBjb25zb2xlLmxvZyhmaWx0ZXJPcHRpb24pO1xyXG4gICAgICBpZiAoIWZpbHRlck9wdGlvbikge1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICBjb25zdCBkZWZhdWx0SW5mb3JtYXRpb246IFNkRmlsdGVySW5mb3JtYXRpb24gPSB7XHJcbiAgICAgICAgZmlsdGVyOiB7fSxcclxuICAgICAgICB2aXNpYmxlOiB7fSxcclxuICAgICAgICBxdWlja0ZpbHRlcnM6IGZpbHRlck9wdGlvbj8ucXVpY2tGaWx0ZXI/LmRlZmF1bHRzIHx8IFtdLFxyXG4gICAgICAgIHNlbGVjdGVkUXVpY2tGaWx0ZXI6IGZpbHRlck9wdGlvbj8ucXVpY2tGaWx0ZXI/LnNlbGVjdGVkRGVmYXVsdFxyXG4gICAgICB9O1xyXG4gICAgICBpZiAoIWZpbHRlck9wdGlvbi5rZXkpIHtcclxuICAgICAgICB0aGlzLnNldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxTZEZpbHRlckluZm9ybWF0aW9uPih1dWlkLnY0KCksIHtcclxuICAgICAgICAgIHR5cGU6ICdzZXNzaW9uJyxcclxuICAgICAgICAgIGRlZmF1bHQ6IGRlZmF1bHRJbmZvcm1hdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0dGluZyA9IHRoaXMuc2V0dGluZ1NlcnZpY2UuY3JlYXRlPFNkRmlsdGVySW5mb3JtYXRpb24+KHtcclxuICAgICAgICAgIHByZWZpeDogdGhpcy4jcHJlZml4LFxyXG4gICAgICAgICAga2V5OiBmaWx0ZXJPcHRpb24ua2V5XHJcbiAgICAgICAgfSwge1xyXG4gICAgICAgICAgZGVmYXVsdDogZGVmYXVsdEluZm9ybWF0aW9uXHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5pbmZvcm1hdGlvbiA9IHRoaXMuc2V0dGluZy5nZXQoKTtcclxuICAgICAgY29uc29sZS5sb2codGhpcy5pbmZvcm1hdGlvbik7XHJcbiAgICAgIHRoaXMuI3N1YnNjcmlwdGlvbi5hZGQodGhpcy5zZXR0aW5nLm9ic2VydmVyLnN1YnNjcmliZShmaWx0ZXJJbmZvcm1hdGlvbiA9PiB7XHJcbiAgICAgICAgdGhpcy5pbmZvcm1hdGlvbiA9IGZpbHRlckluZm9ybWF0aW9uO1xyXG4gICAgICAgIHRoaXMuI2Zvcm1hdChmaWx0ZXJPcHRpb24/LmZpbHRlcnMsIHRoaXMuaW5mb3JtYXRpb24pO1xyXG4gICAgICB9KSk7XHJcbiAgICB9KSk7XHJcbiAgfVxyXG5cclxuICBvbkZpbHRlciA9IChmaWx0ZXI/OiBGaWx0ZXIpID0+IHtcclxuICAgIHRoaXMuZmlsdGVyQ2hhbmdlcy5uZXh0KHtcclxuICAgICAgZmlsdGVyOiB7IC4uLnRoaXMuaW5mb3JtYXRpb24uZmlsdGVyIH0sXHJcbiAgICAgIGZpbHRlckRlZjogeyAuLi50aGlzLmluZm9ybWF0aW9uLmZpbHRlckRlZiB9LFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLnNldHRpbmcuc2V0KHRoaXMuaW5mb3JtYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgb25DbGVhciA9ICgpID0+IHtcclxuICAgIHRoaXMuaW5mb3JtYXRpb24uZmlsdGVyID0ge307XHJcbiAgICB0aGlzLmluZm9ybWF0aW9uLmZpbHRlckRlZiA9IHt9O1xyXG4gICAgdGhpcy5vbkZpbHRlcigpO1xyXG4gIH1cclxuXHJcbiAgI2Zvcm1hdCA9IChmaWx0ZXJzOiBGaWx0ZXJbXSwgaW5mb3JtYXRpb246IFNkRmlsdGVySW5mb3JtYXRpb24pID0+IHtcclxuICAgIGZvciAoY29uc3QgZmlsdGVyIG9mIGZpbHRlcnMpIHtcclxuICAgICAgaWYgKGZpbHRlci50eXBlID09PSAnZGF0ZXJhbmdlJykge1xyXG4gICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0ge1xyXG4gICAgICAgICAgZnJvbTogaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0/LmZyb20gPz8gdW5kZWZpbmVkLFxyXG4gICAgICAgICAgdG86IGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdPy50byA/PyB1bmRlZmluZWRcclxuICAgICAgICB9O1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0gaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0gPz8gdW5kZWZpbmVkO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjZmlyc3RMb2FkID0gKGZpbHRlcnM6IEZpbHRlcltdLCBpbmZvcm1hdGlvbjogU2RGaWx0ZXJJbmZvcm1hdGlvbikgPT4ge1xyXG4gICAgaWYgKGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIgJiYgaW5mb3JtYXRpb24ucXVpY2tGaWx0ZXJzLnNvbWUoZSA9PiBlLmNvZGUgPT09IGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIpKSB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkID0gaW5mb3JtYXRpb24ucXVpY2tGaWx0ZXJzLmZpbmQoZSA9PiBlLmNvZGUgPT09IGluZm9ybWF0aW9uLnNlbGVjdGVkUXVpY2tGaWx0ZXIpO1xyXG4gICAgICBpbmZvcm1hdGlvbi5maWx0ZXIgPSB7IC4uLnNlbGVjdGVkLmZpbHRlciB9O1xyXG4gICAgICBpbmZvcm1hdGlvbi5maWx0ZXJEZWYgPSB7IC4uLnNlbGVjdGVkLmZpbHRlckRlZiB9O1xyXG4gICAgICB0aGlzLiNmb3JtYXQoZmlsdGVycywgaW5mb3JtYXRpb24pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZm9yIChjb25zdCBmaWx0ZXIgb2YgZmlsdGVycykge1xyXG4gICAgICAgIGlmIChmaWx0ZXIudHlwZSA9PT0gJ2RhdGVyYW5nZScpIHtcclxuICAgICAgICAgIGluZm9ybWF0aW9uLmZpbHRlcltmaWx0ZXIuZmllbGRdID0ge1xyXG4gICAgICAgICAgICBmcm9tOiBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXT8uZnJvbSA/PyBmaWx0ZXIuZGVmYXVsdD8uZnJvbSA/PyB1bmRlZmluZWQsXHJcbiAgICAgICAgICAgIHRvOiBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXT8udG8gPz8gZmlsdGVyLmRlZmF1bHQ/LnRvID8/IHVuZGVmaW5lZFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgaW5mb3JtYXRpb24uZmlsdGVyW2ZpbHRlci5maWVsZF0gPSBpbmZvcm1hdGlvbi5maWx0ZXJbZmlsdGVyLmZpZWxkXSA/PyBmaWx0ZXIuZGVmYXVsdCA/PyB1bmRlZmluZWQ7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuI3N1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RmlsdGVyID0gKGFyZ3M6IHtcclxuICAgIGZpbHRlcjogYW55LFxyXG4gICAgZmlsdGVyRGVmOiBhbnlcclxuICB9KSA9PiB7XHJcbiAgICBjb25zdCB7IGZpbHRlciwgZmlsdGVyRGVmIH0gPSBhcmdzO1xyXG4gICAgdGhpcy5pbmZvcm1hdGlvbiA9IHtcclxuICAgICAgLi4udGhpcy5pbmZvcm1hdGlvbixcclxuICAgICAgZmlsdGVyOiB7IC4uLmZpbHRlciB9LFxyXG4gICAgICBmaWx0ZXJEZWY6IHsgLi4uZmlsdGVyRGVmIH1cclxuICAgIH07XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -177,7 +177,7 @@ _setting = new WeakMap(), _initDefault = new WeakMap();
177
177
  SdGridConfig.decorators = [
178
178
  { type: Component, args: [{
179
179
  selector: 'sd-grid-config',
180
- template: "<sd-modal [title]=\"'Configuration' | sdTranslate\" #modal>\r\n <sd-modal-body *ngIf=\"storage\">\r\n <div class=\"row\">\r\n <div class=\"col-md-3 col-6\">\r\n <sd-input [label]=\"'Page size' | sdTranslate\" [(model)]=\"storage.pageSize\" type=\"number\" step=\"1\">\r\n </sd-input>\r\n </div>\r\n </div>\r\n <div class=\"sd-box sd-box-primary\">\r\n <div class=\"sd-box-body p-0\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-sm table-hover table-bordered c-table\">\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <th class=\"text-center\" style=\"width: 50px\">#</th>\r\n <th *sdDesktop class=\"text-center\" style=\"width: 80px\"></th>\r\n <!-- <th class=\"text-uppercase\" style=\"width: 120px\">Field </th> -->\r\n <th class=\"text-uppercase\">{{'Title' | sdTranslate}}</th>\r\n <th *sdDesktop class=\"text-uppercase\" style=\"width: 80px\">{{'Width' | sdTranslate}}</th>\r\n <th class=\"text-uppercase\" style=\"width: 80px\">{{'Hidden' | sdTranslate}}</th>\r\n <th *sdDesktop class=\"text-uppercase\" style=\"width: 80px\">{{'Freeze' | sdTranslate}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let column of storage.columnConfigs; let idx = index\">\r\n <td class=\"align-middle text-center\">\r\n {{idx+1}}\r\n </td>\r\n <td *sdDesktop class=\"align-middle text-center\">\r\n <button type=\"button\" [disabled]=\"idx==0\" type=\"button\" class=\"c-btn-icon\" placement=\"top\"\r\n matTooltip=\"Up\" (click)=\"moveColumnUp(idx)\">\r\n <i class=\"fa fa-arrow-up text-primary\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button type=\"button\" [disabled]=\"idx==storage.columnConfigs.length-1\" type=\"button\"\r\n class=\"c-btn-icon\" placement=\"top\" matTooltip=\"Down\" (click)=\"moveColumnDown(idx)\">\r\n <i class=\"fa fa-arrow-down text-primary\" aria-hidden=\"true\"></i>\r\n </button>\r\n </td>\r\n <!-- <td class=\"align-middle\">{{column.originColumn.field}}</td> -->\r\n <td class=\"align-middle\">\r\n <input type=\"text\" placeholder=\"{{column.originColumn.title}}\" [(ngModel)]=\"column.title\"\r\n class=\"form-control form-control-sm\">\r\n </td>\r\n <td *sdDesktop class=\"align-middle\">\r\n <input type=\"text\" placeholder=\"{{column.originColumn.width}}\" [(ngModel)]=\"column.width\"\r\n class=\"form-control form-control-sm\">\r\n </td>\r\n <td class=\"align-middle text-center\">\r\n <mat-slide-toggle [(ngModel)]=\"column.hidden\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n <td *sdDesktop class=\"align-middle text-center\">\r\n <mat-slide-toggle [(ngModel)]=\"column.fixed\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"reset()\" icon=\"refresh\" [title]=\"'Reset' | sdTranslate\" size=\"sm\"></sd-button>\r\n <sd-button (action)=\"save()\" icon=\"save\" [title]=\"'Save' | sdTranslate\" color=\"primary\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"reset()\" icon=\"refresh\" [title]=\"'Reset' | sdTranslate\"\r\n width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"save()\" icon=\"save\" [title]=\"'Save' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>",
180
+ template: "<sd-modal [title]=\"'Configuration' | sdTranslate\" #modal>\r\n <sd-modal-body *ngIf=\"storage\">\r\n <div class=\"row\">\r\n <div class=\"col-md-3 col-6\">\r\n <sd-input-number [label]=\"'Page size' | sdTranslate\" [(model)]=\"storage.pageSize\" step=\"1\">\r\n </sd-input-number>\r\n </div>\r\n </div>\r\n <div class=\"sd-box sd-box-primary\">\r\n <div class=\"sd-box-body p-0\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table table-striped table-sm table-hover table-bordered c-table\">\r\n <thead class=\"thead-light\">\r\n <tr>\r\n <th class=\"text-center\" style=\"width: 50px\">#</th>\r\n <th *sdDesktop class=\"text-center\" style=\"width: 80px\"></th>\r\n <!-- <th class=\"text-uppercase\" style=\"width: 120px\">Field </th> -->\r\n <th class=\"text-uppercase\">{{'Title' | sdTranslate}}</th>\r\n <th *sdDesktop class=\"text-uppercase\" style=\"width: 80px\">{{'Width' | sdTranslate}}</th>\r\n <th class=\"text-uppercase\" style=\"width: 80px\">{{'Hidden' | sdTranslate}}</th>\r\n <th *sdDesktop class=\"text-uppercase\" style=\"width: 80px\">{{'Freeze' | sdTranslate}}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let column of storage.columnConfigs; let idx = index\">\r\n <td class=\"align-middle text-center\">\r\n {{idx+1}}\r\n </td>\r\n <td *sdDesktop class=\"align-middle text-center\">\r\n <button type=\"button\" [disabled]=\"idx==0\" type=\"button\" class=\"c-btn-icon\" placement=\"top\"\r\n matTooltip=\"Up\" (click)=\"moveColumnUp(idx)\">\r\n <i class=\"fa fa-arrow-up text-primary\" aria-hidden=\"true\"></i>\r\n </button>\r\n <button type=\"button\" [disabled]=\"idx==storage.columnConfigs.length-1\" type=\"button\"\r\n class=\"c-btn-icon\" placement=\"top\" matTooltip=\"Down\" (click)=\"moveColumnDown(idx)\">\r\n <i class=\"fa fa-arrow-down text-primary\" aria-hidden=\"true\"></i>\r\n </button>\r\n </td>\r\n <!-- <td class=\"align-middle\">{{column.originColumn.field}}</td> -->\r\n <td class=\"align-middle\">\r\n <input type=\"text\" placeholder=\"{{column.originColumn.title}}\" [(ngModel)]=\"column.title\"\r\n class=\"form-control form-control-sm\">\r\n </td>\r\n <td *sdDesktop class=\"align-middle\">\r\n <input type=\"text\" placeholder=\"{{column.originColumn.width}}\" [(ngModel)]=\"column.width\"\r\n class=\"form-control form-control-sm\">\r\n </td>\r\n <td class=\"align-middle text-center\">\r\n <mat-slide-toggle [(ngModel)]=\"column.hidden\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n <td *sdDesktop class=\"align-middle text-center\">\r\n <mat-slide-toggle [(ngModel)]=\"column.fixed\" color=\"primary\"></mat-slide-toggle>\r\n </td>\r\n </tr>\r\n </table>\r\n </div>\r\n </div>\r\n </div>\r\n </sd-modal-body>\r\n <sd-modal-footer *sdDesktop>\r\n <sd-button class=\"mr-auto\" (action)=\"reset()\" icon=\"refresh\" [title]=\"'Reset' | sdTranslate\" size=\"sm\"></sd-button>\r\n <sd-button (action)=\"save()\" icon=\"save\" [title]=\"'Save' | sdTranslate\" color=\"primary\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n <sd-modal-footer *sdMobileTablet>\r\n <sd-button style=\"flex: 1; padding-right: 5px;\" (action)=\"reset()\" icon=\"refresh\" [title]=\"'Reset' | sdTranslate\"\r\n width=\"100%\" size=\"sm\"></sd-button>\r\n <sd-button style=\"flex: 1; padding-left: 5px;\" (action)=\"save()\" icon=\"save\" [title]=\"'Save' | sdTranslate\"\r\n color=\"primary\" width=\"100%\" size=\"sm\"></sd-button>\r\n </sd-modal-footer>\r\n</sd-modal>",
181
181
  styles: [".c-btn-icon{background:none!important;border:none;opacity:.8}.c-btn-icon:hover{cursor:pointer;opacity:1}.c-btn-icon:disabled{background:none!important;border:none;cursor:not-allowed;opacity:.3}.table td,.table th{padding:.2rem!important}.c-table.table{margin-bottom:5px}"]
182
182
  },] }
183
183
  ];
@@ -191,4 +191,4 @@ SdGridConfig.propDecorators = {
191
191
  modal: [{ type: ViewChild, args: ['modal',] }],
192
192
  sdChange: [{ type: Output }]
193
193
  };
194
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtY29uZmlnL2dyaWQtY29uZmlnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEcsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUVMLGdCQUFnQixFQUNqQixNQUFNLDBCQUEwQixDQUFDO0FBUWxDLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQ1UsR0FBc0IsRUFDdEIsYUFBOEIsRUFDOUIsY0FBZ0MsRUFDaEMsZ0JBQW9DO1FBSHBDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQVRwQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFJdEQsMkJBQW1DO1FBeUVuQyx1QkFBZSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8s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LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpZ09wdGlvbiwgQ29uZmlnUmVzdWx0LCBDb25maWdTdG9yYWdlIH0gZnJvbSAnLi9ncmlkLWNvbmZpZy5tb2RlbCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFNkTm90aWZ5U2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvbm90aWZ5JztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFNldHRpbmcsXHJcbiAgU2RTZXR0aW5nU2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkTW9kYWwgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL21vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZ3JpZC1jb25maWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1jb25maWcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkQ29uZmlnIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlnUmVzdWx0PigpO1xyXG5cclxuICBvcHRpb246IENvbmZpZ09wdGlvbjtcclxuICBzdG9yYWdlOiBDb25maWdTdG9yYWdlO1xyXG4gICNzZXR0aW5nOiBTZFNldHRpbmc8Q29uZmlnU3RvcmFnZT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFNkVHJhbnNsYXRlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG4gIGFzeW5jIHNldE9wdGlvbihvcHRpb246IENvbmZpZ09wdGlvbikge1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5vcHRpb24gPSBvcHRpb247XHJcbiAgICBpZiAodGhpcy5vcHRpb24ua2V5KSB7XHJcbiAgICAgIHRoaXMuI3NldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxDb25maWdTdG9yYWdlPih0aGlzLm9wdGlvbi5rZXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jc2V0dGluZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMuZW1pdE9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGluaXQoKSB7XHJcbiAgICBpZiAodGhpcy4jc2V0dGluZykge1xyXG4gICAgICBjb25zdCBzdG9yYWdlOiBDb25maWdTdG9yYWdlID0gYXdhaXQgdGhpcy4jc2V0dGluZy5nZXQoKTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBpZiAoIXN0b3JhZ2UpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuI3NldHRpbmcucmVtb3ZlKCk7XHJcbiAgICAgICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xyXG5cclxuICAgICAgICAvLyBMb+G6oWkgYuG7jyBuaOG7r25nIGNvbHVtbiDEkcOjIGLhu4sgeMOzYSBraOG7j2kgb3JpZ2luQ29sdW1uc1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NcclxuICAgICAgICAgIC5maWx0ZXIoY29sdW1uID0+IHRoaXMub3B0aW9uLmNvbHVtbnMuc29tZShlID0+IGUuZmllbGQgPT09IGNvbHVtbi5vcmlnaW5Db2x1bW4uZmllbGQpKTtcclxuXHJcbiAgICAgICAgLy8gVGjDqm0gbmjhu69uZyBjb2x1bW4gbeG7m2kgdsOgbyBzdG9yYWdlIG7hur91IGPDs1xyXG4gICAgICAgIHRoaXMub3B0aW9uLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlncy5zb21lKGUgPT4gZS5vcmlnaW5Db2x1bW4uZmllbGQgPT09IGNvbHVtbi5maWVsZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgb3JpZ2luQ29sdW1uOiB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgICAgICBmaXhlZDogY29sdW1uLmZpeGVkXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGZpeGVkOiBjb2x1bW4uZml4ZWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEPhuq1wIG5o4bqtdCBvcmlnaW5Db2x1bW5cclxuICAgICAgICB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlncy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvcmlnaW5Db2x1bW4gPSB0aGlzLm9wdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgIGlmIChvcmlnaW5Db2x1bW4pIHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb2x1bW4ub3JpZ2luQ29sdW1uLCB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IG9yaWdpbkNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICB3aWR0aDogb3JpZ2luQ29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgICAgIGZpeGVkOiBvcmlnaW5Db2x1bW4uZml4ZWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgdGhpcy4jc2V0dGluZy5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2luaXREZWZhdWx0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdG9yYWdlID0ge307XHJcbiAgICB0aGlzLnN0b3JhZ2UucGFnZVNpemUgPSB0aGlzLm9wdGlvbi5wYWdlU2l6ZTtcclxuICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzID0gW107XHJcbiAgICB0aGlzLm9wdGlvbi5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MucHVzaCh7XHJcbiAgICAgICAgb3JpZ2luQ29sdW1uOiB7XHJcbiAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBmaXhlZDogY29sdW1uLmZpeGVkXHJcbiAgICAgICAgfSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGZpeGVkOiBjb2x1bW4uZml4ZWRcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLm1vZGFsLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKCt0aGlzLnN0b3JhZ2UucGFnZVNpemUpKSB7XHJcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdQYWdlIHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyJykpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdG9yYWdlLnBhZ2VTaXplID4gMjAwKSB7XHJcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdQYWdlIHNpemUgaXMgdG9vIGxhcmdlJykpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLiNzZXR0aW5nPy5zZXQ/Lih0aGlzLnN0b3JhZ2UpO1xyXG4gICAgdGhpcy5lbWl0T25DaGFuZ2UoKTtcclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy4jc2V0dGluZz8ucmVtb3ZlPy4oKTtcclxuICAgIHRoaXMuI2luaXREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmVtaXRPbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb2RhbC5jbG9zZSgpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZUNvbHVtblVwKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHRlbXAgPSB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleF07XHJcbiAgICB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleF0gPSB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleCAtIDFdO1xyXG4gICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXggLSAxXSA9IHRlbXA7XHJcbiAgfVxyXG5cclxuICBtb3ZlQ29sdW1uRG93bihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB0ZW1wID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXhdO1xyXG4gICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXhdID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXggKyAxXTtcclxuICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzW2luZGV4ICsgMV0gPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgZW1pdE9uQ2hhbmdlKCkge1xyXG4gICAgY29uc3QgcGFnZVNpemUgPSArdGhpcy5zdG9yYWdlLnBhZ2VTaXplIHx8IHRoaXMub3B0aW9uLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMub3B0aW9uLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiB7XHJcbiAgICAgIC8vIEhpZGRlbiBjb2x1bW4gdGhlbyBjb25maWdcclxuICAgICAgLy8gTOG6pXkgY8OhYyB0aHXhu5ljIHTDrW5oIFRpdGxlLCBXaWR0aCwgRml4ZWQgdOG7qyBjb25maWdcclxuICAgICAgY29uc3QgY29sdW1uQ29uZmlnID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MuZmluZChlID0+IGUub3JpZ2luQ29sdW1uLmZpZWxkID09PSBjb2x1bW4uZmllbGQpO1xyXG4gICAgICBpZiAoY29sdW1uQ29uZmlnKSB7XHJcbiAgICAgICAgY29sdW1uLnRpdGxlID0gY29sdW1uQ29uZmlnLnRpdGxlIHx8IGNvbHVtbi50aXRsZTtcclxuICAgICAgICBjb2x1bW4ud2lkdGggPSBjb2x1bW5Db25maWcud2lkdGggfHwgY29sdW1uLndpZHRoO1xyXG4gICAgICAgIGNvbHVtbi5maXhlZCA9IGNvbHVtbkNvbmZpZy5maXhlZDtcclxuICAgICAgICByZXR1cm4gIWNvbHVtbkNvbmZpZy5oaWRkZW47XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KS5zb3J0KChjdXJyZW50LCBuZXh0KSA9PiB7XHJcbiAgICAgIC8vIFPhuq9wIHjhur9wIHRoZW8gY29uZmlnXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzLmZpbmRJbmRleChlID0+IGUub3JpZ2luQ29sdW1uLmZpZWxkID09PSBjdXJyZW50LmZpZWxkKTtcclxuICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MuZmluZEluZGV4KGUgPT4gZS5vcmlnaW5Db2x1bW4uZmllbGQgPT09IG5leHQuZmllbGQpO1xyXG4gICAgICByZXR1cm4gY3VycmVudEluZGV4IC0gbmV4dEluZGV4O1xyXG4gICAgfSkuZmlsdGVyKGNvbHVtbiA9PiB7XHJcbiAgICAgIC8vIEhpZGRlbiBjb2x1bW4gdGhlbyBvcHRpb24gdHJ1eeG7gW4gdsOgb1xyXG4gICAgICBpZiAoY29sdW1uLmhpZGRlbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiAoY29sdW1uLmhpZGRlbikgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIHJldHVybiAhY29sdW1uLmhpZGRlbjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZW9mIChjb2x1bW4uaGlkZGVuKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHJldHVybiAhY29sdW1uLmhpZGRlbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVzdWx0OiBDb25maWdSZXN1bHQgPSB7XHJcbiAgICAgIHBhZ2VTaXplLFxyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICBmaXhlZENvbHVtbnM6IGNvbHVtbnMuZmlsdGVyKGUgPT4gZS5maXhlZCksXHJcbiAgICAgIG5vcm1hbENvbHVtbnM6IGNvbHVtbnMuZmlsdGVyKGUgPT4gIWUuZml4ZWQpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
194
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L1VzZXJzL25naGlhdHQxNV9vbmVtb3VudC9Eb2N1bWVudHMvbGliLWNvcmUtdWkvcHJvamVjdHMvc2QtY29yZS9ncmlkLyIsInNvdXJjZXMiOlsic3JjL2xpYi9jb21wb25lbnRzL2dyaWQtY29uZmlnL2dyaWQtY29uZmlnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEcsT0FBTyxFQUNMLGVBQWUsRUFDaEIsTUFBTSx5QkFBeUIsQ0FBQztBQUVqQyxPQUFPLEVBQ0wsa0JBQWtCLEVBQ25CLE1BQU0sNEJBQTRCLENBQUM7QUFFcEMsT0FBTyxFQUVMLGdCQUFnQixFQUNqQixNQUFNLDBCQUEwQixDQUFDO0FBUWxDLE1BQU0sT0FBTyxZQUFZO0lBT3ZCLFlBQ1UsR0FBc0IsRUFDdEIsYUFBOEIsRUFDOUIsY0FBZ0MsRUFDaEMsZ0JBQW9DO1FBSHBDLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFpQjtRQUM5QixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7UUFDaEMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFvQjtRQVRwQyxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFJdEQsMkJBQW1DO1FBeUVuQyx1QkFBZSxHQUFHLEVBQUU7WUFDbEIsSUFBSSxDQUFDLE9BQU8sR0FBRyxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7WUFDN0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8s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LCBFdmVudEVtaXR0ZXIsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpZ09wdGlvbiwgQ29uZmlnUmVzdWx0LCBDb25maWdTdG9yYWdlIH0gZnJvbSAnLi9ncmlkLWNvbmZpZy5tb2RlbCc7XHJcblxyXG5pbXBvcnQge1xyXG4gIFNkTm90aWZ5U2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvbm90aWZ5JztcclxuXHJcbmltcG9ydCB7XHJcbiAgU2RUcmFuc2xhdGVTZXJ2aWNlXHJcbn0gZnJvbSAnQHNkLWFuZ3VsYXIvY29yZS90cmFuc2xhdGUnO1xyXG5cclxuaW1wb3J0IHtcclxuICBTZFNldHRpbmcsXHJcbiAgU2RTZXR0aW5nU2VydmljZVxyXG59IGZyb20gJ0BzZC1hbmd1bGFyL2NvcmUvc2V0dGluZyc7XHJcbmltcG9ydCB7IFNkTW9kYWwgfSBmcm9tICdAc2QtYW5ndWxhci9jb3JlL21vZGFsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnc2QtZ3JpZC1jb25maWcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZ3JpZC1jb25maWcuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgU2RHcmlkQ29uZmlnIGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdtb2RhbCcpIG1vZGFsOiBTZE1vZGFsO1xyXG4gIEBPdXRwdXQoKSBzZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Q29uZmlnUmVzdWx0PigpO1xyXG5cclxuICBvcHRpb246IENvbmZpZ09wdGlvbjtcclxuICBzdG9yYWdlOiBDb25maWdTdG9yYWdlO1xyXG4gICNzZXR0aW5nOiBTZFNldHRpbmc8Q29uZmlnU3RvcmFnZT47XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIG5vdGlmeVNlcnZpY2U6IFNkTm90aWZ5U2VydmljZSxcclxuICAgIHByaXZhdGUgc2V0dGluZ1NlcnZpY2U6IFNkU2V0dGluZ1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFNkVHJhbnNsYXRlU2VydmljZSkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgfVxyXG4gIGFzeW5jIHNldE9wdGlvbihvcHRpb246IENvbmZpZ09wdGlvbikge1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5vcHRpb24gPSBvcHRpb247XHJcbiAgICBpZiAodGhpcy5vcHRpb24ua2V5KSB7XHJcbiAgICAgIHRoaXMuI3NldHRpbmcgPSB0aGlzLnNldHRpbmdTZXJ2aWNlLmNyZWF0ZTxDb25maWdTdG9yYWdlPih0aGlzLm9wdGlvbi5rZXkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy4jc2V0dGluZyA9IG51bGw7XHJcbiAgICB9XHJcbiAgICBhd2FpdCB0aGlzLmluaXQoKTtcclxuICAgIHRoaXMuZW1pdE9uQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFzeW5jIGluaXQoKSB7XHJcbiAgICBpZiAodGhpcy4jc2V0dGluZykge1xyXG4gICAgICBjb25zdCBzdG9yYWdlOiBDb25maWdTdG9yYWdlID0gYXdhaXQgdGhpcy4jc2V0dGluZy5nZXQoKTtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICBpZiAoIXN0b3JhZ2UpIHtcclxuICAgICAgICAgIGF3YWl0IHRoaXMuI3NldHRpbmcucmVtb3ZlKCk7XHJcbiAgICAgICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLnN0b3JhZ2UgPSBzdG9yYWdlO1xyXG5cclxuICAgICAgICAvLyBMb+G6oWkgYuG7jyBuaOG7r25nIGNvbHVtbiDEkcOjIGLhu4sgeMOzYSBraOG7j2kgb3JpZ2luQ29sdW1uc1xyXG4gICAgICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NcclxuICAgICAgICAgIC5maWx0ZXIoY29sdW1uID0+IHRoaXMub3B0aW9uLmNvbHVtbnMuc29tZShlID0+IGUuZmllbGQgPT09IGNvbHVtbi5vcmlnaW5Db2x1bW4uZmllbGQpKTtcclxuXHJcbiAgICAgICAgLy8gVGjDqm0gbmjhu69uZyBjb2x1bW4gbeG7m2kgdsOgbyBzdG9yYWdlIG7hur91IGPDs1xyXG4gICAgICAgIHRoaXMub3B0aW9uLmNvbHVtbnMuZm9yRWFjaChjb2x1bW4gPT4ge1xyXG4gICAgICAgICAgaWYgKCF0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlncy5zb21lKGUgPT4gZS5vcmlnaW5Db2x1bW4uZmllbGQgPT09IGNvbHVtbi5maWVsZCkpIHtcclxuICAgICAgICAgICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MucHVzaCh7XHJcbiAgICAgICAgICAgICAgb3JpZ2luQ29sdW1uOiB7XHJcbiAgICAgICAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICAgICAgICBmaXhlZDogY29sdW1uLmZpeGVkXHJcbiAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgICAgICAgIGZpeGVkOiBjb2x1bW4uZml4ZWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIC8vIEPhuq1wIG5o4bqtdCBvcmlnaW5Db2x1bW5cclxuICAgICAgICB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlncy5mb3JFYWNoKGNvbHVtbiA9PiB7XHJcbiAgICAgICAgICBjb25zdCBvcmlnaW5Db2x1bW4gPSB0aGlzLm9wdGlvbi5jb2x1bW5zLmZpbmQoZSA9PiBlLmZpZWxkID09PSBjb2x1bW4ub3JpZ2luQ29sdW1uLmZpZWxkKTtcclxuICAgICAgICAgIGlmIChvcmlnaW5Db2x1bW4pIHtcclxuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb2x1bW4ub3JpZ2luQ29sdW1uLCB7XHJcbiAgICAgICAgICAgICAgdGl0bGU6IG9yaWdpbkNvbHVtbi50aXRsZSxcclxuICAgICAgICAgICAgICB3aWR0aDogb3JpZ2luQ29sdW1uLndpZHRoLFxyXG4gICAgICAgICAgICAgIGZpeGVkOiBvcmlnaW5Db2x1bW4uZml4ZWRcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH0gY2F0Y2ggKGV4KSB7XHJcbiAgICAgICAgdGhpcy4jc2V0dGluZy5yZW1vdmUoKTtcclxuICAgICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgICB9XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLiNpbml0RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgI2luaXREZWZhdWx0ID0gKCkgPT4ge1xyXG4gICAgdGhpcy5zdG9yYWdlID0ge307XHJcbiAgICB0aGlzLnN0b3JhZ2UucGFnZVNpemUgPSB0aGlzLm9wdGlvbi5wYWdlU2l6ZTtcclxuICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzID0gW107XHJcbiAgICB0aGlzLm9wdGlvbi5jb2x1bW5zLmZvckVhY2goY29sdW1uID0+IHtcclxuICAgICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MucHVzaCh7XHJcbiAgICAgICAgb3JpZ2luQ29sdW1uOiB7XHJcbiAgICAgICAgICBmaWVsZDogY29sdW1uLmZpZWxkLFxyXG4gICAgICAgICAgdGl0bGU6IGNvbHVtbi50aXRsZSxcclxuICAgICAgICAgIHdpZHRoOiBjb2x1bW4ud2lkdGgsXHJcbiAgICAgICAgICBmaXhlZDogY29sdW1uLmZpeGVkXHJcbiAgICAgICAgfSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGZpeGVkOiBjb2x1bW4uZml4ZWRcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9wZW4oKSB7XHJcbiAgICB0aGlzLm1vZGFsLm9wZW4oKTtcclxuICB9XHJcblxyXG4gIHNhdmUoKSB7XHJcbiAgICBpZiAoIU51bWJlci5pc1NhZmVJbnRlZ2VyKCt0aGlzLnN0b3JhZ2UucGFnZVNpemUpKSB7XHJcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdQYWdlIHNpemUgbXVzdCBiZSBhbiBpbnRlZ2VyJykpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5zdG9yYWdlLnBhZ2VTaXplID4gMjAwKSB7XHJcbiAgICAgIHRoaXMubm90aWZ5U2VydmljZS5ub3RpZnkud2FybmluZyh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudHJhbnNsYXRlKCdQYWdlIHNpemUgaXMgdG9vIGxhcmdlJykpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICB0aGlzLiNzZXR0aW5nPy5zZXQ/Lih0aGlzLnN0b3JhZ2UpO1xyXG4gICAgdGhpcy5lbWl0T25DaGFuZ2UoKTtcclxuICAgIHRoaXMubW9kYWwuY2xvc2UoKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHJlc2V0KCkge1xyXG4gICAgdGhpcy4jc2V0dGluZz8ucmVtb3ZlPy4oKTtcclxuICAgIHRoaXMuI2luaXREZWZhdWx0KCk7XHJcbiAgICB0aGlzLmVtaXRPbkNoYW5nZSgpO1xyXG4gICAgdGhpcy5tb2RhbC5jbG9zZSgpO1xyXG4gICAgdGhpcy5yZWYuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgbW92ZUNvbHVtblVwKGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHRlbXAgPSB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleF07XHJcbiAgICB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleF0gPSB0aGlzLnN0b3JhZ2UuY29sdW1uQ29uZmlnc1tpbmRleCAtIDFdO1xyXG4gICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXggLSAxXSA9IHRlbXA7XHJcbiAgfVxyXG5cclxuICBtb3ZlQ29sdW1uRG93bihpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zdCB0ZW1wID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXhdO1xyXG4gICAgdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXhdID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3NbaW5kZXggKyAxXTtcclxuICAgIHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzW2luZGV4ICsgMV0gPSB0ZW1wO1xyXG4gIH1cclxuXHJcbiAgZW1pdE9uQ2hhbmdlKCkge1xyXG4gICAgY29uc3QgcGFnZVNpemUgPSArdGhpcy5zdG9yYWdlLnBhZ2VTaXplIHx8IHRoaXMub3B0aW9uLnBhZ2VTaXplO1xyXG4gICAgY29uc3QgY29sdW1ucyA9IHRoaXMub3B0aW9uLmNvbHVtbnMuZmlsdGVyKGNvbHVtbiA9PiB7XHJcbiAgICAgIC8vIEhpZGRlbiBjb2x1bW4gdGhlbyBjb25maWdcclxuICAgICAgLy8gTOG6pXkgY8OhYyB0aHXhu5ljIHTDrW5oIFRpdGxlLCBXaWR0aCwgRml4ZWQgdOG7qyBjb25maWdcclxuICAgICAgY29uc3QgY29sdW1uQ29uZmlnID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MuZmluZChlID0+IGUub3JpZ2luQ29sdW1uLmZpZWxkID09PSBjb2x1bW4uZmllbGQpO1xyXG4gICAgICBpZiAoY29sdW1uQ29uZmlnKSB7XHJcbiAgICAgICAgY29sdW1uLnRpdGxlID0gY29sdW1uQ29uZmlnLnRpdGxlIHx8IGNvbHVtbi50aXRsZTtcclxuICAgICAgICBjb2x1bW4ud2lkdGggPSBjb2x1bW5Db25maWcud2lkdGggfHwgY29sdW1uLndpZHRoO1xyXG4gICAgICAgIGNvbHVtbi5maXhlZCA9IGNvbHVtbkNvbmZpZy5maXhlZDtcclxuICAgICAgICByZXR1cm4gIWNvbHVtbkNvbmZpZy5oaWRkZW47XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9KS5zb3J0KChjdXJyZW50LCBuZXh0KSA9PiB7XHJcbiAgICAgIC8vIFPhuq9wIHjhur9wIHRoZW8gY29uZmlnXHJcbiAgICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc3RvcmFnZS5jb2x1bW5Db25maWdzLmZpbmRJbmRleChlID0+IGUub3JpZ2luQ29sdW1uLmZpZWxkID09PSBjdXJyZW50LmZpZWxkKTtcclxuICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5zdG9yYWdlLmNvbHVtbkNvbmZpZ3MuZmluZEluZGV4KGUgPT4gZS5vcmlnaW5Db2x1bW4uZmllbGQgPT09IG5leHQuZmllbGQpO1xyXG4gICAgICByZXR1cm4gY3VycmVudEluZGV4IC0gbmV4dEluZGV4O1xyXG4gICAgfSkuZmlsdGVyKGNvbHVtbiA9PiB7XHJcbiAgICAgIC8vIEhpZGRlbiBjb2x1bW4gdGhlbyBvcHRpb24gdHJ1eeG7gW4gdsOgb1xyXG4gICAgICBpZiAoY29sdW1uLmhpZGRlbiA9PT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHR5cGVvZiAoY29sdW1uLmhpZGRlbikgPT09ICdib29sZWFuJykge1xyXG4gICAgICAgIHJldHVybiAhY29sdW1uLmhpZGRlbjtcclxuICAgICAgfVxyXG4gICAgICBpZiAodHlwZW9mIChjb2x1bW4uaGlkZGVuKSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICAgIHJldHVybiAhY29sdW1uLmhpZGRlbigpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgY29uc3QgcmVzdWx0OiBDb25maWdSZXN1bHQgPSB7XHJcbiAgICAgIHBhZ2VTaXplLFxyXG4gICAgICBjb2x1bW5zLFxyXG4gICAgICBmaXhlZENvbHVtbnM6IGNvbHVtbnMuZmlsdGVyKGUgPT4gZS5maXhlZCksXHJcbiAgICAgIG5vcm1hbENvbHVtbnM6IGNvbHVtbnMuZmlsdGVyKGUgPT4gIWUuZml4ZWQpXHJcbiAgICB9O1xyXG4gICAgdGhpcy5zZENoYW5nZS5lbWl0KHJlc3VsdCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==