@theseam/ui-common 1.0.0-beta.6 → 1.0.0-beta.8
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.
- package/breadcrumbs/index.d.ts +1 -2
- package/buttons/index.d.ts +20 -13
- package/datatable/index.d.ts +8 -8
- package/dynamic/index.d.ts +5 -5
- package/fesm2022/theseam-ui-common-asset-reader.mjs +28 -29
- package/fesm2022/theseam-ui-common-asset-reader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs +25 -31
- package/fesm2022/theseam-ui-common-breadcrumbs.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-buttons.mjs +108 -66
- package/fesm2022/theseam-ui-common-buttons.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-card.mjs +21 -21
- package/fesm2022/theseam-ui-common-card.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-carousel.mjs +28 -30
- package/fesm2022/theseam-ui-common-carousel.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-checkbox.mjs +27 -27
- package/fesm2022/theseam-ui-common-checkbox.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs +23 -27
- package/fesm2022/theseam-ui-common-confirm-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-core.mjs +31 -11
- package/fesm2022/theseam-ui-common-core.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-exporter.mjs +18 -19
- package/fesm2022/theseam-ui-common-data-exporter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-data-filters.mjs +80 -64
- package/fesm2022/theseam-ui-common-data-filters.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs +51 -49
- package/fesm2022/theseam-ui-common-datatable-alterations-display.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs +145 -112
- package/fesm2022/theseam-ui-common-datatable-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-datatable.mjs +592 -388
- package/fesm2022/theseam-ui-common-datatable.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs +12 -14
- package/fesm2022/theseam-ui-common-dynamic-component-loader.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-dynamic.mjs +60 -48
- package/fesm2022/theseam-ui-common-dynamic.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-footer-bar.mjs +9 -15
- package/fesm2022/theseam-ui-common-footer-bar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field-error.mjs +60 -43
- package/fesm2022/theseam-ui-common-form-field-error.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-form-field.mjs +120 -74
- package/fesm2022/theseam-ui-common-form-field.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-framework.mjs +669 -543
- package/fesm2022/theseam-ui-common-framework.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-google-maps.mjs +206 -149
- package/fesm2022/theseam-ui-common-google-maps.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-graphql.mjs +252 -195
- package/fesm2022/theseam-ui-common-graphql.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-icon.mjs +125 -89
- package/fesm2022/theseam-ui-common-icon.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-layout.mjs +18 -26
- package/fesm2022/theseam-ui-common-layout.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-loading.mjs +19 -28
- package/fesm2022/theseam-ui-common-loading.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-menu.mjs +124 -95
- package/fesm2022/theseam-ui-common-menu.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-modal.mjs +177 -129
- package/fesm2022/theseam-ui-common-modal.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-models.mjs +3 -3
- package/fesm2022/theseam-ui-common-models.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-navigation-reload.mjs +13 -11
- package/fesm2022/theseam-ui-common-navigation-reload.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-popover.mjs +81 -88
- package/fesm2022/theseam-ui-common-popover.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-progress.mjs +15 -19
- package/fesm2022/theseam-ui-common-progress.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-rich-text.mjs +65 -52
- package/fesm2022/theseam-ui-common-rich-text.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-scrollbar.mjs +12 -9
- package/fesm2022/theseam-ui-common-scrollbar.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-services.mjs +41 -26
- package/fesm2022/theseam-ui-common-services.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-shared.mjs +123 -67
- package/fesm2022/theseam-ui-common-shared.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-storage.mjs +9 -6
- package/fesm2022/theseam-ui-common-storage.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-story-helpers.mjs +148 -86
- package/fesm2022/theseam-ui-common-story-helpers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tabbed.mjs +43 -39
- package/fesm2022/theseam-ui-common-tabbed.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-type.mjs +34 -38
- package/fesm2022/theseam-ui-common-table-cell-type.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table-cell-types.mjs +182 -144
- package/fesm2022/theseam-ui-common-table-cell-types.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-table.mjs +50 -39
- package/fesm2022/theseam-ui-common-table.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tel-input.mjs +98 -63
- package/fesm2022/theseam-ui-common-tel-input.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-testing.mjs +13 -10
- package/fesm2022/theseam-ui-common-testing.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tiled-select.mjs +54 -50
- package/fesm2022/theseam-ui-common-tiled-select.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-edit.mjs +41 -37
- package/fesm2022/theseam-ui-common-toggle-edit.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-toggle-group.mjs +30 -31
- package/fesm2022/theseam-ui-common-toggle-group.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-tooltip.mjs +225 -66
- package/fesm2022/theseam-ui-common-tooltip.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs +14 -12
- package/fesm2022/theseam-ui-common-unsaved-changes-dialog.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-utils.mjs +113 -77
- package/fesm2022/theseam-ui-common-utils.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-validators.mjs +10 -9
- package/fesm2022/theseam-ui-common-validators.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs +39 -17
- package/fesm2022/theseam-ui-common-vertical-list-filter.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-viewers.mjs +79 -56
- package/fesm2022/theseam-ui-common-viewers.mjs.map +1 -1
- package/fesm2022/theseam-ui-common-widget.mjs +288 -314
- package/fesm2022/theseam-ui-common-widget.mjs.map +1 -1
- package/framework/base-layout/base-layout.component.scss +9 -4
- package/framework/base-layout/styles/_variables.scss +4 -9
- package/framework/dashboard/dashboard-widgets/dashboard-widgets.component.scss +6 -4
- package/framework/index.d.ts +6 -6
- package/framework/nav/nav-item/nav-item.component.scss +7 -6
- package/framework/nav/styles/_themes/light/_variables.scss +21 -5
- package/framework/nav/styles/_themes/primary/_variables.scss +21 -5
- package/framework/side-nav/side-nav-item/side-nav-item.component.scss +5 -2
- package/framework/side-nav/styles/_themes/light/_variables.scss +5 -1
- package/framework/side-nav/styles/_themes/primary/_variables.scss +25 -5
- package/graphql/index.d.ts +5 -5
- package/modal/README.md +5 -5
- package/modal/index.d.ts +1 -1
- package/models/index.d.ts +1 -1
- package/package.json +41 -41
- package/popover/index.d.ts +0 -2
- package/progress/progress-circle/styles/_variables.scss +15 -3
- package/story-helpers/index.d.ts +11 -1
- package/styles/bootstrap/_bootstrap.scss +34 -34
- package/styles/bootstrap/_bs-styles.scss +4 -8
- package/styles/bootstrap/_bs-utilities.scss +4 -4
- package/styles/bootstrap/_bs-variables.scss +65 -70
- package/styles/common/_forms.scss +9 -10
- package/styles/common/_global.scss +0 -1
- package/styles/common/_hacks.scss +1 -1
- package/styles/common/_table.scss +0 -1
- package/styles/common/_text.scss +3 -1
- package/styles/theme.scss +1 -1
- package/styles/vendor/ng-select/_ng-select-bs4.scss +292 -294
- package/styles/vendor/ngx-datatable/_ngx-datatable.scss +63 -32
- package/styles/vendor/ngx-datatable/_themes/bootstrap/_variables.scss +37 -10
- package/styles/vendor/ngx-datatable/_themes/material/_variables.scss +3 -1
- package/styles/vendor/quill/_quill.scss +15 -9
- package/tel-input/README.md +27 -27
- package/utils/index.d.ts +3 -3
- package/viewers/index.d.ts +9 -2
- package/widget/_widget-theme.scss +1 -1
- package/widget/styles/_variables.scss +2 -2
- package/widget/widget/widget.component.scss +0 -2
- package/widget/widget-content-components/widget-tile/widget-tile.component.scss +1 -3
- package/widget/widget-footer/widget-footer.component.scss +0 -1
|
@@ -36,7 +36,9 @@ class IconComponent {
|
|
|
36
36
|
* If the input icon is a string an `img` element will be used with icon as `src`.
|
|
37
37
|
* If the input is not a string it will be assumed to be a font-awesome IconProp object.
|
|
38
38
|
*/
|
|
39
|
-
get icon() {
|
|
39
|
+
get icon() {
|
|
40
|
+
return this._iconUrl || this._iconObj;
|
|
41
|
+
}
|
|
40
42
|
set icon(value) {
|
|
41
43
|
if (typeof value === 'string') {
|
|
42
44
|
this._iconUrl = value;
|
|
@@ -65,7 +67,9 @@ class IconComponent {
|
|
|
65
67
|
* Toggles whether an image that has thrown the `onerror` event should show
|
|
66
68
|
* the `defaultIcon` instead.
|
|
67
69
|
*/
|
|
68
|
-
get showDefaultOnError() {
|
|
70
|
+
get showDefaultOnError() {
|
|
71
|
+
return this._showDefaultOnError;
|
|
72
|
+
}
|
|
69
73
|
set showDefaultOnError(value) {
|
|
70
74
|
this._showDefaultOnError = coerceBooleanProperty(value);
|
|
71
75
|
if (this._hasError) {
|
|
@@ -85,7 +89,9 @@ class IconComponent {
|
|
|
85
89
|
/**
|
|
86
90
|
* Shown if icon is not set or if showDefaultOnError is true and img has thrown an error.
|
|
87
91
|
*/
|
|
88
|
-
get defaultIcon() {
|
|
92
|
+
get defaultIcon() {
|
|
93
|
+
return this._defaultIconUrl || this._defaultIconObj;
|
|
94
|
+
}
|
|
89
95
|
set defaultIcon(value) {
|
|
90
96
|
if (typeof value === 'string') {
|
|
91
97
|
this._defaultIconUrl = value;
|
|
@@ -107,21 +113,28 @@ class IconComponent {
|
|
|
107
113
|
_defaultIconUrl;
|
|
108
114
|
_defaultIconObj;
|
|
109
115
|
iconType;
|
|
110
|
-
get _iconTypeAttr() {
|
|
116
|
+
get _iconTypeAttr() {
|
|
117
|
+
return this.iconType;
|
|
118
|
+
}
|
|
111
119
|
_hasError = false;
|
|
112
120
|
_imgError(event) {
|
|
113
121
|
this._hasError = true;
|
|
114
|
-
if (this._showDefaultOnError &&
|
|
122
|
+
if (this._showDefaultOnError &&
|
|
123
|
+
(this._defaultIconUrl || this._defaultIconObj)) {
|
|
115
124
|
this._iconUrlBeforeError = this._iconUrl;
|
|
116
125
|
this._iconObjBeforeError = this._iconObj;
|
|
117
126
|
this._iconUrl = this._defaultIconUrl;
|
|
118
127
|
this._iconObj = this._defaultIconObj;
|
|
119
128
|
}
|
|
120
129
|
}
|
|
121
|
-
get _cssDisabled() {
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
130
|
+
get _cssDisabled() {
|
|
131
|
+
return this.disabled || null;
|
|
132
|
+
}
|
|
133
|
+
get _cssNoGreyscale() {
|
|
134
|
+
return !this.grayscaleOnDisable;
|
|
135
|
+
}
|
|
136
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
137
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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"] }] });
|
|
125
138
|
}
|
|
126
139
|
__decorate([
|
|
127
140
|
InputBoolean()
|
|
@@ -129,9 +142,9 @@ __decorate([
|
|
|
129
142
|
__decorate([
|
|
130
143
|
InputBoolean()
|
|
131
144
|
], IconComponent.prototype, "disabled", void 0);
|
|
132
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
145
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IconComponent, decorators: [{
|
|
133
146
|
type: Component,
|
|
134
|
-
args: [{ selector: 'seam-icon', standalone: false, template: "<fa-icon
|
|
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"] }]
|
|
135
148
|
}], propDecorators: { grayscaleOnDisable: [{
|
|
136
149
|
type: Input
|
|
137
150
|
}], disabled: [{
|
|
@@ -199,28 +212,56 @@ class IconBtnComponent {
|
|
|
199
212
|
_cssPadding0 = true;
|
|
200
213
|
_btn = true;
|
|
201
214
|
_textNoWrap = true;
|
|
202
|
-
get _btnDefault() {
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
get
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
get
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
get
|
|
212
|
-
|
|
213
|
-
|
|
215
|
+
get _btnDefault() {
|
|
216
|
+
return this.isBtnTheme('default');
|
|
217
|
+
}
|
|
218
|
+
get _btnPrimary() {
|
|
219
|
+
return this.isBtnTheme('primary');
|
|
220
|
+
}
|
|
221
|
+
get _btnSecondary() {
|
|
222
|
+
return this.isBtnTheme('secondary');
|
|
223
|
+
}
|
|
224
|
+
get _btnSuccess() {
|
|
225
|
+
return this.isBtnTheme('success');
|
|
226
|
+
}
|
|
227
|
+
get _btnDanger() {
|
|
228
|
+
return this.isBtnTheme('danger');
|
|
229
|
+
}
|
|
230
|
+
get _btnWarning() {
|
|
231
|
+
return this.isBtnTheme('warning');
|
|
232
|
+
}
|
|
233
|
+
get _btnInfo() {
|
|
234
|
+
return this.isBtnTheme('info');
|
|
235
|
+
}
|
|
236
|
+
get _btnLight() {
|
|
237
|
+
return this.isBtnTheme('light');
|
|
238
|
+
}
|
|
239
|
+
get _btnDark() {
|
|
240
|
+
return this.isBtnTheme('dark');
|
|
241
|
+
}
|
|
242
|
+
get _btnLightGray() {
|
|
243
|
+
return this.isBtnTheme('lightgray');
|
|
244
|
+
}
|
|
245
|
+
get _btnSizeSm() {
|
|
246
|
+
return this.btnSize === 'sm';
|
|
247
|
+
}
|
|
248
|
+
get _btnSizeLg() {
|
|
249
|
+
return this.btnSize === 'lg';
|
|
250
|
+
}
|
|
214
251
|
btnTheme = 'default';
|
|
215
252
|
badgeTheme = 'light';
|
|
216
253
|
badgeText = '';
|
|
217
254
|
btnSize;
|
|
218
|
-
get type() {
|
|
255
|
+
get type() {
|
|
256
|
+
return this._type;
|
|
257
|
+
}
|
|
219
258
|
set type(value) {
|
|
220
259
|
this._type = value;
|
|
221
260
|
}
|
|
222
261
|
_type;
|
|
223
|
-
get role() {
|
|
262
|
+
get role() {
|
|
263
|
+
return this._role;
|
|
264
|
+
}
|
|
224
265
|
set role(value) {
|
|
225
266
|
this._role = value;
|
|
226
267
|
}
|
|
@@ -246,16 +287,18 @@ class IconBtnComponent {
|
|
|
246
287
|
_isAnchor() {
|
|
247
288
|
return this._elementRef.nativeElement.nodeName.toLowerCase() === 'button';
|
|
248
289
|
}
|
|
249
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
250
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
251
|
-
<seam-icon
|
|
290
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", 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.6", 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
|
+
<seam-icon
|
|
293
|
+
*ngIf="icon"
|
|
252
294
|
[grayscaleOnDisable]="grayscaleOnDisable"
|
|
253
295
|
[disabled]="disabled"
|
|
254
296
|
[iconClass]="iconClass"
|
|
255
297
|
[icon]="icon"
|
|
256
298
|
[size]="size"
|
|
257
299
|
[showDefaultOnError]="showDefaultOnError"
|
|
258
|
-
[iconType]="iconType"
|
|
300
|
+
[iconType]="iconType"
|
|
301
|
+
>
|
|
259
302
|
</seam-icon>
|
|
260
303
|
<ng-content select=".sr-only,seam-icon-notification"></ng-content>
|
|
261
304
|
`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }] });
|
|
@@ -269,17 +312,19 @@ __decorate([
|
|
|
269
312
|
__decorate([
|
|
270
313
|
InputBoolean()
|
|
271
314
|
], IconBtnComponent.prototype, "showDefaultOnError", void 0);
|
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
315
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IconBtnComponent, decorators: [{
|
|
273
316
|
type: Component,
|
|
274
317
|
args: [{ selector: 'button[seamIconBtn]', template: `
|
|
275
|
-
<seam-icon
|
|
318
|
+
<seam-icon
|
|
319
|
+
*ngIf="icon"
|
|
276
320
|
[grayscaleOnDisable]="grayscaleOnDisable"
|
|
277
321
|
[disabled]="disabled"
|
|
278
322
|
[iconClass]="iconClass"
|
|
279
323
|
[icon]="icon"
|
|
280
324
|
[size]="size"
|
|
281
325
|
[showDefaultOnError]="showDefaultOnError"
|
|
282
|
-
[iconType]="iconType"
|
|
326
|
+
[iconType]="iconType"
|
|
327
|
+
>
|
|
283
328
|
</seam-icon>
|
|
284
329
|
<ng-content select=".sr-only,seam-icon-notification"></ng-content>
|
|
285
330
|
`, host: {
|
|
@@ -364,8 +409,8 @@ const pulseAnimation = animation([
|
|
|
364
409
|
animate('{{ timings }}', keyframes([
|
|
365
410
|
style({ transform: 'scale(1)', offset: 0 }),
|
|
366
411
|
style({ transform: 'scale({{ scale }})', offset: 0.5 }),
|
|
367
|
-
style({ transform: 'scale(1)', offset: 1 })
|
|
368
|
-
]))
|
|
412
|
+
style({ transform: 'scale(1)', offset: 1 }),
|
|
413
|
+
])),
|
|
369
414
|
]);
|
|
370
415
|
class IconNotificationComponent {
|
|
371
416
|
_elementRef;
|
|
@@ -410,20 +455,25 @@ class IconNotificationComponent {
|
|
|
410
455
|
this._elementRef = _elementRef;
|
|
411
456
|
}
|
|
412
457
|
ngOnInit() {
|
|
413
|
-
if (this._elementRef &&
|
|
458
|
+
if (this._elementRef &&
|
|
459
|
+
this._elementRef.nativeElement &&
|
|
460
|
+
this._elementRef.nativeElement.parentElement) {
|
|
414
461
|
this._elementRef.nativeElement.parentElement.style.position = 'relative';
|
|
415
462
|
}
|
|
416
463
|
}
|
|
417
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
418
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
419
|
-
<seam-icon
|
|
464
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IconNotificationComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
465
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.6", 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
|
+
<seam-icon
|
|
467
|
+
*ngIf="icon && !hidden"
|
|
468
|
+
[@counterChange]="count"
|
|
420
469
|
[grayscaleOnDisable]="grayscaleOnDisable"
|
|
421
470
|
[disabled]="disabled"
|
|
422
471
|
[iconClass]="iconClass"
|
|
423
472
|
[icon]="icon"
|
|
424
473
|
[size]="size"
|
|
425
474
|
[showDefaultOnError]="showDefaultOnError"
|
|
426
|
-
[iconType]="iconType"
|
|
475
|
+
[iconType]="iconType"
|
|
476
|
+
>
|
|
427
477
|
</seam-icon>
|
|
428
478
|
<ng-content select=".sr-only"></ng-content>
|
|
429
479
|
`, isInline: true, styles: [":host{position:absolute;inset:0}seam-icon{position:absolute;top:4px;right:4px;width:25%!important;height:25%!important;min-width:15px;min-height:15px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "seam-icon", inputs: ["grayscaleOnDisable", "disabled", "iconClass", "icon", "size", "showDefaultOnError", "defaultIcon", "iconType"] }], animations: [
|
|
@@ -431,10 +481,10 @@ class IconNotificationComponent {
|
|
|
431
481
|
transition(':increment', useAnimation(pulseAnimation, {
|
|
432
482
|
params: {
|
|
433
483
|
timings: '400ms ease-in-out',
|
|
434
|
-
scale: 1.2
|
|
435
|
-
}
|
|
436
|
-
}))
|
|
437
|
-
])
|
|
484
|
+
scale: 1.2,
|
|
485
|
+
},
|
|
486
|
+
})),
|
|
487
|
+
]),
|
|
438
488
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
439
489
|
}
|
|
440
490
|
__decorate([
|
|
@@ -449,17 +499,20 @@ __decorate([
|
|
|
449
499
|
__decorate([
|
|
450
500
|
InputBoolean()
|
|
451
501
|
], IconNotificationComponent.prototype, "showDefaultOnError", void 0);
|
|
452
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
502
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: IconNotificationComponent, decorators: [{
|
|
453
503
|
type: Component,
|
|
454
504
|
args: [{ selector: 'seam-icon-notification', template: `
|
|
455
|
-
<seam-icon
|
|
505
|
+
<seam-icon
|
|
506
|
+
*ngIf="icon && !hidden"
|
|
507
|
+
[@counterChange]="count"
|
|
456
508
|
[grayscaleOnDisable]="grayscaleOnDisable"
|
|
457
509
|
[disabled]="disabled"
|
|
458
510
|
[iconClass]="iconClass"
|
|
459
511
|
[icon]="icon"
|
|
460
512
|
[size]="size"
|
|
461
513
|
[showDefaultOnError]="showDefaultOnError"
|
|
462
|
-
[iconType]="iconType"
|
|
514
|
+
[iconType]="iconType"
|
|
515
|
+
>
|
|
463
516
|
</seam-icon>
|
|
464
517
|
<ng-content select=".sr-only"></ng-content>
|
|
465
518
|
`, host: {
|
|
@@ -470,10 +523,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
470
523
|
transition(':increment', useAnimation(pulseAnimation, {
|
|
471
524
|
params: {
|
|
472
525
|
timings: '400ms ease-in-out',
|
|
473
|
-
scale: 1.2
|
|
474
|
-
}
|
|
475
|
-
}))
|
|
476
|
-
])
|
|
526
|
+
scale: 1.2,
|
|
527
|
+
},
|
|
528
|
+
})),
|
|
529
|
+
]),
|
|
477
530
|
], changeDetection: ChangeDetectionStrategy.OnPush, standalone: false, styles: [":host{position:absolute;inset:0}seam-icon{position:absolute;top:4px;right:4px;width:25%!important;height:25%!important;min-width:15px;min-height:15px}\n"] }]
|
|
478
531
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { count: [{
|
|
479
532
|
type: Input
|
|
@@ -496,51 +549,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.1", ngImpor
|
|
|
496
549
|
}] } });
|
|
497
550
|
|
|
498
551
|
class TheSeamIconModule {
|
|
499
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
500
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
501
|
-
|
|
502
|
-
IconNotificationComponent], imports: [CommonModule,
|
|
503
|
-
FontAwesomeModule], exports: [IconComponent,
|
|
504
|
-
IconBtnComponent,
|
|
505
|
-
IconNotificationComponent] });
|
|
506
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.1", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule,
|
|
507
|
-
FontAwesomeModule] });
|
|
552
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamIconModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
553
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.6", 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.6", ngImport: i0, type: TheSeamIconModule, imports: [CommonModule, FontAwesomeModule] });
|
|
508
555
|
}
|
|
509
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
556
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.6", ngImport: i0, type: TheSeamIconModule, decorators: [{
|
|
510
557
|
type: NgModule,
|
|
511
558
|
args: [{
|
|
512
|
-
declarations: [
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
IconNotificationComponent
|
|
516
|
-
],
|
|
517
|
-
imports: [
|
|
518
|
-
CommonModule,
|
|
519
|
-
FontAwesomeModule
|
|
520
|
-
],
|
|
521
|
-
exports: [
|
|
522
|
-
IconComponent,
|
|
523
|
-
IconBtnComponent,
|
|
524
|
-
IconNotificationComponent
|
|
525
|
-
]
|
|
559
|
+
declarations: [IconComponent, IconBtnComponent, IconNotificationComponent],
|
|
560
|
+
imports: [CommonModule, FontAwesomeModule],
|
|
561
|
+
exports: [IconComponent, IconBtnComponent, IconNotificationComponent],
|
|
526
562
|
}]
|
|
527
563
|
}] });
|
|
528
564
|
|
|
529
565
|
const FILE_EXTENSION_ICONS = {
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
542
|
-
|
|
543
|
-
|
|
566
|
+
pdf: faFilePdf,
|
|
567
|
+
doc: faFileWord,
|
|
568
|
+
docx: faFileWord,
|
|
569
|
+
xls: faFileExcel,
|
|
570
|
+
xlsx: faFileExcel,
|
|
571
|
+
gif: faFileImage,
|
|
572
|
+
jpg: faFileImage,
|
|
573
|
+
jpeg: faFileImage,
|
|
574
|
+
png: faFileImage,
|
|
575
|
+
zip: faFileArchive,
|
|
576
|
+
ppt: faFilePowerpoint,
|
|
577
|
+
pptx: faFilePowerpoint,
|
|
578
|
+
txt: faFileAlt,
|
|
579
|
+
json: faFileAlt,
|
|
544
580
|
};
|
|
545
581
|
const DEFAULT_FILE_EXTENSION_ICON = faFile;
|
|
546
582
|
function fileExtensionIcon(extension, defaultIfNotFound = true) {
|
|
@@ -632,7 +668,7 @@ const knownIcons = {
|
|
|
632
668
|
faUserEdit,
|
|
633
669
|
faUserTimes,
|
|
634
670
|
faUsers,
|
|
635
|
-
faUserPlus
|
|
671
|
+
faUserPlus,
|
|
636
672
|
};
|
|
637
673
|
function getKnownIcon(iconStr) {
|
|
638
674
|
return knownIcons[iconStr];
|
|
@@ -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(navigator.userAgent)\n\nexport type TheSeamIconType = 'borderless-styled-square' | 'styled-square' | 'image-fill' | 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 { return this._iconUrl || this._iconObj }\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 { return this._showDefaultOnError }\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 { return this._defaultIconUrl || this._defaultIconObj }\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() { return this.iconType }\n\n private _hasError = false\n\n public _imgError(event: ErrorEvent): void {\n this._hasError = true\n if (this._showDefaultOnError && (this._defaultIconUrl || this._defaultIconObj)) {\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() { return this.disabled || null }\n\n @HostBinding('class.no-grayscale')\n get _cssNoGreyscale() { return !this.grayscaleOnDisable }\n\n}\n","<fa-icon *ngIf=\"_iconObj\"\n class=\"seam-icon--fa {{ iconClass }}\"\n [icon]=\"_iconObj\"\n [size]=\"size || undefined\">\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 class=\"grayscale-fix\" style=\"display: inline-block; position: relative;\">\n <svg xmlns=\"http://www.w3.org/2000/svg\" id=\"svgroot\" style=\"position: absolute; left: 0; right: 0;\" viewBox=\"0 0 48 48\" width=\"100%\" height=\"100%\">\n <defs><filter id=\"gray\"><feColorMatrix type=\"matrix\" 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\" /></filter></defs>\n <image filter=\"url("#gray")\" preserveAspectRatio=\"none meet\" x=\"0\" y=\"0\" width=\"48\" height=\"48\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n [attr.xlink:href]=\"_iconUrl\" />\n </svg>\n <img class=\"seam-icon--img {{ iconClass }}\" style=\"display: block; visibility: hidden;\" alt=\"Icon\" [src]=\"_iconUrl\" (error)=\"_imgError($event)\">\n </span>\n </ng-container>\n <ng-container *ngIf=\"!disabled\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"!needToFix\">\n <img class=\"seam-icon--img {{ iconClass }}\" [src]=\"_iconUrl\" alt=\"Icon\" (error)=\"_imgError($event)\">\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 { Component, DoCheck, ElementRef, HostBinding, Input, Renderer2 } 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 *ngIf=\"icon\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\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() { return this.isBtnTheme('default') }\n @HostBinding('class.btn-primary') get _btnPrimary() { return this.isBtnTheme('primary') }\n @HostBinding('class.btn-secondary') get _btnSecondary() { return this.isBtnTheme('secondary') }\n @HostBinding('class.btn-success') get _btnSuccess() { return this.isBtnTheme('success') }\n @HostBinding('class.btn-danger') get _btnDanger() { return this.isBtnTheme('danger') }\n @HostBinding('class.btn-warning') get _btnWarning() { return this.isBtnTheme('warning') }\n @HostBinding('class.btn-info') get _btnInfo() { return this.isBtnTheme('info') }\n @HostBinding('class.btn-light') get _btnLight() { return this.isBtnTheme('light') }\n @HostBinding('class.btn-dark') get _btnDark() { return this.isBtnTheme('dark') }\n @HostBinding('class.btn-lightgray') get _btnLightGray() { return this.isBtnTheme('lightgray') }\n\n @HostBinding('class.btn-sm') get _btnSizeSm() { return this.btnSize === 'sm' }\n @HostBinding('class.btn-lg') get _btnSizeLg() { return this.btnSize === 'lg' }\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 { return this._type }\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 { return this._role }\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(this._elementRef.nativeElement, 'type', this._type || 'button')\n } else if (this._isAnchor()) {\n this._renderer.setAttribute(this._elementRef.nativeElement, 'role', this._role || 'button')\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}\n","import { animate, animation, keyframes, style, transition, trigger, useAnimation } from '@angular/animations'\nimport { BooleanInput } from '@angular/cdk/coercion'\nimport { ChangeDetectionStrategy, Component, ElementRef, Input, OnInit } 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 *ngIf=\"icon && !hidden\" [@counterChange]=\"count\"\n [grayscaleOnDisable]=\"grayscaleOnDisable\"\n [disabled]=\"disabled\"\n [iconClass]=\"iconClass\"\n [icon]=\"icon\"\n [size]=\"size\"\n [showDefaultOnError]=\"showDefaultOnError\"\n [iconType]=\"iconType\">\n </seam-icon>\n <ng-content select=\".sr-only\"></ng-content>\n `,\n styles: [`\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 // tslint:disable-next-line:use-host-property-decorator\n host: {\n '[attr.aria-disabled]': 'disabled.toString()',\n '[attr.disabled]': 'disabled || null',\n },\n animations: [\n trigger('counterChange', [\n transition(':increment', useAnimation(pulseAnimation, {\n params: {\n timings: '400ms ease-in-out',\n scale: 1.2\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(\n private _elementRef: ElementRef<HTMLElement>\n ) { }\n\n ngOnInit() {\n if (this._elementRef && this._elementRef.nativeElement && this._elementRef.nativeElement.parentElement) {\n this._elementRef.nativeElement.parentElement.style.position = 'relative'\n }\n }\n\n // ngDoCheck() {}\n\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: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ],\n imports: [\n CommonModule,\n FontAwesomeModule\n ],\n exports: [\n IconComponent,\n IconBtnComponent,\n IconNotificationComponent\n ]\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(extension: string | null | undefined, defaultIfNotFound: boolean = true): 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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"}
|
|
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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"}
|