@seniorsistemas/angular-components 17.25.6 → 17.25.7

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 (25) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +116 -74
  2. package/bundles/seniorsistemas-angular-components.umd.js.map +1 -1
  3. package/bundles/seniorsistemas-angular-components.umd.min.js +1 -1
  4. package/bundles/seniorsistemas-angular-components.umd.min.js.map +1 -1
  5. package/components/help-popover/models/help-popover.models.d.ts +0 -13
  6. package/components/utils/utils.d.ts +17 -0
  7. package/esm2015/components/help-popover/help-popover.directive.js +3 -30
  8. package/esm2015/components/help-popover/models/help-popover.models.js +1 -1
  9. package/esm2015/components/tooltip/tooltip.component.js +1 -1
  10. package/esm2015/components/tooltip/tooltip.directive.js +74 -30
  11. package/esm2015/components/utils/utils.js +33 -1
  12. package/esm5/components/help-popover/help-popover.directive.js +3 -30
  13. package/esm5/components/help-popover/models/help-popover.models.js +1 -1
  14. package/esm5/components/tooltip/tooltip.component.js +1 -1
  15. package/esm5/components/tooltip/tooltip.directive.js +76 -42
  16. package/esm5/components/utils/utils.js +33 -1
  17. package/fesm2015/seniorsistemas-angular-components.js +114 -64
  18. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  19. package/fesm5/seniorsistemas-angular-components.js +116 -76
  20. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  21. package/package.json +1 -1
  22. package/seniorsistemas-angular-components.metadata.json +1 -1
  23. package/components/tooltip/models/element-area.d.ts +0 -6
  24. package/esm2015/components/tooltip/models/element-area.js +0 -1
  25. package/esm5/components/tooltip/models/element-area.js +0 -1
@@ -534,19 +534,12 @@
534
534
  TooltipComponent = __decorate([
535
535
  core.Component({
536
536
  template: "<div\n id=\"tooltip\"\n class=\"tooltip\"\n [ngClass]=\"['tooltip--' + position]\"\n [class.tooltip--visible]=\"visible\"\n [ngStyle]=\"{\n 'left': left + 'px',\n 'top': top + 'px'\n }\">\n <ng-template\n *ngIf=\"escape;\n then escapeTemplate;\n else noEscapeTemplate\">\n </ng-template> \n</div>\n\n<ng-template #noEscapeTemplate>\n <span\n class=\"tooltip__content\"\n [innerHTML]=\"tooltip\">\n </span>\n</ng-template>\n\n<ng-template #escapeTemplate>\n <span class=\"tooltip__content\">\n {{ tooltip }}\n </span>\n</ng-template>",
537
- styles: [".tooltip{background-color:#000;border-radius:2px;color:#fff;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px;margin-top:5px;opacity:0;padding:8px;position:fixed;transform:translateX(-50%);text-align:center;max-width:220px;word-wrap:break-word;z-index:99999}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip::before{content:\"\";height:0;position:absolute;width:0}.tooltip--bottom{margin-top:8px;transform:translateX(-50%)}.tooltip--bottom::before{border:5px solid transparent;border-bottom:5px solid #000;left:calc(50% - 5px);top:-10px}.tooltip--top{margin-bottom:8px;transform:translate(-50%,-100%)}.tooltip--top::before{border:5px solid transparent;border-top:5px solid #000;left:calc(50% - 5px);bottom:-10px}.tooltip--left{margin-right:28px;transform:translate(calc(-100% - 7px),-50%)}.tooltip--left::before{border:5px solid transparent;border-left:5px solid #000;right:-10px;bottom:calc(50% - 5px)}.tooltip--right{margin-left:7px;transform:translateY(-50%)}.tooltip--right::before{border:5px solid transparent;border-right:5px solid #000;left:-10px;bottom:calc(50% - 5px)}"]
537
+ styles: [".tooltip{background-color:#000;border-radius:2px;color:#fff;font-family:\"Open Sans\",sans-serif;font-size:14px;font-weight:400;line-height:21px;opacity:0;padding:8px;position:fixed;transform:translateX(-50%);text-align:center;max-width:220px;word-wrap:break-word;z-index:99999}.tooltip--visible{opacity:1;transition:opacity .3s}.tooltip::before{content:\"\";height:0;position:absolute;width:0}.tooltip--bottom{margin-top:5px;transform:translateX(-50%)}.tooltip--bottom::before{border:5px solid transparent;border-bottom:5px solid #000;left:calc(50% - 5px);top:-10px}.tooltip--top{margin-bottom:5px;transform:translate(-50%,-100%)}.tooltip--top::before{border:5px solid transparent;border-top:5px solid #000;left:calc(50% - 5px);bottom:-10px}.tooltip--left{margin-right:28px;transform:translate(calc(-100% - 7px),-50%)}.tooltip--left::before{border:5px solid transparent;border-left:5px solid #000;right:-10px;bottom:calc(50% - 5px)}.tooltip--right{margin-left:7px;transform:translateY(-50%)}.tooltip--right::before{border:5px solid transparent;border-right:5px solid #000;left:-10px;bottom:calc(50% - 5px)}"]
538
538
  })
539
539
  ], TooltipComponent);
540
540
  return TooltipComponent;
541
541
  }());
542
542
 
543
- var isNullOrUndefined = function (value) { return value === null || value === undefined; };
544
- var isMousePositionOutsideOfElement = function (event, elementArea) {
545
- var eventX = event.clientX;
546
- var eventY = event.clientY;
547
- return eventX < elementArea.left || eventX >= elementArea.right || eventY < elementArea.top || eventY >= elementArea.bottom;
548
- };
549
-
550
543
  var DEFAULT_TIMER = 300;
551
544
  var DebounceUtils = /** @class */ (function () {
552
545
  function DebounceUtils() {
@@ -593,6 +586,45 @@
593
586
  return DebounceUtils;
594
587
  }());
595
588
 
589
+ var isNullOrUndefined = function (value) { return value === null || value === undefined; };
590
+ var isMousePositionOutsideOfElement = function (event, elementArea) {
591
+ var eventX = event.clientX;
592
+ var eventY = event.clientY;
593
+ return eventX < elementArea.left || eventX >= elementArea.right || eventY < elementArea.top || eventY >= elementArea.bottom;
594
+ };
595
+ var getElementPositionInfo = function (element) {
596
+ var rect = element.getBoundingClientRect();
597
+ var scrollTop = window.scrollY || document.documentElement.scrollTop;
598
+ var scrollLeft = window.scrollX || document.documentElement.scrollLeft;
599
+ var elementHeight = rect.height;
600
+ var elementWidth = rect.width;
601
+ var elementVerticalCenter = elementHeight / 2;
602
+ var elementHorizontalCenter = elementWidth / 2;
603
+ return {
604
+ top: rect.top + scrollTop,
605
+ left: rect.left + scrollLeft,
606
+ right: rect.left + scrollLeft + elementWidth,
607
+ elementHeight: elementHeight,
608
+ elementWidth: elementWidth,
609
+ elementVerticalCenter: elementVerticalCenter,
610
+ elementHorizontalCenter: elementHorizontalCenter
611
+ };
612
+ };
613
+ var getElementLeftoverContentAvailable = function (element) {
614
+ var windowWidth = window.innerWidth;
615
+ var popoverElementTriggerRect = element.getBoundingClientRect();
616
+ var freeDistanceToBottom = window.innerHeight - popoverElementTriggerRect.bottom;
617
+ var freeDistanceToTop = popoverElementTriggerRect.top;
618
+ var freeDistanceToLeft = popoverElementTriggerRect.left;
619
+ var freeDistanceToRight = windowWidth - popoverElementTriggerRect.right;
620
+ return {
621
+ freeDistanceToBottom: freeDistanceToBottom,
622
+ freeDistanceToTop: freeDistanceToTop,
623
+ freeDistanceToLeft: freeDistanceToLeft,
624
+ freeDistanceToRight: freeDistanceToRight
625
+ };
626
+ };
627
+
596
628
  var MobileBehavior;
597
629
  (function (MobileBehavior) {
598
630
  MobileBehavior["Pressing"] = "pressing";
@@ -781,64 +813,98 @@
781
813
  }
782
814
  };
783
815
  TooltipDirective.prototype.setTooltipPositionProperty = function () {
784
- var e_1, _a;
816
+ var _this = this;
785
817
  if (!this.componentRef) {
786
818
  return;
787
819
  }
788
- var margin = 20;
789
820
  var anchorSize = 5;
790
- var domElem = this.componentRef.hostView.rootNodes[0].querySelector("#tooltip");
791
- var _b = domElem.getBoundingClientRect(), height = _b.height, width = _b.width;
792
- var _c = this.elementRef.nativeElement.getBoundingClientRect(), left = _c.left, right = _c.right, top = _c.top, bottom = _c.bottom;
821
+ var _a = this.elementRef.nativeElement.getBoundingClientRect(), left = _a.left, right = _a.right;
822
+ var tooltipElementPosition = getElementPositionInfo(this.tooltipDivElement);
823
+ var elementLeftover = getElementLeftoverContentAvailable(this.elementRef.nativeElement);
824
+ var elementTriggerPosition = getElementPositionInfo(this.elementRef.nativeElement);
825
+ var isPositionHorizontal = [exports.TooltipPosition.Left, exports.TooltipPosition.Right].includes(this.position);
826
+ var distanceToBorders = isPositionHorizontal ? tooltipElementPosition.elementWidth : tooltipElementPosition.elementHorizontalCenter;
827
+ var canSetAtTop = elementLeftover.freeDistanceToTop > tooltipElementPosition.elementHeight;
828
+ var canSetAtLeft = elementLeftover.freeDistanceToLeft > distanceToBorders;
829
+ var canSetAtRight = elementLeftover.freeDistanceToRight > distanceToBorders;
830
+ var canSetAtBottom = elementLeftover.freeDistanceToBottom > tooltipElementPosition.elementHeight;
831
+ var topVertical = elementTriggerPosition.top + elementTriggerPosition.elementVerticalCenter;
832
+ var checkTopPosition = function () {
833
+ return canSetAtTop && canSetAtLeft && canSetAtRight;
834
+ };
835
+ var checkBottomPosition = function () {
836
+ return canSetAtBottom && canSetAtLeft && canSetAtRight;
837
+ };
838
+ var checkLeftPosition = function () {
839
+ return canSetAtLeft && canSetAtTop && canSetAtBottom;
840
+ };
841
+ var checkRightPosition = function () {
842
+ return canSetAtRight && canSetAtTop && canSetAtBottom;
843
+ };
844
+ var setTopPosition = function () {
845
+ return {
846
+ left: left + (right - left) / 2,
847
+ top: elementTriggerPosition.top - anchorSize
848
+ };
849
+ };
850
+ var setBottomPosition = function () {
851
+ return {
852
+ left: left + (right - left) / 2,
853
+ top: elementTriggerPosition.top + elementTriggerPosition.elementHeight
854
+ };
855
+ };
856
+ var setLeftPosition = function () {
857
+ return {
858
+ left: left,
859
+ top: topVertical
860
+ };
861
+ };
862
+ var setRightPosition = function () {
863
+ return {
864
+ left: right,
865
+ top: topVertical
866
+ };
867
+ };
793
868
  var positions = [
794
869
  {
795
870
  pos: exports.TooltipPosition.Top,
796
- check: function () { return top > height; },
797
- set: function () { return ({ left: left + (right - left) / 2, top: top - margin - anchorSize }); },
871
+ check: checkTopPosition,
872
+ set: setTopPosition
798
873
  },
799
874
  {
800
875
  pos: exports.TooltipPosition.Bottom,
801
- check: function () { return document.body.clientHeight - bottom > height; },
802
- set: function () { return ({ left: left + (right - left) / 2, top: bottom + margin }); },
876
+ check: checkBottomPosition,
877
+ set: setBottomPosition
803
878
  },
804
879
  {
805
880
  pos: exports.TooltipPosition.Left,
806
- check: function () { return left > width; },
807
- set: function () { return ({ left: left - margin, top: top + height / 2 - anchorSize }); },
881
+ check: checkLeftPosition,
882
+ set: setLeftPosition
808
883
  },
809
884
  {
810
885
  pos: exports.TooltipPosition.Right,
811
- check: function () { return document.body.clientWidth - right > width; },
812
- set: function () { return ({ left: right + margin, top: top + height / 2 - anchorSize }); },
813
- },
814
- ];
815
- if (this.componentRef) {
816
- try {
817
- for (var positions_1 = __values(positions), positions_1_1 = positions_1.next(); !positions_1_1.done; positions_1_1 = positions_1.next()) {
818
- var _d = positions_1_1.value, pos = _d.pos, check = _d.check, set = _d.set;
819
- if (check()) {
820
- this.position = pos;
821
- var _e = set(), left_1 = _e.left, top_1 = _e.top;
822
- this.componentRef.instance.left = Math.round(left_1);
823
- this.componentRef.instance.top = Math.round(top_1);
824
- this.componentRef.instance.position = this.position;
825
- return;
826
- }
827
- }
886
+ check: checkRightPosition,
887
+ set: setRightPosition
828
888
  }
829
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
830
- finally {
831
- try {
832
- if (positions_1_1 && !positions_1_1.done && (_a = positions_1.return)) _a.call(positions_1);
833
- }
834
- finally { if (e_1) throw e_1.error; }
889
+ ];
890
+ var positionDefined = positions.find(function (position) { return position.pos === _this.position; });
891
+ var validPosition = positionDefined;
892
+ var canUseDefinedPosition = positionDefined.check();
893
+ if (canUseDefinedPosition) {
894
+ validPosition = positionDefined;
895
+ }
896
+ else if (!canUseDefinedPosition) {
897
+ var validAlternativePosition = positions.find(function (position) { return position.check(); });
898
+ if (validAlternativePosition) {
899
+ validPosition = validAlternativePosition;
835
900
  }
836
- // Se não conseguir posicionar, mostrar abaixo
837
- this.position = exports.TooltipPosition.Bottom;
838
- this.componentRef.instance.left = Math.round(left + (right - left) / 2);
839
- this.componentRef.instance.top = Math.round(bottom + margin);
840
- this.componentRef.instance.position = this.position;
841
901
  }
902
+ var _position = validPosition.set();
903
+ var positionLeft = _position.left;
904
+ var positionTop = _position.top;
905
+ this.componentRef.instance.left = Math.round(positionLeft);
906
+ this.componentRef.instance.top = Math.round(positionTop);
907
+ this.componentRef.instance.position = validPosition.pos;
842
908
  };
843
909
  TooltipDirective.prototype.setTooltipComponentProperties = function () {
844
910
  if (this.componentRef !== null) {
@@ -22077,18 +22143,7 @@
22077
22143
  return top;
22078
22144
  };
22079
22145
  HelpPopoverDirective.prototype.getLeftoverContentAvailableForPopover = function () {
22080
- var windowWidth = window.innerWidth;
22081
- var popoverElementTriggerRect = this.element.nativeElement.getBoundingClientRect();
22082
- var freeDistanceToBottom = window.innerHeight - popoverElementTriggerRect.bottom;
22083
- var freeDistanceToTop = popoverElementTriggerRect.top;
22084
- var freeDistanceToLeft = popoverElementTriggerRect.left;
22085
- var freeDistanceToRight = windowWidth - popoverElementTriggerRect.right;
22086
- return {
22087
- freeDistanceToBottom: freeDistanceToBottom,
22088
- freeDistanceToTop: freeDistanceToTop,
22089
- freeDistanceToLeft: freeDistanceToLeft,
22090
- freeDistanceToRight: freeDistanceToRight
22091
- };
22146
+ return getElementLeftoverContentAvailable(this.element.nativeElement);
22092
22147
  };
22093
22148
  Object.defineProperty(HelpPopoverDirective.prototype, "getPopoverElement", {
22094
22149
  get: function () {
@@ -22216,21 +22271,6 @@
22216
22271
  ], HelpPopoverDirective);
22217
22272
  return HelpPopoverDirective;
22218
22273
  }());
22219
- var getElementPositionInfo = function (element) {
22220
- var rect = element.getBoundingClientRect();
22221
- var scrollTop = window.scrollY || document.documentElement.scrollTop;
22222
- var scrollLeft = window.scrollX || document.documentElement.scrollLeft;
22223
- var elementHeight = rect.height;
22224
- var elementWidth = rect.width;
22225
- return {
22226
- top: rect.top + scrollTop,
22227
- left: rect.left + scrollLeft,
22228
- right: rect.left + scrollLeft + elementWidth,
22229
- elementHeight: elementHeight,
22230
- elementWidth: elementWidth,
22231
- };
22232
- };
22233
- var ɵ0$4 = getElementPositionInfo;
22234
22274
 
22235
22275
  var HelpPopoverModule = /** @class */ (function () {
22236
22276
  function HelpPopoverModule() {
@@ -22794,6 +22834,8 @@
22794
22834
  exports.convertToMomentDateFormat = convertToMomentDateFormat;
22795
22835
  exports.countries = countries;
22796
22836
  exports.fallback = fallback;
22837
+ exports.getElementLeftoverContentAvailable = getElementLeftoverContentAvailable;
22838
+ exports.getElementPositionInfo = getElementPositionInfo;
22797
22839
  exports.isMousePositionOutsideOfElement = isMousePositionOutsideOfElement;
22798
22840
  exports.isNullOrUndefined = isNullOrUndefined;
22799
22841
  exports.parseItensPickList = parseItensPickList;