@theseam/ui-common 1.0.0-beta.9 → 1.0.1

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 (100) hide show
  1. package/buttons/index.d.ts +4 -1
  2. package/datatable/index.d.ts +44 -24
  3. package/fesm2022/theseam-ui-common-asset-reader.mjs +10 -10
  4. package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
  5. package/fesm2022/theseam-ui-common-breadcrumbs.mjs +6 -6
  6. package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
  7. package/fesm2022/theseam-ui-common-buttons.mjs +35 -28
  8. package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
  9. package/fesm2022/theseam-ui-common-card.mjs +16 -16
  10. package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
  11. package/fesm2022/theseam-ui-common-carousel.mjs +10 -10
  12. package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
  13. package/fesm2022/theseam-ui-common-checkbox.mjs +7 -7
  14. package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
  15. package/fesm2022/theseam-ui-common-confirm-dialog.mjs +13 -13
  16. package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
  17. package/fesm2022/theseam-ui-common-data-exporter.mjs +31 -14
  18. package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
  19. package/fesm2022/theseam-ui-common-data-filters.mjs +13 -13
  20. package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
  21. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +12 -12
  22. package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
  23. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +25 -25
  24. package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
  25. package/fesm2022/theseam-ui-common-datatable.mjs +177 -145
  26. package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
  27. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +7 -7
  28. package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
  29. package/fesm2022/theseam-ui-common-dynamic.mjs +21 -21
  30. package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
  31. package/fesm2022/theseam-ui-common-footer-bar.mjs +7 -7
  32. package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
  33. package/fesm2022/theseam-ui-common-form-field-error.mjs +16 -16
  34. package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
  35. package/fesm2022/theseam-ui-common-form-field.mjs +22 -22
  36. package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
  37. package/fesm2022/theseam-ui-common-framework.mjs +160 -158
  38. package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
  39. package/fesm2022/theseam-ui-common-google-maps.mjs +40 -40
  40. package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
  41. package/fesm2022/theseam-ui-common-graphql.mjs +3 -3
  42. package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
  43. package/fesm2022/theseam-ui-common-icon.mjs +13 -13
  44. package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
  45. package/fesm2022/theseam-ui-common-layout.mjs +7 -7
  46. package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
  47. package/fesm2022/theseam-ui-common-loading.mjs +10 -10
  48. package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
  49. package/fesm2022/theseam-ui-common-menu.mjs +25 -25
  50. package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
  51. package/fesm2022/theseam-ui-common-modal.mjs +43 -43
  52. package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
  53. package/fesm2022/theseam-ui-common-navigation-reload.mjs +3 -3
  54. package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
  55. package/fesm2022/theseam-ui-common-popover.mjs +10 -10
  56. package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
  57. package/fesm2022/theseam-ui-common-progress.mjs +7 -7
  58. package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
  59. package/fesm2022/theseam-ui-common-rich-text.mjs +7 -7
  60. package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
  61. package/fesm2022/theseam-ui-common-scrollbar.mjs +6 -6
  62. package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
  63. package/fesm2022/theseam-ui-common-services.mjs +12 -12
  64. package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
  65. package/fesm2022/theseam-ui-common-shared.mjs +37 -37
  66. package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
  67. package/fesm2022/theseam-ui-common-storage.mjs +3 -3
  68. package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
  69. package/fesm2022/theseam-ui-common-story-helpers.mjs +26 -26
  70. package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
  71. package/fesm2022/theseam-ui-common-tabbed.mjs +22 -22
  72. package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
  73. package/fesm2022/theseam-ui-common-table-cell-type.mjs +10 -10
  74. package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
  75. package/fesm2022/theseam-ui-common-table-cell-types.mjs +31 -31
  76. package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
  77. package/fesm2022/theseam-ui-common-table.mjs +20 -28
  78. package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
  79. package/fesm2022/theseam-ui-common-tel-input.mjs +13 -13
  80. package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
  81. package/fesm2022/theseam-ui-common-tiled-select.mjs +22 -22
  82. package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
  83. package/fesm2022/theseam-ui-common-toggle-edit.mjs +16 -16
  84. package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
  85. package/fesm2022/theseam-ui-common-toggle-group.mjs +10 -10
  86. package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
  87. package/fesm2022/theseam-ui-common-tooltip.mjs +10 -10
  88. package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
  89. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +10 -10
  90. package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
  91. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +3 -3
  92. package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
  93. package/fesm2022/theseam-ui-common-viewers.mjs +12 -12
  94. package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
  95. package/fesm2022/theseam-ui-common-widget.mjs +135 -135
  96. package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
  97. package/modal/README.md +5 -5
  98. package/package.json +54 -54
  99. package/table/index.d.ts +1 -5
  100. package/tel-input/README.md +27 -27
@@ -133,8 +133,8 @@ class IconComponent {
133
133
  get _cssNoGreyscale() {
134
134
  return !this.grayscaleOnDisable;
135
135
  }
136
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: IconComponent, isStandalone: false, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon\n *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\"\n>\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span\n class=\"grayscale-fix\"\n style=\"display: inline-block; position: relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"svgroot\"\n style=\"position: absolute; left: 0; right: 0\"\n viewBox=\"0 0 48 48\"\n width=\"100%\"\n height=\"100%\"\n >\n <defs>\n <filter id=\"gray\">\n <feColorMatrix\n type=\"matrix\"\n values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\n />\n </filter>\n </defs>\n <image\n filter='url(\"#gray\")'\n preserveAspectRatio=\"none meet\"\n x=\"0\"\n y=\"0\"\n width=\"48\"\n height=\"48\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\"\n />\n </svg>\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n style=\"display: block; visibility: hidden\"\n alt=\"Icon\"\n [src]=\"_iconUrl\"\n (error)=\"_imgError($event)\"\n />\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IconComponent, isStandalone: false, selector: "seam-icon", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", defaultIcon: "defaultIcon", iconType: "iconType" }, host: { properties: { "attr.icon-type": "this._iconTypeAttr", "class.disabled": "this._cssDisabled", "class.no-grayscale": "this._cssNoGreyscale" } }, ngImport: i0, template: "<fa-icon\n *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\"\n>\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span\n class=\"grayscale-fix\"\n style=\"display: inline-block; position: relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"svgroot\"\n style=\"position: absolute; left: 0; right: 0\"\n viewBox=\"0 0 48 48\"\n width=\"100%\"\n height=\"100%\"\n >\n <defs>\n <filter id=\"gray\">\n <feColorMatrix\n type=\"matrix\"\n values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\n />\n </filter>\n </defs>\n <image\n filter='url(\"#gray\")'\n preserveAspectRatio=\"none meet\"\n x=\"0\"\n y=\"0\"\n width=\"48\"\n height=\"48\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\"\n />\n </svg>\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n style=\"display: block; visibility: hidden\"\n alt=\"Icon\"\n [src]=\"_iconUrl\"\n (error)=\"_imgError($event)\"\n />\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.FaIconComponent, selector: "fa-icon", inputs: ["icon", "title", "animation", "spin", "pulse", "mask", "styles", "flip", "size", "pull", "border", "inverse", "symbol", "rotate", "fixedWidth", "classes", "transform", "a11yRole"] }] });
138
138
  }
139
139
  __decorate([
140
140
  InputBoolean()
@@ -142,7 +142,7 @@ __decorate([
142
142
  __decorate([
143
143
  InputBoolean()
144
144
  ], IconComponent.prototype, "disabled", void 0);
145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconComponent, decorators: [{
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconComponent, decorators: [{
146
146
  type: Component,
147
147
  args: [{ selector: 'seam-icon', standalone: false, template: "<fa-icon\n *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\"\n>\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span\n class=\"grayscale-fix\"\n style=\"display: inline-block; position: relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"svgroot\"\n style=\"position: absolute; left: 0; right: 0\"\n viewBox=\"0 0 48 48\"\n width=\"100%\"\n height=\"100%\"\n >\n <defs>\n <filter id=\"gray\">\n <feColorMatrix\n type=\"matrix\"\n values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\n />\n </filter>\n </defs>\n <image\n filter='url(\"#gray\")'\n preserveAspectRatio=\"none meet\"\n x=\"0\"\n y=\"0\"\n width=\"48\"\n height=\"48\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\"\n />\n </svg>\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n style=\"display: block; visibility: hidden\"\n alt=\"Icon\"\n [src]=\"_iconUrl\"\n (error)=\"_imgError($event)\"\n />\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n", styles: [":host{display:inline-block}:host:disabled:not(.no-grayscale),:host.disabled:not(.no-grayscale){filter:grayscale(1)}:host[icon-type=styled-square]{border:1px solid #dee2e6;border-radius:8px}:host[icon-type=styled-square],:host[icon-type=borderless-styled-square]{-webkit-user-select:none;user-select:none;overflow:hidden;min-width:39px;width:39px;min-height:39px;height:39px;padding:1px;align-items:center;display:inline-flex;vertical-align:top}:host[icon-type=styled-square] img,:host[icon-type=borderless-styled-square] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=styled-square] .seam-icon--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%;padding:2px}:host[icon-type=styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa,:host[icon-type=borderless-styled-square] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}:host[icon-type=image-fill]{max-height:100%;max-width:100%;width:100%;height:100%}:host[icon-type=image-fill] img{max-width:100%;max-height:100%;margin:0 auto}:host[icon-type=image-fill] .seam-icon--fa{height:100%;display:flex;flex-direction:row;justify-content:center;text-align:center;width:100%}:host[icon-type=image-fill] .seam-icon--fa ::ng-deep .svg-inline--fa{max-width:100%;height:100%;width:100%}.grey-fix{visibility:hidden;display:block}\n"] }]
148
148
  }], propDecorators: { grayscaleOnDisable: [{
@@ -287,8 +287,8 @@ class IconBtnComponent {
287
287
  _isAnchor() {
288
288
  return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
289
289
  }
290
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconBtnComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
291
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: IconBtnComponent, isStandalone: false, selector: "button[seamIconBtn]", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", iconType: "iconType", btnTheme: "btnTheme", badgeTheme: "badgeTheme", badgeText: "badgeText", btnSize: "btnSize", type: "type", role: "role" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null", "class.p-0": "this._cssPadding0", "class.btn": "this._btn", "class.text-nowrap": "this._textNoWrap", "class.btn-default": "this._btnDefault", "class.btn-primary": "this._btnPrimary", "class.btn-secondary": "this._btnSecondary", "class.btn-success": "this._btnSuccess", "class.btn-danger": "this._btnDanger", "class.btn-warning": "this._btnWarning", "class.btn-info": "this._btnInfo", "class.btn-light": "this._btnLight", "class.btn-dark": "this._btnDark", "class.btn-lightgray": "this._btnLightGray", "class.btn-sm": "this._btnSizeSm", "class.btn-lg": "this._btnSizeLg" } }, ngImport: i0, template: `
290
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconBtnComponent, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component });
291
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IconBtnComponent, isStandalone: false, selector: "button[seamIconBtn]", inputs: { grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", size: "size", showDefaultOnError: "showDefaultOnError", iconType: "iconType", btnTheme: "btnTheme", badgeTheme: "badgeTheme", badgeText: "badgeText", btnSize: "btnSize", type: "type", role: "role" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null", "class.p-0": "this._cssPadding0", "class.btn": "this._btn", "class.text-nowrap": "this._textNoWrap", "class.btn-default": "this._btnDefault", "class.btn-primary": "this._btnPrimary", "class.btn-secondary": "this._btnSecondary", "class.btn-success": "this._btnSuccess", "class.btn-danger": "this._btnDanger", "class.btn-warning": "this._btnWarning", "class.btn-info": "this._btnInfo", "class.btn-light": "this._btnLight", "class.btn-dark": "this._btnDark", "class.btn-lightgray": "this._btnLightGray", "class.btn-sm": "this._btnSizeSm", "class.btn-lg": "this._btnSizeLg" } }, ngImport: i0, template: `
292
292
  <seam-icon
293
293
  *ngIf="icon"
294
294
  [grayscaleOnDisable]="grayscaleOnDisable"
@@ -312,7 +312,7 @@ __decorate([
312
312
  __decorate([
313
313
  InputBoolean()
314
314
  ], IconBtnComponent.prototype, "showDefaultOnError", void 0);
315
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconBtnComponent, decorators: [{
315
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconBtnComponent, decorators: [{
316
316
  type: Component,
317
317
  args: [{ selector: 'button[seamIconBtn]', template: `
318
318
  <seam-icon
@@ -461,8 +461,8 @@ class IconNotificationComponent {
461
461
  this._elementRef.nativeElement.parentElement.style.position = 'relative';
462
462
  }
463
463
  }
464
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconNotificationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
465
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: IconNotificationComponent, isStandalone: false, selector: "seam-icon-notification", inputs: { count: "count", hidden: "hidden", grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", showDefaultOnError: "showDefaultOnError", size: "size", iconType: "iconType" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" } }, ngImport: i0, template: `
464
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconNotificationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
465
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: IconNotificationComponent, isStandalone: false, selector: "seam-icon-notification", inputs: { count: "count", hidden: "hidden", grayscaleOnDisable: "grayscaleOnDisable", disabled: "disabled", iconClass: "iconClass", icon: "icon", showDefaultOnError: "showDefaultOnError", size: "size", iconType: "iconType" }, host: { properties: { "attr.aria-disabled": "disabled.toString()", "attr.disabled": "disabled || null" } }, ngImport: i0, template: `
466
466
  <seam-icon
467
467
  *ngIf="icon && !hidden"
468
468
  [@counterChange]="count"
@@ -499,7 +499,7 @@ __decorate([
499
499
  __decorate([
500
500
  InputBoolean()
501
501
  ], IconNotificationComponent.prototype, "showDefaultOnError", void 0);
502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: IconNotificationComponent, decorators: [{
502
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: IconNotificationComponent, decorators: [{
503
503
  type: Component,
504
504
  args: [{ selector: 'seam-icon-notification', template: `
505
505
  <seam-icon
@@ -549,11 +549,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
549
549
  }] } });
550
550
 
551
551
  class TheSeamIconModule {
552
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
553
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamIconModule, declarations: [IconComponent, IconBtnComponent, IconNotificationComponent], imports: [CommonModule, FontAwesomeModule], exports: [IconComponent, IconBtnComponent, IconNotificationComponent] });
554
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule, FontAwesomeModule] });
552
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
553
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TheSeamIconModule, declarations: [IconComponent, IconBtnComponent, IconNotificationComponent], imports: [CommonModule, FontAwesomeModule], exports: [IconComponent, IconBtnComponent, IconNotificationComponent] });
554
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule, FontAwesomeModule] });
555
555
  }
556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamIconModule, decorators: [{
556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamIconModule, decorators: [{
557
557
  type: NgModule,
558
558
  args: [{
559
559
  declarations: [IconComponent, IconBtnComponent, IconNotificationComponent],
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-icon.mjs","sources":["../../../projects/ui-common/icon/icon/icon.component.ts","../../../projects/ui-common/icon/icon/icon.component.html","../../../projects/ui-common/icon/icon-btn/icon-btn.component.ts","../../../projects/ui-common/icon/icon-notification/icon-notification.component.ts","../../../projects/ui-common/icon/icon.module.ts","../../../projects/ui-common/icon/utils/file-extension-icon.ts","../../../projects/ui-common/icon/utils/get-known-icon.ts","../../../projects/ui-common/icon/theseam-ui-common-icon.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Component, HostBinding, Input } from '@angular/core'\n\nimport { IconProp, SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\n\n//\n// TODO: Ensure all inputs correctly update the state whenever changed, not just\n// on initial load.\n//\n\n// Browsers that do not support css grayscale filter.\nconst needToFix = /(MSIE 10)|(Trident.*rv:11\\.0)|( Edge\\/[\\d.]+$)/.test(\n navigator.userAgent,\n)\n\nexport type TheSeamIconType =\n | 'borderless-styled-square'\n | 'styled-square'\n | 'image-fill'\n | undefined\n\n@Component({\n selector: 'seam-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n standalone: false,\n})\nexport class IconComponent {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n needToFix = needToFix\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input()\n get icon(): SeamIcon | undefined | null {\n return this._iconUrl || this._iconObj\n }\n set icon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _iconUrl: string | undefined | null\n public _iconObj: IconProp | undefined | null\n\n private _iconUrlBeforeError: string | undefined | null\n private _iconObjBeforeError: IconProp | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input()\n get showDefaultOnError(): boolean {\n return this._showDefaultOnError\n }\n set showDefaultOnError(value: boolean) {\n this._showDefaultOnError = coerceBooleanProperty(value)\n if (this._hasError) {\n if (this._iconUrlBeforeError || this._iconObjBeforeError) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n } else if (this._showDefaultOnError) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n }\n private _showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n */\n @Input()\n get defaultIcon(): SeamIcon | undefined | null {\n return this._defaultIconUrl || this._defaultIconObj\n }\n set defaultIcon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._defaultIconUrl = value\n this._defaultIconObj = undefined\n } else {\n this._defaultIconUrl = undefined\n this._defaultIconObj = value\n }\n\n if (!this._defaultIconUrl && !this._defaultIconObj) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n }\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _defaultIconUrl: string | undefined | null\n public _defaultIconObj: IconProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null\n\n @HostBinding('attr.icon-type')\n get _iconTypeAttr() {\n return this.iconType\n }\n\n private _hasError = false\n\n public _imgError(event: ErrorEvent): void {\n this._hasError = true\n if (\n this._showDefaultOnError &&\n (this._defaultIconUrl || this._defaultIconObj)\n ) {\n this._iconUrlBeforeError = this._iconUrl\n this._iconObjBeforeError = this._iconObj\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n @HostBinding('class.disabled')\n get _cssDisabled() {\n return this.disabled || null\n }\n\n @HostBinding('class.no-grayscale')\n get _cssNoGreyscale() {\n return !this.grayscaleOnDisable\n }\n}\n","<fa-icon\n *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\"\n>\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span\n class=\"grayscale-fix\"\n style=\"display: inline-block; position: relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"svgroot\"\n style=\"position: absolute; left: 0; right: 0\"\n viewBox=\"0 0 48 48\"\n width=\"100%\"\n height=\"100%\"\n >\n <defs>\n <filter id=\"gray\">\n <feColorMatrix\n type=\"matrix\"\n values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\n />\n </filter>\n </defs>\n <image\n filter='url(\"#gray\")'\n preserveAspectRatio=\"none meet\"\n x=\"0\"\n y=\"0\"\n width=\"48\"\n height=\"48\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\"\n />\n </svg>\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n style=\"display: block; visibility: hidden\"\n alt=\"Icon\"\n [src]=\"_iconUrl\"\n (error)=\"_imgError($event)\"\n />\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n} from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport type { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamIconBtn]',\n template: `\n <seam-icon\n *ngIf=\"icon\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\"\n >\n </seam-icon>\n <ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n `,\n styles: [],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n standalone: false,\n})\nexport class IconBtnComponent implements DoCheck {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-btn yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n @HostBinding('class.p-0') _cssPadding0 = true\n\n @HostBinding('class.btn') _btn = true\n @HostBinding('class.text-nowrap') _textNoWrap = true\n\n @HostBinding('class.btn-default') get _btnDefault() {\n return this.isBtnTheme('default')\n }\n @HostBinding('class.btn-primary') get _btnPrimary() {\n return this.isBtnTheme('primary')\n }\n @HostBinding('class.btn-secondary') get _btnSecondary() {\n return this.isBtnTheme('secondary')\n }\n @HostBinding('class.btn-success') get _btnSuccess() {\n return this.isBtnTheme('success')\n }\n @HostBinding('class.btn-danger') get _btnDanger() {\n return this.isBtnTheme('danger')\n }\n @HostBinding('class.btn-warning') get _btnWarning() {\n return this.isBtnTheme('warning')\n }\n @HostBinding('class.btn-info') get _btnInfo() {\n return this.isBtnTheme('info')\n }\n @HostBinding('class.btn-light') get _btnLight() {\n return this.isBtnTheme('light')\n }\n @HostBinding('class.btn-dark') get _btnDark() {\n return this.isBtnTheme('dark')\n }\n @HostBinding('class.btn-lightgray') get _btnLightGray() {\n return this.isBtnTheme('lightgray')\n }\n\n @HostBinding('class.btn-sm') get _btnSizeSm() {\n return this.btnSize === 'sm'\n }\n @HostBinding('class.btn-lg') get _btnSizeLg() {\n return this.btnSize === 'lg'\n }\n\n @Input() btnTheme: ThemeTypes | undefined | null = 'default'\n @Input() badgeTheme: ThemeTypes | undefined | null = 'light'\n @Input() badgeText: string | undefined | null = ''\n\n @Input() btnSize: 'sm' | 'lg' | undefined | null\n\n @Input()\n get type(): string | undefined | null {\n return this._type\n }\n set type(value: string | undefined | null) {\n this._type = value\n }\n private _type: string | undefined | null\n\n @Input()\n get role(): string | undefined | null {\n return this._role\n }\n set role(value: string | undefined | null) {\n this._role = value\n }\n private _role: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLButtonElement | HTMLAnchorElement>,\n private _renderer: Renderer2,\n ) {}\n\n ngDoCheck() {\n if (this._isButton()) {\n this._renderer.setAttribute(\n this._elementRef.nativeElement,\n 'type',\n this._type || 'button',\n )\n } else if (this._isAnchor()) {\n this._renderer.setAttribute(\n this._elementRef.nativeElement,\n 'role',\n this._role || 'button',\n )\n }\n }\n\n public isBtnTheme(type: ThemeTypes): boolean {\n return this.btnTheme === type\n }\n\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n}\n","import {\n animate,\n animation,\n keyframes,\n style,\n transition,\n trigger,\n useAnimation,\n} from '@angular/animations'\nimport { BooleanInput } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n} from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\nimport { faCircle } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\nexport const pulseAnimation = animation([\n style({ transform: 'scale(1)' }),\n animate(\n '{{ timings }}',\n keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale({{ scale }})', offset: 0.5 }),\n style({ transform: 'scale(1)', offset: 1 }),\n ]),\n ),\n])\n\n@Component({\n selector: 'seam-icon-notification',\n template: `\n <seam-icon\n *ngIf=\"icon && !hidden\"\n [@counterChange]=\"count\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\"\n >\n </seam-icon>\n <ng-content select=\".sr-only\"></ng-content>\n `,\n styles: [\n `\n :host {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n }\n\n seam-icon {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 25% !important;\n height: 25% !important;\n min-width: 15px;\n min-height: 15px;\n }\n `,\n ],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n animations: [\n trigger('counterChange', [\n transition(\n ':increment',\n useAnimation(pulseAnimation, {\n params: {\n timings: '400ms ease-in-out',\n scale: 1.2,\n },\n }),\n ),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IconNotificationComponent implements OnInit {\n static ngAcceptInputType_hidden: BooleanInput\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n @Input() count: number | undefined | null\n\n @Input() @InputBoolean() hidden = false\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null = faCircle\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-notification yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n if (\n this._elementRef &&\n this._elementRef.nativeElement &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.style.position = 'relative'\n }\n }\n\n // ngDoCheck() {}\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { IconBtnComponent } from './icon-btn/icon-btn.component'\nimport { IconNotificationComponent } from './icon-notification/icon-notification.component'\nimport { IconComponent } from './icon/icon.component'\n\n@NgModule({\n declarations: [IconComponent, IconBtnComponent, IconNotificationComponent],\n imports: [CommonModule, FontAwesomeModule],\n exports: [IconComponent, IconBtnComponent, IconNotificationComponent],\n})\nexport class TheSeamIconModule {}\n","import {\n faFile,\n faFileAlt,\n faFileArchive,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileWord,\n} from '@fortawesome/free-regular-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\nconst FILE_EXTENSION_ICONS: { [type: string]: SeamIcon } = {\n pdf: faFilePdf,\n doc: faFileWord,\n docx: faFileWord,\n xls: faFileExcel,\n xlsx: faFileExcel,\n gif: faFileImage,\n jpg: faFileImage,\n jpeg: faFileImage,\n png: faFileImage,\n zip: faFileArchive,\n ppt: faFilePowerpoint,\n pptx: faFilePowerpoint,\n txt: faFileAlt,\n json: faFileAlt,\n}\n\nexport const DEFAULT_FILE_EXTENSION_ICON: SeamIcon = faFile\n\nexport function fileExtensionIcon(\n extension: string | null | undefined,\n defaultIfNotFound: boolean = true,\n): SeamIcon | undefined {\n if (!extension) {\n return defaultIfNotFound ? DEFAULT_FILE_EXTENSION_ICON : undefined\n }\n\n let ext = extension\n if (ext.charAt(0) === '.') {\n ext = ext.substr(1)\n }\n\n const icon = FILE_EXTENSION_ICONS[ext]\n if (!icon && defaultIfNotFound) {\n return DEFAULT_FILE_EXTENSION_ICON\n }\n return icon\n}\n","import {\n faAddressCard,\n faBell,\n faBookmark,\n faCheckCircle,\n faClock,\n faComment,\n faEnvelope,\n faEnvelopeOpen,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faQuestionCircle,\n faSave,\n faStickyNote,\n faTimesCircle,\n faTrashAlt,\n faUser,\n faUserCircle,\n} from '@fortawesome/free-regular-svg-icons'\nimport {\n faBan,\n faChartArea,\n faChartBar,\n faChartLine,\n faCheck,\n faCloudUploadAlt,\n faCog,\n faEdit,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExport,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faReceipt,\n faReply,\n faShare,\n faSignature,\n faTimes,\n faTrash,\n faUserCheck,\n faUserEdit,\n faUserPlus,\n faUsers,\n faUserTimes,\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\n// TODO: Decide a good way to do this, so that we don't have to import full icon\n// libraries, but still provide icon choices to use from a string. One way could\n// be to define a dictionary of app icons that we can use that map a unique\n// string to an icon definition.\nconst knownIcons: { [key: string]: SeamIcon } = {\n faAddressCard,\n faBan,\n faBell,\n faBookmark,\n faChartLine,\n faChartArea,\n faChartBar,\n faCheck,\n faCheckCircle,\n faClock,\n faCloudUploadAlt,\n faComment,\n faCog,\n faEdit,\n faEnvelope,\n faEnvelopeOpen,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExcel,\n faFileExport,\n faFileImage,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePdf,\n faFilePowerpoint,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faQuestionCircle,\n faReceipt,\n faReply,\n faSave,\n faShare,\n faSignature,\n faStickyNote,\n faTimes,\n faTimesCircle,\n faTrash,\n faTrashAlt,\n faUser,\n faUserCheck,\n faUserCircle,\n faUserEdit,\n faUserTimes,\n faUsers,\n faUserPlus,\n}\n\nexport function getKnownIcon(iconStr: string): SeamIcon | undefined {\n return knownIcons[iconStr]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent"],"mappings":";;;;;;;;;;;;;AASA;AACA;AACA;AACA;AAEA;AACA,MAAM,SAAS,GAAG,gDAAgD,CAAC,IAAI,CACrE,SAAS,CAAC,SAAS,CACpB;MAcY,aAAa,CAAA;IACxB,OAAO,oCAAoC;IAC3C,OAAO,0BAA0B;IACjC,OAAO,oCAAoC;IAE3C,SAAS,GAAG,SAAS;;IAGI,kBAAkB,GAAG,IAAI;;IAGzB,QAAQ,GAAG,KAAK;AAEzC;;AAEG;AACM,IAAA,SAAS;AAElB;;;;;AAKG;AACH,IAAA,IACI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ;IACvC;IACA,IAAI,IAAI,CAAC,KAAkC,EAAA;AACzC,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;AACrB,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;QAC3B;aAAO;AACL,YAAA,IAAI,CAAC,QAAQ,GAAG,SAAS;AACzB,YAAA,IAAI,CAAC,QAAQ,GAAG,KAAK;QACvB;AAEA,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;AACpC,QAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;QAEpC,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;QACtC;IACF;AAEO,IAAA,QAAQ;AACR,IAAA,QAAQ;AAEP,IAAA,mBAAmB;AACnB,IAAA,mBAAmB;AAE3B;;AAEG;AACM,IAAA,IAAI;AAEb;;;AAGG;AACH,IAAA,IACI,kBAAkB,GAAA;QACpB,OAAO,IAAI,CAAC,mBAAmB;IACjC;IACA,IAAI,kBAAkB,CAAC,KAAc,EAAA;AACnC,QAAA,IAAI,CAAC,mBAAmB,GAAG,qBAAqB,CAAC,KAAK,CAAC;AACvD,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;YAClB,IAAI,IAAI,CAAC,mBAAmB,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACxD,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB;AACxC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB;AACxC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;AACpC,gBAAA,IAAI,CAAC,mBAAmB,GAAG,SAAS;YACtC;AAAO,iBAAA,IAAI,IAAI,CAAC,mBAAmB,EAAE;AACnC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;AACpC,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;YACtC;QACF;IACF;IACQ,mBAAmB,GAAG,KAAK;AAEnC;;AAEG;AACH,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe;IACrD;IACA,IAAI,WAAW,CAAC,KAAkC,EAAA;AAChD,QAAA,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;AAC5B,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;QAClC;aAAO;AACL,YAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,YAAA,IAAI,CAAC,eAAe,GAAG,KAAK;QAC9B;QAEA,IAAI,CAAC,IAAI,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;AAClD,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,mBAAmB;QAC1C;QAEA,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;QACtC;IACF;AAEO,IAAA,eAAe;AACf,IAAA,eAAe;AAEb,IAAA,QAAQ;AAEjB,IAAA,IACI,aAAa,GAAA;QACf,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEQ,SAAS,GAAG,KAAK;AAElB,IAAA,SAAS,CAAC,KAAiB,EAAA;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;QACrB,IACE,IAAI,CAAC,mBAAmB;aACvB,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,eAAe,CAAC,EAC9C;AACA,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;AACxC,YAAA,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,QAAQ;AACxC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;AACpC,YAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe;QACtC;IACF;AAEA,IAAA,IACI,YAAY,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,QAAQ,IAAI,IAAI;IAC9B;AAEA,IAAA,IACI,eAAe,GAAA;AACjB,QAAA,OAAO,CAAC,IAAI,CAAC,kBAAkB;IACjC;uGA7IW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,ybC/B1B,ujEAwEA,EAAA,MAAA,EAAA,CAAA,i5CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,WAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;ADjC2B,UAAA,CAAA;AAAf,IAAA,YAAY;AAA4B,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA;AAGzB,UAAA,CAAA;AAAf,IAAA,YAAY;AAAmB,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;2FAX9B,aAAa,EAAA,UAAA,EAAA,CAAA;kBANzB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,WAAW,cAGT,KAAK,EAAA,QAAA,EAAA,ujEAAA,EAAA,MAAA,EAAA,CAAA,i5CAAA,CAAA,EAAA;;sBAUhB;;sBAGA;;sBAKA;;sBAQA;;sBA+BA;;sBAMA;;sBAuBA;;sBA2BA;;sBAEA,WAAW;uBAAC,gBAAgB;;sBAoB5B,WAAW;uBAAC,gBAAgB;;sBAK5B,WAAW;uBAAC,oBAAoB;;;ME/HtB,gBAAgB,CAAA;AAgHjB,IAAA,WAAA;AACA,IAAA,SAAA;IAhHV,OAAO,oCAAoC;IAC3C,OAAO,0BAA0B;IACjC,OAAO,oCAAoC;;IAGlB,kBAAkB,GAAG,IAAI;;IAGzB,QAAQ,GAAG,KAAK;AAEzC;;AAEG;AACM,IAAA,SAAS;AAElB;;;;;AAKG;AACM,IAAA,IAAI;AAEb;;AAEG;AACM,IAAA,IAAI;AAEb;;;AAGG;IACsB,kBAAkB,GAAG,KAAK;AAEnD;;;;AAIG;;IAGM,QAAQ,GAAuC,YAAY;IAE1C,YAAY,GAAG,IAAI;IAEnB,IAAI,GAAG,IAAI;IACH,WAAW,GAAG,IAAI;AAEpD,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC;AACA,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC;AACA,IAAA,IAAwC,aAAa,GAAA;AACnD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACrC;AACA,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC;AACA,IAAA,IAAqC,UAAU,GAAA;AAC7C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;IAClC;AACA,IAAA,IAAsC,WAAW,GAAA;AAC/C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC;IACnC;AACA,IAAA,IAAmC,QAAQ,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC;AACA,IAAA,IAAoC,SAAS,GAAA;AAC3C,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IACjC;AACA,IAAA,IAAmC,QAAQ,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;IAChC;AACA,IAAA,IAAwC,aAAa,GAAA;AACnD,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC;IACrC;AAEA,IAAA,IAAiC,UAAU,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI;IAC9B;AACA,IAAA,IAAiC,UAAU,GAAA;AACzC,QAAA,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI;IAC9B;IAES,QAAQ,GAAkC,SAAS;IACnD,UAAU,GAAkC,OAAO;IACnD,SAAS,GAA8B,EAAE;AAEzC,IAAA,OAAO;AAEhB,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;IACA,IAAI,IAAI,CAAC,KAAgC,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;AACQ,IAAA,KAAK;AAEb,IAAA,IACI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK;IACnB;IACA,IAAI,IAAI,CAAC,KAAgC,EAAA;AACvC,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;IACpB;AACQ,IAAA,KAAK;IAEb,WAAA,CACU,WAA8D,EAC9D,SAAoB,EAAA;QADpB,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,SAAS,GAAT,SAAS;IAChB;IAEH,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AACpB,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,MAAM,EACN,IAAI,CAAC,KAAK,IAAI,QAAQ,CACvB;QACH;AAAO,aAAA,IAAI,IAAI,CAAC,SAAS,EAAE,EAAE;AAC3B,YAAA,IAAI,CAAC,SAAS,CAAC,YAAY,CACzB,IAAI,CAAC,WAAW,CAAC,aAAa,EAC9B,MAAM,EACN,IAAI,CAAC,KAAK,IAAI,QAAQ,CACvB;QACH;IACF;AAEO,IAAA,UAAU,CAAC,IAAgB,EAAA;AAChC,QAAA,OAAO,IAAI,CAAC,QAAQ,KAAK,IAAI;IAC/B;IAEU,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ;IAC3E;IAEU,SAAS,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,QAAQ;IAC3E;uGA9IW,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAhB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,kBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,qBAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EArBjB;;;;;;;;;;;;;AAaT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;AAcwB,UAAA,CAAA;AAAf,IAAA,YAAY;AAA4B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA;AAGzB,UAAA,CAAA;AAAf,IAAA,YAAY;AAAmB,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAwBhB,UAAA,CAAA;AAAf,IAAA,YAAY;AAA6B,CAAA,EAAA,gBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA;2FAjCxC,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAxB5B,SAAS;AAEE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,qBAAqB,EAAA,QAAA,EACrB;;;;;;;;;;;;;GAaT,EAAA,IAAA,EAEK;AACJ,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,iBAAiB,EAAE,kBAAkB;AACtC,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA;;sBAQhB;;sBAGA;;sBAKA;;sBAQA;;sBAKA;;sBAMA;;sBASA;;sBAEA,WAAW;uBAAC,WAAW;;sBAEvB,WAAW;uBAAC,WAAW;;sBACvB,WAAW;uBAAC,mBAAmB;;sBAE/B,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,qBAAqB;;sBAGjC,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,kBAAkB;;sBAG9B,WAAW;uBAAC,mBAAmB;;sBAG/B,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,iBAAiB;;sBAG7B,WAAW;uBAAC,gBAAgB;;sBAG5B,WAAW;uBAAC,qBAAqB;;sBAIjC,WAAW;uBAAC,cAAc;;sBAG1B,WAAW;uBAAC,cAAc;;sBAI1B;;sBACA;;sBACA;;sBAEA;;sBAEA;;sBASA;;;ACtHI,MAAM,cAAc,GAAG,SAAS,CAAC;AACtC,IAAA,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,CAAC;AAChC,IAAA,OAAO,CACL,eAAe,EACf,SAAS,CAAC;QACR,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAC3C,KAAK,CAAC,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,EAAE,GAAG,EAAE,CAAC;QACvD,KAAK,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AAC5C,KAAA,CAAC,CACH;AACF,CAAA;MA4DY,yBAAyB,CAAA;AAiDhB,IAAA,WAAA;IAhDpB,OAAO,wBAAwB;IAC/B,OAAO,oCAAoC;IAC3C,OAAO,0BAA0B;IACjC,OAAO,oCAAoC;AAElC,IAAA,KAAK;IAEW,MAAM,GAAG,KAAK;;IAGd,kBAAkB,GAAG,IAAI;;IAGzB,QAAQ,GAAG,KAAK;AAEzC;;AAEG;AACM,IAAA,SAAS;AAElB;;;;;AAKG;IACM,IAAI,GAAgC,QAAQ;AAErD;;;AAGG;IACsB,kBAAkB,GAAG,KAAK;AAEnD;;;;AAIG;;AAGH;;AAEG;AACM,IAAA,IAAI;IAEJ,QAAQ,GAAuC,YAAY;AAEpE,IAAA,WAAA,CAAoB,WAAoC,EAAA;QAApC,IAAA,CAAA,WAAW,GAAX,WAAW;IAA4B;IAE3D,QAAQ,GAAA;QACN,IACE,IAAI,CAAC,WAAW;YAChB,IAAI,CAAC,WAAW,CAAC,aAAa;AAC9B,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,EAC5C;AACA,YAAA,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU;QAC1E;IACF;uGA3DW,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,qBAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAxD1B;;;;;;;;;;;;;;GAcT,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,0JAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,aAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,oBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,EAAA,oBAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EA0BW;YACV,OAAO,CAAC,eAAe,EAAE;AACvB,gBAAA,UAAU,CACR,YAAY,EACZ,YAAY,CAAC,cAAc,EAAE;AAC3B,oBAAA,MAAM,EAAE;AACN,wBAAA,OAAO,EAAE,mBAAmB;AAC5B,wBAAA,KAAK,EAAE,GAAG;AACX,qBAAA;AACF,iBAAA,CAAC,CACH;aACF,CAAC;AACH,SAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA;;AAYwB,UAAA,CAAA;AAAf,IAAA,YAAY;AAAiB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,QAAA,EAAA,KAAA,CAAA,CAAA;AAGd,UAAA,CAAA;AAAf,IAAA,YAAY;AAA4B,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA;AAGzB,UAAA,CAAA;AAAf,IAAA,YAAY;AAAmB,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,UAAA,EAAA,KAAA,CAAA,CAAA;AAmBhB,UAAA,CAAA;AAAf,IAAA,YAAY;AAA6B,CAAA,EAAA,yBAAA,CAAA,SAAA,EAAA,oBAAA,EAAA,KAAA,CAAA,CAAA;2FAjCxC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBA1DrC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,wBAAwB,EAAA,QAAA,EACxB;;;;;;;;;;;;;;GAcT,EAAA,IAAA,EAsBK;AACJ,wBAAA,sBAAsB,EAAE,qBAAqB;AAC7C,wBAAA,iBAAiB,EAAE,kBAAkB;qBACtC,EAAA,UAAA,EACW;wBACV,OAAO,CAAC,eAAe,EAAE;AACvB,4BAAA,UAAU,CACR,YAAY,EACZ,YAAY,CAAC,cAAc,EAAE;AAC3B,gCAAA,MAAM,EAAE;AACN,oCAAA,OAAO,EAAE,mBAAmB;AAC5B,oCAAA,KAAK,EAAE,GAAG;AACX,iCAAA;AACF,6BAAA,CAAC,CACH;yBACF,CAAC;AACH,qBAAA,EAAA,eAAA,EACgB,uBAAuB,CAAC,MAAM,EAAA,UAAA,EACnC,KAAK,EAAA,MAAA,EAAA,CAAA,0JAAA,CAAA,EAAA;;sBAQhB;;sBAEA;;sBAGA;;sBAGA;;sBAKA;;sBAQA;;sBAMA;;sBAYA;;sBAEA;;;MCjIU,iBAAiB,CAAA;uGAAjB,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,EAAA,YAAA,EAAA,CAJb,aAAa,EAAE,gBAAgB,EAAE,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAC/D,YAAY,EAAE,iBAAiB,CAAA,EAAA,OAAA,EAAA,CAC/B,aAAa,EAAE,gBAAgB,EAAE,yBAAyB,CAAA,EAAA,CAAA;wGAEzD,iBAAiB,EAAA,OAAA,EAAA,CAHlB,YAAY,EAAE,iBAAiB,CAAA,EAAA,CAAA;;2FAG9B,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAL7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,yBAAyB,CAAC;AAC1E,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC;AAC1C,oBAAA,OAAO,EAAE,CAAC,aAAa,EAAE,gBAAgB,EAAE,yBAAyB,CAAC;AACtE,iBAAA;;;ACAD,MAAM,oBAAoB,GAAiC;AACzD,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,GAAG,EAAE,UAAU;AACf,IAAA,IAAI,EAAE,UAAU;AAChB,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,GAAG,EAAE,WAAW;AAChB,IAAA,GAAG,EAAE,aAAa;AAClB,IAAA,GAAG,EAAE,gBAAgB;AACrB,IAAA,IAAI,EAAE,gBAAgB;AACtB,IAAA,GAAG,EAAE,SAAS;AACd,IAAA,IAAI,EAAE,SAAS;CAChB;AAEM,MAAM,2BAA2B,GAAa;SAErC,iBAAiB,CAC/B,SAAoC,EACpC,oBAA6B,IAAI,EAAA;IAEjC,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,iBAAiB,GAAG,2BAA2B,GAAG,SAAS;IACpE;IAEA,IAAI,GAAG,GAAG,SAAS;IACnB,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AACzB,QAAA,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;IACrB;AAEA,IAAA,MAAM,IAAI,GAAG,oBAAoB,CAAC,GAAG,CAAC;AACtC,IAAA,IAAI,CAAC,IAAI,IAAI,iBAAiB,EAAE;AAC9B,QAAA,OAAO,2BAA2B;IACpC;AACA,IAAA,OAAO,IAAI;AACb;;AC2BA;AACA;AACA;AACA;AACA,MAAM,UAAU,GAAgC;IAC9C,aAAa;IACb,KAAK;IACL,MAAM;IACN,UAAU;IACV,WAAW;IACX,WAAW;IACX,UAAU;IACV,OAAO;IACP,aAAa;IACb,OAAO;IACP,gBAAgB;IAChB,SAAS;IACT,KAAK;IACL,MAAM;IACN,UAAU;IACV,cAAc;IACd,aAAa;IACb,mBAAmB;IACnB,qBAAqB;IACrB,uBAAuB;IACvB,MAAM;IACN,SAAS;IACT,aAAa;IACb,WAAW;IACX,UAAU;IACV,cAAc;IACd,SAAS;IACT,cAAc;IACd,WAAW;IACX,YAAY;IACZ,WAAW;IACX,YAAY;IACZ,aAAa;IACb,mBAAmB;IACnB,aAAa;IACb,gBAAgB;IAChB,SAAS;IACT,gBAAgB;IAChB,kBAAkB;IAClB,eAAe;IACf,YAAY;IACZ,WAAW;IACX,UAAU;IACV,QAAQ;IACR,YAAY;IACZ,OAAO;IACP,QAAQ;IACR,OAAO;IACP,YAAY;IACZ,MAAM;IACN,UAAU;IACV,OAAO;IACP,gBAAgB;IAChB,SAAS;IACT,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;IACX,YAAY;IACZ,OAAO;IACP,aAAa;IACb,OAAO;IACP,UAAU;IACV,MAAM;IACN,WAAW;IACX,YAAY;IACZ,UAAU;IACV,WAAW;IACX,OAAO;IACP,UAAU;CACX;AAEK,SAAU,YAAY,CAAC,OAAe,EAAA;AAC1C,IAAA,OAAO,UAAU,CAAC,OAAO,CAAC;AAC5B;;AC5JA;;AAEG;;;;"}
1
+ {"version":3,"file":"theseam-ui-common-icon.mjs","sources":["../../../projects/ui-common/icon/icon/icon.component.ts","../../../projects/ui-common/icon/icon/icon.component.html","../../../projects/ui-common/icon/icon-btn/icon-btn.component.ts","../../../projects/ui-common/icon/icon-notification/icon-notification.component.ts","../../../projects/ui-common/icon/icon.module.ts","../../../projects/ui-common/icon/utils/file-extension-icon.ts","../../../projects/ui-common/icon/utils/get-known-icon.ts","../../../projects/ui-common/icon/theseam-ui-common-icon.ts"],"sourcesContent":["import { BooleanInput, coerceBooleanProperty } from '@angular/cdk/coercion'\nimport { Component, HostBinding, Input } from '@angular/core'\n\nimport { IconProp, SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\n\n//\n// TODO: Ensure all inputs correctly update the state whenever changed, not just\n// on initial load.\n//\n\n// Browsers that do not support css grayscale filter.\nconst needToFix = /(MSIE 10)|(Trident.*rv:11\\.0)|( Edge\\/[\\d.]+$)/.test(\n navigator.userAgent,\n)\n\nexport type TheSeamIconType =\n | 'borderless-styled-square'\n | 'styled-square'\n | 'image-fill'\n | undefined\n\n@Component({\n selector: 'seam-icon',\n templateUrl: './icon.component.html',\n styleUrls: ['./icon.component.scss'],\n standalone: false,\n})\nexport class IconComponent {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n needToFix = needToFix\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input()\n get icon(): SeamIcon | undefined | null {\n return this._iconUrl || this._iconObj\n }\n set icon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._iconUrl = value\n this._iconObj = undefined\n } else {\n this._iconUrl = undefined\n this._iconObj = value\n }\n\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _iconUrl: string | undefined | null\n public _iconObj: IconProp | undefined | null\n\n private _iconUrlBeforeError: string | undefined | null\n private _iconObjBeforeError: IconProp | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input()\n get showDefaultOnError(): boolean {\n return this._showDefaultOnError\n }\n set showDefaultOnError(value: boolean) {\n this._showDefaultOnError = coerceBooleanProperty(value)\n if (this._hasError) {\n if (this._iconUrlBeforeError || this._iconObjBeforeError) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n this._iconUrlBeforeError = undefined\n this._iconObjBeforeError = undefined\n } else if (this._showDefaultOnError) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n }\n private _showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n */\n @Input()\n get defaultIcon(): SeamIcon | undefined | null {\n return this._defaultIconUrl || this._defaultIconObj\n }\n set defaultIcon(value: SeamIcon | undefined | null) {\n if (typeof value === 'string') {\n this._defaultIconUrl = value\n this._defaultIconObj = undefined\n } else {\n this._defaultIconUrl = undefined\n this._defaultIconObj = value\n }\n\n if (!this._defaultIconUrl && !this._defaultIconObj) {\n this._iconUrl = this._iconUrlBeforeError\n this._iconObj = this._iconObjBeforeError\n }\n\n if (!this._iconUrl && !this._iconObj) {\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n public _defaultIconUrl: string | undefined | null\n public _defaultIconObj: IconProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null\n\n @HostBinding('attr.icon-type')\n get _iconTypeAttr() {\n return this.iconType\n }\n\n private _hasError = false\n\n public _imgError(event: ErrorEvent): void {\n this._hasError = true\n if (\n this._showDefaultOnError &&\n (this._defaultIconUrl || this._defaultIconObj)\n ) {\n this._iconUrlBeforeError = this._iconUrl\n this._iconObjBeforeError = this._iconObj\n this._iconUrl = this._defaultIconUrl\n this._iconObj = this._defaultIconObj\n }\n }\n\n @HostBinding('class.disabled')\n get _cssDisabled() {\n return this.disabled || null\n }\n\n @HostBinding('class.no-grayscale')\n get _cssNoGreyscale() {\n return !this.grayscaleOnDisable\n }\n}\n","<fa-icon\n *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\"\n>\n</fa-icon>\n\n<ng-container *ngIf=\"_iconUrl\">\n <!-- Partial fix for IE greyscale -->\n <ng-container *ngIf=\"needToFix\">\n <ng-container *ngIf=\"disabled && grayscaleOnDisable\">\n <span\n class=\"grayscale-fix\"\n style=\"display: inline-block; position: relative\"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n id=\"svgroot\"\n style=\"position: absolute; left: 0; right: 0\"\n viewBox=\"0 0 48 48\"\n width=\"100%\"\n height=\"100%\"\n >\n <defs>\n <filter id=\"gray\">\n <feColorMatrix\n type=\"matrix\"\n values=\"0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0.3333 0.3333 0.3333 0 0 0 0 0 1 0\"\n />\n </filter>\n </defs>\n <image\n filter='url(\"#gray\")'\n preserveAspectRatio=\"none meet\"\n x=\"0\"\n y=\"0\"\n width=\"48\"\n height=\"48\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\"\n />\n </svg>\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n style=\"display: block; visibility: hidden\"\n alt=\"Icon\"\n [src]=\"_iconUrl\"\n (error)=\"_imgError($event)\"\n />\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img\n class=\"seam-icon--img {{ iconClass }}\"\n [src]=\"_iconUrl\"\n alt=\"Icon\"\n (error)=\"_imgError($event)\"\n />\n </ng-container>\n</ng-container>\n\n<ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n","import { BooleanInput } from '@angular/cdk/coercion'\nimport {\n Component,\n DoCheck,\n ElementRef,\n HostBinding,\n Input,\n Renderer2,\n} from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\nimport type { ThemeTypes } from '@theseam/ui-common/models'\n\nimport type { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[seamIconBtn]',\n template: `\n <seam-icon\n *ngIf=\"icon\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\"\n >\n </seam-icon>\n <ng-content select=\".sr-only,seam-icon-notification\"></ng-content>\n `,\n styles: [],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n standalone: false,\n})\nexport class IconBtnComponent implements DoCheck {\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-btn yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n @HostBinding('class.p-0') _cssPadding0 = true\n\n @HostBinding('class.btn') _btn = true\n @HostBinding('class.text-nowrap') _textNoWrap = true\n\n @HostBinding('class.btn-default') get _btnDefault() {\n return this.isBtnTheme('default')\n }\n @HostBinding('class.btn-primary') get _btnPrimary() {\n return this.isBtnTheme('primary')\n }\n @HostBinding('class.btn-secondary') get _btnSecondary() {\n return this.isBtnTheme('secondary')\n }\n @HostBinding('class.btn-success') get _btnSuccess() {\n return this.isBtnTheme('success')\n }\n @HostBinding('class.btn-danger') get _btnDanger() {\n return this.isBtnTheme('danger')\n }\n @HostBinding('class.btn-warning') get _btnWarning() {\n return this.isBtnTheme('warning')\n }\n @HostBinding('class.btn-info') get _btnInfo() {\n return this.isBtnTheme('info')\n }\n @HostBinding('class.btn-light') get _btnLight() {\n return this.isBtnTheme('light')\n }\n @HostBinding('class.btn-dark') get _btnDark() {\n return this.isBtnTheme('dark')\n }\n @HostBinding('class.btn-lightgray') get _btnLightGray() {\n return this.isBtnTheme('lightgray')\n }\n\n @HostBinding('class.btn-sm') get _btnSizeSm() {\n return this.btnSize === 'sm'\n }\n @HostBinding('class.btn-lg') get _btnSizeLg() {\n return this.btnSize === 'lg'\n }\n\n @Input() btnTheme: ThemeTypes | undefined | null = 'default'\n @Input() badgeTheme: ThemeTypes | undefined | null = 'light'\n @Input() badgeText: string | undefined | null = ''\n\n @Input() btnSize: 'sm' | 'lg' | undefined | null\n\n @Input()\n get type(): string | undefined | null {\n return this._type\n }\n set type(value: string | undefined | null) {\n this._type = value\n }\n private _type: string | undefined | null\n\n @Input()\n get role(): string | undefined | null {\n return this._role\n }\n set role(value: string | undefined | null) {\n this._role = value\n }\n private _role: string | undefined | null\n\n constructor(\n private _elementRef: ElementRef<HTMLButtonElement | HTMLAnchorElement>,\n private _renderer: Renderer2,\n ) {}\n\n ngDoCheck() {\n if (this._isButton()) {\n this._renderer.setAttribute(\n this._elementRef.nativeElement,\n 'type',\n this._type || 'button',\n )\n } else if (this._isAnchor()) {\n this._renderer.setAttribute(\n this._elementRef.nativeElement,\n 'role',\n this._role || 'button',\n )\n }\n }\n\n public isBtnTheme(type: ThemeTypes): boolean {\n return this.btnTheme === type\n }\n\n protected _isButton() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n\n protected _isAnchor() {\n return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button'\n }\n}\n","import {\n animate,\n animation,\n keyframes,\n style,\n transition,\n trigger,\n useAnimation,\n} from '@angular/animations'\nimport { BooleanInput } from '@angular/cdk/coercion'\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n Input,\n OnInit,\n} from '@angular/core'\n\nimport { SizeProp } from '@fortawesome/fontawesome-svg-core'\nimport { faCircle } from '@fortawesome/free-solid-svg-icons'\n\nimport { InputBoolean } from '@theseam/ui-common/core'\n\nimport { SeamIcon } from '../icon'\nimport type { TheSeamIconType } from '../icon/icon.component'\n\nexport const pulseAnimation = animation([\n style({ transform: 'scale(1)' }),\n animate(\n '{{ timings }}',\n keyframes([\n style({ transform: 'scale(1)', offset: 0 }),\n style({ transform: 'scale({{ scale }})', offset: 0.5 }),\n style({ transform: 'scale(1)', offset: 1 }),\n ]),\n ),\n])\n\n@Component({\n selector: 'seam-icon-notification',\n template: `\n <seam-icon\n *ngIf=\"icon && !hidden\"\n [@counterChange]=\"count\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\"\n >\n </seam-icon>\n <ng-content select=\".sr-only\"></ng-content>\n `,\n styles: [\n `\n :host {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n bottom: 0;\n }\n\n seam-icon {\n position: absolute;\n top: 4px;\n right: 4px;\n width: 25% !important;\n height: 25% !important;\n min-width: 15px;\n min-height: 15px;\n }\n `,\n ],\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n animations: [\n trigger('counterChange', [\n transition(\n ':increment',\n useAnimation(pulseAnimation, {\n params: {\n timings: '400ms ease-in-out',\n scale: 1.2,\n },\n }),\n ),\n ]),\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class IconNotificationComponent implements OnInit {\n static ngAcceptInputType_hidden: BooleanInput\n static ngAcceptInputType_grayscaleOnDisable: BooleanInput\n static ngAcceptInputType_disabled: BooleanInput\n static ngAcceptInputType_showDefaultOnError: BooleanInput\n\n @Input() count: number | undefined | null\n\n @Input() @InputBoolean() hidden = false\n\n /** Toggles whether the img/icon will attempt to be grayscale when disabled is true. */\n @Input() @InputBoolean() grayscaleOnDisable = true\n\n /** Toggles the img/icon to grayscale if `grayscaleOnDisable` is true. */\n @Input() @InputBoolean() disabled = false\n\n /**\n * Placed on the `.seam-icon--fa` and `seam-icon--img` elements.\n */\n @Input() iconClass: string | undefined | null\n\n /**\n * The icon to display.\n *\n * If the input icon is a string an `img` element will be used with icon as `src`.\n * If the input is not a string it will be assumed to be a font-awesome IconProp object.\n */\n @Input() icon: SeamIcon | undefined | null = faCircle\n\n /**\n * Toggles whether an image that has thrown the `onerror` event should show\n * the `defaultIcon` instead.\n */\n @Input() @InputBoolean() showDefaultOnError = false\n\n /**\n * Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.\n *\n * NOTE: Not supported for icon-notification yet.\n */\n // @Input() defaultIcon: SeamIcon\n\n /**\n * NOTE: Only works for fa-icon for now.\n */\n @Input() size: SizeProp | undefined | null\n\n @Input() iconType: TheSeamIconType | undefined | null = 'image-fill'\n\n constructor(private _elementRef: ElementRef<HTMLElement>) {}\n\n ngOnInit() {\n if (\n this._elementRef &&\n this._elementRef.nativeElement &&\n this._elementRef.nativeElement.parentElement\n ) {\n this._elementRef.nativeElement.parentElement.style.position = 'relative'\n }\n }\n\n // ngDoCheck() {}\n}\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\n\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome'\n\nimport { IconBtnComponent } from './icon-btn/icon-btn.component'\nimport { IconNotificationComponent } from './icon-notification/icon-notification.component'\nimport { IconComponent } from './icon/icon.component'\n\n@NgModule({\n declarations: [IconComponent, IconBtnComponent, IconNotificationComponent],\n imports: [CommonModule, FontAwesomeModule],\n exports: [IconComponent, IconBtnComponent, IconNotificationComponent],\n})\nexport class TheSeamIconModule {}\n","import {\n faFile,\n faFileAlt,\n faFileArchive,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileWord,\n} from '@fortawesome/free-regular-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\nconst FILE_EXTENSION_ICONS: { [type: string]: SeamIcon } = {\n pdf: faFilePdf,\n doc: faFileWord,\n docx: faFileWord,\n xls: faFileExcel,\n xlsx: faFileExcel,\n gif: faFileImage,\n jpg: faFileImage,\n jpeg: faFileImage,\n png: faFileImage,\n zip: faFileArchive,\n ppt: faFilePowerpoint,\n pptx: faFilePowerpoint,\n txt: faFileAlt,\n json: faFileAlt,\n}\n\nexport const DEFAULT_FILE_EXTENSION_ICON: SeamIcon = faFile\n\nexport function fileExtensionIcon(\n extension: string | null | undefined,\n defaultIfNotFound: boolean = true,\n): SeamIcon | undefined {\n if (!extension) {\n return defaultIfNotFound ? DEFAULT_FILE_EXTENSION_ICON : undefined\n }\n\n let ext = extension\n if (ext.charAt(0) === '.') {\n ext = ext.substr(1)\n }\n\n const icon = FILE_EXTENSION_ICONS[ext]\n if (!icon && defaultIfNotFound) {\n return DEFAULT_FILE_EXTENSION_ICON\n }\n return icon\n}\n","import {\n faAddressCard,\n faBell,\n faBookmark,\n faCheckCircle,\n faClock,\n faComment,\n faEnvelope,\n faEnvelopeOpen,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileExcel,\n faFileImage,\n faFilePdf,\n faFilePowerpoint,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faQuestionCircle,\n faSave,\n faStickyNote,\n faTimesCircle,\n faTrashAlt,\n faUser,\n faUserCircle,\n} from '@fortawesome/free-regular-svg-icons'\nimport {\n faBan,\n faChartArea,\n faChartBar,\n faChartLine,\n faCheck,\n faCloudUploadAlt,\n faCog,\n faEdit,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExport,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faReceipt,\n faReply,\n faShare,\n faSignature,\n faTimes,\n faTrash,\n faUserCheck,\n faUserEdit,\n faUserPlus,\n faUsers,\n faUserTimes,\n} from '@fortawesome/free-solid-svg-icons'\n\nimport { SeamIcon } from '../icon'\n\n// TODO: Decide a good way to do this, so that we don't have to import full icon\n// libraries, but still provide icon choices to use from a string. One way could\n// be to define a dictionary of app icons that we can use that map a unique\n// string to an icon definition.\nconst knownIcons: { [key: string]: SeamIcon } = {\n faAddressCard,\n faBan,\n faBell,\n faBookmark,\n faChartLine,\n faChartArea,\n faChartBar,\n faCheck,\n faCheckCircle,\n faClock,\n faCloudUploadAlt,\n faComment,\n faCog,\n faEdit,\n faEnvelope,\n faEnvelopeOpen,\n faExclamation,\n faExclamationCircle,\n faExclamationTriangle,\n faExternalLinkSquareAlt,\n faFile,\n faFileAlt,\n faFileArchive,\n faFileAudio,\n faFileCode,\n faFileContract,\n faFileCsv,\n faFileDownload,\n faFileExcel,\n faFileExport,\n faFileImage,\n faFileImport,\n faFileInvoice,\n faFileInvoiceDollar,\n faFileMedical,\n faFileMedicalAlt,\n faFilePdf,\n faFilePowerpoint,\n faFilePrescription,\n faFileSignature,\n faFileUpload,\n faFileVideo,\n faFileWord,\n faFolder,\n faFolderOpen,\n faImage,\n faImages,\n faInbox,\n faInfoCircle,\n faLock,\n faLockOpen,\n faPrint,\n faQuestionCircle,\n faReceipt,\n faReply,\n faSave,\n faShare,\n faSignature,\n faStickyNote,\n faTimes,\n faTimesCircle,\n faTrash,\n faTrashAlt,\n faUser,\n faUserCheck,\n faUserCircle,\n faUserEdit,\n faUserTimes,\n faUsers,\n faUserPlus,\n}\n\nexport function getKnownIcon(iconStr: string): SeamIcon | undefined {\n return knownIcons[iconStr]\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.IconComponent"],"mappings":"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"}
@@ -17,11 +17,11 @@ import { map, startWith, distinctUntilChanged, shareReplay, switchMap } from 'rx
17
17
  // doesn't add to much complexity.
18
18
 
19
19
  class TheSeamLayoutModule {
20
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule, FlexLayoutModule], exports: [FlexLayoutModule] });
22
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule, FlexLayoutModule, FlexLayoutModule] });
20
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule, FlexLayoutModule], exports: [FlexLayoutModule] });
22
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutModule, imports: [CommonModule, FlexLayoutModule, FlexLayoutModule] });
23
23
  }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutModule, decorators: [{
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutModule, decorators: [{
25
25
  type: NgModule,
26
26
  args: [{
27
27
  declarations: [],
@@ -92,10 +92,10 @@ class TheSeamLayoutService {
92
92
  setMobileBreakpoint(alias) {
93
93
  this._mobileBreakpoint.next(alias);
94
94
  }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutService, deps: [{ token: i1.MediaObserver }], target: i0.ɵɵFactoryTarget.Injectable });
96
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutService, providedIn: 'root' });
95
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutService, deps: [{ token: i1.MediaObserver }], target: i0.ɵɵFactoryTarget.Injectable });
96
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutService, providedIn: 'root' });
97
97
  }
98
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLayoutService, decorators: [{
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLayoutService, decorators: [{
99
99
  type: Injectable,
100
100
  args: [{
101
101
  providedIn: 'root',
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-layout.mjs","sources":["../../../projects/ui-common/layout/breakpoint-aliases.ts","../../../projects/ui-common/layout/layout.module.ts","../../../projects/ui-common/layout/observe-media-query.ts","../../../projects/ui-common/layout/layout.service.ts","../../../projects/ui-common/layout/theseam-ui-common-layout.ts"],"sourcesContent":["// TODO: Make sure the `@angular/flex-layout` breakpoints and bootstrap\n// breakpoints work the same.\n//\n// I like the more spread-out ranges in '@angular/flex-layout', but since our\n// styles are mostly based on bootstrap it may be worth it to drop down closer\n// to the bootstrap breakpoints.\n//\n// Another option is to create new aliases to blend a mix between them, if it\n// doesn't add to much complexity.\n\n/**\n * | breakpoint | mediaQuery |\n * |------------|---------------------------------------------------------|\n * | xs | 'screen and (max-width: 599px)' |\n * | sm | 'screen and (min-width: 600px) and (max-width: 959px)' |\n * | md | 'screen and (min-width: 960px) and (max-width: 1279px)' |\n * | lg | 'screen and (min-width: 1280px) and (max-width: 1919px)'|\n * | xl | 'screen and (min-width: 1920px) and (max-width: 5000px)'|\n * | | |\n * | lt-sm | 'screen and (max-width: 599px)' |\n * | lt-md | 'screen and (max-width: 959px)' |\n * | lt-lg | 'screen and (max-width: 1279px)' |\n * | lt-xl | 'screen and (max-width: 1919px)' |\n * | | |\n * | gt-xs | 'screen and (min-width: 600px)' |\n * | gt-sm | 'screen and (min-width: 960px)' |\n * | gt-md | 'screen and (min-width: 1280px)' |\n * | gt-lg | 'screen and (min-width: 1920px)' |\n */\nexport type MediaQueryAliases =\n // Breakpoint MediaQuery\n | 'xs' // 'screen and (max-width: 599px)'\n | 'sm' // 'screen and (min-width: 600px) and (max-width: 959px)'\n | 'md' // 'screen and (min-width: 960px) and (max-width: 1279px)'\n | 'lg' // 'screen and (min-width: 1280px) and (max-width: 1919px)'\n | 'xl' // 'screen and (min-width: 1920px) and (max-width: 5000px)'\n | 'lt-sm' // 'screen and (max-width: 599px)'\n | 'lt-md' // 'screen and (max-width: 959px)'\n | 'lt-lg' // 'screen and (max-width: 1279px)'\n | 'lt-xl' // 'screen and (max-width: 1919px)'\n | 'gt-xs' // 'screen and (min-width: 600px)'\n | 'gt-sm' // 'screen and (min-width: 960px)'\n | 'gt-md' // 'screen and (min-width: 1280px)'\n | 'gt-lg' // 'screen and (min-width: 1920px)'\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, FlexLayoutModule],\n exports: [FlexLayoutModule],\n})\nexport class TheSeamLayoutModule {}\n","import { MediaObserver } from '@angular/flex-layout'\nimport { Observable } from 'rxjs'\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n startWith,\n tap,\n} from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\n\nconst mediaQueriesMap: { [breakpoint: string]: string } = {\n xs: 'screen and (max-width: 599px)',\n sm: 'screen and (min-width: 600px) and (max-width: 959px)',\n md: 'screen and (min-width: 960px) and (max-width: 1279px)',\n lg: 'screen and (min-width: 1280px) and (max-width: 1919px)',\n xl: 'screen and (min-width: 1920px) and (max-width: 5000px)',\n 'lt-sm': 'screen and (max-width: 599px)',\n 'lt-md': 'screen and (max-width: 959px)',\n 'lt-lg': 'screen and (max-width: 1279px)',\n 'lt-xl': 'screen and (max-width: 1919px)',\n 'gt-xs': 'screen and (min-width: 600px)',\n 'gt-sm': 'screen and (min-width: 960px)',\n 'gt-md': 'screen and (min-width: 1280px)',\n 'gt-lg': 'screen and (min-width: 1920px)',\n}\n\n/**\n * TODO: Find out if the MediaObserver can return an immediate result on load\n * accurately like the native matchMedia. If not switch to another that can or\n * just implement it myself. I would rather use a well tested library for\n * something like that, since it could have a lot of affect on performance.\n */\nfunction isMediaQueryActive(query: string, fallback: MediaObserver) {\n if (window && window.matchMedia) {\n const x = window.matchMedia(mediaQueriesMap[query])\n return x.matches\n }\n return fallback.isActive(query)\n}\n\n/**\n * Observable helper for observing a single breakpoint alias with\n * `@angular/flex-layout` MediaObserver.\n */\nexport function observeMediaQuery(\n mediaObserver: MediaObserver,\n alias: MediaQueryAliases,\n): Observable<boolean> {\n // console.log(alias, mediaObserver.isActive(alias), isMediaQueryActive(alias, mediaObserver))\n return mediaObserver.asObservable().pipe(\n map((_) => mediaObserver.isActive(alias)),\n // startWith(mediaObserver.isActive(alias)),\n startWith(isMediaQueryActive(alias, mediaObserver)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n )\n}\n","import { Injectable } from '@angular/core'\nimport { MediaObserver } from '@angular/flex-layout'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { shareReplay, switchMap } from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\nimport { observeMediaQuery } from './observe-media-query'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TheSeamLayoutService {\n /**\n * Observes if app is a mobile-like size.\n * Default mobile breakpoint is <= 599px,\n * use setMobileBreakpoint() to change size.\n */\n public isMobile$: Observable<boolean>\n\n private _mobileBreakpoint = new BehaviorSubject<MediaQueryAliases>('lt-sm')\n public mobileBreakpoint$ = this._mobileBreakpoint.asObservable()\n\n constructor(private _media: MediaObserver) {\n this.isMobile$ = this.mobileBreakpoint$.pipe(\n switchMap((breakpoint) => this.observe(breakpoint)),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n }\n\n public observe(alias: MediaQueryAliases): Observable<boolean> {\n return observeMediaQuery(this._media, alias)\n }\n\n /**\n * Update breakpoint observed by isMobile$\n */\n public setMobileBreakpoint(alias: MediaQueryAliases) {\n this._mobileBreakpoint.next(alias)\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-layout.mjs","sources":["../../../projects/ui-common/layout/breakpoint-aliases.ts","../../../projects/ui-common/layout/layout.module.ts","../../../projects/ui-common/layout/observe-media-query.ts","../../../projects/ui-common/layout/layout.service.ts","../../../projects/ui-common/layout/theseam-ui-common-layout.ts"],"sourcesContent":["// TODO: Make sure the `@angular/flex-layout` breakpoints and bootstrap\n// breakpoints work the same.\n//\n// I like the more spread-out ranges in '@angular/flex-layout', but since our\n// styles are mostly based on bootstrap it may be worth it to drop down closer\n// to the bootstrap breakpoints.\n//\n// Another option is to create new aliases to blend a mix between them, if it\n// doesn't add to much complexity.\n\n/**\n * | breakpoint | mediaQuery |\n * |------------|---------------------------------------------------------|\n * | xs | 'screen and (max-width: 599px)' |\n * | sm | 'screen and (min-width: 600px) and (max-width: 959px)' |\n * | md | 'screen and (min-width: 960px) and (max-width: 1279px)' |\n * | lg | 'screen and (min-width: 1280px) and (max-width: 1919px)'|\n * | xl | 'screen and (min-width: 1920px) and (max-width: 5000px)'|\n * | | |\n * | lt-sm | 'screen and (max-width: 599px)' |\n * | lt-md | 'screen and (max-width: 959px)' |\n * | lt-lg | 'screen and (max-width: 1279px)' |\n * | lt-xl | 'screen and (max-width: 1919px)' |\n * | | |\n * | gt-xs | 'screen and (min-width: 600px)' |\n * | gt-sm | 'screen and (min-width: 960px)' |\n * | gt-md | 'screen and (min-width: 1280px)' |\n * | gt-lg | 'screen and (min-width: 1920px)' |\n */\nexport type MediaQueryAliases =\n // Breakpoint MediaQuery\n | 'xs' // 'screen and (max-width: 599px)'\n | 'sm' // 'screen and (min-width: 600px) and (max-width: 959px)'\n | 'md' // 'screen and (min-width: 960px) and (max-width: 1279px)'\n | 'lg' // 'screen and (min-width: 1280px) and (max-width: 1919px)'\n | 'xl' // 'screen and (min-width: 1920px) and (max-width: 5000px)'\n | 'lt-sm' // 'screen and (max-width: 599px)'\n | 'lt-md' // 'screen and (max-width: 959px)'\n | 'lt-lg' // 'screen and (max-width: 1279px)'\n | 'lt-xl' // 'screen and (max-width: 1919px)'\n | 'gt-xs' // 'screen and (min-width: 600px)'\n | 'gt-sm' // 'screen and (min-width: 960px)'\n | 'gt-md' // 'screen and (min-width: 1280px)'\n | 'gt-lg' // 'screen and (min-width: 1920px)'\n","import { CommonModule } from '@angular/common'\nimport { NgModule } from '@angular/core'\nimport { FlexLayoutModule } from '@angular/flex-layout'\n\n@NgModule({\n declarations: [],\n imports: [CommonModule, FlexLayoutModule],\n exports: [FlexLayoutModule],\n})\nexport class TheSeamLayoutModule {}\n","import { MediaObserver } from '@angular/flex-layout'\nimport { Observable } from 'rxjs'\nimport {\n distinctUntilChanged,\n map,\n shareReplay,\n startWith,\n tap,\n} from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\n\nconst mediaQueriesMap: { [breakpoint: string]: string } = {\n xs: 'screen and (max-width: 599px)',\n sm: 'screen and (min-width: 600px) and (max-width: 959px)',\n md: 'screen and (min-width: 960px) and (max-width: 1279px)',\n lg: 'screen and (min-width: 1280px) and (max-width: 1919px)',\n xl: 'screen and (min-width: 1920px) and (max-width: 5000px)',\n 'lt-sm': 'screen and (max-width: 599px)',\n 'lt-md': 'screen and (max-width: 959px)',\n 'lt-lg': 'screen and (max-width: 1279px)',\n 'lt-xl': 'screen and (max-width: 1919px)',\n 'gt-xs': 'screen and (min-width: 600px)',\n 'gt-sm': 'screen and (min-width: 960px)',\n 'gt-md': 'screen and (min-width: 1280px)',\n 'gt-lg': 'screen and (min-width: 1920px)',\n}\n\n/**\n * TODO: Find out if the MediaObserver can return an immediate result on load\n * accurately like the native matchMedia. If not switch to another that can or\n * just implement it myself. I would rather use a well tested library for\n * something like that, since it could have a lot of affect on performance.\n */\nfunction isMediaQueryActive(query: string, fallback: MediaObserver) {\n if (window && window.matchMedia) {\n const x = window.matchMedia(mediaQueriesMap[query])\n return x.matches\n }\n return fallback.isActive(query)\n}\n\n/**\n * Observable helper for observing a single breakpoint alias with\n * `@angular/flex-layout` MediaObserver.\n */\nexport function observeMediaQuery(\n mediaObserver: MediaObserver,\n alias: MediaQueryAliases,\n): Observable<boolean> {\n // console.log(alias, mediaObserver.isActive(alias), isMediaQueryActive(alias, mediaObserver))\n return mediaObserver.asObservable().pipe(\n map((_) => mediaObserver.isActive(alias)),\n // startWith(mediaObserver.isActive(alias)),\n startWith(isMediaQueryActive(alias, mediaObserver)),\n distinctUntilChanged(),\n shareReplay({ refCount: true, bufferSize: 1 }),\n )\n}\n","import { Injectable } from '@angular/core'\nimport { MediaObserver } from '@angular/flex-layout'\nimport { BehaviorSubject, Observable } from 'rxjs'\nimport { shareReplay, switchMap } from 'rxjs/operators'\n\nimport { MediaQueryAliases } from './breakpoint-aliases'\nimport { observeMediaQuery } from './observe-media-query'\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TheSeamLayoutService {\n /**\n * Observes if app is a mobile-like size.\n * Default mobile breakpoint is <= 599px,\n * use setMobileBreakpoint() to change size.\n */\n public isMobile$: Observable<boolean>\n\n private _mobileBreakpoint = new BehaviorSubject<MediaQueryAliases>('lt-sm')\n public mobileBreakpoint$ = this._mobileBreakpoint.asObservable()\n\n constructor(private _media: MediaObserver) {\n this.isMobile$ = this.mobileBreakpoint$.pipe(\n switchMap((breakpoint) => this.observe(breakpoint)),\n shareReplay({ bufferSize: 1, refCount: true }),\n )\n }\n\n public observe(alias: MediaQueryAliases): Observable<boolean> {\n return observeMediaQuery(this._media, alias)\n }\n\n /**\n * Update breakpoint observed by isMobile$\n */\n public setMobileBreakpoint(alias: MediaQueryAliases) {\n this._mobileBreakpoint.next(alias)\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -34,10 +34,10 @@ class TheSeamLoadingComponent {
34
34
  }
35
35
  }
36
36
  _theme = defaultThemeConfig;
37
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.7", type: TheSeamLoadingComponent, isStandalone: true, selector: "seam-loading", inputs: { theme: "theme" }, ngImport: i0, template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"], dependencies: [{ kind: "ngmodule", type: NgxLoadingModule }, { kind: "component", type: i1.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] });
37
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
38
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: TheSeamLoadingComponent, isStandalone: true, selector: "seam-loading", inputs: { theme: "theme" }, ngImport: i0, template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"], dependencies: [{ kind: "ngmodule", type: NgxLoadingModule }, { kind: "component", type: i1.NgxLoadingComponent, selector: "ngx-loading", inputs: ["show", "config", "template"] }] });
39
39
  }
40
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingComponent, decorators: [{
40
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingComponent, decorators: [{
41
41
  type: Component,
42
42
  args: [{ selector: 'seam-loading', imports: [NgxLoadingModule], template: "<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n", styles: [":host{display:block;position:absolute;inset:0;z-index:9000}\n"] }]
43
43
  }], propDecorators: { theme: [{
@@ -45,11 +45,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImpor
45
45
  }] } });
46
46
 
47
47
  class TheSeamLoadingModule {
48
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
49
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingModule, imports: [TheSeamLoadingComponent], exports: [OverlayModule, PortalModule, TheSeamLoadingComponent] });
50
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingModule, imports: [TheSeamLoadingComponent, OverlayModule, PortalModule] });
48
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
49
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingModule, imports: [TheSeamLoadingComponent], exports: [OverlayModule, PortalModule, TheSeamLoadingComponent] });
50
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingModule, imports: [TheSeamLoadingComponent, OverlayModule, PortalModule] });
51
51
  }
52
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingModule, decorators: [{
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingModule, decorators: [{
53
53
  type: NgModule,
54
54
  args: [{
55
55
  imports: [TheSeamLoadingComponent],
@@ -99,10 +99,10 @@ class TheSeamLoadingOverlayService {
99
99
  return throwError(err);
100
100
  }), finalize(() => this.disable()));
101
101
  }
102
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
103
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingOverlayService, providedIn: 'root' });
102
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingOverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
103
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingOverlayService, providedIn: 'root' });
104
104
  }
105
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.7", ngImport: i0, type: TheSeamLoadingOverlayService, decorators: [{
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: TheSeamLoadingOverlayService, decorators: [{
106
106
  type: Injectable,
107
107
  args: [{ providedIn: 'root' }]
108
108
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"theseam-ui-common-loading.mjs","sources":["../../../projects/ui-common/loading/loading-themes.ts","../../../projects/ui-common/loading/loading/loading.component.ts","../../../projects/ui-common/loading/loading/loading.component.html","../../../projects/ui-common/loading/loading.module.ts","../../../projects/ui-common/loading/loading-overlay.service.ts","../../../projects/ui-common/loading/provide-loading.ts","../../../projects/ui-common/loading/theseam-ui-common-loading.ts"],"sourcesContent":["import { ngxLoadingAnimationTypes, NgxLoadingConfig } from 'ngx-loading'\n\nexport const defaultThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(0,0,0,0.3)',\n backdropBorderRadius: '0px',\n primaryColour: '#ffffff',\n secondaryColour: '#ffffff',\n tertiaryColour: '#ffffff',\n}\n\nexport const primaryThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(250,250,250,0.2)',\n backdropBorderRadius: '0px',\n primaryColour: 'rgba(53,126,189,0.7)',\n secondaryColour: 'rgba(53,126,189,0.7)',\n tertiaryColour: 'rgba(53,126,189,0.7)',\n}\n","import { Component, Input } from '@angular/core'\n\nimport { NgxLoadingConfig, NgxLoadingModule } from 'ngx-loading'\n\nimport { defaultThemeConfig, primaryThemeConfig } from '../loading-themes'\nimport { TheSeamLoadingTheme } from '../loading.models'\n\n@Component({\n selector: 'seam-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n imports: [NgxLoadingModule],\n})\nexport class TheSeamLoadingComponent {\n @Input()\n set theme(value: TheSeamLoadingTheme) {\n if (value === 'primary') {\n this._theme = primaryThemeConfig\n } else {\n this._theme = defaultThemeConfig\n }\n }\n _theme: NgxLoadingConfig = defaultThemeConfig\n}\n","<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@NgModule({\n imports: [TheSeamLoadingComponent],\n exports: [OverlayModule, PortalModule, TheSeamLoadingComponent],\n})\nexport class TheSeamLoadingModule {}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport { inject, Injectable } from '@angular/core'\nimport { Observable, throwError } from 'rxjs'\nimport { catchError, finalize, tap } from 'rxjs/operators'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@Injectable({ providedIn: 'root' })\nexport class TheSeamLoadingOverlayService {\n private readonly _overlay = inject(Overlay)\n\n private _enabled = false\n\n private _overlayRef?: OverlayRef\n\n get enabled(): boolean {\n return this._enabled\n }\n\n public toggle(enabled?: boolean) {\n const enable = enabled === undefined ? !this.enabled : enabled\n if (enable && !this.enabled) {\n this.enable()\n } else if (!enable && this.enabled) {\n this.disable()\n }\n }\n\n public enable() {\n if (this.enabled) {\n return\n }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n width: '100%',\n height: '100%',\n })\n this._overlayRef.attach(new ComponentPortal(TheSeamLoadingComponent))\n\n this._enabled = true\n }\n\n public disable() {\n if (!this.enabled) {\n return\n }\n\n this._overlayRef?.dispose()\n\n this._enabled = false\n }\n\n public while<T = any>(source: Observable<T>): Observable<T> {\n this.enable()\n return source.pipe(\n tap(() => this.disable()),\n catchError((err) => {\n this.disable()\n return throwError(err)\n }),\n finalize(() => this.disable()),\n )\n }\n}\n","import {\n EnvironmentProviders,\n importProvidersFrom,\n makeEnvironmentProviders,\n} from '@angular/core'\n\nimport { INgxLoadingConfig, NgxLoadingModule } from 'ngx-loading'\n\nimport { defaultThemeConfig } from './loading-themes'\n\nexport function provideTheSeamLoading(\n loadingConfig: INgxLoadingConfig = defaultThemeConfig,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n importProvidersFrom(NgxLoadingModule.forRoot(loadingConfig)),\n ])\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"theseam-ui-common-loading.mjs","sources":["../../../projects/ui-common/loading/loading-themes.ts","../../../projects/ui-common/loading/loading/loading.component.ts","../../../projects/ui-common/loading/loading/loading.component.html","../../../projects/ui-common/loading/loading.module.ts","../../../projects/ui-common/loading/loading-overlay.service.ts","../../../projects/ui-common/loading/provide-loading.ts","../../../projects/ui-common/loading/theseam-ui-common-loading.ts"],"sourcesContent":["import { ngxLoadingAnimationTypes, NgxLoadingConfig } from 'ngx-loading'\n\nexport const defaultThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(0,0,0,0.3)',\n backdropBorderRadius: '0px',\n primaryColour: '#ffffff',\n secondaryColour: '#ffffff',\n tertiaryColour: '#ffffff',\n}\n\nexport const primaryThemeConfig: NgxLoadingConfig = {\n animationType: ngxLoadingAnimationTypes.threeBounce,\n backdropBackgroundColour: 'rgba(250,250,250,0.2)',\n backdropBorderRadius: '0px',\n primaryColour: 'rgba(53,126,189,0.7)',\n secondaryColour: 'rgba(53,126,189,0.7)',\n tertiaryColour: 'rgba(53,126,189,0.7)',\n}\n","import { Component, Input } from '@angular/core'\n\nimport { NgxLoadingConfig, NgxLoadingModule } from 'ngx-loading'\n\nimport { defaultThemeConfig, primaryThemeConfig } from '../loading-themes'\nimport { TheSeamLoadingTheme } from '../loading.models'\n\n@Component({\n selector: 'seam-loading',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n imports: [NgxLoadingModule],\n})\nexport class TheSeamLoadingComponent {\n @Input()\n set theme(value: TheSeamLoadingTheme) {\n if (value === 'primary') {\n this._theme = primaryThemeConfig\n } else {\n this._theme = defaultThemeConfig\n }\n }\n _theme: NgxLoadingConfig = defaultThemeConfig\n}\n","<ngx-loading [show]=\"true\" [config]=\"_theme\"></ngx-loading>\n","import { OverlayModule } from '@angular/cdk/overlay'\nimport { PortalModule } from '@angular/cdk/portal'\nimport { NgModule } from '@angular/core'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@NgModule({\n imports: [TheSeamLoadingComponent],\n exports: [OverlayModule, PortalModule, TheSeamLoadingComponent],\n})\nexport class TheSeamLoadingModule {}\n","import { Overlay, OverlayRef } from '@angular/cdk/overlay'\nimport { ComponentPortal } from '@angular/cdk/portal'\nimport { inject, Injectable } from '@angular/core'\nimport { Observable, throwError } from 'rxjs'\nimport { catchError, finalize, tap } from 'rxjs/operators'\n\nimport { TheSeamLoadingComponent } from './loading/loading.component'\n\n@Injectable({ providedIn: 'root' })\nexport class TheSeamLoadingOverlayService {\n private readonly _overlay = inject(Overlay)\n\n private _enabled = false\n\n private _overlayRef?: OverlayRef\n\n get enabled(): boolean {\n return this._enabled\n }\n\n public toggle(enabled?: boolean) {\n const enable = enabled === undefined ? !this.enabled : enabled\n if (enable && !this.enabled) {\n this.enable()\n } else if (!enable && this.enabled) {\n this.disable()\n }\n }\n\n public enable() {\n if (this.enabled) {\n return\n }\n\n this._overlayRef = this._overlay.create({\n hasBackdrop: false,\n width: '100%',\n height: '100%',\n })\n this._overlayRef.attach(new ComponentPortal(TheSeamLoadingComponent))\n\n this._enabled = true\n }\n\n public disable() {\n if (!this.enabled) {\n return\n }\n\n this._overlayRef?.dispose()\n\n this._enabled = false\n }\n\n public while<T = any>(source: Observable<T>): Observable<T> {\n this.enable()\n return source.pipe(\n tap(() => this.disable()),\n catchError((err) => {\n this.disable()\n return throwError(err)\n }),\n finalize(() => this.disable()),\n )\n }\n}\n","import {\n EnvironmentProviders,\n importProvidersFrom,\n makeEnvironmentProviders,\n} from '@angular/core'\n\nimport { INgxLoadingConfig, NgxLoadingModule } from 'ngx-loading'\n\nimport { defaultThemeConfig } from './loading-themes'\n\nexport function provideTheSeamLoading(\n loadingConfig: INgxLoadingConfig = defaultThemeConfig,\n): EnvironmentProviders {\n return makeEnvironmentProviders([\n importProvidersFrom(NgxLoadingModule.forRoot(loadingConfig)),\n ])\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}