@seniorsistemas/data-seniorx-core 3.0.0 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/core/constants/editable-overlay.const.d.ts +4 -0
- package/core/constants/help-popover.const.d.ts +7 -0
- package/core/constants/input-mask.const.d.ts +5 -0
- package/core/constants/navigation-button.const.d.ts +3 -0
- package/core/constants/object-card.const.d.ts +21 -0
- package/core/constants/thumbnail.const.d.ts +6 -0
- package/core/constants/thumbnails.const.d.ts +4 -0
- package/core/constants/token-list.const.d.ts +3 -0
- package/core/types/button.type.d.ts +1 -1
- package/core/types/datepicker.type.d.ts +28 -0
- package/core/types/dynamic-form.type.d.ts +29 -0
- package/core/types/editable-overlay.type.d.ts +15 -0
- package/core/types/help-popover.type.d.ts +2 -0
- package/core/types/input-mask.type.d.ts +6 -0
- package/core/types/lookup.type.d.ts +45 -0
- package/core/types/navigation-button.type.d.ts +9 -0
- package/core/types/row-card.type.d.ts +5 -0
- package/core/types/semantics.type.d.ts +1 -1
- package/core/types/table-options.type.d.ts +1 -0
- package/core/types/thumbnail.type.d.ts +1 -0
- package/core/types/thumbnails.type.d.ts +20 -0
- package/core/types/token-list.type.d.ts +6 -0
- package/core/utils/emoji-support.util.d.ts +12 -0
- package/core/utils/overlay-dismiss.util.d.ts +25 -0
- package/esm2022/core/config/row-card.type.config.mjs +3 -1
- package/esm2022/core/constants/country-phone-picker.const.mjs +6 -6
- package/esm2022/core/constants/editable-overlay.const.mjs +5 -0
- package/esm2022/core/constants/help-popover.const.mjs +7 -0
- package/esm2022/core/constants/input-mask.const.mjs +6 -0
- package/esm2022/core/constants/navigation-button.const.mjs +4 -0
- package/esm2022/core/constants/object-card.const.mjs +23 -0
- package/esm2022/core/constants/thumbnail.const.mjs +14 -0
- package/esm2022/core/constants/thumbnails.const.mjs +5 -0
- package/esm2022/core/constants/token-list.const.mjs +4 -0
- package/esm2022/core/types/button.type.mjs +1 -1
- package/esm2022/core/types/datepicker.type.mjs +2 -0
- package/esm2022/core/types/dynamic-form.type.mjs +2 -0
- package/esm2022/core/types/editable-overlay.type.mjs +2 -0
- package/esm2022/core/types/help-popover.type.mjs +2 -0
- package/esm2022/core/types/input-mask.type.mjs +2 -0
- package/esm2022/core/types/lookup.type.mjs +2 -0
- package/esm2022/core/types/navigation-button.type.mjs +2 -0
- package/esm2022/core/types/row-card.type.mjs +1 -1
- package/esm2022/core/types/semantics.type.mjs +1 -1
- package/esm2022/core/types/table-options.type.mjs +1 -1
- package/esm2022/core/types/thumbnail.type.mjs +2 -0
- package/esm2022/core/types/thumbnails.type.mjs +2 -0
- package/esm2022/core/types/token-list.type.mjs +2 -0
- package/esm2022/core/utils/emoji-support.util.mjs +48 -0
- package/esm2022/core/utils/mask.util.mjs +2 -2
- package/esm2022/core/utils/overlay-dismiss.util.mjs +38 -0
- package/esm2022/features/alert/alert.component.mjs +5 -2
- package/esm2022/features/autocomplete/autocomplete.component.mjs +30 -8
- package/esm2022/features/bignumber-input/bignumber-input.component.mjs +1 -1
- package/esm2022/features/button/button.component.mjs +13 -5
- package/esm2022/features/card-list/card/card.component.mjs +2 -2
- package/esm2022/features/card-list/card-list.component.mjs +2 -2
- package/esm2022/features/checkbox-list/checkbox-list.component.mjs +25 -5
- package/esm2022/features/chips/chips.component.mjs +3 -3
- package/esm2022/features/code-editor/code-editor.component.mjs +12 -3
- package/esm2022/features/combobox/combobox.component.mjs +3 -3
- package/esm2022/features/confirm/confirm.component.mjs +2 -2
- package/esm2022/features/context-selector/context-selector.component.mjs +1 -1
- package/esm2022/features/country-phone-picker/country-phone-picker.component.mjs +22 -18
- package/esm2022/features/currency/currency.component.mjs +3 -3
- package/esm2022/features/datepicker/datepicker.component.mjs +814 -0
- package/esm2022/features/dynamic-form/dynamic-form-field.directive.mjs +178 -0
- package/esm2022/features/dynamic-form/dynamic-form.component.mjs +60 -0
- package/esm2022/features/dynamic-form/dynamic-form.registry.mjs +13 -0
- package/esm2022/features/editable-overlay/editable-overlay-editor.directive.mjs +31 -0
- package/esm2022/features/editable-overlay/editable-overlay.component.mjs +217 -0
- package/esm2022/features/editor/editor.component.mjs +173 -0
- package/esm2022/features/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/features/fileupload/fileupload.component.mjs +3 -3
- package/esm2022/features/help-popover/help-popover.component.mjs +204 -0
- package/esm2022/features/hyperlink/hyperlink.component.mjs +3 -3
- package/esm2022/features/icon-picker/icon-picker.component.mjs +4 -4
- package/esm2022/features/image-cropper/image-cropper.component.mjs +2 -2
- package/esm2022/features/info-sign/info-sign.component.mjs +6 -3
- package/esm2022/features/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
- package/esm2022/features/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
- package/esm2022/features/input-mask/input-mask.directive.mjs +510 -0
- package/esm2022/features/list/list.component.mjs +2 -2
- package/esm2022/features/localized-number-input/localized-number-input.component.mjs +3 -3
- package/esm2022/features/lookup/lookup.component.mjs +351 -0
- package/esm2022/features/modal/modal.component.mjs +6 -3
- package/esm2022/features/modalc/modalc.component.mjs +6 -3
- package/esm2022/features/navigation-button/navigation-button.component.mjs +172 -0
- package/esm2022/features/number-input/number-input.component.mjs +10 -4
- package/esm2022/features/object-card/components/object-card-field/object-card-field.component.mjs +89 -0
- package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs +114 -0
- package/esm2022/features/object-card/object-card.component.mjs +199 -0
- package/esm2022/features/password-strength/password-strength.component.mjs +3 -3
- package/esm2022/features/pin-code-field/pin-code-field.component.mjs +14 -4
- package/esm2022/features/popover/popover.component.mjs +29 -3
- package/esm2022/features/profile-picture-picker/profile-picture-picker.component.mjs +13 -4
- package/esm2022/features/rating-scale/rating-scale.component.mjs +24 -4
- package/esm2022/features/row-card-list/row-card/row-card.component.mjs +19 -4
- package/esm2022/features/row-card-list/row-card-list.component.mjs +12 -3
- package/esm2022/features/scaffold/scaffold.component.mjs +3 -3
- package/esm2022/features/searchbox/searchbox.component.mjs +2 -2
- package/esm2022/features/select-button/select-button.component.mjs +26 -4
- package/esm2022/features/slider/slider.component.mjs +3 -3
- package/esm2022/features/split-button/split-button.component.mjs +1 -1
- package/esm2022/features/spotlight/components/spotlight-overlay/spotlight-overlay.component.mjs +15 -18
- package/esm2022/features/spotlight/spotlight.component.mjs +2 -2
- package/esm2022/features/star-rating/star-rating.component.mjs +25 -4
- package/esm2022/features/table/components/table-cell-content.component.mjs +2 -2
- package/esm2022/features/table/table.component.mjs +30 -9
- package/esm2022/features/textarea/textarea.component.mjs +3 -3
- package/esm2022/features/thumbnail/thumbnail.component.mjs +86 -0
- package/esm2022/features/thumbnails/components/thumbnail-item/thumbnail-item.component.mjs +59 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.mjs +25 -0
- package/esm2022/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.mjs +50 -0
- package/esm2022/features/thumbnails/thumbnails.component.mjs +76 -0
- package/esm2022/features/tiered-menu/directives/tiered-menu.directive.mjs +13 -1
- package/esm2022/features/token-list/token-list.component.mjs +64 -0
- package/esm2022/features/visual-sql-editor/visual-sql-editor.component.mjs +2 -2
- package/esm2022/locales/en.json +409 -1
- package/esm2022/locales/es-CO.json +423 -2
- package/esm2022/locales/pt.json +1037 -630
- package/esm2022/providers/features.provider.mjs +20 -2
- package/esm2022/providers/primeng-config.provider.mjs +14 -128
- package/esm2022/providers/translate.provider.mjs +2 -2
- package/esm2022/public-api.mjs +31 -1
- package/features/alert/alert.component.d.ts +1 -0
- package/features/autocomplete/autocomplete.component.d.ts +9 -3
- package/features/button/button.component.d.ts +3 -1
- package/features/checkbox-list/checkbox-list.component.d.ts +8 -1
- package/features/code-editor/code-editor.component.d.ts +5 -1
- package/features/country-phone-picker/country-phone-picker.component.d.ts +3 -0
- package/features/datepicker/datepicker.component.d.ts +118 -0
- package/features/dynamic-form/dynamic-form-field.directive.d.ts +26 -0
- package/features/dynamic-form/dynamic-form.component.d.ts +15 -0
- package/features/dynamic-form/dynamic-form.registry.d.ts +11 -0
- package/features/editable-overlay/editable-overlay-editor.directive.d.ts +22 -0
- package/features/editable-overlay/editable-overlay.component.d.ts +60 -0
- package/features/editor/editor.component.d.ts +47 -0
- package/features/help-popover/help-popover.component.d.ts +81 -0
- package/features/info-sign/info-sign.component.d.ts +2 -1
- package/features/input-mask/input-mask.directive.d.ts +117 -0
- package/features/lookup/lookup.component.d.ts +104 -0
- package/features/modal/modal.component.d.ts +2 -1
- package/features/modalc/modalc.component.d.ts +2 -1
- package/features/navigation-button/navigation-button.component.d.ts +58 -0
- package/features/number-input/number-input.component.d.ts +3 -1
- package/features/object-card/components/object-card-field/object-card-field.component.d.ts +48 -0
- package/features/object-card/components/object-card-main/object-card-main.component.d.ts +57 -0
- package/features/object-card/object-card.component.d.ts +70 -0
- package/features/pin-code-field/pin-code-field.component.d.ts +6 -1
- package/features/popover/popover.component.d.ts +4 -1
- package/features/profile-picture-picker/profile-picture-picker.component.d.ts +5 -1
- package/features/rating-scale/rating-scale.component.d.ts +9 -1
- package/features/row-card-list/row-card/row-card.component.d.ts +6 -1
- package/features/row-card-list/row-card-list.component.d.ts +4 -1
- package/features/select-button/select-button.component.d.ts +9 -1
- package/features/star-rating/star-rating.component.d.ts +9 -1
- package/features/table/table.component.d.ts +2 -1
- package/features/thumbnail/thumbnail.component.d.ts +48 -0
- package/features/thumbnails/components/thumbnail-item/thumbnail-item.component.d.ts +29 -0
- package/features/thumbnails/components/thumbnail-item-image/thumbnail-item-image.component.d.ts +13 -0
- package/features/thumbnails/components/thumbnail-item-video/thumbnail-item-video.component.d.ts +19 -0
- package/features/thumbnails/thumbnails.component.d.ts +46 -0
- package/features/tiered-menu/directives/tiered-menu.directive.d.ts +2 -0
- package/features/token-list/token-list.component.d.ts +31 -0
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs +11288 -6613
- package/fesm2022/seniorsistemas-data-seniorx-core.mjs.map +1 -1
- package/package.json +12 -3
- package/providers/primeng-config.provider.d.ts +12 -0
- package/public-api.d.ts +38 -0
- package/src/locales/en.json +409 -1
- package/src/locales/es-CO.json +423 -2
- package/src/locales/pt.json +1037 -630
- package/styles/sdc-global-variables.scss +38 -0
- package/styles.css +132 -0
- package/styles.scss +2 -0
- package/esm2022/providers/custom/button.mjs +0 -93
- package/esm2022/providers/custom/toast.mjs +0 -75
- package/providers/custom/button.d.ts +0 -16
- package/providers/custom/toast.d.ts +0 -14
|
@@ -66,7 +66,7 @@ export class TextareaComponent extends InputsComponent {
|
|
|
66
66
|
useExisting: forwardRef(() => TextareaComponent),
|
|
67
67
|
multi: true
|
|
68
68
|
}
|
|
69
|
-
], viewQueries: [{ propertyName: "textareaEl", first: true, predicate: ["textareaEl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-textarea\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-textarea__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-textarea__label\">\n <span class=\"sdc-textarea__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sdc-textarea__sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (infoTooltip) {\n <sdc-tooltip\n class=\"sdc-textarea__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-textarea__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <textarea\n #textareaEl\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onTextareaInput($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [attr.aria-label]=\"\n labelKey()\n ? (labelKey() | translate)\n : placeholder\n ? (placeholder | translate)\n : ('platform.datacore.accessibility.text_area' | translate)\n \"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n ></textarea>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [".sdc-textarea .sdc-textarea__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-textarea .sdc-textarea__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-
|
|
69
|
+
], viewQueries: [{ propertyName: "textareaEl", first: true, predicate: ["textareaEl"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"sdc-textarea\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-textarea__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-textarea__label\">\n <span class=\"sdc-textarea__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sdc-textarea__sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (infoTooltip) {\n <sdc-tooltip\n class=\"sdc-textarea__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-textarea__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <textarea\n #textareaEl\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onTextareaInput($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [attr.aria-label]=\"\n labelKey()\n ? (labelKey() | translate)\n : placeholder\n ? (placeholder | translate)\n : ('platform.datacore.accessibility.text_area' | translate)\n \"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n ></textarea>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [".sdc-textarea .sdc-textarea__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-textarea .sdc-textarea__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-textarea .sdc-textarea__label-text{display:inline-flex;align-items:center}.sdc-textarea .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-textarea .sdc-textarea__sr-only{border:var(--sdc-sr-only-border);clip:var(--sdc-sr-only-clip);height:var(--sdc-sr-only-h);margin:var(--sdc-sr-only-m);overflow:var(--sdc-sr-only-overflow);padding:var(--sdc-sr-only-p);position:var(--sdc-sr-only-pos);width:var(--sdc-sr-only-w)}.sdc-textarea .sdc-textarea__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-textarea .sdc-textarea__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-textarea textarea{width:100%;border:var(--sdc-formfield-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;resize:vertical;padding:var(--sdc-form-textarea-padding-y) var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--sdc-text-default)!important;font:inherit!important;box-sizing:border-box!important}.sdc-textarea textarea:focus{outline:none;border-color:var(--sdc-formfield-focus-color)!important;box-shadow:var(--sdc-formfield-focus-shadow)!important}.sdc-textarea textarea:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color)!important;box-shadow:var(--sdc-formfield-focus-shadow-visible)!important}.sdc-textarea textarea:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
70
70
|
}
|
|
71
71
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextareaComponent, decorators: [{
|
|
72
72
|
type: Component,
|
|
@@ -76,7 +76,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
76
76
|
useExisting: forwardRef(() => TextareaComponent),
|
|
77
77
|
multi: true
|
|
78
78
|
}
|
|
79
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-textarea\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-textarea__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-textarea__label\">\n <span class=\"sdc-textarea__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sdc-textarea__sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (infoTooltip) {\n <sdc-tooltip\n class=\"sdc-textarea__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-textarea__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <textarea\n #textareaEl\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onTextareaInput($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [attr.aria-label]=\"\n labelKey()\n ? (labelKey() | translate)\n : placeholder\n ? (placeholder | translate)\n : ('platform.datacore.accessibility.text_area' | translate)\n \"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n ></textarea>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [".sdc-textarea .sdc-textarea__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-textarea .sdc-textarea__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-
|
|
79
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-textarea\">\n @if (labelKey() || infoTooltip) {\n <div class=\"sdc-textarea__label-row\">\n @if (labelKey()) {\n <label [for]=\"identity.id\" class=\"sdc-textarea__label\">\n <span class=\"sdc-textarea__label-text\">\n {{ labelKey() | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n @if (required) {\n <span class=\"sdc-textarea__sr-only\">\n {{ 'platform.datacore.accessibility.required_field' | translate }}\n </span>\n }\n </span>\n </label>\n }\n @if (infoTooltip) {\n <sdc-tooltip\n class=\"sdc-textarea__info-tooltip-wrap\"\n [pTooltip]=\"infoTooltip\"\n [tooltipPosition]=\"infoTooltipPosition\"\n [tooltipEvent]=\"infoTooltipEvent\"\n (click)=\"$event.stopPropagation()\"\n >\n <i class=\"fas fa-info-circle sdc-textarea__info-tooltip-icon\" aria-hidden=\"true\"></i>\n </sdc-tooltip>\n }\n </div>\n }\n\n <textarea\n #textareaEl\n (beforeinput)=\"onBeforeInput($event)\"\n (input)=\"onTextareaInput($event)\"\n [disabled]=\"disabled\"\n [id]=\"identity.id\"\n [name]=\"identity.name\"\n [ngClass]=\"getInvalidClass()\"\n [ngStyle]=\"getInputStyle()\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n [attr.maxlength]=\"maxlength\"\n [rows]=\"rows\"\n [attr.aria-label]=\"\n labelKey()\n ? (labelKey() | translate)\n : placeholder\n ? (placeholder | translate)\n : ('platform.datacore.accessibility.text_area' | translate)\n \"\n [attr.aria-required]=\"required\"\n [attr.aria-invalid]=\"invalid\"\n [attr.aria-describedby]=\"messageKey() ? identity.id + '-error' : null\"\n ></textarea>\n\n @if (messageKey()) {\n <small\n [id]=\"identity.id + '-error'\"\n [ngClass]=\"getInvalidMessageClass()\"\n role=\"alert\"\n aria-live=\"polite\"\n >\n {{ messageKey() | translate }}\n </small>\n }\n</div>\n", styles: [".sdc-textarea .sdc-textarea__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-textarea .sdc-textarea__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh);padding-top:var(--sdc-form-label-py);padding-bottom:var(--sdc-form-label-py);min-width:0}.sdc-textarea .sdc-textarea__label-text{display:inline-flex;align-items:center}.sdc-textarea .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-textarea .sdc-textarea__sr-only{border:var(--sdc-sr-only-border);clip:var(--sdc-sr-only-clip);height:var(--sdc-sr-only-h);margin:var(--sdc-sr-only-m);overflow:var(--sdc-sr-only-overflow);padding:var(--sdc-sr-only-p);position:var(--sdc-sr-only-pos);width:var(--sdc-sr-only-w)}.sdc-textarea .sdc-textarea__info-tooltip-wrap{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;padding:0;margin:0}.sdc-textarea .sdc-textarea__info-tooltip-icon{display:inline-flex;align-items:center;justify-content:center;width:var(--sdc-form-tooltip-size);height:var(--sdc-form-tooltip-size);line-height:1;cursor:pointer;color:var(--sdc-form-tooltip-color)}.sdc-textarea textarea{width:100%;border:var(--sdc-formfield-border)!important;border-radius:var(--sdc-formfield-border-radius)!important;min-height:var(--sdc-formfield-default-height)!important;line-height:var(--sdc-formfield-default-line-height)!important;resize:vertical;padding:var(--sdc-form-textarea-padding-y) var(--sdc-form-input-padding-x)!important;background-color:var(--sdc-formfield-default-bg)!important;color:var(--sdc-text-default)!important;font:inherit!important;box-sizing:border-box!important}.sdc-textarea textarea:focus{outline:none;border-color:var(--sdc-formfield-focus-color)!important;box-shadow:var(--sdc-formfield-focus-shadow)!important}.sdc-textarea textarea:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color)!important;box-shadow:var(--sdc-formfield-focus-shadow-visible)!important}.sdc-textarea textarea:disabled{background-color:var(--sdc-formfield-disabled-bg)!important;cursor:not-allowed!important}\n"] }]
|
|
80
80
|
}], propDecorators: { infoTooltip: [{
|
|
81
81
|
type: Input
|
|
82
82
|
}], infoTooltipPosition: [{
|
|
@@ -91,4 +91,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
91
91
|
type: ViewChild,
|
|
92
92
|
args: ['textareaEl']
|
|
93
93
|
}] } });
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFrQmhFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUF1QjtJQUNuRCxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxtQkFBbUIsR0FBb0IsT0FBTyxDQUFDO0lBQy9DLGdCQUFnQixHQUFpQixNQUFNLENBQUM7SUFFeEMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQzdCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFYyxVQUFVLENBQW1DO0lBRXZGLGVBQWU7UUFDYixJQUFJLENBQUMsZUFB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QyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUdoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9DLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBURVhUQVJFQV9ERUZBVUxUX1JPV1MgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy90ZXh0YXJlYS5jb25zdCc7XG5pbXBvcnQgeyBJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvaW5wdXRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgZmlsdGVyVGV4dFdpdGhSZWdFeHAsIGdldEtleUZpbHRlclJlZ0V4cCwgaXNUZXh0QWxsb3dlZEJ5UmVnRXhwIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9rZXktZmlsdGVyLnV0aWwnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtdGV4dGFyZWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PHN0cmluZz4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgQElucHV0KCkgcm93cyA9IFRFWFRBUkVBX0RFRkFVTFRfUk9XUztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWwnKSBwcml2YXRlIHJlYWRvbmx5IHRleHRhcmVhRWw/OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5QXV0b1Jlc2l6ZSgpO1xuICB9XG5cbiAgb25CZWZvcmVJbnB1dChldmVudDogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlID0gZ2V0S2V5RmlsdGVyUmVnRXhwKHRoaXMua2V5RmlsdGVyKTtcbiAgICBpZiAoIXJlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYXRhLCBpbnB1dFR5cGUgfSA9IGV2ZW50O1xuXG4gICAgY29uc3QgaXNJbnNlcnQgPVxuICAgICAgdHlwZW9mIGlucHV0VHlwZSA9PT0gJ3N0cmluZycgJiYgKGlucHV0VHlwZS5zdGFydHNXaXRoKCdpbnNlcnQnKSB8fCBpbnB1dFR5cGUgPT09ICdpbnNlcnRUZXh0Jyk7XG5cbiAgICBpZiAoIWlzSW5zZXJ0IHx8IHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJyB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNUZXh0QWxsb3dlZEJ5UmVnRXhwKGRhdGEsIHJlKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBvblRleHRhcmVhSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmUgPSBnZXRLZXlGaWx0ZXJSZWdFeHAodGhpcy5rZXlGaWx0ZXIpO1xuICAgIGlmIChyZSkge1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSBmaWx0ZXJUZXh0V2l0aFJlZ0V4cCh0YXJnZXQudmFsdWUsIHJlKTtcbiAgICAgIGlmIChmaWx0ZXJlZCAhPT0gdGFyZ2V0LnZhbHVlKSB7XG4gICAgICAgIHRhcmdldC52YWx1ZSA9IGZpbHRlcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyLm9uSW5wdXQoZXZlbnQpO1xuICAgIHRoaXMuYXBwbHlBdXRvUmVzaXplKHRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXV0b1Jlc2l6ZShlbD86IEhUTUxUZXh0QXJlYUVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IGVsID8/IHRoaXMudGV4dGFyZWFFbD8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgdGFyZ2V0LnN0eWxlLmhlaWdodCA9IGAke3RhcmdldC5zY3JvbGxIZWlnaHR9cHhgO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRleHRhcmVhXCI+XG4gIEBpZiAobGFiZWxLZXkoKSB8fCBpbmZvVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsLXJvd1wiPlxuICAgICAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImlkZW50aXR5LmlkXCIgY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsLXRleHRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRleHRhcmVhX19zci1vbmx5XCI+XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICB9XG4gICAgICBAaWYgKGluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcFxuICAgICAgICAgIGNsYXNzPVwic2RjLXRleHRhcmVhX19pbmZvLXRvb2x0aXAtd3JhcFwiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImluZm9Ub29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwRXZlbnRdPVwiaW5mb1Rvb2x0aXBFdmVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIHNkYy10ZXh0YXJlYV9faW5mby10b29sdGlwLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvc2RjLXRvb2x0aXA+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICA8dGV4dGFyZWFcbiAgICAjdGV4dGFyZWFFbFxuICAgIChiZWZvcmVpbnB1dCk9XCJvbkJlZm9yZUlucHV0KCRldmVudClcIlxuICAgIChpbnB1dCk9XCJvblRleHRhcmVhSW5wdXQoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWVcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbbmdTdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgIFtyb3dzXT1cInJvd3NcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbEtleSgpXG4gICAgICAgID8gKGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogcGxhY2Vob2xkZXJcbiAgICAgICAgICA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS50ZXh0X2FyZWEnIHwgdHJhbnNsYXRlKVxuICAgIFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gaWRlbnRpdHkuaWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICA+PC90ZXh0YXJlYT5cblxuICBAaWYgKG1lc3NhZ2VLZXkoKSkge1xuICAgIDxzbWFsbFxuICAgICAgW2lkXT1cImlkZW50aXR5LmlkICsgJy1lcnJvcidcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgPlxuICAgICAge3sgbWVzc2FnZUtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zbWFsbD5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUVULEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDWCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFFekUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDbkgsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7Ozs7QUFrQmhFLE1BQU0sT0FBTyxpQkFBa0IsU0FBUSxlQUF1QjtJQUNuRCxXQUFXLEdBQWtCLElBQUksQ0FBQztJQUNsQyxtQkFBbUIsR0FBb0IsT0FBTyxDQUFDO0lBQy9DLGdCQUFnQixHQUFpQixNQUFNLENBQUM7SUFFeEMsSUFBSSxHQUFHLHFCQUFxQixDQUFDO0lBQzdCLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFYyxVQUFVLENBQW1DO0lBRXZGLGVBQWU7UUFDYixJQUFJLENBQUMsZUFB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QyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUdoQyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBRUcsSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRW9DLFVBQVU7c0JBQW5ELFNBQVM7dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBURVhUQVJFQV9ERUZBVUxUX1JPV1MgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy90ZXh0YXJlYS5jb25zdCc7XG5pbXBvcnQgeyBJbnB1dHNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2RpcmVjdGl2ZXMvaW5wdXRzLmRpcmVjdGl2ZSc7XG5pbXBvcnQgdHlwZSB7IFRvb2x0aXBFdmVudCwgVG9vbHRpcFBvc2l0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy90b29sdGlwLnR5cGUnO1xuaW1wb3J0IHsgZmlsdGVyVGV4dFdpdGhSZWdFeHAsIGdldEtleUZpbHRlclJlZ0V4cCwgaXNUZXh0QWxsb3dlZEJ5UmVnRXhwIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9rZXktZmlsdGVyLnV0aWwnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtdGV4dGFyZWEnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5zY3NzJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBUZXh0YXJlYUNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgSW5wdXRzQ29tcG9uZW50PHN0cmluZz4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgQElucHV0KCkgaW5mb1Rvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSBpbmZvVG9vbHRpcEV2ZW50OiBUb29sdGlwRXZlbnQgPSAnYm90aCc7XG5cbiAgQElucHV0KCkgcm93cyA9IFRFWFRBUkVBX0RFRkFVTFRfUk9XUztcbiAgQElucHV0KCkgYXV0b1Jlc2l6ZSA9IGZhbHNlO1xuXG4gIEBWaWV3Q2hpbGQoJ3RleHRhcmVhRWwnKSBwcml2YXRlIHJlYWRvbmx5IHRleHRhcmVhRWw/OiBFbGVtZW50UmVmPEhUTUxUZXh0QXJlYUVsZW1lbnQ+O1xuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5QXV0b1Jlc2l6ZSgpO1xuICB9XG5cbiAgb25CZWZvcmVJbnB1dChldmVudDogSW5wdXRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHJlID0gZ2V0S2V5RmlsdGVyUmVnRXhwKHRoaXMua2V5RmlsdGVyKTtcbiAgICBpZiAoIXJlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgeyBkYXRhLCBpbnB1dFR5cGUgfSA9IGV2ZW50O1xuXG4gICAgY29uc3QgaXNJbnNlcnQgPVxuICAgICAgdHlwZW9mIGlucHV0VHlwZSA9PT0gJ3N0cmluZycgJiYgKGlucHV0VHlwZS5zdGFydHNXaXRoKCdpbnNlcnQnKSB8fCBpbnB1dFR5cGUgPT09ICdpbnNlcnRUZXh0Jyk7XG5cbiAgICBpZiAoIWlzSW5zZXJ0IHx8IHR5cGVvZiBkYXRhICE9PSAnc3RyaW5nJyB8fCBkYXRhLmxlbmd0aCA9PT0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNUZXh0QWxsb3dlZEJ5UmVnRXhwKGRhdGEsIHJlKSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBvblRleHRhcmVhSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgeyB0YXJnZXQgfSA9IGV2ZW50O1xuICAgIGlmICghKHRhcmdldCBpbnN0YW5jZW9mIEhUTUxUZXh0QXJlYUVsZW1lbnQpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgcmUgPSBnZXRLZXlGaWx0ZXJSZWdFeHAodGhpcy5rZXlGaWx0ZXIpO1xuICAgIGlmIChyZSkge1xuICAgICAgY29uc3QgZmlsdGVyZWQgPSBmaWx0ZXJUZXh0V2l0aFJlZ0V4cCh0YXJnZXQudmFsdWUsIHJlKTtcbiAgICAgIGlmIChmaWx0ZXJlZCAhPT0gdGFyZ2V0LnZhbHVlKSB7XG4gICAgICAgIHRhcmdldC52YWx1ZSA9IGZpbHRlcmVkO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN1cGVyLm9uSW5wdXQoZXZlbnQpO1xuICAgIHRoaXMuYXBwbHlBdXRvUmVzaXplKHRhcmdldCk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXV0b1Jlc2l6ZShlbD86IEhUTUxUZXh0QXJlYUVsZW1lbnQpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuYXV0b1Jlc2l6ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHRhcmdldCA9IGVsID8/IHRoaXMudGV4dGFyZWFFbD8ubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRhcmdldC5zdHlsZS5oZWlnaHQgPSAnYXV0byc7XG4gICAgdGFyZ2V0LnN0eWxlLmhlaWdodCA9IGAke3RhcmdldC5zY3JvbGxIZWlnaHR9cHhgO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2RjLXRleHRhcmVhXCI+XG4gIEBpZiAobGFiZWxLZXkoKSB8fCBpbmZvVG9vbHRpcCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsLXJvd1wiPlxuICAgICAgQGlmIChsYWJlbEtleSgpKSB7XG4gICAgICAgIDxsYWJlbCBbZm9yXT1cImlkZW50aXR5LmlkXCIgY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtdGV4dGFyZWFfX2xhYmVsLXRleHRcIj5cbiAgICAgICAgICAgIHt7IGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIEBpZiAocmVxdWlyZWQpIHtcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1maWVsZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRleHRhcmVhX19zci1vbmx5XCI+XG4gICAgICAgICAgICAgICAge3sgJ3BsYXRmb3JtLmRhdGFjb3JlLmFjY2Vzc2liaWxpdHkucmVxdWlyZWRfZmllbGQnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICB9XG4gICAgICBAaWYgKGluZm9Ub29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcFxuICAgICAgICAgIGNsYXNzPVwic2RjLXRleHRhcmVhX19pbmZvLXRvb2x0aXAtd3JhcFwiXG4gICAgICAgICAgW3BUb29sdGlwXT1cImluZm9Ub29sdGlwXCJcbiAgICAgICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cImluZm9Ub29sdGlwUG9zaXRpb25cIlxuICAgICAgICAgIFt0b29sdGlwRXZlbnRdPVwiaW5mb1Rvb2x0aXBFdmVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlIHNkYy10ZXh0YXJlYV9faW5mby10b29sdGlwLWljb25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgIDwvc2RjLXRvb2x0aXA+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICA8dGV4dGFyZWFcbiAgICAjdGV4dGFyZWFFbFxuICAgIChiZWZvcmVpbnB1dCk9XCJvbkJlZm9yZUlucHV0KCRldmVudClcIlxuICAgIChpbnB1dCk9XCJvblRleHRhcmVhSW5wdXQoJGV2ZW50KVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICBbaWRdPVwiaWRlbnRpdHkuaWRcIlxuICAgIFtuYW1lXT1cImlkZW50aXR5Lm5hbWVcIlxuICAgIFtuZ0NsYXNzXT1cImdldEludmFsaWRDbGFzcygpXCJcbiAgICBbbmdTdHlsZV09XCJnZXRJbnB1dFN0eWxlKClcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxuICAgIFtyb3dzXT1cInJvd3NcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiXG4gICAgICBsYWJlbEtleSgpXG4gICAgICAgID8gKGxhYmVsS2V5KCkgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogcGxhY2Vob2xkZXJcbiAgICAgICAgICA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSlcbiAgICAgICAgICA6ICgncGxhdGZvcm0uZGF0YWNvcmUuYWNjZXNzaWJpbGl0eS50ZXh0X2FyZWEnIHwgdHJhbnNsYXRlKVxuICAgIFwiXG4gICAgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWRcIlxuICAgIFthdHRyLmFyaWEtZGVzY3JpYmVkYnldPVwibWVzc2FnZUtleSgpID8gaWRlbnRpdHkuaWQgKyAnLWVycm9yJyA6IG51bGxcIlxuICA+PC90ZXh0YXJlYT5cblxuICBAaWYgKG1lc3NhZ2VLZXkoKSkge1xuICAgIDxzbWFsbFxuICAgICAgW2lkXT1cImlkZW50aXR5LmlkICsgJy1lcnJvcidcIlxuICAgICAgW25nQ2xhc3NdPVwiZ2V0SW52YWxpZE1lc3NhZ2VDbGFzcygpXCJcbiAgICAgIHJvbGU9XCJhbGVydFwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgPlxuICAgICAge3sgbWVzc2FnZUtleSgpIHwgdHJhbnNsYXRlIH19XG4gICAgPC9zbWFsbD5cbiAgfVxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { THUMBNAIL_BRAND_WIDTH_PX, THUMBNAIL_DEFAULT_ACTION_ICON_CLASS, THUMBNAIL_DEFAULT_ICON_CLASS, THUMBNAIL_ID_PREFIX, THUMBNAIL_SIZE_PX } from '../../core/constants/thumbnail.const';
|
|
4
|
+
import { nextSequentialId } from '../../core/utils/id.util';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description Miniatura circular (avatar) com suporte a imagem principal, imagem de
|
|
8
|
+
* fallback, ícone de fallback, ícone de ação sobreposto e tamanhos predefinidos.
|
|
9
|
+
*
|
|
10
|
+
* Cascata de exibição: `imageSource` → (erro) → `imageFallback` → (erro) → ícone padrão.
|
|
11
|
+
* Sem imagem alguma, exibe o ícone configurado em `iconClass`.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```html
|
|
15
|
+
* <sdc-thumbnail
|
|
16
|
+
* [imageSource]="urlDaImagem"
|
|
17
|
+
* size="large"
|
|
18
|
+
* iconClass="fas fa-user" />
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export class ThumbnailComponent {
|
|
22
|
+
/** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
|
|
23
|
+
id = nextSequentialId(THUMBNAIL_ID_PREFIX);
|
|
24
|
+
/** @description Tamanho da miniatura. @default 'medium' */
|
|
25
|
+
size = 'medium';
|
|
26
|
+
/** @description URL da imagem principal. */
|
|
27
|
+
imageSource;
|
|
28
|
+
/** @description URL da imagem de fallback exibida quando a principal falha ao carregar. */
|
|
29
|
+
imageFallback = null;
|
|
30
|
+
/** @description Texto alternativo (atributo `alt`) da imagem. */
|
|
31
|
+
imageAlt;
|
|
32
|
+
/** @description Classe do ícone exibido quando não há imagem disponível. @default 'far fa-image' */
|
|
33
|
+
iconClass = THUMBNAIL_DEFAULT_ICON_CLASS;
|
|
34
|
+
/** @description Habilita a exibição de um ícone de ação sobreposto. @default false */
|
|
35
|
+
hasAction = false;
|
|
36
|
+
/** @description Classe do ícone de ação. @default 'fas fa-camera' */
|
|
37
|
+
actionIconClass = THUMBNAIL_DEFAULT_ACTION_ICON_CLASS;
|
|
38
|
+
/** @description Aplica estilo de tile à imagem (altura fixa de 40px). @default false */
|
|
39
|
+
isTile = false;
|
|
40
|
+
/** @description Aplica estilo de marca (retangular, sem borda arredondada). @default false */
|
|
41
|
+
isBrand = false;
|
|
42
|
+
fallback = false;
|
|
43
|
+
fallbackIconClass = THUMBNAIL_DEFAULT_ICON_CLASS;
|
|
44
|
+
get imageWidth() {
|
|
45
|
+
return this.isBrand ? THUMBNAIL_BRAND_WIDTH_PX[this.size] : THUMBNAIL_SIZE_PX[this.size];
|
|
46
|
+
}
|
|
47
|
+
get imageHeight() {
|
|
48
|
+
return THUMBNAIL_SIZE_PX[this.size];
|
|
49
|
+
}
|
|
50
|
+
get altText() {
|
|
51
|
+
return this.imageAlt;
|
|
52
|
+
}
|
|
53
|
+
onImageError() {
|
|
54
|
+
this.fallback = true;
|
|
55
|
+
}
|
|
56
|
+
onFallbackImageError() {
|
|
57
|
+
this.imageFallback = null;
|
|
58
|
+
}
|
|
59
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
60
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ThumbnailComponent, isStandalone: true, selector: "sdc-thumbnail", inputs: { id: "id", size: "size", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasAction: "hasAction", actionIconClass: "actionIconClass", isTile: "isTile", isBrand: "isBrand" }, ngImport: i0, template: "<div\n [id]=\"id\"\n class=\"sdc-thumbnail sdc-thumbnail--{{ size }}\"\n [class.sdc-thumbnail--with-action]=\"hasAction\"\n [class.sdc-thumbnail--brand]=\"isBrand\"\n>\n @if (imageSource || imageFallback) {\n <div\n [id]=\"id + '-image-container'\"\n class=\"sdc-thumbnail__image-container\"\n [class.sdc-thumbnail__image-container--rounded]=\"!isBrand\"\n >\n @if (!fallback) {\n <img\n [id]=\"id + '-image'\"\n class=\"sdc-thumbnail__image\"\n [class.sdc-thumbnail__image--tile]=\"isTile\"\n [src]=\"imageSource\"\n [alt]=\"altText\"\n [attr.width]=\"imageWidth\"\n [attr.height]=\"imageHeight\"\n (error)=\"onImageError()\"\n />\n }\n\n @if (fallback && imageFallback) {\n <img\n [id]=\"id + '-image-fallback'\"\n class=\"sdc-thumbnail__image sdc-thumbnail__image--fallback\"\n [class.sdc-thumbnail__image--tile]=\"isTile\"\n [src]=\"imageFallback\"\n [alt]=\"altText\"\n [attr.width]=\"imageWidth\"\n [attr.height]=\"imageHeight\"\n (error)=\"onFallbackImageError()\"\n />\n }\n\n @if (fallback && !imageFallback) {\n <i\n [id]=\"id + '-fallback-icon'\"\n class=\"sdc-thumbnail__fallback-icon {{ fallbackIconClass }}\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n }\n\n @if (hasAction) {\n <div\n [id]=\"id + '-action-icon-container'\"\n class=\"sdc-thumbnail__action sdc-thumbnail__action--{{ size }}\"\n >\n <span\n [id]=\"id + '-action-icon'\"\n class=\"sdc-thumbnail__action-icon {{ actionIconClass }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n }\n\n @if (!imageSource && !imageFallback) {\n <div\n [id]=\"id + '-icon-container'\"\n class=\"sdc-thumbnail__icon-container sdc-thumbnail__icon-container--{{ size }}\"\n [class.sdc-thumbnail__icon-container--rounded]=\"!isBrand\"\n >\n <span\n [id]=\"id + '-icon'\"\n class=\"sdc-thumbnail__icon {{ iconClass }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n }\n\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}.sdc-thumbnail{--sdc-thumbnail-bg: #ccc;--sdc-thumbnail-color: #fff;--sdc-thumbnail-action-bg: #428bca;color:var(--sdc-thumbnail-color);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);position:relative;text-align:center}.sdc-thumbnail--large{font-size:50px;height:100px;width:100px}.sdc-thumbnail--large.sdc-thumbnail--brand{width:200px}.sdc-thumbnail--medium{font-size:40px;height:70px;width:70px}.sdc-thumbnail--medium.sdc-thumbnail--brand{width:140px}.sdc-thumbnail--small{font-size:22px;height:40px;width:40px}.sdc-thumbnail--small.sdc-thumbnail--brand{width:80px}.sdc-thumbnail--with-action{cursor:pointer}.sdc-thumbnail__action{background-color:var(--sdc-thumbnail-action-bg);border-radius:50%;bottom:0;position:absolute;right:0}.sdc-thumbnail__action--large,.sdc-thumbnail__action--medium{font-size:10pt;height:25px;padding:3px;width:25px}.sdc-thumbnail__action--small{font-size:6pt;height:16px;padding:2px;width:16px}.sdc-thumbnail__icon-container,.sdc-thumbnail__image-container{height:100%;overflow:hidden;width:100%}.sdc-thumbnail__icon-container--rounded,.sdc-thumbnail__image-container--rounded{border-radius:50%}.sdc-thumbnail__icon-container{background-color:var(--sdc-thumbnail-bg);color:var(--sdc-thumbnail-color)}.sdc-thumbnail__icon-container--large{line-height:98px}.sdc-thumbnail__icon-container--medium{line-height:68px}.sdc-thumbnail__icon-container--small{line-height:38px}.sdc-thumbnail__image-container{align-items:center;background-color:var(--sdc-thumbnail-bg);display:flex;justify-content:center}.sdc-thumbnail__image{image-orientation:from-image;width:100%}.sdc-thumbnail__image--tile{height:40px}.sdc-thumbnail__fallback-icon{color:var(--sdc-thumbnail-color)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{ selector: 'sdc-thumbnail', standalone: true, imports: [CommonModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div\n [id]=\"id\"\n class=\"sdc-thumbnail sdc-thumbnail--{{ size }}\"\n [class.sdc-thumbnail--with-action]=\"hasAction\"\n [class.sdc-thumbnail--brand]=\"isBrand\"\n>\n @if (imageSource || imageFallback) {\n <div\n [id]=\"id + '-image-container'\"\n class=\"sdc-thumbnail__image-container\"\n [class.sdc-thumbnail__image-container--rounded]=\"!isBrand\"\n >\n @if (!fallback) {\n <img\n [id]=\"id + '-image'\"\n class=\"sdc-thumbnail__image\"\n [class.sdc-thumbnail__image--tile]=\"isTile\"\n [src]=\"imageSource\"\n [alt]=\"altText\"\n [attr.width]=\"imageWidth\"\n [attr.height]=\"imageHeight\"\n (error)=\"onImageError()\"\n />\n }\n\n @if (fallback && imageFallback) {\n <img\n [id]=\"id + '-image-fallback'\"\n class=\"sdc-thumbnail__image sdc-thumbnail__image--fallback\"\n [class.sdc-thumbnail__image--tile]=\"isTile\"\n [src]=\"imageFallback\"\n [alt]=\"altText\"\n [attr.width]=\"imageWidth\"\n [attr.height]=\"imageHeight\"\n (error)=\"onFallbackImageError()\"\n />\n }\n\n @if (fallback && !imageFallback) {\n <i\n [id]=\"id + '-fallback-icon'\"\n class=\"sdc-thumbnail__fallback-icon {{ fallbackIconClass }}\"\n aria-hidden=\"true\"\n ></i>\n }\n </div>\n }\n\n @if (hasAction) {\n <div\n [id]=\"id + '-action-icon-container'\"\n class=\"sdc-thumbnail__action sdc-thumbnail__action--{{ size }}\"\n >\n <span\n [id]=\"id + '-action-icon'\"\n class=\"sdc-thumbnail__action-icon {{ actionIconClass }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n }\n\n @if (!imageSource && !imageFallback) {\n <div\n [id]=\"id + '-icon-container'\"\n class=\"sdc-thumbnail__icon-container sdc-thumbnail__icon-container--{{ size }}\"\n [class.sdc-thumbnail__icon-container--rounded]=\"!isBrand\"\n >\n <span\n [id]=\"id + '-icon'\"\n class=\"sdc-thumbnail__icon {{ iconClass }}\"\n aria-hidden=\"true\"\n ></span>\n </div>\n }\n\n <ng-content></ng-content>\n</div>\n", styles: [":host{display:inline-block}.sdc-thumbnail{--sdc-thumbnail-bg: #ccc;--sdc-thumbnail-color: #fff;--sdc-thumbnail-action-bg: #428bca;color:var(--sdc-thumbnail-color);font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);position:relative;text-align:center}.sdc-thumbnail--large{font-size:50px;height:100px;width:100px}.sdc-thumbnail--large.sdc-thumbnail--brand{width:200px}.sdc-thumbnail--medium{font-size:40px;height:70px;width:70px}.sdc-thumbnail--medium.sdc-thumbnail--brand{width:140px}.sdc-thumbnail--small{font-size:22px;height:40px;width:40px}.sdc-thumbnail--small.sdc-thumbnail--brand{width:80px}.sdc-thumbnail--with-action{cursor:pointer}.sdc-thumbnail__action{background-color:var(--sdc-thumbnail-action-bg);border-radius:50%;bottom:0;position:absolute;right:0}.sdc-thumbnail__action--large,.sdc-thumbnail__action--medium{font-size:10pt;height:25px;padding:3px;width:25px}.sdc-thumbnail__action--small{font-size:6pt;height:16px;padding:2px;width:16px}.sdc-thumbnail__icon-container,.sdc-thumbnail__image-container{height:100%;overflow:hidden;width:100%}.sdc-thumbnail__icon-container--rounded,.sdc-thumbnail__image-container--rounded{border-radius:50%}.sdc-thumbnail__icon-container{background-color:var(--sdc-thumbnail-bg);color:var(--sdc-thumbnail-color)}.sdc-thumbnail__icon-container--large{line-height:98px}.sdc-thumbnail__icon-container--medium{line-height:68px}.sdc-thumbnail__icon-container--small{line-height:38px}.sdc-thumbnail__image-container{align-items:center;background-color:var(--sdc-thumbnail-bg);display:flex;justify-content:center}.sdc-thumbnail__image{image-orientation:from-image;width:100%}.sdc-thumbnail__image--tile{height:40px}.sdc-thumbnail__fallback-icon{color:var(--sdc-thumbnail-color)}\n"] }]
|
|
65
|
+
}], propDecorators: { id: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], size: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], imageSource: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], imageFallback: [{
|
|
72
|
+
type: Input
|
|
73
|
+
}], imageAlt: [{
|
|
74
|
+
type: Input
|
|
75
|
+
}], iconClass: [{
|
|
76
|
+
type: Input
|
|
77
|
+
}], hasAction: [{
|
|
78
|
+
type: Input
|
|
79
|
+
}], actionIconClass: [{
|
|
80
|
+
type: Input
|
|
81
|
+
}], isTile: [{
|
|
82
|
+
type: Input
|
|
83
|
+
}], isBrand: [{
|
|
84
|
+
type: Input
|
|
85
|
+
}] } });
|
|
86
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvdGh1bWJuYWlsL3RodW1ibmFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdGLE9BQU8sRUFDTCx3QkFBd0IsRUFDeEIsbUNBQW1DLEVBQ25DLDRCQUE0QixFQUM1QixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2xCLE1BQU0sc0NBQXNDLENBQUM7QUFFOUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRTVEOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBVUgsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixzR0FBc0c7SUFDN0YsRUFBRSxHQUFHLGdCQUFnQixDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFcEQsMkRBQTJEO0lBQ2xELElBQUksR0FBa0IsUUFBUSxDQUFDO0lBRXhDLDRDQUE0QztJQUNuQyxXQUFXLENBQVU7SUFFOUIsMkZBQTJGO0lBQ2xGLGFBQWEsR0FBa0IsSUFBSSxDQUFDO0lBRTdDLGlFQUFpRTtJQUN4RCxRQUFRLENBQVU7SUFFM0Isb0dBQW9HO0lBQzNGLFNBQVMsR0FBRyw0QkFBNEIsQ0FBQztJQUVsRCxzRkFBc0Y7SUFDN0UsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUUzQixxRUFBcUU7SUFDNUQsZUFBZSxHQUFHLG1DQUFtQyxDQUFDO0lBRS9ELHdGQUF3RjtJQUMvRSxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBRXhCLDhGQUE4RjtJQUNyRixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBRWYsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUVSLGlCQUFpQixHQUFHLDRCQUE0QixDQUFDO0lBRXBFLElBQWMsVUFBVTtRQUN0QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzNGLENBQUM7SUFFRCxJQUFjLFdBQVc7UUFDdkIsT0FBTyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELElBQWMsT0FBTztRQUNuQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7SUFDdkIsQ0FBQztJQUVTLG9CQUFvQjtRQUM1QixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQztJQUM1QixDQUFDO3dHQXJEVSxrQkFBa0I7NEZBQWxCLGtCQUFrQix5VENyQy9CLHFzRUE2RUEsOHZERDlDWSxZQUFZOzs0RkFNWCxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsZUFBZSxjQUNiLElBQUksV0FDUCxDQUFDLFlBQVksQ0FBQyxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUloQyxFQUFFO3NCQUFWLEtBQUs7Z0JBR0csSUFBSTtzQkFBWixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csYUFBYTtzQkFBckIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBR0csU0FBUztzQkFBakIsS0FBSztnQkFHRyxlQUFlO3NCQUF2QixLQUFLO2dCQUdHLE1BQU07c0JBQWQsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIFRIVU1CTkFJTF9CUkFORF9XSURUSF9QWCxcbiAgVEhVTUJOQUlMX0RFRkFVTFRfQUNUSU9OX0lDT05fQ0xBU1MsXG4gIFRIVU1CTkFJTF9ERUZBVUxUX0lDT05fQ0xBU1MsXG4gIFRIVU1CTkFJTF9JRF9QUkVGSVgsXG4gIFRIVU1CTkFJTF9TSVpFX1BYXG59IGZyb20gJy4uLy4uL2NvcmUvY29uc3RhbnRzL3RodW1ibmFpbC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IFRodW1ibmFpbFNpemUgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3RodW1ibmFpbC50eXBlJztcbmltcG9ydCB7IG5leHRTZXF1ZW50aWFsSWQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2lkLnV0aWwnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBNaW5pYXR1cmEgY2lyY3VsYXIgKGF2YXRhcikgY29tIHN1cG9ydGUgYSBpbWFnZW0gcHJpbmNpcGFsLCBpbWFnZW0gZGVcbiAqIGZhbGxiYWNrLCDDrWNvbmUgZGUgZmFsbGJhY2ssIMOtY29uZSBkZSBhw6fDo28gc29icmVwb3N0byBlIHRhbWFuaG9zIHByZWRlZmluaWRvcy5cbiAqXG4gKiBDYXNjYXRhIGRlIGV4aWJpw6fDo286IGBpbWFnZVNvdXJjZWAg4oaSIChlcnJvKSDihpIgYGltYWdlRmFsbGJhY2tgIOKGkiAoZXJybykg4oaSIMOtY29uZSBwYWRyw6NvLlxuICogU2VtIGltYWdlbSBhbGd1bWEsIGV4aWJlIG8gw61jb25lIGNvbmZpZ3VyYWRvIGVtIGBpY29uQ2xhc3NgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8c2RjLXRodW1ibmFpbFxuICogICBbaW1hZ2VTb3VyY2VdPVwidXJsRGFJbWFnZW1cIlxuICogICBzaXplPVwibGFyZ2VcIlxuICogICBpY29uQ2xhc3M9XCJmYXMgZmEtdXNlclwiIC8+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLXRodW1ibmFpbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3RodW1ibmFpbC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxDb21wb25lbnQge1xuICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbXBvbmVudGUgbm8gRE9NLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xuICBASW5wdXQoKSBpZCA9IG5leHRTZXF1ZW50aWFsSWQoVEhVTUJOQUlMX0lEX1BSRUZJWCk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBUYW1hbmhvIGRhIG1pbmlhdHVyYS4gQGRlZmF1bHQgJ21lZGl1bScgKi9cbiAgQElucHV0KCkgc2l6ZTogVGh1bWJuYWlsU2l6ZSA9ICdtZWRpdW0nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gVVJMIGRhIGltYWdlbSBwcmluY2lwYWwuICovXG4gIEBJbnB1dCgpIGltYWdlU291cmNlPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gVVJMIGRhIGltYWdlbSBkZSBmYWxsYmFjayBleGliaWRhIHF1YW5kbyBhIHByaW5jaXBhbCBmYWxoYSBhbyBjYXJyZWdhci4gKi9cbiAgQElucHV0KCkgaW1hZ2VGYWxsYmFjazogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBUZXh0byBhbHRlcm5hdGl2byAoYXRyaWJ1dG8gYGFsdGApIGRhIGltYWdlbS4gKi9cbiAgQElucHV0KCkgaW1hZ2VBbHQ/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBDbGFzc2UgZG8gw61jb25lIGV4aWJpZG8gcXVhbmRvIG7Do28gaMOhIGltYWdlbSBkaXNwb27DrXZlbC4gQGRlZmF1bHQgJ2ZhciBmYS1pbWFnZScgKi9cbiAgQElucHV0KCkgaWNvbkNsYXNzID0gVEhVTUJOQUlMX0RFRkFVTFRfSUNPTl9DTEFTUztcblxuICAvKiogQGRlc2NyaXB0aW9uIEhhYmlsaXRhIGEgZXhpYmnDp8OjbyBkZSB1bSDDrWNvbmUgZGUgYcOnw6NvIHNvYnJlcG9zdG8uIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGhhc0FjdGlvbiA9IGZhbHNlO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2xhc3NlIGRvIMOtY29uZSBkZSBhw6fDo28uIEBkZWZhdWx0ICdmYXMgZmEtY2FtZXJhJyAqL1xuICBASW5wdXQoKSBhY3Rpb25JY29uQ2xhc3MgPSBUSFVNQk5BSUxfREVGQVVMVF9BQ1RJT05fSUNPTl9DTEFTUztcblxuICAvKiogQGRlc2NyaXB0aW9uIEFwbGljYSBlc3RpbG8gZGUgdGlsZSDDoCBpbWFnZW0gKGFsdHVyYSBmaXhhIGRlIDQwcHgpLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBpc1RpbGUgPSBmYWxzZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIEFwbGljYSBlc3RpbG8gZGUgbWFyY2EgKHJldGFuZ3VsYXIsIHNlbSBib3JkYSBhcnJlZG9uZGFkYSkuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGlzQnJhbmQgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgZmFsbGJhY2sgPSBmYWxzZTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgZmFsbGJhY2tJY29uQ2xhc3MgPSBUSFVNQk5BSUxfREVGQVVMVF9JQ09OX0NMQVNTO1xuXG4gIHByb3RlY3RlZCBnZXQgaW1hZ2VXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLmlzQnJhbmQgPyBUSFVNQk5BSUxfQlJBTkRfV0lEVEhfUFhbdGhpcy5zaXplXSA6IFRIVU1CTkFJTF9TSVpFX1BYW3RoaXMuc2l6ZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGltYWdlSGVpZ2h0KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIFRIVU1CTkFJTF9TSVpFX1BYW3RoaXMuc2l6ZV07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGFsdFRleHQoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5pbWFnZUFsdDtcbiAgfVxuXG4gIHByb3RlY3RlZCBvbkltYWdlRXJyb3IoKTogdm9pZCB7XG4gICAgdGhpcy5mYWxsYmFjayA9IHRydWU7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25GYWxsYmFja0ltYWdlRXJyb3IoKTogdm9pZCB7XG4gICAgdGhpcy5pbWFnZUZhbGxiYWNrID0gbnVsbDtcbiAgfVxufVxuIiwiPGRpdlxuICBbaWRdPVwiaWRcIlxuICBjbGFzcz1cInNkYy10aHVtYm5haWwgc2RjLXRodW1ibmFpbC0te3sgc2l6ZSB9fVwiXG4gIFtjbGFzcy5zZGMtdGh1bWJuYWlsLS13aXRoLWFjdGlvbl09XCJoYXNBY3Rpb25cIlxuICBbY2xhc3Muc2RjLXRodW1ibmFpbC0tYnJhbmRdPVwiaXNCcmFuZFwiXG4+XG4gIEBpZiAoaW1hZ2VTb3VyY2UgfHwgaW1hZ2VGYWxsYmFjaykge1xuICAgIDxkaXZcbiAgICAgIFtpZF09XCJpZCArICctaW1hZ2UtY29udGFpbmVyJ1wiXG4gICAgICBjbGFzcz1cInNkYy10aHVtYm5haWxfX2ltYWdlLWNvbnRhaW5lclwiXG4gICAgICBbY2xhc3Muc2RjLXRodW1ibmFpbF9faW1hZ2UtY29udGFpbmVyLS1yb3VuZGVkXT1cIiFpc0JyYW5kXCJcbiAgICA+XG4gICAgICBAaWYgKCFmYWxsYmFjaykge1xuICAgICAgICA8aW1nXG4gICAgICAgICAgW2lkXT1cImlkICsgJy1pbWFnZSdcIlxuICAgICAgICAgIGNsYXNzPVwic2RjLXRodW1ibmFpbF9faW1hZ2VcIlxuICAgICAgICAgIFtjbGFzcy5zZGMtdGh1bWJuYWlsX19pbWFnZS0tdGlsZV09XCJpc1RpbGVcIlxuICAgICAgICAgIFtzcmNdPVwiaW1hZ2VTb3VyY2VcIlxuICAgICAgICAgIFthbHRdPVwiYWx0VGV4dFwiXG4gICAgICAgICAgW2F0dHIud2lkdGhdPVwiaW1hZ2VXaWR0aFwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cImltYWdlSGVpZ2h0XCJcbiAgICAgICAgICAoZXJyb3IpPVwib25JbWFnZUVycm9yKClcIlxuICAgICAgICAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGZhbGxiYWNrICYmIGltYWdlRmFsbGJhY2spIHtcbiAgICAgICAgPGltZ1xuICAgICAgICAgIFtpZF09XCJpZCArICctaW1hZ2UtZmFsbGJhY2snXCJcbiAgICAgICAgICBjbGFzcz1cInNkYy10aHVtYm5haWxfX2ltYWdlIHNkYy10aHVtYm5haWxfX2ltYWdlLS1mYWxsYmFja1wiXG4gICAgICAgICAgW2NsYXNzLnNkYy10aHVtYm5haWxfX2ltYWdlLS10aWxlXT1cImlzVGlsZVwiXG4gICAgICAgICAgW3NyY109XCJpbWFnZUZhbGxiYWNrXCJcbiAgICAgICAgICBbYWx0XT1cImFsdFRleHRcIlxuICAgICAgICAgIFthdHRyLndpZHRoXT1cImltYWdlV2lkdGhcIlxuICAgICAgICAgIFthdHRyLmhlaWdodF09XCJpbWFnZUhlaWdodFwiXG4gICAgICAgICAgKGVycm9yKT1cIm9uRmFsbGJhY2tJbWFnZUVycm9yKClcIlxuICAgICAgICAvPlxuICAgICAgfVxuXG4gICAgICBAaWYgKGZhbGxiYWNrICYmICFpbWFnZUZhbGxiYWNrKSB7XG4gICAgICAgIDxpXG4gICAgICAgICAgW2lkXT1cImlkICsgJy1mYWxsYmFjay1pY29uJ1wiXG4gICAgICAgICAgY2xhc3M9XCJzZGMtdGh1bWJuYWlsX19mYWxsYmFjay1pY29uIHt7IGZhbGxiYWNrSWNvbkNsYXNzIH19XCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICA+PC9pPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgQGlmIChoYXNBY3Rpb24pIHtcbiAgICA8ZGl2XG4gICAgICBbaWRdPVwiaWQgKyAnLWFjdGlvbi1pY29uLWNvbnRhaW5lcidcIlxuICAgICAgY2xhc3M9XCJzZGMtdGh1bWJuYWlsX19hY3Rpb24gc2RjLXRodW1ibmFpbF9fYWN0aW9uLS17eyBzaXplIH19XCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbaWRdPVwiaWQgKyAnLWFjdGlvbi1pY29uJ1wiXG4gICAgICAgIGNsYXNzPVwic2RjLXRodW1ibmFpbF9fYWN0aW9uLWljb24ge3sgYWN0aW9uSWNvbkNsYXNzIH19XCJcbiAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgID48L3NwYW4+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKCFpbWFnZVNvdXJjZSAmJiAhaW1hZ2VGYWxsYmFjaykge1xuICAgIDxkaXZcbiAgICAgIFtpZF09XCJpZCArICctaWNvbi1jb250YWluZXInXCJcbiAgICAgIGNsYXNzPVwic2RjLXRodW1ibmFpbF9faWNvbi1jb250YWluZXIgc2RjLXRodW1ibmFpbF9faWNvbi1jb250YWluZXItLXt7IHNpemUgfX1cIlxuICAgICAgW2NsYXNzLnNkYy10aHVtYm5haWxfX2ljb24tY29udGFpbmVyLS1yb3VuZGVkXT1cIiFpc0JyYW5kXCJcbiAgICA+XG4gICAgICA8c3BhblxuICAgICAgICBbaWRdPVwiaWQgKyAnLWljb24nXCJcbiAgICAgICAgY2xhc3M9XCJzZGMtdGh1bWJuYWlsX19pY29uIHt7IGljb25DbGFzcyB9fVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICA+PC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG5cbiAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuPC9kaXY+XG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { THUMBNAILS_LISTEN_KEY, THUMBNAILS_SELECT_ITEM_KEY, THUMBNAILS_VIEW_KEY } from '../../../../core/constants/thumbnails.const';
|
|
5
|
+
import { ThumbnailItemImageComponent } from '../thumbnail-item-image/thumbnail-item-image.component';
|
|
6
|
+
import { ThumbnailItemVideoComponent } from '../thumbnail-item-video/thumbnail-item-video.component';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@ngx-translate/core";
|
|
9
|
+
/**
|
|
10
|
+
* @description Card individual de uma miniatura, exibindo o conteúdo de acordo
|
|
11
|
+
* com o `type` do item (`video`, `image`, `audio` ou `file`) e, opcionalmente,
|
|
12
|
+
* um checkbox de seleção.
|
|
13
|
+
*
|
|
14
|
+
* @category Data
|
|
15
|
+
*/
|
|
16
|
+
export class ThumbnailItemComponent {
|
|
17
|
+
itemData;
|
|
18
|
+
isCheckable = true;
|
|
19
|
+
isChecked = false;
|
|
20
|
+
combineCheckboxEvent = true;
|
|
21
|
+
checked = new EventEmitter();
|
|
22
|
+
opened = new EventEmitter();
|
|
23
|
+
listenKey = THUMBNAILS_LISTEN_KEY;
|
|
24
|
+
viewKey = THUMBNAILS_VIEW_KEY;
|
|
25
|
+
selectItemKey = THUMBNAILS_SELECT_ITEM_KEY;
|
|
26
|
+
onClick() {
|
|
27
|
+
this.opened.emit(this.itemData);
|
|
28
|
+
}
|
|
29
|
+
onCheckboxChange(event) {
|
|
30
|
+
const checked = event.target.checked;
|
|
31
|
+
this.checked.emit({ item: this.itemData, selected: checked });
|
|
32
|
+
}
|
|
33
|
+
onCheckboxClick(event) {
|
|
34
|
+
if (this.combineCheckboxEvent) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
event.stopPropagation();
|
|
38
|
+
}
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ThumbnailItemComponent, isStandalone: true, selector: "sdc-thumbnail-item", inputs: { itemData: "itemData", isCheckable: "isCheckable", isChecked: "isChecked", combineCheckboxEvent: "combineCheckboxEvent" }, outputs: { checked: "checked", opened: "opened" }, ngImport: i0, template: "@if (itemData) {\n <button type=\"button\" class=\"sdc-thumbnail-item\" (click)=\"onClick()\">\n <div class=\"sdc-thumbnail-item__content\">\n <div class=\"sdc-thumbnail-item__inner\">\n @switch (itemData.type) {\n @case ('video') {\n <sdc-thumbnail-item-video [imageUrl]=\"itemData.imageUrl ?? ''\" [videoUrl]=\"itemData.videoUrl ?? ''\" />\n }\n @case ('image') {\n <sdc-thumbnail-item-image [imageUrl]=\"itemData.imageUrl ?? ''\" />\n }\n @case ('audio') {\n <i class=\"sdc-thumbnail-item__icon fas fa-volume-down\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item__label\">{{ listenKey | translate }}</span>\n }\n @case ('file') {\n <i class=\"sdc-thumbnail-item__icon fas fa-file-alt\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item__label\">{{ viewKey | translate }}</span>\n }\n }\n </div>\n\n @if (isCheckable) {\n <span\n class=\"sdc-thumbnail-item__checkbox\"\n (click)=\"onCheckboxClick($event)\"\n (keydown)=\"onCheckboxClick($event)\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-thumbnail-item__checkbox-input\"\n [checked]=\"isChecked\"\n [attr.aria-label]=\"selectItemKey | translate: { fileName: itemData.fileName }\"\n (change)=\"onCheckboxChange($event)\"\n />\n </span>\n }\n </div>\n\n <span class=\"sdc-thumbnail-item__file-name\">{{ itemData.fileName }}</span>\n </button>\n}\n", styles: [":host{display:inline-block}.sdc-thumbnail-item{--sdc-thumbnails-gradient-start: #5288b6;--sdc-thumbnails-gradient-end: #00c89a;--sdc-thumbnails-radius: 8px;--sdc-thumbnails-size: 100px;--sdc-thumbnails-icon-color: #fff;--sdc-thumbnails-label-color: #fff;--sdc-thumbnails-filename-color: #525966;align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;flex-direction:column;font-family:inherit;justify-content:center;padding:0;width:var(--sdc-thumbnails-size)}.sdc-thumbnail-item:hover{transform:scale(1.05);transition:transform .2s ease-in-out}.sdc-thumbnail-item:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-thumbnail-item__content{align-items:center;background-image:linear-gradient(to top right,var(--sdc-thumbnails-gradient-start),var(--sdc-thumbnails-gradient-end));border-radius:var(--sdc-thumbnails-radius);display:flex;flex-direction:column;height:var(--sdc-thumbnails-size);justify-content:center;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.sdc-thumbnail-item__inner{align-items:center;color:var(--sdc-thumbnails-icon-color);display:flex;flex-direction:column;gap:4px;overflow:hidden;width:100%}.sdc-thumbnail-item__icon{font-size:24px}.sdc-thumbnail-item__label{color:var(--sdc-thumbnails-label-color);font-size:12px;overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}.sdc-thumbnail-item__checkbox{position:absolute;right:8px;top:8px}.sdc-thumbnail-item__checkbox-input{appearance:none;background:#fff;border:1px solid #d0d5dd;border-radius:4px;cursor:pointer;height:16px;margin:0;position:relative;width:16px}.sdc-thumbnail-item__checkbox-input:checked{background-color:#428bca;border-color:#428bca}.sdc-thumbnail-item__checkbox-input:checked:after{border:solid #fff;border-width:0 2px 2px 0;box-sizing:border-box;content:\"\";height:55%;left:50%;position:absolute;top:45%;transform:translate(-50%,-60%) rotate(45deg);width:30%}.sdc-thumbnail-item__checkbox-input:focus-visible{outline:2px solid #428bca;outline-offset:2px}.sdc-thumbnail-item__file-name{color:var(--sdc-thumbnails-filename-color);font-family:inherit;font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailItemImageComponent, selector: "sdc-thumbnail-item-image", inputs: ["imageUrl"] }, { kind: "component", type: ThumbnailItemVideoComponent, selector: "sdc-thumbnail-item-video", inputs: ["imageUrl", "videoUrl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
41
|
+
}
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemComponent, decorators: [{
|
|
43
|
+
type: Component,
|
|
44
|
+
args: [{ standalone: true, selector: 'sdc-thumbnail-item', imports: [CommonModule, TranslateModule, ThumbnailItemImageComponent, ThumbnailItemVideoComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (itemData) {\n <button type=\"button\" class=\"sdc-thumbnail-item\" (click)=\"onClick()\">\n <div class=\"sdc-thumbnail-item__content\">\n <div class=\"sdc-thumbnail-item__inner\">\n @switch (itemData.type) {\n @case ('video') {\n <sdc-thumbnail-item-video [imageUrl]=\"itemData.imageUrl ?? ''\" [videoUrl]=\"itemData.videoUrl ?? ''\" />\n }\n @case ('image') {\n <sdc-thumbnail-item-image [imageUrl]=\"itemData.imageUrl ?? ''\" />\n }\n @case ('audio') {\n <i class=\"sdc-thumbnail-item__icon fas fa-volume-down\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item__label\">{{ listenKey | translate }}</span>\n }\n @case ('file') {\n <i class=\"sdc-thumbnail-item__icon fas fa-file-alt\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item__label\">{{ viewKey | translate }}</span>\n }\n }\n </div>\n\n @if (isCheckable) {\n <span\n class=\"sdc-thumbnail-item__checkbox\"\n (click)=\"onCheckboxClick($event)\"\n (keydown)=\"onCheckboxClick($event)\"\n >\n <input\n type=\"checkbox\"\n class=\"sdc-thumbnail-item__checkbox-input\"\n [checked]=\"isChecked\"\n [attr.aria-label]=\"selectItemKey | translate: { fileName: itemData.fileName }\"\n (change)=\"onCheckboxChange($event)\"\n />\n </span>\n }\n </div>\n\n <span class=\"sdc-thumbnail-item__file-name\">{{ itemData.fileName }}</span>\n </button>\n}\n", styles: [":host{display:inline-block}.sdc-thumbnail-item{--sdc-thumbnails-gradient-start: #5288b6;--sdc-thumbnails-gradient-end: #00c89a;--sdc-thumbnails-radius: 8px;--sdc-thumbnails-size: 100px;--sdc-thumbnails-icon-color: #fff;--sdc-thumbnails-label-color: #fff;--sdc-thumbnails-filename-color: #525966;align-items:center;background:transparent;border:none;cursor:pointer;display:inline-flex;flex-direction:column;font-family:inherit;justify-content:center;padding:0;width:var(--sdc-thumbnails-size)}.sdc-thumbnail-item:hover{transform:scale(1.05);transition:transform .2s ease-in-out}.sdc-thumbnail-item:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-thumbnail-item__content{align-items:center;background-image:linear-gradient(to top right,var(--sdc-thumbnails-gradient-start),var(--sdc-thumbnails-gradient-end));border-radius:var(--sdc-thumbnails-radius);display:flex;flex-direction:column;height:var(--sdc-thumbnails-size);justify-content:center;overflow:hidden;position:relative;-webkit-user-select:none;user-select:none;width:100%}.sdc-thumbnail-item__inner{align-items:center;color:var(--sdc-thumbnails-icon-color);display:flex;flex-direction:column;gap:4px;overflow:hidden;width:100%}.sdc-thumbnail-item__icon{font-size:24px}.sdc-thumbnail-item__label{color:var(--sdc-thumbnails-label-color);font-size:12px;overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}.sdc-thumbnail-item__checkbox{position:absolute;right:8px;top:8px}.sdc-thumbnail-item__checkbox-input{appearance:none;background:#fff;border:1px solid #d0d5dd;border-radius:4px;cursor:pointer;height:16px;margin:0;position:relative;width:16px}.sdc-thumbnail-item__checkbox-input:checked{background-color:#428bca;border-color:#428bca}.sdc-thumbnail-item__checkbox-input:checked:after{border:solid #fff;border-width:0 2px 2px 0;box-sizing:border-box;content:\"\";height:55%;left:50%;position:absolute;top:45%;transform:translate(-50%,-60%) rotate(45deg);width:30%}.sdc-thumbnail-item__checkbox-input:focus-visible{outline:2px solid #428bca;outline-offset:2px}.sdc-thumbnail-item__file-name{color:var(--sdc-thumbnails-filename-color);font-family:inherit;font-size:12px;overflow:hidden;text-align:center;text-overflow:ellipsis;-webkit-user-select:none;user-select:none;white-space:nowrap;width:100%}\n"] }]
|
|
45
|
+
}], propDecorators: { itemData: [{
|
|
46
|
+
type: Input,
|
|
47
|
+
args: [{ required: true }]
|
|
48
|
+
}], isCheckable: [{
|
|
49
|
+
type: Input
|
|
50
|
+
}], isChecked: [{
|
|
51
|
+
type: Input
|
|
52
|
+
}], combineCheckboxEvent: [{
|
|
53
|
+
type: Input
|
|
54
|
+
}], checked: [{
|
|
55
|
+
type: Output
|
|
56
|
+
}], opened: [{
|
|
57
|
+
type: Output
|
|
58
|
+
}] } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0vdGh1bWJuYWlsLWl0ZW0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0vdGh1bWJuYWlsLWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSwwQkFBMEIsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBRXJJLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDO0FBQ3JHLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHdEQUF3RCxDQUFDOzs7QUFFckc7Ozs7OztHQU1HO0FBVUgsTUFBTSxPQUFPLHNCQUFzQjtJQUNOLFFBQVEsQ0FBa0I7SUFDNUMsV0FBVyxHQUFHLElBQUksQ0FBQztJQUNuQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ2xCLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUUzQixPQUFPLEdBQUcsSUFBSSxZQUFZLEVBQStDLENBQUM7SUFDMUUsTUFBTSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO0lBRTdDLFNBQVMsR0FBRyxxQkFBcUIsQ0FBQztJQUNsQyxPQUFPLEdBQUcsbUJBQW1CLENBQUM7SUFDOUIsYUFBYSxHQUFHLDBCQUEwQixDQUFDO0lBRXBELE9BQU87UUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQVk7UUFDM0IsTUFBTSxPQUFPLEdBQUksS0FBSyxDQUFDLE1BQTJCLENBQUMsT0FBTyxDQUFDO1FBQzNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELGVBQWUsQ0FBQyxLQUFZO1FBQzFCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDOUIsT0FBTztRQUNULENBQUM7UUFFRCxLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDMUIsQ0FBQzt3R0E1QlUsc0JBQXNCOzRGQUF0QixzQkFBc0IscVFDekJuQyxrbURBMENBLDh6RUR2QlksWUFBWSw4QkFBRSxlQUFlLDRGQUFFLDJCQUEyQiwyRkFBRSwyQkFBMkI7OzRGQU10RixzQkFBc0I7a0JBVGxDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLG9CQUFvQixXQUNyQixDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsMkJBQTJCLENBQUMsbUJBR2pGLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2QsUUFBUTtzQkFBbEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxvQkFBb0I7c0JBQTVCLEtBQUs7Z0JBRUksT0FBTztzQkFBaEIsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IFRIVU1CTkFJTFNfTElTVEVOX0tFWSwgVEhVTUJOQUlMU19TRUxFQ1RfSVRFTV9LRVksIFRIVU1CTkFJTFNfVklFV19LRVkgfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2NvbnN0YW50cy90aHVtYm5haWxzLmNvbnN0JztcbmltcG9ydCB0eXBlIHsgVGh1bWJuYWlsc0l0ZW0gfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3R5cGVzL3RodW1ibmFpbHMudHlwZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxJdGVtSW1hZ2VDb21wb25lbnQgfSBmcm9tICcuLi90aHVtYm5haWwtaXRlbS1pbWFnZS90aHVtYm5haWwtaXRlbS1pbWFnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGh1bWJuYWlsSXRlbVZpZGVvQ29tcG9uZW50IH0gZnJvbSAnLi4vdGh1bWJuYWlsLWl0ZW0tdmlkZW8vdGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50JztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ2FyZCBpbmRpdmlkdWFsIGRlIHVtYSBtaW5pYXR1cmEsIGV4aWJpbmRvIG8gY29udGXDumRvIGRlIGFjb3Jkb1xuICogY29tIG8gYHR5cGVgIGRvIGl0ZW0gKGB2aWRlb2AsIGBpbWFnZWAsIGBhdWRpb2Agb3UgYGZpbGVgKSBlLCBvcGNpb25hbG1lbnRlLFxuICogdW0gY2hlY2tib3ggZGUgc2VsZcOnw6NvLlxuICpcbiAqIEBjYXRlZ29yeSBEYXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy10aHVtYm5haWwtaXRlbScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZSwgVGh1bWJuYWlsSXRlbUltYWdlQ29tcG9uZW50LCBUaHVtYm5haWxJdGVtVmlkZW9Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLWl0ZW0uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGh1bWJuYWlsLWl0ZW0uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsSXRlbUNvbXBvbmVudCB7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIGl0ZW1EYXRhITogVGh1bWJuYWlsc0l0ZW07XG4gIEBJbnB1dCgpIGlzQ2hlY2thYmxlID0gdHJ1ZTtcbiAgQElucHV0KCkgaXNDaGVja2VkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGNvbWJpbmVDaGVja2JveEV2ZW50ID0gdHJ1ZTtcblxuICBAT3V0cHV0KCkgY2hlY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBpdGVtOiBUaHVtYm5haWxzSXRlbTsgc2VsZWN0ZWQ6IGJvb2xlYW4gfT4oKTtcbiAgQE91dHB1dCgpIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8VGh1bWJuYWlsc0l0ZW0+KCk7XG5cbiAgcmVhZG9ubHkgbGlzdGVuS2V5ID0gVEhVTUJOQUlMU19MSVNURU5fS0VZO1xuICByZWFkb25seSB2aWV3S2V5ID0gVEhVTUJOQUlMU19WSUVXX0tFWTtcbiAgcmVhZG9ubHkgc2VsZWN0SXRlbUtleSA9IFRIVU1CTkFJTFNfU0VMRUNUX0lURU1fS0VZO1xuXG4gIG9uQ2xpY2soKTogdm9pZCB7XG4gICAgdGhpcy5vcGVuZWQuZW1pdCh0aGlzLml0ZW1EYXRhKTtcbiAgfVxuXG4gIG9uQ2hlY2tib3hDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY2hlY2tlZCA9IChldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkuY2hlY2tlZDtcbiAgICB0aGlzLmNoZWNrZWQuZW1pdCh7IGl0ZW06IHRoaXMuaXRlbURhdGEsIHNlbGVjdGVkOiBjaGVja2VkIH0pO1xuICB9XG5cbiAgb25DaGVja2JveENsaWNrKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbWJpbmVDaGVja2JveEV2ZW50KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gIH1cbn1cbiIsIkBpZiAoaXRlbURhdGEpIHtcbiAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJzZGMtdGh1bWJuYWlsLWl0ZW1cIiAoY2xpY2spPVwib25DbGljaygpXCI+XG4gICAgPGRpdiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbV9fY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbV9faW5uZXJcIj5cbiAgICAgICAgQHN3aXRjaCAoaXRlbURhdGEudHlwZSkge1xuICAgICAgICAgIEBjYXNlICgndmlkZW8nKSB7XG4gICAgICAgICAgICA8c2RjLXRodW1ibmFpbC1pdGVtLXZpZGVvIFtpbWFnZVVybF09XCJpdGVtRGF0YS5pbWFnZVVybCA/PyAnJ1wiIFt2aWRlb1VybF09XCJpdGVtRGF0YS52aWRlb1VybCA/PyAnJ1wiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnaW1hZ2UnKSB7XG4gICAgICAgICAgICA8c2RjLXRodW1ibmFpbC1pdGVtLWltYWdlIFtpbWFnZVVybF09XCJpdGVtRGF0YS5pbWFnZVVybCA/PyAnJ1wiIC8+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnYXVkaW8nKSB7XG4gICAgICAgICAgICA8aSBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbV9faWNvbiBmYXMgZmEtdm9sdW1lLWRvd25cIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbV9fbGFiZWxcIj57eyBsaXN0ZW5LZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBjYXNlICgnZmlsZScpIHtcbiAgICAgICAgICAgIDxpIGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtX19pY29uIGZhcyBmYS1maWxlLWFsdFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtX19sYWJlbFwiPnt7IHZpZXdLZXkgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgQGlmIChpc0NoZWNrYWJsZSkge1xuICAgICAgICA8c3BhblxuICAgICAgICAgIGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtX19jaGVja2JveFwiXG4gICAgICAgICAgKGNsaWNrKT1cIm9uQ2hlY2tib3hDbGljaygkZXZlbnQpXCJcbiAgICAgICAgICAoa2V5ZG93bik9XCJvbkNoZWNrYm94Q2xpY2soJGV2ZW50KVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbV9fY2hlY2tib3gtaW5wdXRcIlxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNDaGVja2VkXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwic2VsZWN0SXRlbUtleSB8IHRyYW5zbGF0ZTogeyBmaWxlTmFtZTogaXRlbURhdGEuZmlsZU5hbWUgfVwiXG4gICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hlY2tib3hDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtdGh1bWJuYWlsLWl0ZW1fX2ZpbGUtbmFtZVwiPnt7IGl0ZW1EYXRhLmZpbGVOYW1lIH19PC9zcGFuPlxuICA8L2J1dHRvbj5cbn1cbiJdfQ==
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, Input, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { THUMBNAILS_VIEW_KEY } from '../../../../core/constants/thumbnails.const';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
|
7
|
+
/**
|
|
8
|
+
* @description Conteúdo de uma miniatura do tipo `image`. Exibe a imagem como
|
|
9
|
+
* background cobrindo o card ou, na ausência de `imageUrl`, um ícone de fallback.
|
|
10
|
+
*
|
|
11
|
+
* @category Data
|
|
12
|
+
*/
|
|
13
|
+
export class ThumbnailItemImageComponent {
|
|
14
|
+
imageUrl = '';
|
|
15
|
+
viewKey = THUMBNAILS_VIEW_KEY;
|
|
16
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
17
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ThumbnailItemImageComponent, isStandalone: true, selector: "sdc-thumbnail-item-image", inputs: { imageUrl: "imageUrl" }, ngImport: i0, template: "<div class=\"sdc-thumbnail-item-image\">\n @if (imageUrl) {\n <div class=\"sdc-thumbnail-item-image__image\" [style.background-image]=\"'url(' + imageUrl + ')'\"></div>\n } @else {\n <div class=\"sdc-thumbnail-item-image__content\">\n <i class=\"sdc-thumbnail-item-image__icon fas fa-image\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item-image__label\">{{ viewKey | translate }}</span>\n </div>\n }\n</div>\n", styles: [":host{display:block;height:100%;width:100%}.sdc-thumbnail-item-image{align-items:center;display:flex;height:100px;justify-content:center;width:100px}.sdc-thumbnail-item-image__image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.sdc-thumbnail-item-image__content{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;width:100%}.sdc-thumbnail-item-image__icon{font-size:24px}.sdc-thumbnail-item-image__label{font-size:12px;overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
18
|
+
}
|
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemImageComponent, decorators: [{
|
|
20
|
+
type: Component,
|
|
21
|
+
args: [{ standalone: true, selector: 'sdc-thumbnail-item-image', imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-thumbnail-item-image\">\n @if (imageUrl) {\n <div class=\"sdc-thumbnail-item-image__image\" [style.background-image]=\"'url(' + imageUrl + ')'\"></div>\n } @else {\n <div class=\"sdc-thumbnail-item-image__content\">\n <i class=\"sdc-thumbnail-item-image__icon fas fa-image\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item-image__label\">{{ viewKey | translate }}</span>\n </div>\n }\n</div>\n", styles: [":host{display:block;height:100%;width:100%}.sdc-thumbnail-item-image{align-items:center;display:flex;height:100px;justify-content:center;width:100px}.sdc-thumbnail-item-image__image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.sdc-thumbnail-item-image__content{align-items:center;color:#fff;display:flex;flex-direction:column;justify-content:center;width:100%}.sdc-thumbnail-item-image__icon{font-size:24px}.sdc-thumbnail-item-image__label{font-size:12px;overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}\n"] }]
|
|
22
|
+
}], propDecorators: { imageUrl: [{
|
|
23
|
+
type: Input
|
|
24
|
+
}] } });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWl0ZW0taW1hZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0taW1hZ2UvdGh1bWJuYWlsLWl0ZW0taW1hZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0taW1hZ2UvdGh1bWJuYWlsLWl0ZW0taW1hZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7O0FBRWxGOzs7OztHQUtHO0FBVUgsTUFBTSxPQUFPLDJCQUEyQjtJQUM3QixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBRWQsT0FBTyxHQUFHLG1CQUFtQixDQUFDO3dHQUg1QiwyQkFBMkI7NEZBQTNCLDJCQUEyQixzSENyQnhDLCtiQVVBLCtsQkRLWSxZQUFZLDhCQUFFLGVBQWU7OzRGQU01QiwyQkFBMkI7a0JBVHZDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDBCQUEwQixXQUMzQixDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLFFBQVE7c0JBQWhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgSW5wdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgVEhVTUJOQUlMU19WSUVXX0tFWSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvY29uc3RhbnRzL3RodW1ibmFpbHMuY29uc3QnO1xuXG4vKipcbiAqIEBkZXNjcmlwdGlvbiBDb250ZcO6ZG8gZGUgdW1hIG1pbmlhdHVyYSBkbyB0aXBvIGBpbWFnZWAuIEV4aWJlIGEgaW1hZ2VtIGNvbW9cbiAqIGJhY2tncm91bmQgY29icmluZG8gbyBjYXJkIG91LCBuYSBhdXPDqm5jaWEgZGUgYGltYWdlVXJsYCwgdW0gw61jb25lIGRlIGZhbGxiYWNrLlxuICpcbiAqIEBjYXRlZ29yeSBEYXRhXG4gKi9cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBzZWxlY3RvcjogJ3NkYy10aHVtYm5haWwtaXRlbS1pbWFnZScsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi90aHVtYm5haWwtaXRlbS1pbWFnZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90aHVtYm5haWwtaXRlbS1pbWFnZS5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBUaHVtYm5haWxJdGVtSW1hZ2VDb21wb25lbnQge1xuICBASW5wdXQoKSBpbWFnZVVybCA9ICcnO1xuXG4gIHJlYWRvbmx5IHZpZXdLZXkgPSBUSFVNQk5BSUxTX1ZJRVdfS0VZO1xufVxuIiwiPGRpdiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbS1pbWFnZVwiPlxuICBAaWYgKGltYWdlVXJsKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbS1pbWFnZV9faW1hZ2VcIiBbc3R5bGUuYmFja2dyb3VuZC1pbWFnZV09XCIndXJsKCcgKyBpbWFnZVVybCArICcpJ1wiPjwvZGl2PlxuICB9IEBlbHNlIHtcbiAgICA8ZGl2IGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtLWltYWdlX19jb250ZW50XCI+XG4gICAgICA8aSBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbS1pbWFnZV9faWNvbiBmYXMgZmEtaW1hZ2VcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICA8c3BhbiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbS1pbWFnZV9fbGFiZWxcIj57eyB2aWV3S2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIDwvZGl2PlxuICB9XG48L2Rpdj5cbiJdfQ==
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, HostListener, Input, ViewChild, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { THUMBNAILS_WATCH_KEY } from '../../../../core/constants/thumbnails.const';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@ngx-translate/core";
|
|
7
|
+
/**
|
|
8
|
+
* @description Conteúdo de uma miniatura do tipo `video`. Exibe uma imagem de
|
|
9
|
+
* capa com um overlay de play e, ao passar o mouse, reproduz um preview em loop
|
|
10
|
+
* do vídeo (quando `videoUrl` é informado).
|
|
11
|
+
*
|
|
12
|
+
* @category Data
|
|
13
|
+
*/
|
|
14
|
+
export class ThumbnailItemVideoComponent {
|
|
15
|
+
imageUrl = '';
|
|
16
|
+
videoUrl = '';
|
|
17
|
+
videoPlayer;
|
|
18
|
+
watchKey = THUMBNAILS_WATCH_KEY;
|
|
19
|
+
onMouseEnter() {
|
|
20
|
+
this.videoPlayer?.nativeElement?.play();
|
|
21
|
+
}
|
|
22
|
+
onMouseLeave() {
|
|
23
|
+
const video = this.videoPlayer?.nativeElement;
|
|
24
|
+
if (!video) {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
video.pause();
|
|
28
|
+
video.currentTime = 0;
|
|
29
|
+
}
|
|
30
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemVideoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ThumbnailItemVideoComponent, isStandalone: true, selector: "sdc-thumbnail-item-video", inputs: { imageUrl: "imageUrl", videoUrl: "videoUrl" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, viewQueries: [{ propertyName: "videoPlayer", first: true, predicate: ["videoPlayer"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-thumbnail-item-video\" [class.sdc-thumbnail-item-video--playable]=\"videoUrl\">\n <div class=\"sdc-thumbnail-item-video__image\" [style.background-image]=\"'url(' + imageUrl + ')'\"></div>\n\n <div class=\"sdc-thumbnail-item-video__overlay\">\n <i class=\"sdc-thumbnail-item-video__icon fas fa-play\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item-video__label\">{{ watchKey | translate }}</span>\n </div>\n\n @if (videoUrl) {\n <div aria-hidden=\"true\">\n <video\n #videoPlayer\n class=\"sdc-thumbnail-item-video__preview\"\n [src]=\"videoUrl\"\n tabindex=\"-1\"\n loop\n muted\n preload=\"none\"\n ></video>\n </div>\n }\n</div>\n", styles: [":host{cursor:pointer;display:block;height:100px;overflow:hidden;position:relative;width:100px}.sdc-thumbnail-item-video{height:100%;overflow:hidden;position:relative;width:100%}.sdc-thumbnail-item-video__image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.sdc-thumbnail-item-video__preview{height:100%;left:0;object-fit:cover;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%}.sdc-thumbnail-item-video__overlay{align-items:center;color:#fff;display:flex;flex-direction:column;gap:8px;justify-content:center;left:50%;opacity:1;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease-in-out;width:100%;z-index:10}.sdc-thumbnail-item-video__icon{color:#fff;font-size:24px}.sdc-thumbnail-item-video__label{overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}.sdc-thumbnail-item-video:hover .sdc-thumbnail-item-video__preview{opacity:1}.sdc-thumbnail-item-video--playable:hover .sdc-thumbnail-item-video__overlay{opacity:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
32
|
+
}
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailItemVideoComponent, decorators: [{
|
|
34
|
+
type: Component,
|
|
35
|
+
args: [{ standalone: true, selector: 'sdc-thumbnail-item-video', imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-thumbnail-item-video\" [class.sdc-thumbnail-item-video--playable]=\"videoUrl\">\n <div class=\"sdc-thumbnail-item-video__image\" [style.background-image]=\"'url(' + imageUrl + ')'\"></div>\n\n <div class=\"sdc-thumbnail-item-video__overlay\">\n <i class=\"sdc-thumbnail-item-video__icon fas fa-play\" aria-hidden=\"true\"></i>\n <span class=\"sdc-thumbnail-item-video__label\">{{ watchKey | translate }}</span>\n </div>\n\n @if (videoUrl) {\n <div aria-hidden=\"true\">\n <video\n #videoPlayer\n class=\"sdc-thumbnail-item-video__preview\"\n [src]=\"videoUrl\"\n tabindex=\"-1\"\n loop\n muted\n preload=\"none\"\n ></video>\n </div>\n }\n</div>\n", styles: [":host{cursor:pointer;display:block;height:100px;overflow:hidden;position:relative;width:100px}.sdc-thumbnail-item-video{height:100%;overflow:hidden;position:relative;width:100%}.sdc-thumbnail-item-video__image{background-repeat:no-repeat;background-size:cover;height:100%;width:100%}.sdc-thumbnail-item-video__preview{height:100%;left:0;object-fit:cover;opacity:0;position:absolute;top:0;transition:opacity .3s ease-in-out;width:100%}.sdc-thumbnail-item-video__overlay{align-items:center;color:#fff;display:flex;flex-direction:column;gap:8px;justify-content:center;left:50%;opacity:1;position:absolute;top:50%;transform:translate(-50%,-50%);transition:opacity .3s ease-in-out;width:100%;z-index:10}.sdc-thumbnail-item-video__icon{color:#fff;font-size:24px}.sdc-thumbnail-item-video__label{overflow:hidden;padding:0 8px;text-overflow:ellipsis;width:100%}.sdc-thumbnail-item-video:hover .sdc-thumbnail-item-video__preview{opacity:1}.sdc-thumbnail-item-video--playable:hover .sdc-thumbnail-item-video__overlay{opacity:0}\n"] }]
|
|
36
|
+
}], propDecorators: { imageUrl: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], videoUrl: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], videoPlayer: [{
|
|
41
|
+
type: ViewChild,
|
|
42
|
+
args: ['videoPlayer']
|
|
43
|
+
}], onMouseEnter: [{
|
|
44
|
+
type: HostListener,
|
|
45
|
+
args: ['mouseenter']
|
|
46
|
+
}], onMouseLeave: [{
|
|
47
|
+
type: HostListener,
|
|
48
|
+
args: ['mouseleave']
|
|
49
|
+
}] } });
|
|
50
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0tdmlkZW8vdGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy90aHVtYm5haWxzL2NvbXBvbmVudHMvdGh1bWJuYWlsLWl0ZW0tdmlkZW8vdGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEksT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDOzs7QUFFbkY7Ozs7OztHQU1HO0FBVUgsTUFBTSxPQUFPLDJCQUEyQjtJQUM3QixRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ2QsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUVHLFdBQVcsQ0FBZ0M7SUFFNUQsUUFBUSxHQUFHLG9CQUFvQixDQUFDO0lBR3pDLFlBQVk7UUFDVixJQUFJLENBQUMsV0FBVyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBR0QsWUFBWTtRQUNWLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDO1FBRTlDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNYLE9BQU87UUFDVCxDQUFDO1FBRUQsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2QsS0FBSyxDQUFDLFdBQVcsR0FBRyxDQUFDLENBQUM7SUFDeEIsQ0FBQzt3R0F2QlUsMkJBQTJCOzRGQUEzQiwyQkFBMkIsaVZDdEJ4QyxzdUJBc0JBLG9qQ0ROWSxZQUFZLDhCQUFFLGVBQWU7OzRGQU01QiwyQkFBMkI7a0JBVHZDLFNBQVM7aUNBQ0ksSUFBSSxZQUNOLDBCQUEwQixXQUMzQixDQUFDLFlBQVksRUFBRSxlQUFlLENBQUMsbUJBR3ZCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLFFBQVE7OEJBR2hDLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFb0IsV0FBVztzQkFBcEMsU0FBUzt1QkFBQyxhQUFhO2dCQUt4QixZQUFZO3NCQURYLFlBQVk7dUJBQUMsWUFBWTtnQkFNMUIsWUFBWTtzQkFEWCxZQUFZO3VCQUFDLFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbnB1dCwgVmlld0NoaWxkLCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IFRIVU1CTkFJTFNfV0FUQ0hfS0VZIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS9jb25zdGFudHMvdGh1bWJuYWlscy5jb25zdCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENvbnRlw7pkbyBkZSB1bWEgbWluaWF0dXJhIGRvIHRpcG8gYHZpZGVvYC4gRXhpYmUgdW1hIGltYWdlbSBkZVxuICogY2FwYSBjb20gdW0gb3ZlcmxheSBkZSBwbGF5IGUsIGFvIHBhc3NhciBvIG1vdXNlLCByZXByb2R1eiB1bSBwcmV2aWV3IGVtIGxvb3BcbiAqIGRvIHbDrWRlbyAocXVhbmRvIGB2aWRlb1VybGAgw6kgaW5mb3JtYWRvKS5cbiAqXG4gKiBAY2F0ZWdvcnkgRGF0YVxuICovXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgc2VsZWN0b3I6ICdzZGMtdGh1bWJuYWlsLWl0ZW0tdmlkZW8nLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdGh1bWJuYWlsLWl0ZW0tdmlkZW8uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgVGh1bWJuYWlsSXRlbVZpZGVvQ29tcG9uZW50IHtcbiAgQElucHV0KCkgaW1hZ2VVcmwgPSAnJztcbiAgQElucHV0KCkgdmlkZW9VcmwgPSAnJztcblxuICBAVmlld0NoaWxkKCd2aWRlb1BsYXllcicpIHZpZGVvUGxheWVyPzogRWxlbWVudFJlZjxIVE1MVmlkZW9FbGVtZW50PjtcblxuICByZWFkb25seSB3YXRjaEtleSA9IFRIVU1CTkFJTFNfV0FUQ0hfS0VZO1xuXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZW50ZXInKVxuICBvbk1vdXNlRW50ZXIoKTogdm9pZCB7XG4gICAgdGhpcy52aWRlb1BsYXllcj8ubmF0aXZlRWxlbWVudD8ucGxheSgpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG9uTW91c2VMZWF2ZSgpOiB2b2lkIHtcbiAgICBjb25zdCB2aWRlbyA9IHRoaXMudmlkZW9QbGF5ZXI/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIXZpZGVvKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmlkZW8ucGF1c2UoKTtcbiAgICB2aWRlby5jdXJyZW50VGltZSA9IDA7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtdGh1bWJuYWlsLWl0ZW0tdmlkZW9cIiBbY2xhc3Muc2RjLXRodW1ibmFpbC1pdGVtLXZpZGVvLS1wbGF5YWJsZV09XCJ2aWRlb1VybFwiPlxuICA8ZGl2IGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtLXZpZGVvX19pbWFnZVwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cIid1cmwoJyArIGltYWdlVXJsICsgJyknXCI+PC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNkYy10aHVtYm5haWwtaXRlbS12aWRlb19fb3ZlcmxheVwiPlxuICAgIDxpIGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtLXZpZGVvX19pY29uIGZhcyBmYS1wbGF5XCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgIDxzcGFuIGNsYXNzPVwic2RjLXRodW1ibmFpbC1pdGVtLXZpZGVvX19sYWJlbFwiPnt7IHdhdGNoS2V5IHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICA8L2Rpdj5cblxuICBAaWYgKHZpZGVvVXJsKSB7XG4gICAgPGRpdiBhcmlhLWhpZGRlbj1cInRydWVcIj5cbiAgICAgIDx2aWRlb1xuICAgICAgICAjdmlkZW9QbGF5ZXJcbiAgICAgICAgY2xhc3M9XCJzZGMtdGh1bWJuYWlsLWl0ZW0tdmlkZW9fX3ByZXZpZXdcIlxuICAgICAgICBbc3JjXT1cInZpZGVvVXJsXCJcbiAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgIGxvb3BcbiAgICAgICAgbXV0ZWRcbiAgICAgICAgcHJlbG9hZD1cIm5vbmVcIlxuICAgICAgPjwvdmlkZW8+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { ThumbnailItemComponent } from './components/thumbnail-item/thumbnail-item.component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
/**
|
|
7
|
+
* @description Galeria de miniaturas de arquivos com suporte a seleção múltipla
|
|
8
|
+
* e abertura de itens. Gerencia o estado de seleção internamente e emite eventos
|
|
9
|
+
* para o componente pai.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```html
|
|
13
|
+
* <sdc-thumbnails
|
|
14
|
+
* [items]="items"
|
|
15
|
+
* [selectable]="true"
|
|
16
|
+
* [(selection)]="selectedItems"
|
|
17
|
+
* (itemOpened)="onItemOpened($event)"
|
|
18
|
+
* />
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @category Data
|
|
22
|
+
*/
|
|
23
|
+
export class ThumbnailsComponent {
|
|
24
|
+
/** @description Lista de itens exibidos na galeria. @default [] */
|
|
25
|
+
items = [];
|
|
26
|
+
/** @description Habilita a seleção de itens. @default true */
|
|
27
|
+
selectable = true;
|
|
28
|
+
/** @description Quando `true`, o clique no checkbox também abre o item. @default true */
|
|
29
|
+
combineCheckboxEvent = true;
|
|
30
|
+
/**
|
|
31
|
+
* @description Lista de itens atualmente selecionados. Suporta two-way binding via `[(selection)]`.
|
|
32
|
+
* @default []
|
|
33
|
+
*/
|
|
34
|
+
set selection(items) {
|
|
35
|
+
this._selection = [...(items ?? [])];
|
|
36
|
+
}
|
|
37
|
+
/** @description Emitido quando a seleção de itens muda. */
|
|
38
|
+
selectionChange = new EventEmitter();
|
|
39
|
+
/** @description Emitido quando o usuário abre um item (clique no item). */
|
|
40
|
+
itemOpened = new EventEmitter();
|
|
41
|
+
_selection = [];
|
|
42
|
+
onItemOpened(item) {
|
|
43
|
+
this.itemOpened.emit(item);
|
|
44
|
+
}
|
|
45
|
+
onItemSelected(event) {
|
|
46
|
+
if (event.selected) {
|
|
47
|
+
this._selection = [...this._selection, event.item];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
this._selection = this._selection.filter((selected) => selected.id !== event.item.id);
|
|
51
|
+
}
|
|
52
|
+
this.selectionChange.emit(this._selection);
|
|
53
|
+
}
|
|
54
|
+
isSelected(item) {
|
|
55
|
+
return this._selection.some((selected) => selected.id === item.id);
|
|
56
|
+
}
|
|
57
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
58
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ThumbnailsComponent, isStandalone: true, selector: "sdc-thumbnails", inputs: { items: "items", selectable: "selectable", combineCheckboxEvent: "combineCheckboxEvent", selection: "selection" }, outputs: { selectionChange: "selectionChange", itemOpened: "itemOpened" }, ngImport: i0, template: "<div class=\"sdc-thumbnails\">\n @for (item of items; track item.id) {\n <sdc-thumbnail-item\n [combineCheckboxEvent]=\"combineCheckboxEvent\"\n [itemData]=\"item\"\n [isCheckable]=\"selectable\"\n [isChecked]=\"isSelected(item)\"\n (checked)=\"onItemSelected($event)\"\n (opened)=\"onItemOpened($event)\"\n />\n }\n</div>\n", styles: [":host{display:block}.sdc-thumbnails{display:flex;flex-wrap:wrap;gap:12px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ThumbnailItemComponent, selector: "sdc-thumbnail-item", inputs: ["itemData", "isCheckable", "isChecked", "combineCheckboxEvent"], outputs: ["checked", "opened"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
59
|
+
}
|
|
60
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ThumbnailsComponent, decorators: [{
|
|
61
|
+
type: Component,
|
|
62
|
+
args: [{ standalone: true, selector: 'sdc-thumbnails', imports: [CommonModule, TranslateModule, ThumbnailItemComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-thumbnails\">\n @for (item of items; track item.id) {\n <sdc-thumbnail-item\n [combineCheckboxEvent]=\"combineCheckboxEvent\"\n [itemData]=\"item\"\n [isCheckable]=\"selectable\"\n [isChecked]=\"isSelected(item)\"\n (checked)=\"onItemSelected($event)\"\n (opened)=\"onItemOpened($event)\"\n />\n }\n</div>\n", styles: [":host{display:block}.sdc-thumbnails{display:flex;flex-wrap:wrap;gap:12px}\n"] }]
|
|
63
|
+
}], propDecorators: { items: [{
|
|
64
|
+
type: Input
|
|
65
|
+
}], selectable: [{
|
|
66
|
+
type: Input
|
|
67
|
+
}], combineCheckboxEvent: [{
|
|
68
|
+
type: Input
|
|
69
|
+
}], selection: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], selectionChange: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], itemOpened: [{
|
|
74
|
+
type: Output
|
|
75
|
+
}] } });
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGh1bWJuYWlscy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3RodW1ibmFpbHMvdGh1bWJuYWlscy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuSCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFHdEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0RBQXNELENBQUM7O0FBRTlGOzs7Ozs7Ozs7Ozs7Ozs7O0dBZ0JHO0FBVUgsTUFBTSxPQUFPLG1CQUFtQjtJQUM5QixtRUFBbUU7SUFDMUQsS0FBSyxHQUFxQixFQUFFLENBQUM7SUFFdEMsOERBQThEO0lBQ3JELFVBQVUsR0FBRyxJQUFJLENBQUM7SUFFM0IseUZBQXlGO0lBQ2hGLG9CQUFvQixHQUFHLElBQUksQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxJQUNJLFNBQVMsQ0FBQyxLQUF1QjtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCwyREFBMkQ7SUFDakQsZUFBZSxHQUFHLElBQUksWUFBWSxFQUFvQixDQUFDO0lBRWpFLDJFQUEyRTtJQUNqRSxVQUFVLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7SUFFbEQsVUFBVSxHQUFxQixFQUFFLENBQUM7SUFFMUMsWUFBWSxDQUFDLElBQW9CO1FBQy9CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBa0Q7UUFDL0QsSUFBSSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDeEYsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsVUFBVSxDQUFDLElBQW9CO1FBQzdCLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7d0dBM0NVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLGlSQ2pDaEMsNFdBWUEsb0lEZVksWUFBWSw4QkFBRSxlQUFlLCtCQUFFLHNCQUFzQjs7NEZBTXBELG1CQUFtQjtrQkFUL0IsU0FBUztpQ0FDSSxJQUFJLFlBQ04sZ0JBQWdCLFdBQ2pCLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxzQkFBc0IsQ0FBQyxtQkFHL0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFJaEMsS0FBSztzQkFBYixLQUFLO2dCQUdHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBR0csb0JBQW9CO3NCQUE1QixLQUFLO2dCQU9GLFNBQVM7c0JBRFosS0FBSztnQkFNSSxlQUFlO3NCQUF4QixNQUFNO2dCQUdHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgVGh1bWJuYWlsc0l0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3RodW1ibmFpbHMudHlwZSc7XG5pbXBvcnQgeyBUaHVtYm5haWxJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RodW1ibmFpbC1pdGVtL3RodW1ibmFpbC1pdGVtLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIEdhbGVyaWEgZGUgbWluaWF0dXJhcyBkZSBhcnF1aXZvcyBjb20gc3Vwb3J0ZSBhIHNlbGXDp8OjbyBtw7psdGlwbGFcbiAqIGUgYWJlcnR1cmEgZGUgaXRlbnMuIEdlcmVuY2lhIG8gZXN0YWRvIGRlIHNlbGXDp8OjbyBpbnRlcm5hbWVudGUgZSBlbWl0ZSBldmVudG9zXG4gKiBwYXJhIG8gY29tcG9uZW50ZSBwYWkuXG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxzZGMtdGh1bWJuYWlsc1xuICogICBbaXRlbXNdPVwiaXRlbXNcIlxuICogICBbc2VsZWN0YWJsZV09XCJ0cnVlXCJcbiAqICAgWyhzZWxlY3Rpb24pXT1cInNlbGVjdGVkSXRlbXNcIlxuICogICAoaXRlbU9wZW5lZCk9XCJvbkl0ZW1PcGVuZWQoJGV2ZW50KVwiXG4gKiAvPlxuICogYGBgXG4gKlxuICogQGNhdGVnb3J5IERhdGFcbiAqL1xuQENvbXBvbmVudCh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnc2RjLXRodW1ibmFpbHMnLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIFRodW1ibmFpbEl0ZW1Db21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vdGh1bWJuYWlscy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90aHVtYm5haWxzLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIFRodW1ibmFpbHNDb21wb25lbnQge1xuICAvKiogQGRlc2NyaXB0aW9uIExpc3RhIGRlIGl0ZW5zIGV4aWJpZG9zIG5hIGdhbGVyaWEuIEBkZWZhdWx0IFtdICovXG4gIEBJbnB1dCgpIGl0ZW1zOiBUaHVtYm5haWxzSXRlbVtdID0gW107XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBIYWJpbGl0YSBhIHNlbGXDp8OjbyBkZSBpdGVucy4gQGRlZmF1bHQgdHJ1ZSAqL1xuICBASW5wdXQoKSBzZWxlY3RhYmxlID0gdHJ1ZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIFF1YW5kbyBgdHJ1ZWAsIG8gY2xpcXVlIG5vIGNoZWNrYm94IHRhbWLDqW0gYWJyZSBvIGl0ZW0uIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgY29tYmluZUNoZWNrYm94RXZlbnQgPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTGlzdGEgZGUgaXRlbnMgYXR1YWxtZW50ZSBzZWxlY2lvbmFkb3MuIFN1cG9ydGEgdHdvLXdheSBiaW5kaW5nIHZpYSBgWyhzZWxlY3Rpb24pXWAuXG4gICAqIEBkZWZhdWx0IFtdXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc2VsZWN0aW9uKGl0ZW1zOiBUaHVtYm5haWxzSXRlbVtdKSB7XG4gICAgdGhpcy5fc2VsZWN0aW9uID0gWy4uLihpdGVtcyA/PyBbXSldO1xuICB9XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBhIHNlbGXDp8OjbyBkZSBpdGVucyBtdWRhLiAqL1xuICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxUaHVtYm5haWxzSXRlbVtdPigpO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gRW1pdGlkbyBxdWFuZG8gbyB1c3XDoXJpbyBhYnJlIHVtIGl0ZW0gKGNsaXF1ZSBubyBpdGVtKS4gKi9cbiAgQE91dHB1dCgpIGl0ZW1PcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFRodW1ibmFpbHNJdGVtPigpO1xuXG4gIHByaXZhdGUgX3NlbGVjdGlvbjogVGh1bWJuYWlsc0l0ZW1bXSA9IFtdO1xuXG4gIG9uSXRlbU9wZW5lZChpdGVtOiBUaHVtYm5haWxzSXRlbSk6IHZvaWQge1xuICAgIHRoaXMuaXRlbU9wZW5lZC5lbWl0KGl0ZW0pO1xuICB9XG5cbiAgb25JdGVtU2VsZWN0ZWQoZXZlbnQ6IHsgaXRlbTogVGh1bWJuYWlsc0l0ZW07IHNlbGVjdGVkOiBib29sZWFuIH0pOiB2b2lkIHtcbiAgICBpZiAoZXZlbnQuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdGlvbiA9IFsuLi50aGlzLl9zZWxlY3Rpb24sIGV2ZW50Lml0ZW1dO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9zZWxlY3Rpb24gPSB0aGlzLl9zZWxlY3Rpb24uZmlsdGVyKChzZWxlY3RlZCkgPT4gc2VsZWN0ZWQuaWQgIT09IGV2ZW50Lml0ZW0uaWQpO1xuICAgIH1cblxuICAgIHRoaXMuc2VsZWN0aW9uQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0aW9uKTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQoaXRlbTogVGh1bWJuYWlsc0l0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0aW9uLnNvbWUoKHNlbGVjdGVkKSA9PiBzZWxlY3RlZC5pZCA9PT0gaXRlbS5pZCk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtdGh1bWJuYWlsc1wiPlxuICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtLmlkKSB7XG4gICAgPHNkYy10aHVtYm5haWwtaXRlbVxuICAgICAgW2NvbWJpbmVDaGVja2JveEV2ZW50XT1cImNvbWJpbmVDaGVja2JveEV2ZW50XCJcbiAgICAgIFtpdGVtRGF0YV09XCJpdGVtXCJcbiAgICAgIFtpc0NoZWNrYWJsZV09XCJzZWxlY3RhYmxlXCJcbiAgICAgIFtpc0NoZWNrZWRdPVwiaXNTZWxlY3RlZChpdGVtKVwiXG4gICAgICAoY2hlY2tlZCk9XCJvbkl0ZW1TZWxlY3RlZCgkZXZlbnQpXCJcbiAgICAgIChvcGVuZWQpPVwib25JdGVtT3BlbmVkKCRldmVudClcIlxuICAgIC8+XG4gIH1cbjwvZGl2PlxuIl19
|