@seniorsistemas/angular-components 17.17.13 → 17.18.0

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 (56) hide show
  1. package/bundles/seniorsistemas-angular-components.umd.js +259 -62
  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/dynamic-form/configurations/fields/field.d.ts +2 -0
  6. package/components/index.d.ts +1 -0
  7. package/components/info-sign/info-sign.directive.d.ts +1 -0
  8. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +3 -0
  9. package/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +8 -0
  10. package/components/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +18 -0
  11. package/components/thumbnails/index.d.ts +3 -0
  12. package/components/thumbnails/models/thumbnails-item.d.ts +20 -0
  13. package/components/thumbnails/thumbnails.component.d.ts +16 -0
  14. package/components/thumbnails/thumbnails.module.d.ts +2 -0
  15. package/components/tooltip/tooltip.directive.d.ts +2 -7
  16. package/esm2015/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
  17. package/esm2015/components/dynamic-form/components/field-label/field-label.component.js +2 -2
  18. package/esm2015/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +9 -2
  19. package/esm2015/components/dynamic-form/components/grid/row/row.component.js +2 -2
  20. package/esm2015/components/dynamic-form/configurations/fields/field.js +3 -2
  21. package/esm2015/components/index.js +2 -1
  22. package/esm2015/components/info-sign/info-sign.directive.js +12 -5
  23. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +16 -0
  24. package/esm2015/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +41 -0
  25. package/esm2015/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +56 -0
  26. package/esm2015/components/thumbnails/index.js +3 -0
  27. package/esm2015/components/thumbnails/models/thumbnails-item.js +1 -0
  28. package/esm2015/components/thumbnails/thumbnails.component.js +52 -0
  29. package/esm2015/components/thumbnails/thumbnails.module.js +21 -0
  30. package/esm2015/components/tooltip/tooltip.directive.js +42 -40
  31. package/esm2015/locale/fallback.js +4 -1
  32. package/esm2015/seniorsistemas-angular-components.js +15 -12
  33. package/esm5/components/dynamic-form/components/dynamic-field/dynamic-field.component.js +2 -2
  34. package/esm5/components/dynamic-form/components/field-label/field-label.component.js +2 -2
  35. package/esm5/components/dynamic-form/components/fields/radio-button/radio-button-field.component.js +3 -3
  36. package/esm5/components/dynamic-form/components/grid/row/row.component.js +2 -2
  37. package/esm5/components/dynamic-form/configurations/fields/field.js +3 -2
  38. package/esm5/components/index.js +2 -1
  39. package/esm5/components/info-sign/info-sign.directive.js +12 -5
  40. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-image/thumbnail-item-image.component.js +19 -0
  41. package/esm5/components/thumbnails/components/thumbnail-item/components/thumbnail-item-video/thumbnail-item-video.component.js +44 -0
  42. package/esm5/components/thumbnails/components/thumbnail-item/thumbnail-item.component.js +58 -0
  43. package/esm5/components/thumbnails/index.js +3 -0
  44. package/esm5/components/thumbnails/models/thumbnails-item.js +1 -0
  45. package/esm5/components/thumbnails/thumbnails.component.js +57 -0
  46. package/esm5/components/thumbnails/thumbnails.module.js +24 -0
  47. package/esm5/components/tooltip/tooltip.directive.js +45 -40
  48. package/esm5/locale/fallback.js +4 -1
  49. package/esm5/seniorsistemas-angular-components.js +15 -12
  50. package/fesm2015/seniorsistemas-angular-components.js +231 -51
  51. package/fesm2015/seniorsistemas-angular-components.js.map +1 -1
  52. package/fesm5/seniorsistemas-angular-components.js +244 -52
  53. package/fesm5/seniorsistemas-angular-components.js.map +1 -1
  54. package/package.json +1 -1
  55. package/seniorsistemas-angular-components.d.ts +14 -11
  56. package/seniorsistemas-angular-components.metadata.json +1 -1
@@ -532,6 +532,8 @@
532
532
  return TooltipComponent;
533
533
  }());
534
534
 
535
+ var isNullOrUndefined = function (value) { return value === null || value === undefined; };
536
+
535
537
  var DEFAULT_TIMER = 300;
536
538
  var DebounceUtils = /** @class */ (function () {
537
539
  function DebounceUtils() {
@@ -606,8 +608,9 @@
606
608
  this.visible = true;
607
609
  this.mobileBehavior = MobileBehavior.Pressing;
608
610
  this.componentRef = null;
611
+ this.existFocusedInputRefTooltip = false;
609
612
  this.boundOnWindowMouseMoveFunction = this.onWindowMouseMove.bind(this);
610
- this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(function () { return _this.createTootip(); });
613
+ this.debounceCreateTooltipFunction = this.debounceUtils.debounceLeading(function () { return _this._createTooltip(true, true); });
611
614
  }
612
615
  TooltipDirective.prototype.ngOnInit = function () {
613
616
  this.validatePosition();
@@ -628,7 +631,7 @@
628
631
  left: Math.min(elementRect.left, toolTipRect.left),
629
632
  bottom: Math.max(elementRect.bottom, toolTipRect.bottom),
630
633
  };
631
- if (this.isMousePositionOutsideOfElement(event.clientX, event.clientY, totalElementArea)) {
634
+ if (this.isMousePositionOutsideOfElement(event.clientX, event.clientY, totalElementArea) && !this.existFocusedInputRefTooltip) {
632
635
  this.destroy();
633
636
  }
634
637
  };
@@ -643,15 +646,17 @@
643
646
  if (this.focusedInputRef) {
644
647
  var inputFocus = this.focusedInputRef;
645
648
  var icon_1 = this.getIconFromFocusedInput();
646
- this.renderer.listen(this.focusedInputRef, "focus", function () {
649
+ this.renderer.listen(inputFocus, "focus", function () {
647
650
  if (icon_1) {
648
- _this.createTootipByFocus(icon_1);
651
+ _this.existFocusedInputRefTooltip = true;
652
+ _this._createTooltip(false, false);
649
653
  }
650
654
  });
651
655
  this.renderer.listen(inputFocus, "blur", function () {
652
656
  if (icon_1) {
653
657
  _this.removeTooltip(icon_1);
654
658
  _this.destroy();
659
+ _this.existFocusedInputRefTooltip = false;
655
660
  }
656
661
  });
657
662
  }
@@ -682,7 +687,7 @@
682
687
  };
683
688
  TooltipDirective.prototype.onFocus = function () {
684
689
  if (this.tooltipEvent === TooltipEvent.Focus) {
685
- this.createTootip();
690
+ this._createTooltip(true, true);
686
691
  }
687
692
  };
688
693
  TooltipDirective.prototype.onBlur = function () {
@@ -696,14 +701,18 @@
696
701
  }
697
702
  };
698
703
  TooltipDirective.prototype.onMouseLeave = function () {
699
- if (this.tooltipEvent === TooltipEvent.Hover) {
704
+ if (this.tooltipEvent === TooltipEvent.Hover && !this.existFocusedInputRefTooltip) {
700
705
  this.destroy();
701
706
  }
702
707
  };
703
708
  TooltipDirective.prototype.onTouchStart = function () {
709
+ var _this = this;
704
710
  if (this.tooltipEvent === TooltipEvent.Hover) {
705
711
  window.clearTimeout(this.touchTimeout);
706
- this.touchTimeout = window.setTimeout(this.createTootip.bind(this), this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0);
712
+ var _delay = this.mobileBehavior === MobileBehavior.Pressing ? this.showDelay : 0;
713
+ this.touchTimeout = window.setTimeout(function () {
714
+ _this._createTooltip(true, true);
715
+ }, _delay);
707
716
  }
708
717
  };
709
718
  TooltipDirective.prototype.onTouchEnd = function () {
@@ -721,43 +730,37 @@
721
730
  throw new Error("Tooltip " + this.position + " position is unexpected");
722
731
  }
723
732
  };
724
- TooltipDirective.prototype.createTootip = function () {
725
- var _a;
726
- if (this.componentRef === null && ((_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.length)) {
727
- var domElem = this.getDomElement();
728
- document.body.appendChild(domElem);
729
- this.setTooltipComponentProperties();
730
- this.showTimeout = window.setTimeout(this.showTooltip.bind(this), this.showDelay);
731
- this.tooltipDivElement = domElem.querySelector(".tooltip");
732
- if (this.displayTime) {
733
- window.setTimeout(this.destroy.bind(this), this.displayTime);
734
- }
735
- }
736
- };
737
733
  TooltipDirective.prototype.getDomElement = function () {
738
734
  var componentFactory = this.componentFactoryResolver.resolveComponentFactory(TooltipComponent);
739
735
  this.componentRef = componentFactory.create(this.injector);
740
736
  this.appRef.attachView(this.componentRef.hostView);
741
737
  return this.componentRef.hostView.rootNodes[0];
742
738
  };
743
- /**
744
- * Cria um tooltip para o icone do input em focus.
745
- *
746
- * @param icon O ícone do input em focus.
747
- */
748
- TooltipDirective.prototype.createTootipByFocus = function (icon) {
739
+ TooltipDirective.prototype._createTooltip = function (useShowDelay, autoDestroy) {
749
740
  var _this = this;
741
+ if (useShowDelay === void 0) { useShowDelay = false; }
742
+ if (autoDestroy === void 0) { autoDestroy = true; }
750
743
  var _a;
751
- if (this.componentRef === null && ((_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.length)) {
752
- var domElem = this.getDomElement();
753
- var tooltip_1 = domElem.querySelector(".tooltip");
754
- icon.appendChild(tooltip_1);
755
- this.setTooltipComponentProperties();
756
- this.setTooltipPositionProperty(icon);
757
- setTimeout(function () { return tooltip_1.classList.add("tooltip--visible"); }, 0);
758
- this.renderer.listen(window, "scroll", function () {
759
- _this.setTooltipPositionProperty(icon);
760
- });
744
+ var hasText = ((_a = this.tooltip) === null || _a === void 0 ? void 0 : _a.length) > 0;
745
+ var hasComponentRef = this.componentRef !== null;
746
+ if (!hasText || hasComponentRef) {
747
+ return;
748
+ }
749
+ var domElement = this.getDomElement();
750
+ document.body.appendChild(domElement);
751
+ this.tooltipDivElement = domElement.querySelector(".tooltip");
752
+ this.setTooltipComponentProperties();
753
+ var _showDelay = useShowDelay ? this.showDelay : 0;
754
+ setTimeout(function () {
755
+ _this.showTooltip();
756
+ }, _showDelay);
757
+ this.renderer.listen(window, "scroll", function () {
758
+ _this.setTooltipPositionProperty();
759
+ });
760
+ if (autoDestroy && this.displayTime) {
761
+ setTimeout(function () {
762
+ _this.destroy();
763
+ }, this.displayTime);
761
764
  }
762
765
  };
763
766
  TooltipDirective.prototype.showTooltip = function () {
@@ -767,11 +770,14 @@
767
770
  window.addEventListener("mousemove", this.boundOnWindowMouseMoveFunction);
768
771
  }
769
772
  };
770
- TooltipDirective.prototype.setTooltipPositionProperty = function (element) {
773
+ TooltipDirective.prototype.setTooltipPositionProperty = function () {
771
774
  var e_1, _a;
775
+ if (!this.componentRef) {
776
+ return;
777
+ }
772
778
  var margin = 20;
773
779
  var anchorSize = 5;
774
- var domElem = element || this.componentRef.hostView.rootNodes[0].querySelector("#tooltip");
780
+ var domElem = this.componentRef.hostView.rootNodes[0].querySelector("#tooltip");
775
781
  var _b = domElem.getBoundingClientRect(), height = _b.height, width = _b.width;
776
782
  var _c = this.elementRef.nativeElement.getBoundingClientRect(), left = _c.left, right = _c.right, top = _c.top, bottom = _c.bottom;
777
783
  var positions = [
@@ -831,7 +837,7 @@
831
837
  }
832
838
  };
833
839
  TooltipDirective.prototype.destroy = function () {
834
- if (this.componentRef !== null) {
840
+ if (!isNullOrUndefined(this.componentRef)) {
835
841
  window.clearTimeout(this.showTimeout);
836
842
  this.appRef.detachView(this.componentRef.hostView);
837
843
  this.componentRef.destroy();
@@ -5390,8 +5396,6 @@
5390
5396
  .replace(/\byy\b/, "YYYY"); // year (four digits)
5391
5397
  };
5392
5398
 
5393
- var isNullOrUndefined = function (value) { return value === null || value === undefined; };
5394
-
5395
5399
  var CountryPhonePickerComponent = /** @class */ (function () {
5396
5400
  function CountryPhonePickerComponent(_countryPhonePickerService, _translate, _eRef, platformId) {
5397
5401
  var _this = this;
@@ -5786,7 +5790,7 @@
5786
5790
  var Field = /** @class */ (function () {
5787
5791
  function Field(config) {
5788
5792
  var _this = this;
5789
- var _a, _b, _c, _d, _e;
5793
+ var _a, _b, _c, _d, _e, _f;
5790
5794
  if ((_a = config.footer) === null || _a === void 0 ? void 0 : _a.help) {
5791
5795
  config.footer.help = __assign({ visible: function () { return true; } }, (_b = config.footer) === null || _b === void 0 ? void 0 : _b.help);
5792
5796
  }
@@ -5813,6 +5817,7 @@
5813
5817
  this.CustomFieldClass = config.CustomFieldClass;
5814
5818
  this.CustomFieldComponentClass = config.CustomFieldComponentClass;
5815
5819
  this.displayTimeInfoSign = (_e = config.displayTimeInfoSign) !== null && _e !== void 0 ? _e : 5000;
5820
+ this.useInfoSignFocusedInputRef = (_f = config.useInfoSignFocusedInputRef) !== null && _f !== void 0 ? _f : true;
5816
5821
  }
5817
5822
  return Field;
5818
5823
  }());
@@ -7844,6 +7849,7 @@
7844
7849
  this.viewContainer = viewContainer;
7845
7850
  this.componentFactoryResolver = componentFactoryResolver;
7846
7851
  this.displayTime = 5000;
7852
+ this.useFocusedInputRef = true;
7847
7853
  }
7848
7854
  InfoSignDirective.prototype.ngOnChanges = function () {
7849
7855
  this.createInfoSign();
@@ -7861,10 +7867,13 @@
7861
7867
  this.viewContainer.clear();
7862
7868
  var componentFactory = this.componentFactoryResolver.resolveComponentFactory(InfoSignComponent);
7863
7869
  this.componentRef = this.viewContainer.createComponent(componentFactory);
7864
- this.componentRef.instance.templateRef = this.templateRef;
7865
- this.componentRef.instance.tooltip = this.sInfoSign;
7866
- this.componentRef.instance.displayTime = this.displayTime;
7867
- this.componentRef.instance.focusedInputRef = this.focusedInputRef;
7870
+ var _infoSignComponent = this.componentRef.instance;
7871
+ _infoSignComponent.templateRef = this.templateRef;
7872
+ _infoSignComponent.tooltip = this.sInfoSign;
7873
+ _infoSignComponent.displayTime = this.displayTime;
7874
+ if (this.useFocusedInputRef) {
7875
+ _infoSignComponent.focusedInputRef = this.focusedInputRef;
7876
+ }
7868
7877
  }
7869
7878
  else if (this.componentRef && this.sInfoSign) {
7870
7879
  this.componentRef.instance.tooltip = this.sInfoSign;
@@ -7888,6 +7897,9 @@
7888
7897
  __decorate([
7889
7898
  core.Input('sInfoSignFocusedInputRef')
7890
7899
  ], InfoSignDirective.prototype, "focusedInputRef", void 0);
7900
+ __decorate([
7901
+ core.Input('sInfoSignUseFocusedInputRef')
7902
+ ], InfoSignDirective.prototype, "useFocusedInputRef", void 0);
7891
7903
  InfoSignDirective = __decorate([
7892
7904
  core.Directive({
7893
7905
  selector: "[sInfoSign]"
@@ -10905,9 +10917,9 @@
10905
10917
  ], RadioButtonComponent.prototype, "onFocus", void 0);
10906
10918
  RadioButtonComponent = __decorate([
10907
10919
  core.Component({
10908
- template: "<s-field-label [field]=\"field\"></s-field-label>\n\n<ng-container *ngIf=\"field.verticalAlignment;else horizontalAlignment\">\n <div class=\"ui-g\">\n <div\n *ngFor=\"let option of field.options; let i = index\"\n class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{option: option, index: i}\">\n </ng-container>\n </div>\n <s-button\n *ngIf=\"field.showClear && !field.required() && !formControl.disabled\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (onClick)=\"onClear()\"\n priority=\"link\">\n </s-button>\n </div>\n</ng-container>\n\n<ng-template #horizontalAlignment>\n <div class=\"ui-g\">\n <ng-container\n *ngFor=\"let option of field.options; let i = index\"\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{option: option, index: i}\">\n </ng-container>\n </div>\n <s-button\n *ngIf=\"field.showClear && !field.required() && !formControl.disabled\"\n class=\"horizontal-clear-option\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (onClick)=\"onClear()\"\n priority=\"link\">\n </s-button>\n</ng-template>\n\n<ng-template #radioButton let-option=\"option\" let-i=\"index\">\n <p-radioButton\n [name]=\"field.name\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [formControl]=\"formControl\"\n [inputId]=\"(field.id || field.name) + '-' + i\"\n [sTooltip]=\"field.tooltip\"\n (onClick)=\"onClick.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\">\n </p-radioButton>\n</ng-template>\n",
10920
+ template: "<s-field-label [field]=\"field\"></s-field-label>\n\n<ng-container *ngIf=\"field.verticalAlignment;else horizontalAlignment\">\n <div class=\"ui-g\">\n <div\n *ngFor=\"let option of field.options; let i = index\"\n class=\"ui-g-12\">\n <ng-container\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{option: option, index: i}\">\n </ng-container>\n </div>\n <s-button\n *ngIf=\"field.showClear && !field.required() && !formControl.disabled\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (onClick)=\"onClear()\"\n priority=\"link\">\n </s-button>\n </div>\n</ng-container>\n\n<ng-template #horizontalAlignment>\n <div class=\"ui-g horizontal-radio-buttons-container\">\n <ng-container\n *ngFor=\"let option of field.options; let i = index\"\n [ngTemplateOutlet]=\"radioButton\"\n [ngTemplateOutletContext]=\"{option: option, index: i}\">\n </ng-container>\n </div>\n <s-button\n *ngIf=\"field.showClear && !field.required() && !formControl.disabled\"\n class=\"horizontal-clear-option\"\n [label]=\"field.clearLabel || 'Clear selection'\"\n (onClick)=\"onClear()\"\n priority=\"link\">\n </s-button>\n</ng-template>\n\n<ng-template #radioButton let-option=\"option\" let-i=\"index\">\n <p-radioButton\n class=\"radio-button-item\"\n [name]=\"field.name\"\n [value]=\"option.value\"\n [label]=\"option.label\"\n [formControl]=\"formControl\"\n [inputId]=\"(field.id || field.name) + '-' + i\"\n [sTooltip]=\"field.tooltip\"\n (onClick)=\"onClick.next($event)\"\n (onFocus)=\"onFocus.next($event)\"\n (onBlur)=\"field.onBlur ? field.onBlur($event) : null\">\n </p-radioButton>\n</ng-template>\n",
10909
10921
  encapsulation: core.ViewEncapsulation.None,
10910
- styles: ["\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n "]
10922
+ styles: ["\n s-button.horizontal-clear-option button {\n width: min-content !important;\n }\n\n .horizontal-radio-buttons-container {\n gap: 20px 40px;\n .radio-button-item {\n margin: 0;\n }\n }\n "]
10911
10923
  })
10912
10924
  ], RadioButtonComponent);
10913
10925
  return RadioButtonComponent;
@@ -11229,7 +11241,7 @@
11229
11241
  ], RowComponent.prototype, "errorMessages", void 0);
11230
11242
  RowComponent = __decorate([
11231
11243
  core.Component({
11232
- template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <ng-container *ngIf=\"field.type === FieldType.Custom && field.label\" >\n <label *sInfoSign=\"field.infoSign\" [for]=\"field.name\" [ngClass]=\"{ required: field.required() }\" >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
11244
+ template: "\n <div class=\"ui-fluid\" [formGroup]=\"group\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of config.fields\">\n <div [ngClass]=\"field.gridClass\" *ngIf=\"field.visible()\">\n <ng-container *ngIf=\"field.type === FieldType.Custom && field.label\" >\n <label *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; useFocusedInputRef: field.useInfoSignFocusedInputRef\" [for]=\"field.name\" [ngClass]=\"{ required: field.required() }\" >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container *sDynamicForm=\"{ id: id, config: field, group: group}\"></ng-container>\n\n <s-control-errors [form]=\"group\" [control]=\"group.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span *ngIf=\"field.footer.help.visible({ abstractControl: group.controls[field.name], formField: field })\" style=\"color: #888B99\">{{ field.footer.help.text }}</span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"field.footer.link.visible({ abstractControl: group.controls[field.name], formField: field })\"\n class=\"ui-g\"\n style=\"margin-left: -17px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"field.footer.link.onClick({ abstractControl: group.controls[field.name], formField: field })\"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template *ngIf=\"field?.bottomTemplate\" [ngTemplateOutlet]=\"field.bottomTemplate\"></ng-template>\n </div>\n </ng-container>\n </div>\n "
11233
11245
  })
11234
11246
  ], RowComponent);
11235
11247
  return RowComponent;
@@ -11263,7 +11275,7 @@
11263
11275
  DynamicFieldComponent = __decorate([
11264
11276
  core.Component({
11265
11277
  selector: "s-dynamic-field",
11266
- template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\">\n\n <ng-container *ngIf=\"field.label && field.type === FieldType.Custom\">\n <label\n *sInfoSign=\"\n field.infoSign;\n displayTime: field.displayTimeInfoSign\n \"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: field,\n group: form\n }\"\n ></ng-container>\n\n <s-control-errors\n [form]=\"form\"\n [control]=\"form.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span\n *ngIf=\"\n field.footer.help.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n style=\"color: #888b99\"\n >\n {{ field.footer.help.text }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"\n field.footer.link.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n class=\"ui-g\"\n style=\"margin-left: -10px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"\n field.footer.link.onClick({\n abstractControl:\n form.controls[field.name],\n formField: field\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template\n *ngIf=\"field?.bottomTemplate\"\n [ngTemplateOutlet]=\"field.bottomTemplate\"\n ></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n"
11278
+ template: "<div class=\"ui-fluid\" [formGroup]=\"form\">\n <div class=\"ui-g\">\n <ng-container *ngFor=\"let field of fields\">\n <div\n *ngIf=\"!field.visible || field.visible()\"\n [ngClass]=\"field.gridClass\">\n\n <ng-container *ngIf=\"field.label && field.type === FieldType.Custom\">\n <label\n *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; useFocusedInputRef: field.useInfoSignFocusedInputRef\"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n </ng-container>\n\n <ng-container\n *sDynamicForm=\"{\n id: id,\n config: field,\n group: form\n }\"\n ></ng-container>\n\n <s-control-errors\n [form]=\"form\"\n [control]=\"form.controls[field.name]\"\n [errorMessages]=\"getErrorMessages(field.errorMessages)\"\n ></s-control-errors>\n\n <ng-container *ngIf=\"field.footer\">\n <ng-container *ngIf=\"field.footer.help\">\n <span\n *ngIf=\"\n field.footer.help.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n style=\"color: #888b99\"\n >\n {{ field.footer.help.text }}\n </span>\n </ng-container>\n\n <ng-container *ngIf=\"field.footer.link\">\n <div\n *ngIf=\"\n field.footer.link.visible({\n abstractControl: form.controls[field.name],\n formField: field\n })\n \"\n class=\"ui-g\"\n style=\"margin-left: -10px\"\n >\n <s-button\n [label]=\"field.footer.link.label\"\n priority=\"link\"\n (onClick)=\"\n field.footer.link.onClick({\n abstractControl:\n form.controls[field.name],\n formField: field\n })\n \"\n [auxiliary]=\"true\"\n ></s-button>\n </div>\n </ng-container>\n </ng-container>\n\n <ng-template\n *ngIf=\"field?.bottomTemplate\"\n [ngTemplateOutlet]=\"field.bottomTemplate\"\n ></ng-template>\n </div>\n </ng-container>\n </div>\n</div>\n"
11267
11279
  })
11268
11280
  ], DynamicFieldComponent);
11269
11281
  return DynamicFieldComponent;
@@ -12035,7 +12047,7 @@
12035
12047
  FieldLabelComponent = __decorate([
12036
12048
  core.Component({
12037
12049
  selector: 's-field-label',
12038
- template: "<!--\n Caso esse componente seja alterado/removido/movido,\n alterar a label no row.component.ts e dynamic-field.component.ts\n-->\n\n<span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; focusedInputRef: fieldContainerRef\"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n</span>\n"
12050
+ template: "<!--\n Caso esse componente seja alterado/removido/movido,\n alterar a label no row.component.ts e dynamic-field.component.ts\n-->\n\n<span *ngIf=\"field.label\">\n <label\n *sInfoSign=\"field.infoSign; displayTime: field.displayTimeInfoSign; focusedInputRef: fieldContainerRef; useFocusedInputRef: field.useInfoSignFocusedInputRef\"\n [for]=\"field.name\"\n [ngClass]=\"{ required: field.required() }\"\n >\n {{ field.label }}\n </label>\n</span>\n"
12039
12051
  })
12040
12052
  ], FieldLabelComponent);
12041
12053
  return FieldLabelComponent;
@@ -19766,6 +19778,183 @@
19766
19778
  return StepsModule;
19767
19779
  }());
19768
19780
 
19781
+ var ThumbnailsComponent = /** @class */ (function () {
19782
+ function ThumbnailsComponent() {
19783
+ this.selectable = true;
19784
+ this.selectionChange = new core.EventEmitter();
19785
+ this.itemOpened = new core.EventEmitter();
19786
+ this._selection = [];
19787
+ }
19788
+ Object.defineProperty(ThumbnailsComponent.prototype, "selection", {
19789
+ set: function (items) {
19790
+ this._selection = __spread(items);
19791
+ },
19792
+ enumerable: true,
19793
+ configurable: true
19794
+ });
19795
+ ThumbnailsComponent.prototype.onItemOpened = function (item) {
19796
+ this.itemOpened.emit(item);
19797
+ };
19798
+ ThumbnailsComponent.prototype.onItemSelected = function (items) {
19799
+ if (items.selected) {
19800
+ this._selection.push(items.item);
19801
+ }
19802
+ else {
19803
+ this._selection.splice(this._selection.findIndex(function (item) { return item === items.item; }), 1);
19804
+ }
19805
+ this.selectionChange.emit(this._selection);
19806
+ };
19807
+ ThumbnailsComponent.prototype.isSelected = function (item) {
19808
+ return this._selection.some(function (i) { return i.id === item.id; });
19809
+ };
19810
+ __decorate([
19811
+ core.Input()
19812
+ ], ThumbnailsComponent.prototype, "items", void 0);
19813
+ __decorate([
19814
+ core.Input()
19815
+ ], ThumbnailsComponent.prototype, "selectable", void 0);
19816
+ __decorate([
19817
+ core.Input()
19818
+ ], ThumbnailsComponent.prototype, "selection", null);
19819
+ __decorate([
19820
+ core.Output()
19821
+ ], ThumbnailsComponent.prototype, "selectionChange", void 0);
19822
+ __decorate([
19823
+ core.Output()
19824
+ ], ThumbnailsComponent.prototype, "itemOpened", void 0);
19825
+ ThumbnailsComponent = __decorate([
19826
+ core.Component({
19827
+ selector: "s-thumbnails",
19828
+ template: "<div class=\"thumbnails\">\n <s-thumbnail-item\n *ngFor=\"let item of items\"\n [itemData]=\"item\"\n [isCheckable]=\"selectable\"\n [isChecked]=\"isSelected(item)\"\n (checked)=\"onItemSelected($event)\"\n (opened)=\"onItemOpened($event)\">\n </s-thumbnail-item>\n</div>\n",
19829
+ styles: [".thumbnails{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;gap:12px}"]
19830
+ })
19831
+ ], ThumbnailsComponent);
19832
+ return ThumbnailsComponent;
19833
+ }());
19834
+
19835
+ var ThumbnailItemComponent = /** @class */ (function () {
19836
+ function ThumbnailItemComponent() {
19837
+ this.isCheckable = true;
19838
+ this.isChecked = false;
19839
+ this.checked = new core.EventEmitter();
19840
+ this.opened = new core.EventEmitter();
19841
+ }
19842
+ ThumbnailItemComponent.prototype.ngOnInit = function () {
19843
+ this._validateItemData();
19844
+ this._createFormGroup();
19845
+ };
19846
+ ThumbnailItemComponent.prototype.onClick = function () {
19847
+ this.opened.emit(this.itemData);
19848
+ };
19849
+ ThumbnailItemComponent.prototype._createFormGroup = function () {
19850
+ var _this = this;
19851
+ this.checkboxFormGroup = new forms.FormGroup({
19852
+ checkbox: new forms.FormControl({ checked: this.isChecked }),
19853
+ });
19854
+ this.checkboxFormGroup.get("checkbox").valueChanges.subscribe(function (value) {
19855
+ _this.checked.emit({ item: _this.itemData, checked: value.checked });
19856
+ });
19857
+ };
19858
+ ThumbnailItemComponent.prototype._validateItemData = function () {
19859
+ if (isNullOrUndefined(this.itemData)) {
19860
+ throw new Error("itemData is required");
19861
+ }
19862
+ };
19863
+ __decorate([
19864
+ core.Input()
19865
+ ], ThumbnailItemComponent.prototype, "itemData", void 0);
19866
+ __decorate([
19867
+ core.Input()
19868
+ ], ThumbnailItemComponent.prototype, "isCheckable", void 0);
19869
+ __decorate([
19870
+ core.Input()
19871
+ ], ThumbnailItemComponent.prototype, "isChecked", void 0);
19872
+ __decorate([
19873
+ core.Output()
19874
+ ], ThumbnailItemComponent.prototype, "checked", void 0);
19875
+ __decorate([
19876
+ core.Output()
19877
+ ], ThumbnailItemComponent.prototype, "opened", void 0);
19878
+ ThumbnailItemComponent = __decorate([
19879
+ core.Component({
19880
+ selector: "s-thumbnail-item",
19881
+ template: "<button *ngIf=\"itemData\" class=\"thumbnail-item\" (click)=\"onClick()\">\n <div class=\"thumbnail-item-content\">\n <div class=\"content\">\n <ng-container *ngIf=\"itemData.type === 'video'\">\n <s-thumbnail-item-video\n [imageUrl]=\"itemData.imageUrl\"\n [videoUrl]=\"itemData.videoUrl\">\n </s-thumbnail-item-video>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'image'\">\n <s-thumbnail-item-image [imageUrl]=\"itemData.imageUrl\"></s-thumbnail-item-image>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'audio'\">\n <i class=\"icon fas fa-volume-down\"></i>\n <span class=\"label\">{{ \"platform.angular_components.listen\" | translate }}</span>\n </ng-container>\n <ng-container *ngIf=\"itemData.type === 'file'\">\n <i class=\"icon fas fa-file-alt\"></i>\n <span class=\"label\">{{ \"platform.angular_components.view\" | translate }}</span>\n </ng-container>\n </div>\n <form *ngIf=\"isCheckable\" [formGroup]=\"checkboxFormGroup\" class=\"checkbox\">\n <s-checkbox [data]=\"{ label: '' }\" formControlName=\"checkbox\"> </s-checkbox>\n </form>\n </div>\n <span class=\"file-name-label\">{{ itemData.fileName }}</span>\n</button>\n",
19882
+ styles: [".thumbnail-item{-ms-flex-align:center;align-items:center;background:0 0;border:none;cursor:pointer;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center;overflow:hidden;width:100px}.thumbnail-item-content{-ms-flex-align:center;align-items:center;background-image:linear-gradient(to top right,#5288b6,#00c89a);border-radius:8px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;height:100px;-ms-flex-pack:center;justify-content:center;position:relative;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%;overflow:hidden}.thumbnail-item-content .checkbox{position:absolute;right:8px;top:8px}.thumbnail-item-content .content{-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:4px;overflow:hidden;width:100%}.thumbnail-item-content .content .icon{font-size:24px}.thumbnail-item-content .content .label{font-size:12px;width:100%;padding:0 8px;overflow:hidden;text-overflow:ellipsis}.thumbnail-item:hover{transform:scale(1.05);transition:.2s ease-in-out}.thumbnail-item .file-name-label{color:#525966;font-family:\"Open Sans\",sans-serif;font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;text-wrap:nowrap;-webkit-user-select:none;-ms-user-select:none;user-select:none;width:100%}"]
19883
+ })
19884
+ ], ThumbnailItemComponent);
19885
+ return ThumbnailItemComponent;
19886
+ }());
19887
+
19888
+ var ThumbnailItemVideoComponent = /** @class */ (function () {
19889
+ function ThumbnailItemVideoComponent() {
19890
+ }
19891
+ ThumbnailItemVideoComponent.prototype.onMouseEnter = function () {
19892
+ var _a;
19893
+ if ((_a = this.videoPlayer) === null || _a === void 0 ? void 0 : _a.nativeElement) {
19894
+ this.videoPlayer.nativeElement.play();
19895
+ }
19896
+ };
19897
+ ThumbnailItemVideoComponent.prototype.onMouseLeave = function () {
19898
+ var _a;
19899
+ if ((_a = this.videoPlayer) === null || _a === void 0 ? void 0 : _a.nativeElement) {
19900
+ this.videoPlayer.nativeElement.pause();
19901
+ this.videoPlayer.nativeElement.currentTime = 0;
19902
+ }
19903
+ };
19904
+ __decorate([
19905
+ core.Input()
19906
+ ], ThumbnailItemVideoComponent.prototype, "imageUrl", void 0);
19907
+ __decorate([
19908
+ core.Input()
19909
+ ], ThumbnailItemVideoComponent.prototype, "videoUrl", void 0);
19910
+ __decorate([
19911
+ core.ViewChild("videoPlayer")
19912
+ ], ThumbnailItemVideoComponent.prototype, "videoPlayer", void 0);
19913
+ __decorate([
19914
+ core.HostListener("mouseenter")
19915
+ ], ThumbnailItemVideoComponent.prototype, "onMouseEnter", null);
19916
+ __decorate([
19917
+ core.HostListener("mouseleave")
19918
+ ], ThumbnailItemVideoComponent.prototype, "onMouseLeave", null);
19919
+ ThumbnailItemVideoComponent = __decorate([
19920
+ core.Component({
19921
+ selector: "s-thumbnail-item-video",
19922
+ template: "<div class=\"thumbnail-item-video\" [ngClass]=\"{ 'thumbnail-item-video--playable': videoUrl }\">\n <div\n class=\"thumbnail-image\"\n [ngStyle]=\"{'backgroundImage': 'url(' + imageUrl + ')'}\">\n </div>\n <div class=\"play-overlay\">\n <i class=\"icon fas fa-play\"></i>\n <span class=\"label\">{{ \"platform.angular_components.watch\" | translate }}</span>\n </div>\n <video\n *ngIf=\"videoUrl\"\n #videoPlayer\n class=\"thumbnail-video-preview\"\n [src]=\"videoUrl\"\n [loop]=\"true\"\n [muted]=\"true\"\n preload=\"none\">\n </video>\n</div>\n",
19923
+ styles: [".thumbnail-item-video{cursor:pointer;height:100px;overflow:hidden;position:relative;width:100px}.thumbnail-item-video .thumbnail-image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.thumbnail-item-video .thumbnail-video-preview{height:100%;left:0;width:100%;object-fit:cover;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out}.thumbnail-item-video:hover .thumbnail-video-preview{opacity:1}.thumbnail-item-video .play-overlay{-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;gap:8px;-ms-flex-pack:center;justify-content:center;left:50%;opacity:1;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease-in-out;width:100%;z-index:10}.thumbnail-item-video .play-overlay .icon{color:#fff;font-size:24px}.thumbnail-item-video .play-overlay .label{overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}.thumbnail-item-video--playable:hover .play-overlay{opacity:0}"]
19924
+ })
19925
+ ], ThumbnailItemVideoComponent);
19926
+ return ThumbnailItemVideoComponent;
19927
+ }());
19928
+
19929
+ var ThumbnailItemImageComponent = /** @class */ (function () {
19930
+ function ThumbnailItemImageComponent() {
19931
+ }
19932
+ __decorate([
19933
+ core.Input()
19934
+ ], ThumbnailItemImageComponent.prototype, "imageUrl", void 0);
19935
+ ThumbnailItemImageComponent = __decorate([
19936
+ core.Component({
19937
+ selector: "s-thumbnail-item-image",
19938
+ template: "<div class=\"thumbnail-item-image\">\n <div\n *ngIf=\"imageUrl; else noImage\"\n class=\"thumbnail-image\"\n [ngStyle]=\"{ backgroundImage: 'url(' + imageUrl + ')' }\">\n </div>\n\n <ng-template #noImage>\n <div class=\"content\">\n <i class=\"icon fas fa-image\"></i>\n <span class=\"label\">{{ \"platform.angular_components.view\" | translate }}</span>\n </div>\n </ng-template>\n</div>\n",
19939
+ styles: [".thumbnail-item-image{-ms-flex-align:center;align-items:center;display:-ms-flexbox;display:flex;height:100px;-ms-flex-pack:center;justify-content:center;width:100px}.thumbnail-item-image .thumbnail-image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.thumbnail-item-image .content{-ms-flex-align:center;align-items:center;color:#fff;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;font-family:\"Open Sans\",sans-serif;-ms-flex-pack:center;justify-content:center;width:100%}.thumbnail-item-image .content .icon{font-size:24px}.thumbnail-item-image .content .label{font-size:12px;overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}"]
19940
+ })
19941
+ ], ThumbnailItemImageComponent);
19942
+ return ThumbnailItemImageComponent;
19943
+ }());
19944
+
19945
+ var ThumbnailsModule = /** @class */ (function () {
19946
+ function ThumbnailsModule() {
19947
+ }
19948
+ ThumbnailsModule = __decorate([
19949
+ core.NgModule({
19950
+ imports: [common.CommonModule, forms.ReactiveFormsModule, core$1.TranslateModule, CheckboxModule],
19951
+ declarations: [ThumbnailsComponent, ThumbnailItemComponent, ThumbnailItemVideoComponent, ThumbnailItemImageComponent],
19952
+ exports: [ThumbnailsComponent],
19953
+ })
19954
+ ], ThumbnailsModule);
19955
+ return ThumbnailsModule;
19956
+ }());
19957
+
19769
19958
  var TileComponent = /** @class */ (function () {
19770
19959
  function TileComponent() {
19771
19960
  this.id = "s-tile-" + TileComponent_1.nextId++;
@@ -21132,6 +21321,9 @@
21132
21321
  }());
21133
21322
 
21134
21323
  var fallback = {
21324
+ "platform.angular_components.watch": "assistir",
21325
+ "platform.angular_components.view": "visualizar",
21326
+ "platform.angular_components.listen": "ouvir",
21135
21327
  "platform.angular_components.drag_your_photo_or": "Arraste sua foto ou",
21136
21328
  "platform.angular_components.select_a_file": "selecione um arquivo",
21137
21329
  "platform.angular_components.change_photo": "Alterar foto",
@@ -21629,6 +21821,8 @@
21629
21821
  exports.TextField = TextField;
21630
21822
  exports.ThumbnailComponent = ThumbnailComponent;
21631
21823
  exports.ThumbnailModule = ThumbnailModule;
21824
+ exports.ThumbnailsComponent = ThumbnailsComponent;
21825
+ exports.ThumbnailsModule = ThumbnailsModule;
21632
21826
  exports.TieredMenuDirective = TieredMenuDirective;
21633
21827
  exports.TieredMenuModule = TieredMenuModule;
21634
21828
  exports.TileComponent = TileComponent;
@@ -21722,18 +21916,21 @@
21722
21916
  exports.ɵdn = ProgressBarIndeterminateComponent;
21723
21917
  exports.ɵdo = SelectButtonItemComponent;
21724
21918
  exports.ɵdp = SlidePanelService;
21725
- exports.ɵdq = TimelineItemModule;
21726
- exports.ɵdr = TimelineIconItemComponent;
21727
- exports.ɵds = HorizontalTimelineModule;
21728
- exports.ɵdt = HorizontalTimelineComponent;
21729
- exports.ɵdu = VerticalTimelineModule;
21730
- exports.ɵdv = VerticalTimelineComponent;
21731
- exports.ɵdw = RangeLineComponent;
21732
- exports.ɵdx = CollapseOptionComponent;
21733
- exports.ɵdy = CollapsedItemsComponent;
21734
- exports.ɵdz = VerticalItemsComponent;
21919
+ exports.ɵdq = ThumbnailItemComponent;
21920
+ exports.ɵdr = ThumbnailItemVideoComponent;
21921
+ exports.ɵds = ThumbnailItemImageComponent;
21922
+ exports.ɵdt = TimelineItemModule;
21923
+ exports.ɵdu = TimelineIconItemComponent;
21924
+ exports.ɵdv = HorizontalTimelineModule;
21925
+ exports.ɵdw = HorizontalTimelineComponent;
21926
+ exports.ɵdx = VerticalTimelineModule;
21927
+ exports.ɵdy = VerticalTimelineComponent;
21928
+ exports.ɵdz = RangeLineComponent;
21735
21929
  exports.ɵe = TieredMenuGlobalService;
21736
- exports.ɵea = ChipItemComponent;
21930
+ exports.ɵea = CollapseOptionComponent;
21931
+ exports.ɵeb = CollapsedItemsComponent;
21932
+ exports.ɵec = VerticalItemsComponent;
21933
+ exports.ɵed = ChipItemComponent;
21737
21934
  exports.ɵf = TieredMenuComponent;
21738
21935
  exports.ɵg = TieredMenuNestedComponent;
21739
21936
  exports.ɵh = TieredMenuItemComponent;