@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
package/esm2022/features/object-card/components/object-card-main/object-card-main.component.mjs
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, inject, Input, Output, ViewEncapsulation } from '@angular/core';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { OBJECT_CARD_MAIN_DEFAULT_ICON_CLASS, OBJECT_CARD_MAIN_ID_PREFIX, OBJECT_CARD_MOBILE_BREAKPOINT_PX } from '../../../../core/constants/object-card.const';
|
|
5
|
+
import { nextSequentialId } from '../../../../core/utils/id.util';
|
|
6
|
+
import { getViewportWidth } from '../../../../core/utils/layout.util';
|
|
7
|
+
import { ButtonComponent } from '../../../button/button.component';
|
|
8
|
+
import { ThumbnailComponent } from '../../../thumbnail/thumbnail.component';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@ngx-translate/core";
|
|
11
|
+
const THUMBNAIL_SIZE_MOBILE = 'small';
|
|
12
|
+
const THUMBNAIL_SIZE_DESKTOP = 'medium';
|
|
13
|
+
/**
|
|
14
|
+
* @description Conteúdo principal de um `sdc-object-card`: thumbnail, rótulo,
|
|
15
|
+
* descrição e um botão de ação opcional. Deve ser projetado dentro de `sdc-object-card`.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```html
|
|
19
|
+
* <sdc-object-card-main
|
|
20
|
+
* label="João da Silva"
|
|
21
|
+
* description="Analista de sistemas"
|
|
22
|
+
* imageSource="https://exemplo.com/foto.jpg" />
|
|
23
|
+
* ```
|
|
24
|
+
*/
|
|
25
|
+
export class ObjectCardMainComponent {
|
|
26
|
+
cdr = inject(ChangeDetectorRef);
|
|
27
|
+
/** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
|
|
28
|
+
id = nextSequentialId(OBJECT_CARD_MAIN_ID_PREFIX);
|
|
29
|
+
/** @description URL da imagem principal do thumbnail. */
|
|
30
|
+
imageSource;
|
|
31
|
+
/** @description URL da imagem de fallback do thumbnail. */
|
|
32
|
+
imageFallback;
|
|
33
|
+
/** @description Texto alternativo do thumbnail. @default label */
|
|
34
|
+
imageAlt;
|
|
35
|
+
/** @description Classe do ícone do thumbnail quando não há imagem. */
|
|
36
|
+
iconClass = OBJECT_CARD_MAIN_DEFAULT_ICON_CLASS;
|
|
37
|
+
/** @description Exibe o thumbnail (interno ou projetado via `<sdc-thumbnail>`). @default true */
|
|
38
|
+
hasThumbnail = true;
|
|
39
|
+
/** @description Exibe o bloco de rótulo/descrição/botão. @default true */
|
|
40
|
+
hasDescription = true;
|
|
41
|
+
/** @description Aplica estilo de marca ao thumbnail (retangular, sem borda arredondada). @default false */
|
|
42
|
+
isBrand = false;
|
|
43
|
+
/** @description Rótulo principal. */
|
|
44
|
+
label;
|
|
45
|
+
/** @description Descrição/subtítulo. */
|
|
46
|
+
description;
|
|
47
|
+
/** @description Rótulo do botão de ação (prioridade link). */
|
|
48
|
+
buttonLabel;
|
|
49
|
+
/** @description Itens do menu suspenso do botão de ação. */
|
|
50
|
+
buttonModel = [];
|
|
51
|
+
/** @description Emitido quando o botão de ação é clicado. */
|
|
52
|
+
buttonClick = new EventEmitter();
|
|
53
|
+
projectedThumbnail = null;
|
|
54
|
+
thumbnailSize = THUMBNAIL_SIZE_DESKTOP;
|
|
55
|
+
mediaQueryList;
|
|
56
|
+
handleMediaChange = () => this.updateThumbnailSize();
|
|
57
|
+
ngOnInit() {
|
|
58
|
+
this.mediaQueryList = this.createMediaQueryList();
|
|
59
|
+
this.mediaQueryList?.addEventListener('change', this.handleMediaChange);
|
|
60
|
+
this.updateThumbnailSize();
|
|
61
|
+
}
|
|
62
|
+
ngOnDestroy() {
|
|
63
|
+
this.mediaQueryList?.removeEventListener('change', this.handleMediaChange);
|
|
64
|
+
}
|
|
65
|
+
createMediaQueryList() {
|
|
66
|
+
if (typeof window === 'undefined' || typeof window.matchMedia !== 'function') {
|
|
67
|
+
return undefined;
|
|
68
|
+
}
|
|
69
|
+
return window.matchMedia(`(max-width: ${OBJECT_CARD_MOBILE_BREAKPOINT_PX}px)`);
|
|
70
|
+
}
|
|
71
|
+
isMobile() {
|
|
72
|
+
return this.mediaQueryList ? this.mediaQueryList.matches : getViewportWidth() <= OBJECT_CARD_MOBILE_BREAKPOINT_PX;
|
|
73
|
+
}
|
|
74
|
+
updateThumbnailSize() {
|
|
75
|
+
this.thumbnailSize = this.isMobile() ? THUMBNAIL_SIZE_MOBILE : THUMBNAIL_SIZE_DESKTOP;
|
|
76
|
+
this.cdr.markForCheck();
|
|
77
|
+
}
|
|
78
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
79
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardMainComponent, isStandalone: true, selector: "sdc-object-card-main", inputs: { id: "id", imageSource: "imageSource", imageFallback: "imageFallback", imageAlt: "imageAlt", iconClass: "iconClass", hasThumbnail: "hasThumbnail", hasDescription: "hasDescription", isBrand: "isBrand", label: "label", description: "description", buttonLabel: "buttonLabel", buttonModel: "buttonModel" }, outputs: { buttonClick: "buttonClick" }, queries: [{ propertyName: "projectedThumbnail", first: true, predicate: ThumbnailComponent, descendants: true, static: true }], ngImport: i0, template: "@if (hasThumbnail) {\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (!projectedThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageFallback]=\"imageFallback ?? null\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass\"\n [size]=\"thumbnailSize\"\n [isBrand]=\"isBrand\"\n ></sdc-thumbnail>\n }\n}\n\n@if (hasDescription) {\n <div class=\"sdc-object-card-main__info\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length && label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-main__label\">{{ label | translate }}</span>\n }\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n\n @if (!descriptionTemplate.children.length && description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-main__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-main__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n}\n", styles: [":host{align-items:center;display:flex;gap:.625rem;min-height:4.375rem}.sdc-object-card-main__info{flex:1;min-width:0}.sdc-object-card-main__info,.sdc-object-card-main__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-main__label{color:var(--sdc-object-card-main-label-color, #212533);display:block;font-weight:700}.sdc-object-card-main__description{color:var(--sdc-object-card-main-description-color, #667085);display:block}.sdc-object-card-main__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-main__info,.sdc-object-card-main__info span{white-space:normal}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ThumbnailComponent, selector: "sdc-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "loading", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
80
|
+
}
|
|
81
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardMainComponent, decorators: [{
|
|
82
|
+
type: Component,
|
|
83
|
+
args: [{ selector: 'sdc-object-card-main', standalone: true, imports: [CommonModule, TranslateModule, ThumbnailComponent, ButtonComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "@if (hasThumbnail) {\n <ng-content select=\"sdc-thumbnail\"></ng-content>\n\n @if (!projectedThumbnail) {\n <sdc-thumbnail\n [id]=\"id + '-thumbnail'\"\n [imageSource]=\"imageSource\"\n [imageFallback]=\"imageFallback ?? null\"\n [imageAlt]=\"imageAlt || label\"\n [iconClass]=\"iconClass\"\n [size]=\"thumbnailSize\"\n [isBrand]=\"isBrand\"\n ></sdc-thumbnail>\n }\n}\n\n@if (hasDescription) {\n <div class=\"sdc-object-card-main__info\">\n <div #labelTemplate><ng-content select=\"[labelTemplate]\"></ng-content></div>\n\n @if (!labelTemplate.children.length && label) {\n <span [id]=\"id + '-label'\" class=\"sdc-object-card-main__label\">{{ label | translate }}</span>\n }\n\n <div #descriptionTemplate><ng-content select=\"[descriptionTemplate]\"></ng-content></div>\n\n @if (!descriptionTemplate.children.length && description) {\n <span [id]=\"id + '-description'\" class=\"sdc-object-card-main__description\">{{ description | translate }}</span>\n }\n\n @if (buttonLabel) {\n <sdc-button\n [id]=\"id + '-button'\"\n class=\"sdc-object-card-main__button\"\n priority=\"link\"\n size=\"small\"\n [label]=\"buttonLabel\"\n [menuOptions]=\"buttonModel\"\n (clicked)=\"buttonClick.emit($event)\"\n ></sdc-button>\n }\n </div>\n}\n", styles: [":host{align-items:center;display:flex;gap:.625rem;min-height:4.375rem}.sdc-object-card-main__info{flex:1;min-width:0}.sdc-object-card-main__info,.sdc-object-card-main__info span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sdc-object-card-main__label{color:var(--sdc-object-card-main-label-color, #212533);display:block;font-weight:700}.sdc-object-card-main__description{color:var(--sdc-object-card-main-description-color, #667085);display:block}.sdc-object-card-main__button{display:inline-block}@media (max-width: 767px){.sdc-object-card-main__info,.sdc-object-card-main__info span{white-space:normal}}\n"] }]
|
|
84
|
+
}], propDecorators: { id: [{
|
|
85
|
+
type: Input
|
|
86
|
+
}], imageSource: [{
|
|
87
|
+
type: Input
|
|
88
|
+
}], imageFallback: [{
|
|
89
|
+
type: Input
|
|
90
|
+
}], imageAlt: [{
|
|
91
|
+
type: Input
|
|
92
|
+
}], iconClass: [{
|
|
93
|
+
type: Input
|
|
94
|
+
}], hasThumbnail: [{
|
|
95
|
+
type: Input
|
|
96
|
+
}], hasDescription: [{
|
|
97
|
+
type: Input
|
|
98
|
+
}], isBrand: [{
|
|
99
|
+
type: Input
|
|
100
|
+
}], label: [{
|
|
101
|
+
type: Input
|
|
102
|
+
}], description: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], buttonLabel: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], buttonModel: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], buttonClick: [{
|
|
109
|
+
type: Output
|
|
110
|
+
}], projectedThumbnail: [{
|
|
111
|
+
type: ContentChild,
|
|
112
|
+
args: [ThumbnailComponent, { static: true }]
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL29iamVjdC1jYXJkL2NvbXBvbmVudHMvb2JqZWN0LWNhcmQtbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvb2JqZWN0LWNhcmQvY29tcG9uZW50cy9vYmplY3QtY2FyZC1tYWluL29iamVjdC1jYXJkLW1haW4uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBR0wsTUFBTSxFQUNOLGlCQUFpQixFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLDBCQUEwQixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sOENBQThDLENBQUM7QUFHakssT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDOzs7QUFFNUUsTUFBTSxxQkFBcUIsR0FBa0IsT0FBTyxDQUFDO0FBQ3JELE1BQU0sc0JBQXNCLEdBQWtCLFFBQVEsQ0FBQztBQUV2RDs7Ozs7Ozs7Ozs7R0FXRztBQVVILE1BQU0sT0FBTyx1QkFBdUI7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LEtBQUs7Z0JBR0csY0FBYztzQkFBdEIsS0FBSztnQkFHRyxPQUFPO3NCQUFmLEtBQUs7Z0JBR0csS0FBSztzQkFBYixLQUFLO2dCQUdHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBR0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdJLFdBQVc7c0JBQXBCLE1BQU07Z0JBR1ksa0JBQWtCO3NCQURwQyxZQUFZO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IE9CSkVDVF9DQVJEX01BSU5fREVGQVVMVF9JQ09OX0NMQVNTLCBPQkpFQ1RfQ0FSRF9NQUlOX0lEX1BSRUZJWCwgT0JKRUNUX0NBUkRfTU9CSUxFX0JSRUFLUE9JTlRfUFggfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL2NvbnN0YW50cy9vYmplY3QtY2FyZC5jb25zdCc7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbk1lbnVJdGVtRGF0YSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvcmUvdHlwZXMvYnV0dG9uLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUaHVtYm5haWxTaXplIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS90eXBlcy90aHVtYm5haWwudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGdldFZpZXdwb3J0V2lkdGggfSBmcm9tICcuLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IFRodW1ibmFpbENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL3RodW1ibmFpbC90aHVtYm5haWwuY29tcG9uZW50JztcblxuY29uc3QgVEhVTUJOQUlMX1NJWkVfTU9CSUxFOiBUaHVtYm5haWxTaXplID0gJ3NtYWxsJztcbmNvbnN0IFRIVU1CTkFJTF9TSVpFX0RFU0tUT1A6IFRodW1ibmFpbFNpemUgPSAnbWVkaXVtJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb24gQ29udGXDumRvIHByaW5jaXBhbCBkZSB1bSBgc2RjLW9iamVjdC1jYXJkYDogdGh1bWJuYWlsLCByw7N0dWxvLFxuICogZGVzY3Jpw6fDo28gZSB1bSBib3TDo28gZGUgYcOnw6NvIG9wY2lvbmFsLiBEZXZlIHNlciBwcm9qZXRhZG8gZGVudHJvIGRlIGBzZGMtb2JqZWN0LWNhcmRgLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8c2RjLW9iamVjdC1jYXJkLW1haW5cbiAqICAgbGFiZWw9XCJKb8OjbyBkYSBTaWx2YVwiXG4gKiAgIGRlc2NyaXB0aW9uPVwiQW5hbGlzdGEgZGUgc2lzdGVtYXNcIlxuICogICBpbWFnZVNvdXJjZT1cImh0dHBzOi8vZXhlbXBsby5jb20vZm90by5qcGdcIiAvPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1vYmplY3QtY2FyZC1tYWluJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUaHVtYm5haWxDb21wb25lbnQsIEJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL29iamVjdC1jYXJkLW1haW4uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Q2FyZE1haW5Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAvKiogQGRlc2NyaXB0aW9uIElkZW50aWZpY2Fkb3Igw7puaWNvIGRvIGNvbXBvbmVudGUgbm8gRE9NLiBHZXJhZG8gYXV0b21hdGljYW1lbnRlIHNlIG7Do28gaW5mb3JtYWRvLiAqL1xuICBASW5wdXQoKSBpZCA9IG5leHRTZXF1ZW50aWFsSWQoT0JKRUNUX0NBUkRfTUFJTl9JRF9QUkVGSVgpO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gVVJMIGRhIGltYWdlbSBwcmluY2lwYWwgZG8gdGh1bWJuYWlsLiAqL1xuICBASW5wdXQoKSBpbWFnZVNvdXJjZT86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIFVSTCBkYSBpbWFnZW0gZGUgZmFsbGJhY2sgZG8gdGh1bWJuYWlsLiAqL1xuICBASW5wdXQoKSBpbWFnZUZhbGxiYWNrPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gVGV4dG8gYWx0ZXJuYXRpdm8gZG8gdGh1bWJuYWlsLiBAZGVmYXVsdCBsYWJlbCAqL1xuICBASW5wdXQoKSBpbWFnZUFsdD86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIENsYXNzZSBkbyDDrWNvbmUgZG8gdGh1bWJuYWlsIHF1YW5kbyBuw6NvIGjDoSBpbWFnZW0uICovXG4gIEBJbnB1dCgpIGljb25DbGFzcyA9IE9CSkVDVF9DQVJEX01BSU5fREVGQVVMVF9JQ09OX0NMQVNTO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gRXhpYmUgbyB0aHVtYm5haWwgKGludGVybm8gb3UgcHJvamV0YWRvIHZpYSBgPHNkYy10aHVtYm5haWw+YCkuIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgaGFzVGh1bWJuYWlsID0gdHJ1ZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIEV4aWJlIG8gYmxvY28gZGUgcsOzdHVsby9kZXNjcmnDp8Ojby9ib3TDo28uIEBkZWZhdWx0IHRydWUgKi9cbiAgQElucHV0KCkgaGFzRGVzY3JpcHRpb24gPSB0cnVlO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQXBsaWNhIGVzdGlsbyBkZSBtYXJjYSBhbyB0aHVtYm5haWwgKHJldGFuZ3VsYXIsIHNlbSBib3JkYSBhcnJlZG9uZGFkYSkuIEBkZWZhdWx0IGZhbHNlICovXG4gIEBJbnB1dCgpIGlzQnJhbmQgPSBmYWxzZTtcblxuICAvKiogQGRlc2NyaXB0aW9uIFLDs3R1bG8gcHJpbmNpcGFsLiAqL1xuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIERlc2NyacOnw6NvL3N1YnTDrXR1bG8uICovXG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gUsOzdHVsbyBkbyBib3TDo28gZGUgYcOnw6NvIChwcmlvcmlkYWRlIGxpbmspLiAqL1xuICBASW5wdXQoKSBidXR0b25MYWJlbD86IHN0cmluZztcblxuICAvKiogQGRlc2NyaXB0aW9uIEl0ZW5zIGRvIG1lbnUgc3VzcGVuc28gZG8gYm90w6NvIGRlIGHDp8Ojby4gKi9cbiAgQElucHV0KCkgYnV0dG9uTW9kZWw6IEJ1dHRvbk1lbnVJdGVtRGF0YVtdID0gW107XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBFbWl0aWRvIHF1YW5kbyBvIGJvdMOjbyBkZSBhw6fDo28gw6kgY2xpY2Fkby4gKi9cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBAQ29udGVudENoaWxkKFRodW1ibmFpbENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHByb2plY3RlZFRodW1ibmFpbDogVGh1bWJuYWlsQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHRodW1ibmFpbFNpemU6IFRodW1ibmFpbFNpemUgPSBUSFVNQk5BSUxfU0laRV9ERVNLVE9QO1xuXG4gIHByaXZhdGUgbWVkaWFRdWVyeUxpc3Q/OiBNZWRpYVF1ZXJ5TGlzdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZU1lZGlhQ2hhbmdlID0gKCk6IHZvaWQgPT4gdGhpcy51cGRhdGVUaHVtYm5haWxTaXplKCk7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5tZWRpYVF1ZXJ5TGlzdCA9IHRoaXMuY3JlYXRlTWVkaWFRdWVyeUxpc3QoKTtcbiAgICB0aGlzLm1lZGlhUXVlcnlMaXN0Py5hZGRFdmVudExpc3RlbmVyKCdjaGFuZ2UnLCB0aGlzLmhhbmRsZU1lZGlhQ2hhbmdlKTtcbiAgICB0aGlzLnVwZGF0ZVRodW1ibmFpbFNpemUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubWVkaWFRdWVyeUxpc3Q/LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NoYW5nZScsIHRoaXMuaGFuZGxlTWVkaWFDaGFuZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVNZWRpYVF1ZXJ5TGlzdCgpOiBNZWRpYVF1ZXJ5TGlzdCB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnIHx8IHR5cGVvZiB3aW5kb3cubWF0Y2hNZWRpYSAhPT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICByZXR1cm4gd2luZG93Lm1hdGNoTWVkaWEoYChtYXgtd2lkdGg6ICR7T0JKRUNUX0NBUkRfTU9CSUxFX0JSRUFLUE9JTlRfUFh9cHgpYCk7XG4gIH1cblxuICBwcml2YXRlIGlzTW9iaWxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLm1lZGlhUXVlcnlMaXN0ID8gdGhpcy5tZWRpYVF1ZXJ5TGlzdC5tYXRjaGVzIDogZ2V0Vmlld3BvcnRXaWR0aCgpIDw9IE9CSkVDVF9DQVJEX01PQklMRV9CUkVBS1BPSU5UX1BYO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVUaHVtYm5haWxTaXplKCk6IHZvaWQge1xuICAgIHRoaXMudGh1bWJuYWlsU2l6ZSA9IHRoaXMuaXNNb2JpbGUoKSA/IFRIVU1CTkFJTF9TSVpFX01PQklMRSA6IFRIVU1CTkFJTF9TSVpFX0RFU0tUT1A7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIkBpZiAoaGFzVGh1bWJuYWlsKSB7XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cInNkYy10aHVtYm5haWxcIj48L25nLWNvbnRlbnQ+XG5cbiAgQGlmICghcHJvamVjdGVkVGh1bWJuYWlsKSB7XG4gICAgPHNkYy10aHVtYm5haWxcbiAgICAgIFtpZF09XCJpZCArICctdGh1bWJuYWlsJ1wiXG4gICAgICBbaW1hZ2VTb3VyY2VdPVwiaW1hZ2VTb3VyY2VcIlxuICAgICAgW2ltYWdlRmFsbGJhY2tdPVwiaW1hZ2VGYWxsYmFjayA/PyBudWxsXCJcbiAgICAgIFtpbWFnZUFsdF09XCJpbWFnZUFsdCB8fCBsYWJlbFwiXG4gICAgICBbaWNvbkNsYXNzXT1cImljb25DbGFzc1wiXG4gICAgICBbc2l6ZV09XCJ0aHVtYm5haWxTaXplXCJcbiAgICAgIFtpc0JyYW5kXT1cImlzQnJhbmRcIlxuICAgID48L3NkYy10aHVtYm5haWw+XG4gIH1cbn1cblxuQGlmIChoYXNEZXNjcmlwdGlvbikge1xuICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkLW1haW5fX2luZm9cIj5cbiAgICA8ZGl2ICNsYWJlbFRlbXBsYXRlPjxuZy1jb250ZW50IHNlbGVjdD1cIltsYWJlbFRlbXBsYXRlXVwiPjwvbmctY29udGVudD48L2Rpdj5cblxuICAgIEBpZiAoIWxhYmVsVGVtcGxhdGUuY2hpbGRyZW4ubGVuZ3RoICYmIGxhYmVsKSB7XG4gICAgICA8c3BhbiBbaWRdPVwiaWQgKyAnLWxhYmVsJ1wiIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkLW1haW5fX2xhYmVsXCI+e3sgbGFiZWwgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgfVxuXG4gICAgPGRpdiAjZGVzY3JpcHRpb25UZW1wbGF0ZT48bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25UZW1wbGF0ZV1cIj48L25nLWNvbnRlbnQ+PC9kaXY+XG5cbiAgICBAaWYgKCFkZXNjcmlwdGlvblRlbXBsYXRlLmNoaWxkcmVuLmxlbmd0aCAmJiBkZXNjcmlwdGlvbikge1xuICAgICAgPHNwYW4gW2lkXT1cImlkICsgJy1kZXNjcmlwdGlvbidcIiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZC1tYWluX19kZXNjcmlwdGlvblwiPnt7IGRlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgIH1cblxuICAgIEBpZiAoYnV0dG9uTGFiZWwpIHtcbiAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgIFtpZF09XCJpZCArICctYnV0dG9uJ1wiXG4gICAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkLW1haW5fX2J1dHRvblwiXG4gICAgICAgIHByaW9yaXR5PVwibGlua1wiXG4gICAgICAgIHNpemU9XCJzbWFsbFwiXG4gICAgICAgIFtsYWJlbF09XCJidXR0b25MYWJlbFwiXG4gICAgICAgIFttZW51T3B0aW9uc109XCJidXR0b25Nb2RlbFwiXG4gICAgICAgIChjbGlja2VkKT1cImJ1dHRvbkNsaWNrLmVtaXQoJGV2ZW50KVwiXG4gICAgICA+PC9zZGMtYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG59XG4iXX0=
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
import { animate, state, style, transition, trigger } from '@angular/animations';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, EventEmitter, inject, Input, Output, ViewChild, ViewEncapsulation, contentChildren } from '@angular/core';
|
|
4
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
5
|
+
import { OBJECT_CARD_COLLAPSE_TOOLTIP_KEY, OBJECT_CARD_DEFAULT_FIELDS_MIN_WIDTH_PX, OBJECT_CARD_EXPAND_ICON_ESTIMATED_WIDTH_PX, OBJECT_CARD_EXPAND_TOOLTIP_KEY, OBJECT_CARD_ID_PREFIX, OBJECT_CARD_MOBILE_BREAKPOINT_PX } from '../../core/constants/object-card.const';
|
|
6
|
+
import { EnumSeverity } from '../../core/types/panel.type';
|
|
7
|
+
import { nextSequentialId } from '../../core/utils/id.util';
|
|
8
|
+
import { getViewportWidth } from '../../core/utils/layout.util';
|
|
9
|
+
import { ObjectCardFieldComponent } from './components/object-card-field/object-card-field.component';
|
|
10
|
+
import { ObjectCardMainComponent } from './components/object-card-main/object-card-main.component';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
import * as i2 from "@ngx-translate/core";
|
|
14
|
+
/**
|
|
15
|
+
* @description Card de exibição de objeto com um bloco principal (`sdc-object-card-main`),
|
|
16
|
+
* campos extras (`sdc-object-card-field`) e painel expansível para os campos que não
|
|
17
|
+
* cabem na largura disponível. Calcula automaticamente quantos campos ficam visíveis
|
|
18
|
+
* conforme a largura do container (via `ResizeObserver`) e suporta nível de severidade.
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* ```html
|
|
22
|
+
* <sdc-object-card [severity]="'info'">
|
|
23
|
+
* <sdc-object-card-main label="João da Silva" description="Analista de sistemas" />
|
|
24
|
+
* <sdc-object-card-field label="CPF" description="000.000.000-00" />
|
|
25
|
+
* <sdc-object-card-field label="Matrícula" description="00123" />
|
|
26
|
+
* </sdc-object-card>
|
|
27
|
+
* ```
|
|
28
|
+
*/
|
|
29
|
+
export class ObjectCardComponent {
|
|
30
|
+
cdr = inject(ChangeDetectorRef);
|
|
31
|
+
/** @description Identificador único do componente no DOM. Gerado automaticamente se não informado. */
|
|
32
|
+
id = nextSequentialId(OBJECT_CARD_ID_PREFIX);
|
|
33
|
+
/** @description Define se o painel expansível está aberto. @default false */
|
|
34
|
+
expanded = false;
|
|
35
|
+
/** @description Chave de tradução (ou `false` para usar o default) do tooltip/aria-label de expandir. */
|
|
36
|
+
expandTooltip = OBJECT_CARD_EXPAND_TOOLTIP_KEY;
|
|
37
|
+
/** @description Chave de tradução (ou `false` para usar o default) do tooltip/aria-label de recolher. */
|
|
38
|
+
collapseTooltip = OBJECT_CARD_COLLAPSE_TOOLTIP_KEY;
|
|
39
|
+
/** @description Largura mínima em pixels de cada campo (visível ou no painel expansível). @default 200 */
|
|
40
|
+
fieldsMinWidth = OBJECT_CARD_DEFAULT_FIELDS_MIN_WIDTH_PX;
|
|
41
|
+
/** @description Nível de severidade que altera a cor de destaque do card. @default 'default' */
|
|
42
|
+
severity = EnumSeverity.Default;
|
|
43
|
+
/**
|
|
44
|
+
* @description Configuração opcional do botão lateral de borda (mesmo contrato usado pelo `sdc-panel`).
|
|
45
|
+
* Omitido por padrão: não requer o componente `s-border-button` do AC (ainda não portado para o DataCore).
|
|
46
|
+
*/
|
|
47
|
+
borderButtonOptions;
|
|
48
|
+
/** @description Emitido quando o estado de expansão muda. */
|
|
49
|
+
expandedChange = new EventEmitter();
|
|
50
|
+
main = null;
|
|
51
|
+
fields = contentChildren(ObjectCardFieldComponent, { descendants: true });
|
|
52
|
+
rowContainerRef;
|
|
53
|
+
mainSlotRef;
|
|
54
|
+
expandButtonRef;
|
|
55
|
+
resizeObserver;
|
|
56
|
+
maxVisibleFields = 0;
|
|
57
|
+
ngAfterViewInit() {
|
|
58
|
+
this.resizeObserver = new ResizeObserver(() => this.updateVisibleFields());
|
|
59
|
+
this.resizeObserver.observe(this.rowContainerRef.nativeElement);
|
|
60
|
+
this.resizeObserver.observe(this.mainSlotRef.nativeElement);
|
|
61
|
+
this.updateVisibleFields();
|
|
62
|
+
}
|
|
63
|
+
ngAfterContentChecked() {
|
|
64
|
+
this.updateVisibleFields();
|
|
65
|
+
}
|
|
66
|
+
ngOnDestroy() {
|
|
67
|
+
this.resizeObserver?.disconnect();
|
|
68
|
+
}
|
|
69
|
+
get hasHiddenFields() {
|
|
70
|
+
return this.fields().length > this.maxVisibleFields;
|
|
71
|
+
}
|
|
72
|
+
visibleFields() {
|
|
73
|
+
return this.fields().slice(0, this.maxVisibleFields);
|
|
74
|
+
}
|
|
75
|
+
hiddenFields() {
|
|
76
|
+
return this.fields().slice(this.maxVisibleFields);
|
|
77
|
+
}
|
|
78
|
+
toggle() {
|
|
79
|
+
if (this.expanded) {
|
|
80
|
+
this.collapse();
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
this.expand();
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
expand() {
|
|
87
|
+
this.setExpanded(true);
|
|
88
|
+
}
|
|
89
|
+
collapse() {
|
|
90
|
+
this.setExpanded(false);
|
|
91
|
+
}
|
|
92
|
+
get tooltipKey() {
|
|
93
|
+
const raw = this.expanded ? this.collapseTooltip : this.expandTooltip;
|
|
94
|
+
const fallback = this.expanded ? OBJECT_CARD_COLLAPSE_TOOLTIP_KEY : OBJECT_CARD_EXPAND_TOOLTIP_KEY;
|
|
95
|
+
return typeof raw === 'string' && raw ? raw : fallback;
|
|
96
|
+
}
|
|
97
|
+
get showBorderButton() {
|
|
98
|
+
return this.borderButtonOptions?.visible?.(this.severity) ?? false;
|
|
99
|
+
}
|
|
100
|
+
get borderButtonLabel() {
|
|
101
|
+
return this.borderButtonOptions?.label?.(this.severity) ?? 'platform.datacore.accessibility.panel_toggle';
|
|
102
|
+
}
|
|
103
|
+
get borderButtonTooltip() {
|
|
104
|
+
return this.borderButtonOptions?.tooltip?.(this.severity) ?? null;
|
|
105
|
+
}
|
|
106
|
+
get borderButtonIcon() {
|
|
107
|
+
return this.borderButtonOptions?.icon?.(this.severity) ?? null;
|
|
108
|
+
}
|
|
109
|
+
get borderButtonDisabled() {
|
|
110
|
+
return this.borderButtonOptions?.disabled?.(this.severity) ?? false;
|
|
111
|
+
}
|
|
112
|
+
onBorderButtonClick(event) {
|
|
113
|
+
event.stopPropagation();
|
|
114
|
+
if (this.borderButtonDisabled) {
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
this.borderButtonOptions?.onClick?.(this.severity);
|
|
118
|
+
}
|
|
119
|
+
setExpanded(value) {
|
|
120
|
+
if (this.expanded === value) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.expanded = value;
|
|
124
|
+
this.expandedChange.emit(this.expanded);
|
|
125
|
+
this.cdr.markForCheck();
|
|
126
|
+
}
|
|
127
|
+
updateVisibleFields() {
|
|
128
|
+
if (!this.rowContainerRef || !this.mainSlotRef) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
const totalFields = this.fields().length;
|
|
132
|
+
const isMobileViewport = getViewportWidth() <= OBJECT_CARD_MOBILE_BREAKPOINT_PX;
|
|
133
|
+
const containerWidth = this.rowContainerRef.nativeElement.getBoundingClientRect().width;
|
|
134
|
+
const mainWidth = this.mainSlotRef.nativeElement.getBoundingClientRect().width;
|
|
135
|
+
const remainingSpace = containerWidth - mainWidth;
|
|
136
|
+
let maxFieldQtd = isMobileViewport ? 0 : Math.floor(remainingSpace / this.fieldsMinWidth);
|
|
137
|
+
const hasExpandIcon = maxFieldQtd < totalFields;
|
|
138
|
+
if (hasExpandIcon && !isMobileViewport) {
|
|
139
|
+
const expandIconWidth = this.expandButtonRef?.nativeElement.getBoundingClientRect().width || OBJECT_CARD_EXPAND_ICON_ESTIMATED_WIDTH_PX;
|
|
140
|
+
maxFieldQtd = Math.floor((remainingSpace - expandIconWidth) / this.fieldsMinWidth);
|
|
141
|
+
}
|
|
142
|
+
const nextMaxVisibleFields = Math.max(maxFieldQtd, 0);
|
|
143
|
+
if (nextMaxVisibleFields === this.maxVisibleFields) {
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
this.maxVisibleFields = nextMaxVisibleFields;
|
|
147
|
+
if (this.maxVisibleFields >= totalFields && this.expanded) {
|
|
148
|
+
this.collapse();
|
|
149
|
+
}
|
|
150
|
+
this.cdr.markForCheck();
|
|
151
|
+
}
|
|
152
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ObjectCardComponent, isStandalone: true, selector: "sdc-object-card", inputs: { id: "id", expanded: "expanded", expandTooltip: "expandTooltip", collapseTooltip: "collapseTooltip", fieldsMinWidth: "fieldsMinWidth", severity: "severity", borderButtonOptions: "borderButtonOptions" }, outputs: { expandedChange: "expandedChange" }, queries: [{ propertyName: "fields", predicate: ObjectCardFieldComponent, descendants: true, isSignal: true }, { propertyName: "main", first: true, predicate: ObjectCardMainComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "rowContainerRef", first: true, predicate: ["rowContainer"], descendants: true, static: true }, { propertyName: "mainSlotRef", first: true, predicate: ["mainSlot"], descendants: true, static: true }, { propertyName: "expandButtonRef", first: true, predicate: ["expandButton"], descendants: true, static: true }], ngImport: i0, template: "<div [id]=\"id\" class=\"sdc-object-card\">\n @if (showBorderButton) {\n <button\n type=\"button\"\n class=\"sdc-object-card__border-button\"\n [disabled]=\"borderButtonDisabled\"\n [attr.aria-label]=\"borderButtonLabel | translate\"\n [attr.title]=\"borderButtonTooltip ? (borderButtonTooltip | translate) : null\"\n (click)=\"onBorderButtonClick($event)\"\n >\n @if (borderButtonIcon) {\n <i [class]=\"borderButtonIcon\" aria-hidden=\"true\"></i>\n } @else {\n <span>{{ borderButtonLabel | translate }}</span>\n }\n </button>\n }\n\n <div\n #rowContainer\n [id]=\"id + '-main-container'\"\n class=\"sdc-object-card__main-container\"\n [class.sdc-object-card__main-container--severity-default]=\"severity === 'default'\"\n [class.sdc-object-card__main-container--severity-info]=\"severity === 'info'\"\n [class.sdc-object-card__main-container--severity-warn]=\"severity === 'warn'\"\n [class.sdc-object-card__main-container--severity-error]=\"severity === 'error'\"\n [class.sdc-object-card__main-container--severity-success]=\"severity === 'success'\"\n [class.sdc-object-card__main-container--with-hidden-fields]=\"hasHiddenFields\"\n >\n <div class=\"sdc-object-card__content\">\n <div\n #mainSlot\n class=\"sdc-object-card__main-slot\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"sdc-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"sdc-object-card__divider\" aria-hidden=\"true\"></div>\n }\n\n @for (field of visibleFields(); track field.id) {\n <div\n class=\"sdc-object-card__field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container [ngTemplateOutlet]=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <button\n #expandButton\n type=\"button\"\n [id]=\"id + '-expand-icon-container'\"\n class=\"sdc-object-card__expand-button\"\n [class.sdc-object-card__expand-button--hidden]=\"!hasHiddenFields\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"id + '-expandable-container'\"\n [attr.aria-label]=\"tooltipKey | translate\"\n [attr.title]=\"tooltipKey | translate\"\n (click)=\"toggle()\"\n >\n <i\n [id]=\"id + '-expand-icon'\"\n class=\"sdc-object-card__expand-icon fas\"\n [class.fa-minus]=\"expanded\"\n [class.fa-plus]=\"!expanded\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n\n <section\n [id]=\"id + '-expandable-container'\"\n class=\"sdc-object-card__expandable-container\"\n [class.sdc-object-card__expandable-container--severity-default]=\"severity === 'default'\"\n [class.sdc-object-card__expandable-container--severity-info]=\"severity === 'info'\"\n [class.sdc-object-card__expandable-container--severity-warn]=\"severity === 'warn'\"\n [class.sdc-object-card__expandable-container--severity-error]=\"severity === 'error'\"\n [class.sdc-object-card__expandable-container--severity-success]=\"severity === 'success'\"\n [@sdcObjectCardExpandable]=\"expanded ? 'expanded' : 'collapsed'\"\n [attr.inert]=\"expanded ? null : ''\"\n >\n <div class=\"sdc-object-card__expandable-inner\">\n @for (field of hiddenFields(); track field.id) {\n <div class=\"sdc-object-card__field\">\n <ng-container [ngTemplateOutlet]=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </section>\n</div>\n", styles: [":host{display:block}.sdc-object-card{--sdc-object-card-severity-default: #ccc;--sdc-object-card-severity-info: #428bca;--sdc-object-card-severity-warn: #f8931f;--sdc-object-card-severity-error: #c13018;--sdc-object-card-severity-success: #0c9348;--sdc-object-card-bg: #fff;--sdc-object-card-divider-color: #ccc;--sdc-object-card-shadow-color: #ddd;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);position:relative}.sdc-object-card__main-container,.sdc-object-card__expandable-container{background-color:var(--sdc-object-card-bg);border:1px solid var(--sdc-object-card-severity-default);overflow:hidden;position:relative;width:100%}.sdc-object-card__main-container{display:flex}.sdc-object-card__content{display:flex;flex:1;min-width:0;width:100%}.sdc-object-card__main-slot{overflow:hidden;padding:15px}.sdc-object-card__main-container--with-hidden-fields .sdc-object-card__main-slot{max-width:30%}.sdc-object-card__field{height:100%;overflow:hidden;padding:15px}.sdc-object-card__divider{background-color:var(--sdc-object-card-divider-color);flex-shrink:0;margin:15px -1px 15px 0;width:1px}.sdc-object-card__expand-button{align-items:center;background:transparent;border:0;border-left:1px solid var(--sdc-object-card-divider-color);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;min-width:35px;padding:12px}.sdc-object-card__expand-button:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:-2px}.sdc-object-card__expand-button--hidden{display:none}.sdc-object-card__expand-icon{color:var(--sdc-object-card-severity-default)}.sdc-object-card__border-button{align-items:center;background:var(--sdc-object-card-bg);border:1px solid var(--sdc-object-card-divider-color);border-radius:999px;cursor:pointer;display:inline-flex;justify-content:center;padding:.375rem .75rem;position:absolute;right:15px;top:-13px;z-index:1}.sdc-object-card__border-button:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-object-card__border-button:disabled{cursor:not-allowed;opacity:.65}.sdc-object-card__expandable-container{border-top:0;box-shadow:inset 0 6px 4px -4px var(--sdc-object-card-shadow-color);margin-top:-1px}.sdc-object-card__expandable-inner{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.sdc-object-card__main-container--severity-default{border-color:var(--sdc-object-card-severity-default)}.sdc-object-card__main-container--severity-info{border-color:var(--sdc-object-card-severity-info);transition:border-color .5s ease}.sdc-object-card__main-container--severity-warn{border-color:var(--sdc-object-card-severity-warn);transition:border-color .5s ease}.sdc-object-card__main-container--severity-error{border-color:var(--sdc-object-card-severity-error);transition:border-color .5s ease}.sdc-object-card__main-container--severity-success{border-color:var(--sdc-object-card-severity-success);transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-default{border-color:var(--sdc-object-card-severity-default);border-top:0}.sdc-object-card__expandable-container--severity-info{border-color:var(--sdc-object-card-severity-info);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-warn{border-color:var(--sdc-object-card-severity-warn);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-error{border-color:var(--sdc-object-card-severity-error);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-success{border-color:var(--sdc-object-card-severity-success);border-top:0;transition:border-color .5s ease}@media (max-width: 767px){.sdc-object-card__main-slot{max-width:calc(100% - 50px)}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], animations: [
|
|
154
|
+
trigger('sdcObjectCardExpandable', [
|
|
155
|
+
state('collapsed', style({ height: '0' })),
|
|
156
|
+
state('expanded', style({ height: '*' })),
|
|
157
|
+
transition('collapsed <=> expanded', animate('200ms ease-out'))
|
|
158
|
+
])
|
|
159
|
+
], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
160
|
+
}
|
|
161
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ObjectCardComponent, decorators: [{
|
|
162
|
+
type: Component,
|
|
163
|
+
args: [{ selector: 'sdc-object-card', standalone: true, imports: [CommonModule, TranslateModule], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, animations: [
|
|
164
|
+
trigger('sdcObjectCardExpandable', [
|
|
165
|
+
state('collapsed', style({ height: '0' })),
|
|
166
|
+
state('expanded', style({ height: '*' })),
|
|
167
|
+
transition('collapsed <=> expanded', animate('200ms ease-out'))
|
|
168
|
+
])
|
|
169
|
+
], template: "<div [id]=\"id\" class=\"sdc-object-card\">\n @if (showBorderButton) {\n <button\n type=\"button\"\n class=\"sdc-object-card__border-button\"\n [disabled]=\"borderButtonDisabled\"\n [attr.aria-label]=\"borderButtonLabel | translate\"\n [attr.title]=\"borderButtonTooltip ? (borderButtonTooltip | translate) : null\"\n (click)=\"onBorderButtonClick($event)\"\n >\n @if (borderButtonIcon) {\n <i [class]=\"borderButtonIcon\" aria-hidden=\"true\"></i>\n } @else {\n <span>{{ borderButtonLabel | translate }}</span>\n }\n </button>\n }\n\n <div\n #rowContainer\n [id]=\"id + '-main-container'\"\n class=\"sdc-object-card__main-container\"\n [class.sdc-object-card__main-container--severity-default]=\"severity === 'default'\"\n [class.sdc-object-card__main-container--severity-info]=\"severity === 'info'\"\n [class.sdc-object-card__main-container--severity-warn]=\"severity === 'warn'\"\n [class.sdc-object-card__main-container--severity-error]=\"severity === 'error'\"\n [class.sdc-object-card__main-container--severity-success]=\"severity === 'success'\"\n [class.sdc-object-card__main-container--with-hidden-fields]=\"hasHiddenFields\"\n >\n <div class=\"sdc-object-card__content\">\n <div\n #mainSlot\n class=\"sdc-object-card__main-slot\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-content select=\"sdc-object-card-main\"></ng-content>\n </div>\n\n @if (maxVisibleFields && fields().length) {\n <div class=\"sdc-object-card__divider\" aria-hidden=\"true\"></div>\n }\n\n @for (field of visibleFields(); track field.id) {\n <div\n class=\"sdc-object-card__field\"\n [style.min-width.px]=\"fieldsMinWidth\"\n >\n <ng-container [ngTemplateOutlet]=\"field.content\"></ng-container>\n </div>\n }\n </div>\n\n <button\n #expandButton\n type=\"button\"\n [id]=\"id + '-expand-icon-container'\"\n class=\"sdc-object-card__expand-button\"\n [class.sdc-object-card__expand-button--hidden]=\"!hasHiddenFields\"\n [attr.aria-expanded]=\"expanded\"\n [attr.aria-controls]=\"id + '-expandable-container'\"\n [attr.aria-label]=\"tooltipKey | translate\"\n [attr.title]=\"tooltipKey | translate\"\n (click)=\"toggle()\"\n >\n <i\n [id]=\"id + '-expand-icon'\"\n class=\"sdc-object-card__expand-icon fas\"\n [class.fa-minus]=\"expanded\"\n [class.fa-plus]=\"!expanded\"\n aria-hidden=\"true\"\n ></i>\n </button>\n </div>\n\n <section\n [id]=\"id + '-expandable-container'\"\n class=\"sdc-object-card__expandable-container\"\n [class.sdc-object-card__expandable-container--severity-default]=\"severity === 'default'\"\n [class.sdc-object-card__expandable-container--severity-info]=\"severity === 'info'\"\n [class.sdc-object-card__expandable-container--severity-warn]=\"severity === 'warn'\"\n [class.sdc-object-card__expandable-container--severity-error]=\"severity === 'error'\"\n [class.sdc-object-card__expandable-container--severity-success]=\"severity === 'success'\"\n [@sdcObjectCardExpandable]=\"expanded ? 'expanded' : 'collapsed'\"\n [attr.inert]=\"expanded ? null : ''\"\n >\n <div class=\"sdc-object-card__expandable-inner\">\n @for (field of hiddenFields(); track field.id) {\n <div class=\"sdc-object-card__field\">\n <ng-container [ngTemplateOutlet]=\"field.content\"></ng-container>\n </div>\n }\n </div>\n </section>\n</div>\n", styles: [":host{display:block}.sdc-object-card{--sdc-object-card-severity-default: #ccc;--sdc-object-card-severity-info: #428bca;--sdc-object-card-severity-warn: #f8931f;--sdc-object-card-severity-error: #c13018;--sdc-object-card-severity-success: #0c9348;--sdc-object-card-bg: #fff;--sdc-object-card-divider-color: #ccc;--sdc-object-card-shadow-color: #ddd;font-family:var(--sdc-font-family, \"Open Sans\", sans-serif);position:relative}.sdc-object-card__main-container,.sdc-object-card__expandable-container{background-color:var(--sdc-object-card-bg);border:1px solid var(--sdc-object-card-severity-default);overflow:hidden;position:relative;width:100%}.sdc-object-card__main-container{display:flex}.sdc-object-card__content{display:flex;flex:1;min-width:0;width:100%}.sdc-object-card__main-slot{overflow:hidden;padding:15px}.sdc-object-card__main-container--with-hidden-fields .sdc-object-card__main-slot{max-width:30%}.sdc-object-card__field{height:100%;overflow:hidden;padding:15px}.sdc-object-card__divider{background-color:var(--sdc-object-card-divider-color);flex-shrink:0;margin:15px -1px 15px 0;width:1px}.sdc-object-card__expand-button{align-items:center;background:transparent;border:0;border-left:1px solid var(--sdc-object-card-divider-color);cursor:pointer;display:flex;flex-shrink:0;justify-content:center;min-width:35px;padding:12px}.sdc-object-card__expand-button:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:-2px}.sdc-object-card__expand-button--hidden{display:none}.sdc-object-card__expand-icon{color:var(--sdc-object-card-severity-default)}.sdc-object-card__border-button{align-items:center;background:var(--sdc-object-card-bg);border:1px solid var(--sdc-object-card-divider-color);border-radius:999px;cursor:pointer;display:inline-flex;justify-content:center;padding:.375rem .75rem;position:absolute;right:15px;top:-13px;z-index:1}.sdc-object-card__border-button:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}.sdc-object-card__border-button:disabled{cursor:not-allowed;opacity:.65}.sdc-object-card__expandable-container{border-top:0;box-shadow:inset 0 6px 4px -4px var(--sdc-object-card-shadow-color);margin-top:-1px}.sdc-object-card__expandable-inner{display:flex;flex-wrap:wrap;gap:1rem;padding:1rem}.sdc-object-card__main-container--severity-default{border-color:var(--sdc-object-card-severity-default)}.sdc-object-card__main-container--severity-info{border-color:var(--sdc-object-card-severity-info);transition:border-color .5s ease}.sdc-object-card__main-container--severity-warn{border-color:var(--sdc-object-card-severity-warn);transition:border-color .5s ease}.sdc-object-card__main-container--severity-error{border-color:var(--sdc-object-card-severity-error);transition:border-color .5s ease}.sdc-object-card__main-container--severity-success{border-color:var(--sdc-object-card-severity-success);transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-default{border-color:var(--sdc-object-card-severity-default);border-top:0}.sdc-object-card__expandable-container--severity-info{border-color:var(--sdc-object-card-severity-info);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-warn{border-color:var(--sdc-object-card-severity-warn);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-error{border-color:var(--sdc-object-card-severity-error);border-top:0;transition:border-color .5s ease}.sdc-object-card__expandable-container--severity-success{border-color:var(--sdc-object-card-severity-success);border-top:0;transition:border-color .5s ease}@media (max-width: 767px){.sdc-object-card__main-slot{max-width:calc(100% - 50px)}}\n"] }]
|
|
170
|
+
}], propDecorators: { id: [{
|
|
171
|
+
type: Input
|
|
172
|
+
}], expanded: [{
|
|
173
|
+
type: Input
|
|
174
|
+
}], expandTooltip: [{
|
|
175
|
+
type: Input
|
|
176
|
+
}], collapseTooltip: [{
|
|
177
|
+
type: Input
|
|
178
|
+
}], fieldsMinWidth: [{
|
|
179
|
+
type: Input
|
|
180
|
+
}], severity: [{
|
|
181
|
+
type: Input
|
|
182
|
+
}], borderButtonOptions: [{
|
|
183
|
+
type: Input
|
|
184
|
+
}], expandedChange: [{
|
|
185
|
+
type: Output
|
|
186
|
+
}], main: [{
|
|
187
|
+
type: ContentChild,
|
|
188
|
+
args: [ObjectCardMainComponent, { static: true }]
|
|
189
|
+
}], rowContainerRef: [{
|
|
190
|
+
type: ViewChild,
|
|
191
|
+
args: ['rowContainer', { static: true }]
|
|
192
|
+
}], mainSlotRef: [{
|
|
193
|
+
type: ViewChild,
|
|
194
|
+
args: ['mainSlot', { static: true }]
|
|
195
|
+
}], expandButtonRef: [{
|
|
196
|
+
type: ViewChild,
|
|
197
|
+
args: ['expandButton', { static: true }]
|
|
198
|
+
}] } });
|
|
199
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9vYmplY3QtY2FyZC9vYmplY3QtY2FyZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL29iamVjdC1jYXJkL29iamVjdC1jYXJkLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFHTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBRVosWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZUFBZSxFQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUNMLGdDQUFnQyxFQUNoQyx1Q0FBdUMsRUFDdkMsMENBQTBDLEVBQzFDLDhCQUE4QixFQUM5QixxQkFBcUIsRUFDckIsZ0NBQWdDLEVBQ2pDLE1BQU0sd0NBQXdDLENBQUM7QUFDaEQsT0FBTyxFQUF1QixZQUFZLEVBQW1CLE1BQU0sNkJBQTZCLENBQUM7QUFFakcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNERBQTRELENBQUM7QUFDdEcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMERBQTBELENBQUM7Ozs7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LE9BQU8sQ0FBQyx5QkFBeUIsRUFBRTs0QkFDakMsS0FBSyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDMUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQzs0QkFDekMsVUFBVSxDQUFDLHdCQUF3QixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO3lCQUNoRSxDQUFDO3FCQUNIOzhCQU1RLEVBQUU7c0JBQVYsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQUdHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBR0csZUFBZTtzQkFBdkIsS0FBSztnQkFHRyxjQUFjO3NCQUF0QixLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBTUcsbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdJLGNBQWM7c0JBQXZCLE1BQU07Z0JBR1ksSUFBSTtzQkFEdEIsWUFBWTt1QkFBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBTXRDLGVBQWU7c0JBRC9CLFNBQVM7dUJBQUMsY0FBYyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUIsV0FBVztzQkFEM0IsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUl0QixlQUFlO3NCQUQvQixTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBhbmltYXRlLCBzdGF0ZSwgc3R5bGUsIHRyYW5zaXRpb24sIHRyaWdnZXIgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRDaGVja2VkLFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBFdmVudEVtaXR0ZXIsXG4gIGluamVjdCxcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBjb250ZW50Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWCxcbiAgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYLFxuICBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVksXG4gIE9CSkVDVF9DQVJEX0lEX1BSRUZJWCxcbiAgT0JKRUNUX0NBUkRfTU9CSUxFX0JSRUFLUE9JTlRfUFhcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvb2JqZWN0LWNhcmQuY29uc3QnO1xuaW1wb3J0IHsgQm9yZGVyQnV0dG9uT3B0aW9ucywgRW51bVNldmVyaXR5LCB0eXBlIFNldmVyaXRpZXMgfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL3BhbmVsLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBTdHJpbmdCb29sZWFuIH0gZnJvbSAnLi4vLi4vY29yZS90eXBlcy9zZW1hbnRpY3MudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGdldFZpZXdwb3J0V2lkdGggfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2xheW91dC51dGlsJztcbmltcG9ydCB7IE9iamVjdENhcmRGaWVsZENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9vYmplY3QtY2FyZC1maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZE1haW5Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb2JqZWN0LWNhcmQtbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudCc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIENhcmQgZGUgZXhpYmnDp8OjbyBkZSBvYmpldG8gY29tIHVtIGJsb2NvIHByaW5jaXBhbCAoYHNkYy1vYmplY3QtY2FyZC1tYWluYCksXG4gKiBjYW1wb3MgZXh0cmFzIChgc2RjLW9iamVjdC1jYXJkLWZpZWxkYCkgZSBwYWluZWwgZXhwYW5zw612ZWwgcGFyYSBvcyBjYW1wb3MgcXVlIG7Do29cbiAqIGNhYmVtIG5hIGxhcmd1cmEgZGlzcG9uw612ZWwuIENhbGN1bGEgYXV0b21hdGljYW1lbnRlIHF1YW50b3MgY2FtcG9zIGZpY2FtIHZpc8OtdmVpc1xuICogY29uZm9ybWUgYSBsYXJndXJhIGRvIGNvbnRhaW5lciAodmlhIGBSZXNpemVPYnNlcnZlcmApIGUgc3Vwb3J0YSBuw612ZWwgZGUgc2V2ZXJpZGFkZS5cbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgaHRtbFxuICogPHNkYy1vYmplY3QtY2FyZCBbc2V2ZXJpdHldPVwiJ2luZm8nXCI+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtbWFpbiBsYWJlbD1cIkpvw6NvIGRhIFNpbHZhXCIgZGVzY3JpcHRpb249XCJBbmFsaXN0YSBkZSBzaXN0ZW1hc1wiIC8+XG4gKiAgIDxzZGMtb2JqZWN0LWNhcmQtZmllbGQgbGFiZWw9XCJDUEZcIiBkZXNjcmlwdGlvbj1cIjAwMC4wMDAuMDAwLTAwXCIgLz5cbiAqICAgPHNkYy1vYmplY3QtY2FyZC1maWVsZCBsYWJlbD1cIk1hdHLDrWN1bGFcIiBkZXNjcmlwdGlvbj1cIjAwMTIzXCIgLz5cbiAqIDwvc2RjLW9iamVjdC1jYXJkPlxuICogYGBgXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1vYmplY3QtY2FyZCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFRyYW5zbGF0ZU1vZHVsZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2NzcycsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZCxcbiAgYW5pbWF0aW9uczogW1xuICAgIHRyaWdnZXIoJ3NkY09iamVjdENhcmRFeHBhbmRhYmxlJywgW1xuICAgICAgc3RhdGUoJ2NvbGxhcHNlZCcsIHN0eWxlKHsgaGVpZ2h0OiAnMCcgfSkpLFxuICAgICAgc3RhdGUoJ2V4cGFuZGVkJywgc3R5bGUoeyBoZWlnaHQ6ICcqJyB9KSksXG4gICAgICB0cmFuc2l0aW9uKCdjb2xsYXBzZWQgPD0+IGV4cGFuZGVkJywgYW5pbWF0ZSgnMjAwbXMgZWFzZS1vdXQnKSlcbiAgICBdKVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkLCBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBJZGVudGlmaWNhZG9yIMO6bmljbyBkbyBjb21wb25lbnRlIG5vIERPTS4gR2VyYWRvIGF1dG9tYXRpY2FtZW50ZSBzZSBuw6NvIGluZm9ybWFkby4gKi9cbiAgQElucHV0KCkgaWQgPSBuZXh0U2VxdWVudGlhbElkKE9CSkVDVF9DQVJEX0lEX1BSRUZJWCk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBEZWZpbmUgc2UgbyBwYWluZWwgZXhwYW5zw612ZWwgZXN0w6EgYWJlcnRvLiBAZGVmYXVsdCBmYWxzZSAqL1xuICBASW5wdXQoKSBleHBhbmRlZCA9IGZhbHNlO1xuXG4gIC8qKiBAZGVzY3JpcHRpb24gQ2hhdmUgZGUgdHJhZHXDp8OjbyAob3UgYGZhbHNlYCBwYXJhIHVzYXIgbyBkZWZhdWx0KSBkbyB0b29sdGlwL2FyaWEtbGFiZWwgZGUgZXhwYW5kaXIuICovXG4gIEBJbnB1dCgpIGV4cGFuZFRvb2x0aXA6IFN0cmluZ0Jvb2xlYW4gPSBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBDaGF2ZSBkZSB0cmFkdcOnw6NvIChvdSBgZmFsc2VgIHBhcmEgdXNhciBvIGRlZmF1bHQpIGRvIHRvb2x0aXAvYXJpYS1sYWJlbCBkZSByZWNvbGhlci4gKi9cbiAgQElucHV0KCkgY29sbGFwc2VUb29sdGlwOiBTdHJpbmdCb29sZWFuID0gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVk7XG5cbiAgLyoqIEBkZXNjcmlwdGlvbiBMYXJndXJhIG3DrW5pbWEgZW0gcGl4ZWxzIGRlIGNhZGEgY2FtcG8gKHZpc8OtdmVsIG91IG5vIHBhaW5lbCBleHBhbnPDrXZlbCkuIEBkZWZhdWx0IDIwMCAqL1xuICBASW5wdXQoKSBmaWVsZHNNaW5XaWR0aCA9IE9CSkVDVF9DQVJEX0RFRkFVTFRfRklFTERTX01JTl9XSURUSF9QWDtcblxuICAvKiogQGRlc2NyaXB0aW9uIE7DrXZlbCBkZSBzZXZlcmlkYWRlIHF1ZSBhbHRlcmEgYSBjb3IgZGUgZGVzdGFxdWUgZG8gY2FyZC4gQGRlZmF1bHQgJ2RlZmF1bHQnICovXG4gIEBJbnB1dCgpIHNldmVyaXR5OiBTZXZlcml0aWVzID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBDb25maWd1cmHDp8OjbyBvcGNpb25hbCBkbyBib3TDo28gbGF0ZXJhbCBkZSBib3JkYSAobWVzbW8gY29udHJhdG8gdXNhZG8gcGVsbyBgc2RjLXBhbmVsYCkuXG4gICAqIE9taXRpZG8gcG9yIHBhZHLDo286IG7Do28gcmVxdWVyIG8gY29tcG9uZW50ZSBgcy1ib3JkZXItYnV0dG9uYCBkbyBBQyAoYWluZGEgbsOjbyBwb3J0YWRvIHBhcmEgbyBEYXRhQ29yZSkuXG4gICAqL1xuICBASW5wdXQoKSBib3JkZXJCdXR0b25PcHRpb25zPzogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAvKiogQGRlc2NyaXB0aW9uIEVtaXRpZG8gcXVhbmRvIG8gZXN0YWRvIGRlIGV4cGFuc8OjbyBtdWRhLiAqL1xuICBAT3V0cHV0KCkgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgQENvbnRlbnRDaGlsZChPYmplY3RDYXJkTWFpbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGZpZWxkcyA9IGNvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSk7XG5cbiAgQFZpZXdDaGlsZCgncm93Q29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJpdmF0ZSByZWFkb25seSByb3dDb250YWluZXJSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdtYWluU2xvdCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHByaXZhdGUgcmVhZG9ubHkgbWFpblNsb3RSZWYhOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKCdleHBhbmRCdXR0b24nLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcml2YXRlIHJlYWRvbmx5IGV4cGFuZEJ1dHRvblJlZiE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIHByaXZhdGUgcmVzaXplT2JzZXJ2ZXI/OiBSZXNpemVPYnNlcnZlcjtcblxuICBwcm90ZWN0ZWQgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplT2JzZXJ2ZXIoKCkgPT4gdGhpcy51cGRhdGVWaXNpYmxlRmllbGRzKCkpO1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnJvd0NvbnRhaW5lclJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5tYWluU2xvdFJlZi5uYXRpdmVFbGVtZW50KTtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZVZpc2libGVGaWVsZHMoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVzaXplT2JzZXJ2ZXI/LmRpc2Nvbm5lY3QoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaGFzSGlkZGVuRmllbGRzKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmZpZWxkcygpLmxlbmd0aCA+IHRoaXMubWF4VmlzaWJsZUZpZWxkcztcbiAgfVxuXG4gIHByb3RlY3RlZCB2aXNpYmxlRmllbGRzKCk6IE9iamVjdENhcmRGaWVsZENvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5maWVsZHMoKS5zbGljZSgwLCB0aGlzLm1heFZpc2libGVGaWVsZHMpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhpZGRlbkZpZWxkcygpOiBPYmplY3RDYXJkRmllbGRDb21wb25lbnRbXSB7XG4gICAgcmV0dXJuIHRoaXMuZmllbGRzKCkuc2xpY2UodGhpcy5tYXhWaXNpYmxlRmllbGRzKTtcbiAgfVxuXG4gIHByb3RlY3RlZCB0b2dnbGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5leHBhbmQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZXhwYW5kKCk6IHZvaWQge1xuICAgIHRoaXMuc2V0RXhwYW5kZWQodHJ1ZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgY29sbGFwc2UoKTogdm9pZCB7XG4gICAgdGhpcy5zZXRFeHBhbmRlZChmYWxzZSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRvb2x0aXBLZXkoKTogc3RyaW5nIHtcbiAgICBjb25zdCByYXcgPSB0aGlzLmV4cGFuZGVkID8gdGhpcy5jb2xsYXBzZVRvb2x0aXAgOiB0aGlzLmV4cGFuZFRvb2x0aXA7XG4gICAgY29uc3QgZmFsbGJhY2sgPSB0aGlzLmV4cGFuZGVkID8gT0JKRUNUX0NBUkRfQ09MTEFQU0VfVE9PTFRJUF9LRVkgOiBPQkpFQ1RfQ0FSRF9FWFBBTkRfVE9PTFRJUF9LRVk7XG4gICAgcmV0dXJuIHR5cGVvZiByYXcgPT09ICdzdHJpbmcnICYmIHJhdyA/IHJhdyA6IGZhbGxiYWNrO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBzaG93Qm9yZGVyQnV0dG9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LnZpc2libGU/Lih0aGlzLnNldmVyaXR5KSA/PyBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgYm9yZGVyQnV0dG9uTGFiZWwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5sYWJlbD8uKHRoaXMuc2V2ZXJpdHkpID8/ICdwbGF0Zm9ybS5kYXRhY29yZS5hY2Nlc3NpYmlsaXR5LnBhbmVsX3RvZ2dsZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvblRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8udG9vbHRpcD8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkljb24oKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuYm9yZGVyQnV0dG9uT3B0aW9ucz8uaWNvbj8uKHRoaXMuc2V2ZXJpdHkpID8/IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGJvcmRlckJ1dHRvbkRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmJvcmRlckJ1dHRvbk9wdGlvbnM/LmRpc2FibGVkPy4odGhpcy5zZXZlcml0eSkgPz8gZmFsc2U7XG4gIH1cblxuICBwcm90ZWN0ZWQgb25Cb3JkZXJCdXR0b25DbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblxuICAgIGlmICh0aGlzLmJvcmRlckJ1dHRvbkRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5ib3JkZXJCdXR0b25PcHRpb25zPy5vbkNsaWNrPy4odGhpcy5zZXZlcml0eSk7XG4gIH1cblxuICBwcml2YXRlIHNldEV4cGFuZGVkKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZXhwYW5kZWQgPT09IHZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5leHBhbmRlZCA9IHZhbHVlO1xuICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlVmlzaWJsZUZpZWxkcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucm93Q29udGFpbmVyUmVmIHx8ICF0aGlzLm1haW5TbG90UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgdG90YWxGaWVsZHMgPSB0aGlzLmZpZWxkcygpLmxlbmd0aDtcbiAgICBjb25zdCBpc01vYmlsZVZpZXdwb3J0ID0gZ2V0Vmlld3BvcnRXaWR0aCgpIDw9IE9CSkVDVF9DQVJEX01PQklMRV9CUkVBS1BPSU5UX1BYO1xuICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5yb3dDb250YWluZXJSZWYubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICBjb25zdCBtYWluV2lkdGggPSB0aGlzLm1haW5TbG90UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgY29uc3QgcmVtYWluaW5nU3BhY2UgPSBjb250YWluZXJXaWR0aCAtIG1haW5XaWR0aDtcblxuICAgIGxldCBtYXhGaWVsZFF0ZCA9IGlzTW9iaWxlVmlld3BvcnQgPyAwIDogTWF0aC5mbG9vcihyZW1haW5pbmdTcGFjZSAvIHRoaXMuZmllbGRzTWluV2lkdGgpO1xuXG4gICAgY29uc3QgaGFzRXhwYW5kSWNvbiA9IG1heEZpZWxkUXRkIDwgdG90YWxGaWVsZHM7XG5cbiAgICBpZiAoaGFzRXhwYW5kSWNvbiAmJiAhaXNNb2JpbGVWaWV3cG9ydCkge1xuICAgICAgY29uc3QgZXhwYW5kSWNvbldpZHRoID0gdGhpcy5leHBhbmRCdXR0b25SZWY/Lm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGggfHwgT0JKRUNUX0NBUkRfRVhQQU5EX0lDT05fRVNUSU1BVEVEX1dJRFRIX1BYO1xuICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChyZW1haW5pbmdTcGFjZSAtIGV4cGFuZEljb25XaWR0aCkgLyB0aGlzLmZpZWxkc01pbldpZHRoKTtcbiAgICB9XG5cbiAgICBjb25zdCBuZXh0TWF4VmlzaWJsZUZpZWxkcyA9IE1hdGgubWF4KG1heEZpZWxkUXRkLCAwKTtcblxuICAgIGlmIChuZXh0TWF4VmlzaWJsZUZpZWxkcyA9PT0gdGhpcy5tYXhWaXNpYmxlRmllbGRzKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5tYXhWaXNpYmxlRmllbGRzID0gbmV4dE1heFZpc2libGVGaWVsZHM7XG5cbiAgICBpZiAodGhpcy5tYXhWaXNpYmxlRmllbGRzID49IHRvdGFsRmllbGRzICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICB9XG5cbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxufVxuIiwiPGRpdiBbaWRdPVwiaWRcIiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZFwiPlxuICBAaWYgKHNob3dCb3JkZXJCdXR0b24pIHtcbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19ib3JkZXItYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJib3JkZXJCdXR0b25EaXNhYmxlZFwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImJvcmRlckJ1dHRvbkxhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cImJvcmRlckJ1dHRvblRvb2x0aXAgPyAoYm9yZGVyQnV0dG9uVG9vbHRpcCB8IHRyYW5zbGF0ZSkgOiBudWxsXCJcbiAgICAgIChjbGljayk9XCJvbkJvcmRlckJ1dHRvbkNsaWNrKCRldmVudClcIlxuICAgID5cbiAgICAgIEBpZiAoYm9yZGVyQnV0dG9uSWNvbikge1xuICAgICAgICA8aSBbY2xhc3NdPVwiYm9yZGVyQnV0dG9uSWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3Bhbj57eyBib3JkZXJCdXR0b25MYWJlbCB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2J1dHRvbj5cbiAgfVxuXG4gIDxkaXZcbiAgICAjcm93Q29udGFpbmVyXG4gICAgW2lkXT1cImlkICsgJy1tYWluLWNvbnRhaW5lcidcIlxuICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lclwiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWRlZmF1bHRdPVwic2V2ZXJpdHkgPT09ICdkZWZhdWx0J1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWluZm9dPVwic2V2ZXJpdHkgPT09ICdpbmZvJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LXdhcm5dPVwic2V2ZXJpdHkgPT09ICd3YXJuJ1wiXG4gICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fbWFpbi1jb250YWluZXItLXNldmVyaXR5LWVycm9yXT1cInNldmVyaXR5ID09PSAnZXJyb3InXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0tc2V2ZXJpdHktc3VjY2Vzc109XCJzZXZlcml0eSA9PT0gJ3N1Y2Nlc3MnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19tYWluLWNvbnRhaW5lci0td2l0aC1oaWRkZW4tZmllbGRzXT1cImhhc0hpZGRlbkZpZWxkc1wiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19jb250ZW50XCI+XG4gICAgICA8ZGl2XG4gICAgICAgICNtYWluU2xvdFxuICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fbWFpbi1zbG90XCJcbiAgICAgICAgW3N0eWxlLm1pbi13aWR0aC5weF09XCJmaWVsZHNNaW5XaWR0aFwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cInNkYy1vYmplY3QtY2FyZC1tYWluXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAobWF4VmlzaWJsZUZpZWxkcyAmJiBmaWVsZHMoKS5sZW5ndGgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZGl2aWRlclwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvZGl2PlxuICAgICAgfVxuXG4gICAgICBAZm9yIChmaWVsZCBvZiB2aXNpYmxlRmllbGRzKCk7IHRyYWNrIGZpZWxkLmlkKSB7XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInNkYy1vYmplY3QtY2FyZF9fZmllbGRcIlxuICAgICAgICAgIFtzdHlsZS5taW4td2lkdGgucHhdPVwiZmllbGRzTWluV2lkdGhcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJmaWVsZC5jb250ZW50XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgPGJ1dHRvblxuICAgICAgI2V4cGFuZEJ1dHRvblxuICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uLWNvbnRhaW5lcidcIlxuICAgICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZC1idXR0b25cIlxuICAgICAgW2NsYXNzLnNkYy1vYmplY3QtY2FyZF9fZXhwYW5kLWJ1dHRvbi0taGlkZGVuXT1cIiFoYXNIaWRkZW5GaWVsZHNcIlxuICAgICAgW2F0dHIuYXJpYS1leHBhbmRlZF09XCJleHBhbmRlZFwiXG4gICAgICBbYXR0ci5hcmlhLWNvbnRyb2xzXT1cImlkICsgJy1leHBhbmRhYmxlLWNvbnRhaW5lcidcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJ0b29sdGlwS2V5IHwgdHJhbnNsYXRlXCJcbiAgICAgIFthdHRyLnRpdGxlXT1cInRvb2x0aXBLZXkgfCB0cmFuc2xhdGVcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZSgpXCJcbiAgICA+XG4gICAgICA8aVxuICAgICAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZC1pY29uJ1wiXG4gICAgICAgIGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19leHBhbmQtaWNvbiBmYXNcIlxuICAgICAgICBbY2xhc3MuZmEtbWludXNdPVwiZXhwYW5kZWRcIlxuICAgICAgICBbY2xhc3MuZmEtcGx1c109XCIhZXhwYW5kZWRcIlxuICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG5cbiAgPHNlY3Rpb25cbiAgICBbaWRdPVwiaWQgKyAnLWV4cGFuZGFibGUtY29udGFpbmVyJ1wiXG4gICAgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZGVmYXVsdF09XCJzZXZlcml0eSA9PT0gJ2RlZmF1bHQnXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktaW5mb109XCJzZXZlcml0eSA9PT0gJ2luZm8nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktd2Fybl09XCJzZXZlcml0eSA9PT0gJ3dhcm4nXCJcbiAgICBbY2xhc3Muc2RjLW9iamVjdC1jYXJkX19leHBhbmRhYmxlLWNvbnRhaW5lci0tc2V2ZXJpdHktZXJyb3JdPVwic2V2ZXJpdHkgPT09ICdlcnJvcidcIlxuICAgIFtjbGFzcy5zZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtY29udGFpbmVyLS1zZXZlcml0eS1zdWNjZXNzXT1cInNldmVyaXR5ID09PSAnc3VjY2VzcydcIlxuICAgIFtAc2RjT2JqZWN0Q2FyZEV4cGFuZGFibGVdPVwiZXhwYW5kZWQgPyAnZXhwYW5kZWQnIDogJ2NvbGxhcHNlZCdcIlxuICAgIFthdHRyLmluZXJ0XT1cImV4cGFuZGVkID8gbnVsbCA6ICcnXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJzZGMtb2JqZWN0LWNhcmRfX2V4cGFuZGFibGUtaW5uZXJcIj5cbiAgICAgIEBmb3IgKGZpZWxkIG9mIGhpZGRlbkZpZWxkcygpOyB0cmFjayBmaWVsZC5pZCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLW9iamVjdC1jYXJkX19maWVsZFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmllbGQuY29udGVudFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgPC9zZWN0aW9uPlxuPC9kaXY+XG4iXX0=
|
|
@@ -161,7 +161,7 @@ export class PasswordStrengthComponent {
|
|
|
161
161
|
useExisting: forwardRef(() => PasswordStrengthComponent),
|
|
162
162
|
multi: true
|
|
163
163
|
}
|
|
164
|
-
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-password-strength{display:flex;flex-direction:column;gap
|
|
164
|
+
], viewQueries: [{ propertyName: "inputRef", first: true, predicate: ["inputRef"], descendants: true }], ngImport: i0, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block;min-width:0;max-width:100%}.sdc-password-strength{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-password-strength .sdc-password-strength__label{font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-password-strength .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-password-strength .sdc-password-strength__input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:var(--sdc-formfield-default-bg, #fff)}.sdc-password-strength .sdc-password-strength__input:focus,.sdc-password-strength .sdc-password-strength__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-password-strength .sdc-password-strength__input--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-password-strength .sdc-password-strength__panel{position:fixed;width:232px;padding:10px;background:#fff;border-radius:4px;box-shadow:0 0 5px 1px #0000002e;z-index:9999}.sdc-password-strength .sdc-password-strength__panel--top{transform:translate(-50%,-100%)}.sdc-password-strength .sdc-password-strength__panel--left{transform:translate(-100%,-50%)}.sdc-password-strength .sdc-password-strength__panel--right{transform:translateY(-50%)}.sdc-password-strength .sdc-password-strength__title{font-size:14px;font-weight:700;line-height:150%}.sdc-password-strength .sdc-password-strength__indicators{display:flex;justify-content:space-between;gap:.5rem;padding:10px 0}.sdc-password-strength .sdc-password-strength__indicator{background-color:#ccc;border-radius:2px;display:inline-block;height:3px;width:64px}.sdc-password-strength .sdc-password-strength__indicator--weak{background-color:#c13018}.sdc-password-strength .sdc-password-strength__indicator--medium{background-color:#fcbf10}.sdc-password-strength .sdc-password-strength__indicator--strong{background-color:#0c9348}.sdc-password-strength .sdc-password-strength__content{font-size:12px;line-height:150%;color:var(--sdc-text-subtle, #667085)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
165
165
|
}
|
|
166
166
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PasswordStrengthComponent, decorators: [{
|
|
167
167
|
type: Component,
|
|
@@ -171,7 +171,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
171
171
|
useExisting: forwardRef(() => PasswordStrengthComponent),
|
|
172
172
|
multi: true
|
|
173
173
|
}
|
|
174
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [".sdc-password-strength{display:flex;flex-direction:column;gap
|
|
174
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<div class=\"sdc-password-strength\">\n @if (label) {\n <label\n class=\"sdc-password-strength__label\"\n [attr.for]=\"inputId\"\n >\n {{ label | translate }}\n @if (required) {\n <span class=\"required-field\" aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <input\n #inputRef\n [id]=\"inputId\"\n class=\"sdc-password-strength__input\"\n [class.sdc-password-strength__input--invalid]=\"invalid\"\n [disabled]=\"disabled\"\n [placeholder]=\"placeholder ? (placeholder | translate) : ''\"\n [required]=\"required\"\n [value]=\"value\"\n type=\"password\"\n autocomplete=\"new-password\"\n [attr.aria-label]=\"\n label\n ? (label | translate)\n : ('platform.datacore.password_strength.accessibility.input' | translate)\n \"\n (input)=\"onInput($event)\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n />\n\n @if (showPanel) {\n <output\n class=\"sdc-password-strength__panel\"\n [class.sdc-password-strength__panel--top]=\"passwordStrengthPosition === 'top'\"\n [class.sdc-password-strength__panel--left]=\"passwordStrengthPosition === 'left'\"\n [class.sdc-password-strength__panel--right]=\"passwordStrengthPosition === 'right'\"\n [style.top.px]=\"panelTop\"\n [style.left.px]=\"panelLeft\"\n aria-live=\"polite\"\n >\n <span class=\"sdc-password-strength__title\">{{ title }}</span>\n <div class=\"sdc-password-strength__indicators\">\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(1)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(2)\"></span>\n <span class=\"sdc-password-strength__indicator\" [ngClass]=\"indicatorClass(3)\"></span>\n </div>\n <span class=\"sdc-password-strength__content\">{{ passwordStrengthDescription | translate }}</span>\n </output>\n }\n\n @if (message) {\n <small class=\"invalid-feedback\">\n {{ message | translate }}\n </small>\n }\n </div>\n", styles: [":host{display:block;min-width:0;max-width:100%}.sdc-password-strength{display:flex;flex-direction:column;gap:var(--sdc-form-label-row-gap)}.sdc-password-strength .sdc-password-strength__label{font-size:var(--sdc-form-label-font-size);font-weight:var(--sdc-form-label-font-weight);color:var(--sdc-form-label-color);line-height:var(--sdc-form-label-lh);margin-bottom:var(--sdc-form-label-row-mb)}.sdc-password-strength .required-field{margin-left:var(--sdc-form-required-ml);color:var(--sdc-form-required-color);font-weight:var(--sdc-form-required-weight)}.sdc-password-strength .sdc-password-strength__input{width:100%;min-width:0;box-sizing:border-box;border:1px solid var(--sdc-formfield-default-border, #d1d5db);border-radius:var(--sdc-formfield-border-radius, 8px);min-height:var(--sdc-formfield-default-height, 2.5rem);padding:0 var(--sdc-form-input-padding-x, .875rem);font:inherit;background:var(--sdc-formfield-default-bg, #fff)}.sdc-password-strength .sdc-password-strength__input:focus,.sdc-password-strength .sdc-password-strength__input:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, var(--sdc-tab-primary, #007bff));box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 2px rgba(0, 123, 255, .14))}.sdc-password-strength .sdc-password-strength__input--invalid{border-color:var(--sdc-formfield-invalid-border, var(--sdc-error-color, #d98888))}.sdc-password-strength .sdc-password-strength__panel{position:fixed;width:232px;padding:10px;background:#fff;border-radius:4px;box-shadow:0 0 5px 1px #0000002e;z-index:9999}.sdc-password-strength .sdc-password-strength__panel--top{transform:translate(-50%,-100%)}.sdc-password-strength .sdc-password-strength__panel--left{transform:translate(-100%,-50%)}.sdc-password-strength .sdc-password-strength__panel--right{transform:translateY(-50%)}.sdc-password-strength .sdc-password-strength__title{font-size:14px;font-weight:700;line-height:150%}.sdc-password-strength .sdc-password-strength__indicators{display:flex;justify-content:space-between;gap:.5rem;padding:10px 0}.sdc-password-strength .sdc-password-strength__indicator{background-color:#ccc;border-radius:2px;display:inline-block;height:3px;width:64px}.sdc-password-strength .sdc-password-strength__indicator--weak{background-color:#c13018}.sdc-password-strength .sdc-password-strength__indicator--medium{background-color:#fcbf10}.sdc-password-strength .sdc-password-strength__indicator--strong{background-color:#0c9348}.sdc-password-strength .sdc-password-strength__content{font-size:12px;line-height:150%;color:var(--sdc-text-subtle, #667085)}\n"] }]
|
|
175
175
|
}], ctorParameters: () => [{ type: i1.TranslateService }], propDecorators: { label: [{
|
|
176
176
|
type: Input
|
|
177
177
|
}], message: [{
|
|
@@ -209,4 +209,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
209
209
|
type: HostListener,
|
|
210
210
|
args: ['window:scroll']
|
|
211
211
|
}] } });
|
|
212
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9wYXNzd29yZC1zdHJlbmd0aC9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Bhc3N3b3JkLXN0cmVuZ3RoL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ25DLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFNUQsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFDdkMsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFrQjdDLE1BQU0sT0FBTyx5QkFBeUI7SUE0QlA7SUEzQnBCLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXBELEtBQUssR0FBbUIsS0FBSyxDQUFDO0lBQzlCLE9BQU8sR0FBbUIsS0FBSyxDQUFD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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQiwyQkFBMkI7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQXNFckIsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUwsXG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFzc3dvcmQtc3RyZW5ndGguY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBQYXNzd29yZFN0cmVuZ3RoTGV2ZWwsIFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcGFzc3dvcmQtc3RyZW5ndGgudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcblxuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfTUlOX0xFTkdUSCA9IDY7XG5jb25zdCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEID0gNDtcbmNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1NUUk9OR19USFJFU0hPTEQgPSA1O1xuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYID0gMjA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT047XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhXZWFrVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgcGFzc3dvcmRTdHJlbmd0aFN0cm9uZ1RpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbj86IChjb250ZW50OiBzdHJpbmcpID0+IFBhc3N3b3JkU3RyZW5ndGhMZXZlbDtcbiAgQElucHV0KCkgZW5hYmxlZCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgdmFsdWUgPSAnJztcbiAgc2hvd1BhbmVsID0gZmFsc2U7XG4gIHBhbmVsVG9wID0gMDtcbiAgcGFuZWxMZWZ0ID0gMDtcbiAgbGV2ZWw6IFBhc3N3b3JkU3RyZW5ndGhMZXZlbCA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmxldmVsKSB7XG4gICAgICBjYXNlICdzdHJvbmcnOlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoU3Ryb25nVGl0bGVcbiAgICAgICAgICA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5zdHJvbmcnKTtcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZVxuICAgICAgICAgID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnBhc3N3b3JkX3N0cmVuZ3RoLm1lZGl1bScpO1xuICAgICAgY2FzZSAnd2Vhayc6XG4gICAgICBjYXNlICd2ZXJ5V2Vhayc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoV2Vha1RpdGxlXG4gICAgICAgICAgPz8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUucGFzc3dvcmRfc3RyZW5ndGgud2VhaycpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKG5leHRWYWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZShuZXh0VmFsdWUpO1xuICAgIHRoaXMudXBkYXRlUGFuZWxQb3NpdGlvbigpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BhbmVsID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYW5lbCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gIG9uVmlld3BvcnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1BhbmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBpbmRpY2F0b3JDbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sZXZlbCA9PT0gJ3N0cm9uZycpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXN0cm9uZyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGV2ZWwgPT09ICdtZWRpdW0nICYmIGluZGV4IDw9IDIpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLW1lZGl1bSc7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmxldmVsID09PSAnd2VhaycgfHwgdGhpcy5sZXZlbCA9PT0gJ3ZlcnlXZWFrJykgJiYgaW5kZXggPT09IDEpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXdlYWsnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBpbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHN3aXRjaCAodGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMucGFuZWxUb3AgPSBNYXRoLnJvdW5kKHJlY3QudG9wIC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgdGhpcy5wYW5lbExlZnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgdGhpcy5wYW5lbFRvcCA9IE1hdGgucm91bmQocmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpO1xuICAgICAgICB0aGlzLnBhbmVsTGVmdCA9IE1hdGgucm91bmQocmVjdC5sZWZ0IC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnBhbmVsVG9wID0gTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7XG4gICAgICAgIHRoaXMucGFuZWxMZWZ0ID0gTWF0aC5yb3VuZChyZWN0LnJpZ2h0ICsgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RyZW5ndGgoY29udGVudDogc3RyaW5nKTogUGFzc3dvcmRTdHJlbmd0aExldmVsIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgbGV0IHBvaW50cyA9IDA7XG4gICAgaWYgKGNvbnRlbnQubGVuZ3RoID49IFBBU1NXT1JEX1NUUkVOR1RIX01JTl9MRU5HVEgpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1xcZC8udGVzdChjb250ZW50KSkge1xuICAgICAgcG9pbnRzICs9IDE7XG4gICAgfVxuICAgIGlmICgvW2Etel0vLnRlc3QoY29udGVudCkpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1tBLVpdLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG4gICAgaWYgKC9bIUAjJCUmKi5cXFxcPStefi1dLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzIDwgMSkge1xuICAgICAgcmV0dXJuICd2ZXJ5V2Vhayc7XG4gICAgfVxuICAgIGlmIChwb2ludHMgPCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm4gJ3dlYWsnO1xuICAgIH1cbiAgICBpZiAocG9pbnRzIDwgUEFTU1dPUkRfU1RSRU5HVEhfU1RST05HX1RIUkVTSE9MRCkge1xuICAgICAgcmV0dXJuICdtZWRpdW0nO1xuICAgIH1cbiAgICByZXR1cm4gJ3N0cm9uZyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2lucHV0XCJcbiAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgbGFiZWxcbiAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5hY2Nlc3NpYmlsaXR5LmlucHV0JyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAvPlxuXG4gICAgQGlmIChzaG93UGFuZWwpIHtcbiAgICAgIDxvdXRwdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3BhbmVsXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLXRvcF09XCJwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPT09ICd0b3AnXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLWxlZnRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19wYW5lbC0tcmlnaHRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJwYW5lbFRvcFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBhbmVsTGVmdFwiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvcnNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yXCIgW25nQ2xhc3NdPVwiaW5kaWNhdG9yQ2xhc3MoMSlcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvclwiIFtuZ0NsYXNzXT1cImluZGljYXRvckNsYXNzKDIpXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJpbmRpY2F0b3JDbGFzcygzKVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19jb250ZW50XCI+e3sgcGFzc3dvcmRTdHJlbmd0aERlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9vdXRwdXQ+XG4gICAgfVxuXG4gICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XG4gICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgfVxuICA8L2Rpdj5cbiJdfQ==
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9wYXNzd29yZC1zdHJlbmd0aC9wYXNzd29yZC1zdHJlbmd0aC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL3Bhc3N3b3JkLXN0cmVuZ3RoL3Bhc3N3b3JkLXN0cmVuZ3RoLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxXQUFXLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyRixPQUFPLEVBQUUsZUFBZSxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBRXhFLE9BQU8sRUFDTCwrQkFBK0IsRUFDL0Isa0NBQWtDLEVBQ25DLE1BQU0sOENBQThDLENBQUM7QUFFdEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFFNUQsTUFBTSw0QkFBNEIsR0FBRyxDQUFDLENBQUM7QUFDdkMsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxrQ0FBa0MsR0FBRyxDQUFDLENBQUM7QUFDN0MsTUFBTSxpQ0FBaUMsR0FBRyxFQUFFLENBQUM7QUFrQjdDLE1BQU0sT0FBTyx5QkFBeUI7SUE0QlA7SUEzQnBCLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0lBRXBELEtBQUssR0FBbUIsS0FBSyxDQUFDO0lBQzlCLE9BQU8sR0FBbUIsS0FBSyxDQUFD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QkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNxQiwyQkFBMkI7c0JBQXJELEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNoQix3QkFBd0I7c0JBQWhDLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLDJCQUEyQjtzQkFBbkMsS0FBSztnQkFDRywyQkFBMkI7c0JBQW5DLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFFaUIsUUFBUTtzQkFBOUIsU0FBUzt1QkFBQyxVQUFVO2dCQXNFckIsZ0JBQWdCO3NCQUZmLFlBQVk7dUJBQUMsZUFBZTs7c0JBQzVCLFlBQVk7dUJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7XG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUwsXG4gIFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT05cbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvcGFzc3dvcmQtc3RyZW5ndGguY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBQYXNzd29yZFN0cmVuZ3RoTGV2ZWwsIFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvcGFzc3dvcmQtc3RyZW5ndGgudHlwZSc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcblxuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfTUlOX0xFTkdUSCA9IDY7XG5jb25zdCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEID0gNDtcbmNvbnN0IFBBU1NXT1JEX1NUUkVOR1RIX1NUUk9OR19USFJFU0hPTEQgPSA1O1xuY29uc3QgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYID0gMjA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcGFzc3dvcmQtc3RyZW5ndGguY29tcG9uZW50LnNjc3MnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFBhc3N3b3JkU3RyZW5ndGhDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5FbXVsYXRlZFxufSlcbmV4cG9ydCBjbGFzcyBQYXNzd29yZFN0cmVuZ3RoQ29tcG9uZW50IHtcbiAgcmVhZG9ubHkgaW5wdXRJZCA9IG5leHRTZXF1ZW50aWFsSWQoJ3NkYy1wYXNzd29yZC1zdHJlbmd0aCcpO1xuXG4gIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBtZXNzYWdlOiBzdHJpbmcgfCBmYWxzZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHBhc3N3b3JkU3RyZW5ndGhEZXNjcmlwdGlvbiA9ICcnO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb246IFBhc3N3b3JkU3RyZW5ndGhQb3NpdGlvbiA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfUE9TSVRJT047XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhXZWFrVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZT86IHN0cmluZztcbiAgQElucHV0KCkgcGFzc3dvcmRTdHJlbmd0aFN0cm9uZ1RpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBwYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbj86IChjb250ZW50OiBzdHJpbmcpID0+IFBhc3N3b3JkU3RyZW5ndGhMZXZlbDtcbiAgQElucHV0KCkgZW5hYmxlZCA9IHRydWU7XG5cbiAgQFZpZXdDaGlsZCgnaW5wdXRSZWYnKSBpbnB1dFJlZj86IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cbiAgdmFsdWUgPSAnJztcbiAgc2hvd1BhbmVsID0gZmFsc2U7XG4gIHBhbmVsVG9wID0gMDtcbiAgcGFuZWxMZWZ0ID0gMDtcbiAgbGV2ZWw6IFBhc3N3b3JkU3RyZW5ndGhMZXZlbCA9IFBBU1NXT1JEX1NUUkVOR1RIX0RFRkFVTFRfTEVWRUw7XG5cbiAgb25DaGFuZ2U6ICh2YWx1ZTogc3RyaW5nKSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuICBvblRvdWNoZWQ6ICgpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgZ2V0IHRpdGxlKCk6IHN0cmluZyB7XG4gICAgc3dpdGNoICh0aGlzLmxldmVsKSB7XG4gICAgICBjYXNlICdzdHJvbmcnOlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoU3Ryb25nVGl0bGVcbiAgICAgICAgICA/PyB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5zdHJvbmcnKTtcbiAgICAgIGNhc2UgJ21lZGl1bSc6XG4gICAgICAgIHJldHVybiB0aGlzLnBhc3N3b3JkU3RyZW5ndGhNZWRpdW1UaXRsZVxuICAgICAgICAgID8/IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ3BsYXRmb3JtLmRhdGFjb3JlLnBhc3N3b3JkX3N0cmVuZ3RoLm1lZGl1bScpO1xuICAgICAgY2FzZSAnd2Vhayc6XG4gICAgICBjYXNlICd2ZXJ5V2Vhayc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdGhpcy5wYXNzd29yZFN0cmVuZ3RoV2Vha1RpdGxlXG4gICAgICAgICAgPz8gdGhpcy50cmFuc2xhdGUuaW5zdGFudCgncGxhdGZvcm0uZGF0YWNvcmUucGFzc3dvcmRfc3RyZW5ndGgud2VhaycpO1xuICAgIH1cbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gJyc7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBzdHJpbmcpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG9uSW5wdXQoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgbmV4dFZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50IHwgbnVsbCk/LnZhbHVlID8/ICcnO1xuICAgIHRoaXMudmFsdWUgPSBuZXh0VmFsdWU7XG4gICAgdGhpcy5sZXZlbCA9IHRoaXMucmVzb2x2ZVN0cmVuZ3RoKG5leHRWYWx1ZSk7XG4gICAgdGhpcy5vbkNoYW5nZShuZXh0VmFsdWUpO1xuICAgIHRoaXMudXBkYXRlUGFuZWxQb3NpdGlvbigpO1xuICB9XG5cbiAgb25Gb2N1cygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZW5hYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuc2hvd1BhbmVsID0gdHJ1ZTtcbiAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgfVxuXG4gIG9uQmx1cigpOiB2b2lkIHtcbiAgICB0aGlzLnNob3dQYW5lbCA9IGZhbHNlO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6cmVzaXplJylcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcpXG4gIG9uVmlld3BvcnRDaGFuZ2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd1BhbmVsKSB7XG4gICAgICB0aGlzLnVwZGF0ZVBhbmVsUG9zaXRpb24oKTtcbiAgICB9XG4gIH1cblxuICBpbmRpY2F0b3JDbGFzcyhpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5sZXZlbCA9PT0gJ3N0cm9uZycpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXN0cm9uZyc7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMubGV2ZWwgPT09ICdtZWRpdW0nICYmIGluZGV4IDw9IDIpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLW1lZGl1bSc7XG4gICAgfVxuXG4gICAgaWYgKCh0aGlzLmxldmVsID09PSAnd2VhaycgfHwgdGhpcy5sZXZlbCA9PT0gJ3ZlcnlXZWFrJykgJiYgaW5kZXggPT09IDEpIHtcbiAgICAgIHJldHVybiAnc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3ItLXdlYWsnO1xuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlUGFuZWxQb3NpdGlvbigpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMuaW5wdXRSZWY/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKCFpbnB1dCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJlY3QgPSBpbnB1dC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcblxuICAgIHN3aXRjaCAodGhpcy5wYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24pIHtcbiAgICAgIGNhc2UgJ3RvcCc6XG4gICAgICAgIHRoaXMucGFuZWxUb3AgPSBNYXRoLnJvdW5kKHJlY3QudG9wIC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgdGhpcy5wYW5lbExlZnQgPSBNYXRoLnJvdW5kKHJlY3QubGVmdCArIHJlY3Qud2lkdGggLyAyKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgdGhpcy5wYW5lbFRvcCA9IE1hdGgucm91bmQocmVjdC50b3AgKyByZWN0LmhlaWdodCAvIDIpO1xuICAgICAgICB0aGlzLnBhbmVsTGVmdCA9IE1hdGgucm91bmQocmVjdC5sZWZ0IC0gUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICdyaWdodCc6XG4gICAgICBkZWZhdWx0OlxuICAgICAgICB0aGlzLnBhbmVsVG9wID0gTWF0aC5yb3VuZChyZWN0LnRvcCArIHJlY3QuaGVpZ2h0IC8gMik7XG4gICAgICAgIHRoaXMucGFuZWxMZWZ0ID0gTWF0aC5yb3VuZChyZWN0LnJpZ2h0ICsgUEFTU1dPUkRfU1RSRU5HVEhfUEFORUxfTUFSR0lOX1BYKTtcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlU3RyZW5ndGgoY29udGVudDogc3RyaW5nKTogUGFzc3dvcmRTdHJlbmd0aExldmVsIHtcbiAgICBpZiAodGhpcy5wYXNzd29yZFN0cmVuZ3RoVmFsaWRhdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMucGFzc3dvcmRTdHJlbmd0aFZhbGlkYXRpb24oY29udGVudCk7XG4gICAgfVxuXG4gICAgbGV0IHBvaW50cyA9IDA7XG4gICAgaWYgKGNvbnRlbnQubGVuZ3RoID49IFBBU1NXT1JEX1NUUkVOR1RIX01JTl9MRU5HVEgpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1xcZC8udGVzdChjb250ZW50KSkge1xuICAgICAgcG9pbnRzICs9IDE7XG4gICAgfVxuICAgIGlmICgvW2Etel0vLnRlc3QoY29udGVudCkpIHtcbiAgICAgIHBvaW50cyArPSAxO1xuICAgIH1cbiAgICBpZiAoL1tBLVpdLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG4gICAgaWYgKC9bIUAjJCUmKi5cXFxcPStefi1dLy50ZXN0KGNvbnRlbnQpKSB7XG4gICAgICBwb2ludHMgKz0gMTtcbiAgICB9XG5cbiAgICBpZiAocG9pbnRzIDwgMSkge1xuICAgICAgcmV0dXJuICd2ZXJ5V2Vhayc7XG4gICAgfVxuICAgIGlmIChwb2ludHMgPCBQQVNTV09SRF9TVFJFTkdUSF9NRURJVU1fVEhSRVNIT0xEKSB7XG4gICAgICByZXR1cm4gJ3dlYWsnO1xuICAgIH1cbiAgICBpZiAocG9pbnRzIDwgUEFTU1dPUkRfU1RSRU5HVEhfU1RST05HX1RIUkVTSE9MRCkge1xuICAgICAgcmV0dXJuICdtZWRpdW0nO1xuICAgIH1cbiAgICByZXR1cm4gJ3N0cm9uZyc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhcIj5cbiAgQGlmIChsYWJlbCkge1xuICAgIDxsYWJlbFxuICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2xhYmVsXCJcbiAgICAgIFthdHRyLmZvcl09XCJpbnB1dElkXCJcbiAgICAgID5cbiAgICAgIHt7IGxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtZmllbGRcIiBhcmlhLWhpZGRlbj1cInRydWVcIj4qPC9zcGFuPlxuICAgICAgfVxuICAgIDwvbGFiZWw+XG4gIH1cblxuICA8aW5wdXRcbiAgICAjaW5wdXRSZWZcbiAgICBbaWRdPVwiaW5wdXRJZFwiXG4gICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2lucHV0XCJcbiAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbnB1dC0taW52YWxpZF09XCJpbnZhbGlkXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlciA/IChwbGFjZWhvbGRlciB8IHRyYW5zbGF0ZSkgOiAnJ1wiXG4gICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcbiAgICBbdmFsdWVdPVwidmFsdWVcIlxuICAgIHR5cGU9XCJwYXNzd29yZFwiXG4gICAgYXV0b2NvbXBsZXRlPVwibmV3LXBhc3N3b3JkXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIlxuICAgICAgbGFiZWxcbiAgICAgICAgPyAobGFiZWwgfCB0cmFuc2xhdGUpXG4gICAgICAgIDogKCdwbGF0Zm9ybS5kYXRhY29yZS5wYXNzd29yZF9zdHJlbmd0aC5hY2Nlc3NpYmlsaXR5LmlucHV0JyB8IHRyYW5zbGF0ZSlcbiAgICBcIlxuICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxuICAgIChmb2N1cyk9XCJvbkZvY3VzKClcIlxuICAgIChibHVyKT1cIm9uQmx1cigpXCJcbiAgICAvPlxuXG4gICAgQGlmIChzaG93UGFuZWwpIHtcbiAgICAgIDxvdXRwdXRcbiAgICAgICAgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3BhbmVsXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLXRvcF09XCJwYXNzd29yZFN0cmVuZ3RoUG9zaXRpb24gPT09ICd0b3AnXCJcbiAgICAgICAgW2NsYXNzLnNkYy1wYXNzd29yZC1zdHJlbmd0aF9fcGFuZWwtLWxlZnRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAnbGVmdCdcIlxuICAgICAgICBbY2xhc3Muc2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19wYW5lbC0tcmlnaHRdPVwicGFzc3dvcmRTdHJlbmd0aFBvc2l0aW9uID09PSAncmlnaHQnXCJcbiAgICAgICAgW3N0eWxlLnRvcC5weF09XCJwYW5lbFRvcFwiXG4gICAgICAgIFtzdHlsZS5sZWZ0LnB4XT1cInBhbmVsTGVmdFwiXG4gICAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICAgID5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX3RpdGxlXCI+e3sgdGl0bGUgfX08L3NwYW4+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvcnNcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1wYXNzd29yZC1zdHJlbmd0aF9faW5kaWNhdG9yXCIgW25nQ2xhc3NdPVwiaW5kaWNhdG9yQ2xhc3MoMSlcIj48L3NwYW4+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtcGFzc3dvcmQtc3RyZW5ndGhfX2luZGljYXRvclwiIFtuZ0NsYXNzXT1cImluZGljYXRvckNsYXNzKDIpXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19pbmRpY2F0b3JcIiBbbmdDbGFzc109XCJpbmRpY2F0b3JDbGFzcygzKVwiPjwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLXBhc3N3b3JkLXN0cmVuZ3RoX19jb250ZW50XCI+e3sgcGFzc3dvcmRTdHJlbmd0aERlc2NyaXB0aW9uIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPC9vdXRwdXQ+XG4gICAgfVxuXG4gICAgQGlmIChtZXNzYWdlKSB7XG4gICAgICA8c21hbGwgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+XG4gICAgICAgIHt7IG1lc3NhZ2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc21hbGw+XG4gICAgfVxuICA8L2Rpdj5cbiJdfQ==
|