@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
|
@@ -27,7 +27,7 @@ const FONT_AWESOME_PREFIX_REGEX = /\bfa-/g;
|
|
|
27
27
|
const ICON_PICKER_TRANSLATIONS = {
|
|
28
28
|
en: enTranslations,
|
|
29
29
|
es: esTranslations,
|
|
30
|
-
pt: ptTranslations
|
|
30
|
+
pt: Array.isArray(ptTranslations) ? Object.assign({}, ...ptTranslations) : ptTranslations
|
|
31
31
|
};
|
|
32
32
|
const ICON_PICKER_DEFAULT_TEXTS = {
|
|
33
33
|
cancel: {
|
|
@@ -360,7 +360,7 @@ export class IconPickerComponent {
|
|
|
360
360
|
useExisting: forwardRef(() => IconPickerComponent),
|
|
361
361
|
multi: true
|
|
362
362
|
}
|
|
363
|
-
], viewQueries: [{ propertyName: "searchboxEl", first: true, predicate: ["searchboxEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button\n type=\"button\"\n class=\"sdc-icon-picker__info-icon\"\n [attr.aria-label]=\"resolvedTooltip\"\n >\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n #searchboxEl\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i\n [class]=\"'fas ' + pendingValue\"\n class=\"sdc-icon-picker__preview-icon\"\n aria-hidden=\"true\"\n ></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"icon.label + ' - ' + icon.name\"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
363
|
+
], viewQueries: [{ propertyName: "searchboxEl", first: true, predicate: ["searchboxEl"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button\n type=\"button\"\n class=\"sdc-icon-picker__info-icon\"\n [attr.aria-label]=\"resolvedTooltip\"\n >\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n #searchboxEl\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i\n [class]=\"'fas ' + pendingValue\"\n class=\"sdc-icon-picker__preview-icon\"\n aria-hidden=\"true\"\n ></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"icon.label + ' - ' + icon.name\"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;box-sizing:border-box;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "headerActions", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }, { kind: "component", type: SearchboxComponent, selector: "sdc-searchbox", inputs: ["triggerMode", "debounceTimeMs", "ariaLabel", "inputRole", "inputAriaControls", "inputAriaDescribedBy", "inputAriaActiveDescendant", "inputAriaHaspopup", "inputAriaExpanded", "inputAutocomplete", "submitOnEnter", "clearOnEscape"], outputs: ["debouncedValueChange", "onSearch", "onClear"] }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }, { 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 });
|
|
364
364
|
}
|
|
365
365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: IconPickerComponent, decorators: [{
|
|
366
366
|
type: Component,
|
|
@@ -378,7 +378,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
378
378
|
useExisting: forwardRef(() => IconPickerComponent),
|
|
379
379
|
multi: true
|
|
380
380
|
}
|
|
381
|
-
], template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button\n type=\"button\"\n class=\"sdc-icon-picker__info-icon\"\n [attr.aria-label]=\"resolvedTooltip\"\n >\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n #searchboxEl\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i\n [class]=\"'fas ' + pendingValue\"\n class=\"sdc-icon-picker__preview-icon\"\n aria-hidden=\"true\"\n ></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"icon.label + ' - ' + icon.name\"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"] }]
|
|
381
|
+
], template: "<div\n class=\"sdc-icon-picker\"\n [class.sdc-icon-picker--disabled]=\"disabled\"\n [class.sdc-icon-picker--invalid]=\"invalid\"\n>\n @if (resolvedLabel) {\n <div class=\"sdc-icon-picker__label-row\">\n <label class=\"sdc-icon-picker__label\" [for]=\"triggerId\" [attr.aria-required]=\"required || null\">\n {{ resolvedLabel }}\n @if (required) {\n <span class=\"sdc-icon-picker__required\" aria-hidden=\"true\">*</span>\n }\n </label>\n\n @if (resolvedTooltip) {\n <sdc-tooltip [pTooltip]=\"resolvedTooltip\" [tooltipEvent]=\"'both'\">\n <button\n type=\"button\"\n class=\"sdc-icon-picker__info-icon\"\n [attr.aria-label]=\"resolvedTooltip\"\n >\n <i class=\"fas fa-info-circle\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n }\n </div>\n }\n\n <button\n [id]=\"triggerId\"\n type=\"button\"\n class=\"sdc-icon-picker__trigger\"\n [attr.disabled]=\"disabled ? true : null\"\n [attr.aria-required]=\"required || null\"\n [attr.aria-invalid]=\"invalid || null\"\n (click)=\"openModal()\"\n >\n <span class=\"sdc-icon-picker__trigger-swatch\">\n @if (value) {\n <i [class]=\"'fas ' + value\" aria-hidden=\"true\"></i>\n } @else {\n <i class=\"fas fa-chevron-down sdc-icon-picker__trigger-swatch-placeholder\" aria-hidden=\"true\"></i>\n }\n </span>\n\n <span class=\"sdc-icon-picker__trigger-sep\" aria-hidden=\"true\"></span>\n\n <span class=\"sdc-icon-picker__trigger-text\">\n @if (value && selectedIconLabel) {\n {{ selectedIconLabel }}\n } @else {\n <span class=\"sdc-icon-picker__placeholder\">{{ resolvedPlaceholder }}</span>\n }\n </span>\n </button>\n\n @if (invalid && resolvedErrorMessage) {\n <small class=\"sdc-icon-picker__error\">{{ resolvedErrorMessage }}</small>\n }\n</div>\n\n<sdc-modal\n [header]=\"resolvedModalTitle\"\n [visible]=\"modalOpen\"\n [width]=\"660\"\n [closable]=\"true\"\n styleClass=\"sdc-modal--icon-picker\"\n [appendToBody]=\"true\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n>\n <div class=\"sdc-icon-picker__modal-body\">\n <div class=\"sdc-icon-picker__search-row\">\n <sdc-searchbox\n #searchboxEl\n [value]=\"searchTerm\"\n [placeholder]=\"resolvedSearchPlaceholder\"\n [debounceTimeMs]=\"250\"\n (debouncedValueChange)=\"onSearch($event)\"\n (onClear)=\"onSearch('')\"\n ></sdc-searchbox>\n </div>\n\n @if (pendingValue) {\n <div class=\"sdc-icon-picker__preview-bar\">\n <i\n [class]=\"'fas ' + pendingValue\"\n class=\"sdc-icon-picker__preview-icon\"\n aria-hidden=\"true\"\n ></i>\n <div class=\"sdc-icon-picker__preview-info\">\n <span class=\"sdc-icon-picker__preview-label\">{{ pendingIconLabel }}</span>\n <span class=\"sdc-icon-picker__preview-class\">{{ pendingValue }}</span>\n </div>\n </div>\n }\n\n <div class=\"sdc-icon-picker__counter\">\n @if (filteredIcons.length > 0) {\n <span>{{ iconsFoundCount }} {{ iconsFoundText }}</span>\n } @else if (!isLoading) {\n <span>{{ noIconsFoundText }}</span>\n }\n </div>\n\n @if (isLoading) {\n <div class=\"sdc-icon-picker__loading\">\n <i class=\"fas fa-spinner fa-spin\" aria-hidden=\"true\"></i>\n </div>\n } @else {\n <!-- NOSONAR: this picker needs a custom ARIA listbox/grid experience that a native select cannot provide -->\n <div\n #iconGrid\n class=\"sdc-icon-picker__grid\"\n [attr.role]=\"'listbox'\"\n [attr.aria-label]=\"resolvedModalTitle\"\n (scroll)=\"onGridScroll($event)\"\n >\n @for (icon of visibleIcons; track icon.name) {\n <!-- NOSONAR -->\n <!-- the custom icon grid keeps option semantics on the focusable card for keyboard and SR support -->\n <button\n type=\"button\"\n class=\"sdc-icon-picker__card\"\n [class.sdc-icon-picker__card--selected]=\"isIconSelected(icon)\"\n [attr.role]=\"'option'\"\n [attr.aria-selected]=\"isIconSelected(icon) ? 'true' : 'false'\"\n [attr.aria-label]=\"icon.label + ' - ' + icon.name\"\n (click)=\"selectIcon(icon)\"\n >\n <i [class]=\"'fas ' + icon.name\" class=\"sdc-icon-picker__card-icon\" aria-hidden=\"true\"></i>\n <span class=\"sdc-icon-picker__card-name\">{{ icon.label }}</span>\n </button>\n }\n </div>\n }\n </div>\n\n <div footer class=\"sdc-icon-picker__footer\">\n <sdc-button\n [label]=\"cancelText\"\n priority=\"secondary\"\n (clicked)=\"cancelSelection()\"\n ></sdc-button>\n <sdc-button\n [label]=\"confirmText\"\n priority=\"primary\"\n [disabled]=\"pendingValue === null && value === null\"\n (clicked)=\"confirmSelection()\"\n ></sdc-button>\n </div>\n</sdc-modal>\n", styles: ["::ng-deep .sdc-modal--icon-picker .sdc-modal__content{overflow:hidden;display:flex;flex-direction:column;min-height:0}.sdc-icon-picker{display:flex;flex-direction:column}.sdc-icon-picker__label-row{display:flex;align-items:center;gap:var(--sdc-form-label-row-gap, .35rem);margin-bottom:var(--sdc-form-label-row-mb, .15rem)}.sdc-icon-picker__label{display:inline-flex;align-items:center;margin-bottom:0;line-height:var(--sdc-form-label-lh, 1);padding-top:var(--sdc-form-label-py, 7px);padding-bottom:var(--sdc-form-label-py, 7px);min-width:0}.sdc-icon-picker__required{margin-left:var(--sdc-form-required-ml, .25rem);color:var(--sdc-form-required-color, var(--sdc-error-color, #d98888));font-weight:var(--sdc-form-required-weight, 400)}.sdc-icon-picker__info-icon{background:none;border:none;padding:0;cursor:pointer;color:var(--sdc-form-tooltip-color, #6c757d);display:flex;align-items:center;font-size:.9rem}.sdc-icon-picker__trigger{display:flex;align-items:stretch;height:var(--sdc-formfield-default-height, 34px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-formfield-default-border, #cccccc);border-radius:var(--sdc-formfield-border-radius, 4px);cursor:pointer;width:100%;box-sizing:border-box;text-align:left;transition:border-color .15s ease,box-shadow .15s ease;padding:0;overflow:hidden}.sdc-icon-picker__trigger:focus-visible{outline:none;border-color:var(--sdc-formfield-focus-color, #428bca);box-shadow:var(--sdc-formfield-focus-shadow, 0 0 0 3px rgba(0, 123, 255, .15))}.sdc-icon-picker__trigger:disabled{cursor:not-allowed;opacity:.6;background:var(--sdc-formfield-disabled-bg, transparent)}.sdc-icon-picker__trigger:hover:not(:disabled){border-color:var(--sdc-formfield-focus-color, #428bca)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger{border-color:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--invalid .sdc-icon-picker__trigger:focus-visible{box-shadow:var(--sdc-formfield-invalid-focus-shadow, 0 0 0 2px rgba(217, 136, 136, .16))}.sdc-icon-picker__trigger-swatch{display:flex;align-items:center;justify-content:center;flex-shrink:0;width:2.7rem;background:var(--sdc-color-picker-trigger-bg, #f8fafc);color:var(--sdc-color-picker-trigger-color, var(--sdc-text-default, #111827));font-size:var(--sdc-icon-picker-icon-size, 1.1rem);transition:background .15s ease}.sdc-icon-picker__trigger:hover:not(:disabled) .sdc-icon-picker__trigger-swatch{background:var(--sdc-color-picker-trigger-hover-bg, #eef2f7)}.sdc-icon-picker__trigger-swatch-placeholder{font-size:.75rem;opacity:.45}.sdc-icon-picker__trigger-sep{width:1px;background:var(--sdc-formfield-default-border, #cccccc);flex-shrink:0;align-self:stretch}.sdc-icon-picker__trigger-text{display:flex;align-items:center;flex:1;min-width:0;padding:0 var(--sdc-form-input-padding-x, .75rem);font:inherit;color:var(--p-text-color, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__placeholder{color:var(--sdc-formfield-placeholder-color, #9ca3af);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__error{font-size:.78rem;color:var(--sdc-formfield-invalid-border, #d98888);margin-top:2px}.sdc-icon-picker--invalid .sdc-icon-picker__trigger-sep{background:var(--sdc-formfield-invalid-border, #d98888)}.sdc-icon-picker--disabled .sdc-icon-picker__label{opacity:.6}.sdc-icon-picker__modal-body{display:flex;flex-direction:column;gap:12px;flex:1 1 auto;height:var(--sdc-icon-picker-modal-body-height, 520px);max-height:calc(100vh - 190px);min-height:0;overflow:hidden}.sdc-icon-picker__search-row{flex-shrink:0}.sdc-icon-picker__search-row sdc-searchbox{display:block;width:100%}.sdc-icon-picker__preview-bar{display:flex;align-items:center;gap:12px;padding:10px 14px;background:var(--sdc-picklist-selected-bg, #eeebf2);border:1px solid var(--sdc-picklist-selected-border, #dedce5);border-radius:var(--sdc-icon-picker-card-radius, 6px);flex-shrink:0}.sdc-icon-picker__preview-icon{font-size:1.75rem;color:var(--sdc-tab-primary, #428bca);flex-shrink:0;width:2rem;text-align:center}.sdc-icon-picker__preview-info{display:flex;flex-direction:column;gap:2px;min-width:0}.sdc-icon-picker__preview-label{font-size:.875rem;font-weight:600;color:var(--sdc-text-default, #111827);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__preview-class{font-size:.75rem;color:var(--sdc-text-muted, #6b7280);font-family:monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sdc-icon-picker__counter{font-size:.8rem;color:var(--sdc-text-muted, #6b7280);min-height:1.2em;flex-shrink:0;padding-bottom:4px}.sdc-icon-picker__loading{display:flex;justify-content:center;align-items:center;padding:32px;color:var(--sdc-tab-primary, #428bca);font-size:1.5rem}.sdc-icon-picker__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(var(--sdc-icon-picker-card-size, 90px),1fr));gap:var(--sdc-icon-picker-card-gap, 8px);flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:2px;align-content:start}.sdc-icon-picker__card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:8px 6px;height:var(--sdc-icon-picker-card-height, 80px);background:var(--sdc-formfield-default-bg, #ffffff);border:1px solid var(--sdc-border-strong, #e2e8f0);border-radius:var(--sdc-icon-picker-card-radius, 6px);cursor:pointer;overflow:hidden;transition:background .12s ease,border-color .12s ease;width:100%}.sdc-icon-picker__card:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:1px}.sdc-icon-picker__card--selected{background:var(--sdc-tab-primary, #428bca);border-color:var(--sdc-tab-primary, #428bca);color:#fff}.sdc-icon-picker__card:hover:not(.sdc-icon-picker__card--selected){background:var(--sdc-picklist-hover-bg, #f7f7f7);border-color:var(--sdc-tab-primary, #428bca)}.sdc-icon-picker__card-icon{font-size:var(--sdc-icon-picker-icon-size, 1.25rem);flex-shrink:0;display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem}.sdc-icon-picker__card-name{font-size:.65rem;line-height:1.2;text-align:center;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;word-break:break-word;max-width:100%}.sdc-icon-picker__footer{display:flex;justify-content:flex-end;gap:8px}\n"] }]
|
|
382
382
|
}], ctorParameters: () => [], propDecorators: { searchboxEl: [{
|
|
383
383
|
type: ViewChild,
|
|
384
384
|
args: ['searchboxEl', { read: ElementRef }]
|
|
@@ -401,4 +401,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
401
401
|
}], valueChange: [{
|
|
402
402
|
type: Output
|
|
403
403
|
}] } });
|
|
404
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9pY29uLXBpY2tlci9pY29uLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ljb24tcGlja2VyL2ljb24tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakYsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUMvQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxP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QVJuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsbUJBQW1CLENBQUM7Z0JBQ2xELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpSEFVaUMsVUFBVSw2QkNoSTlDLG9nS0F1SkEscXJNRG5ESSxZQUFZLDhCQUNaLFdBQVcsOEJBQ1gsZUFBZSwrQkFDZixjQUFjLHlRQUNkLGtCQUFrQixvV0FDbEIsZ0JBQWdCLCtKQUNoQixlQUFlOzs0RkFjTixtQkFBbUI7a0JBeEIvQixTQUFTOytCQUNFLGlCQUFpQixjQUNmLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQixtQkFHZ0IsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUSxhQUM5Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxvQkFBb0IsQ0FBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7d0RBVWdFLFdBQVc7c0JBQTNFLFNBQVM7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFFckMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU0RDX0lDT05fUElDS0VSX0JMT0NLRURfTkFNRVMsXG4gIFNEQ19JQ09OX1BJQ0tFUl9CTE9DS0VEX1RFUk1TLFxuICBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFLFxuICBTRENfSUNPTl9QSUNLRVJfUFJJT1JJVFlfTkFNRVNcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvaWNvbi1waWNrZXIuY29uc3QnO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2ljb24tc2VsZWN0b3ItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgSWNvblNlbGVjdG9ySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaWNvbi1zZWxlY3Rvci50eXBlJztcbmltcG9ydCB0eXBlIHsgSWNvblBpY2tlckl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2ljb24tcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGh1bWFuaXplVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvc3RyaW5nLnV0aWwnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IGVuVHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL2xvY2FsZXMvZW4uanNvbic7XG5pbXBvcnQgZXNUcmFuc2xhdGlvbnMgZnJvbSAnLi4vLi4vbG9jYWxlcy9lcy1DTy5qc29uJztcbmltcG9ydCBwdFRyYW5zbGF0aW9ucyBmcm9tICcuLi8uLi9sb2NhbGVzL3B0Lmpzb24nO1xuXG5jb25zdCBTRUFSQ0hfTk9STUFMSVpBVElPTl9SRUdFWCA9IC9bXFx1MDMwMC1cXHUwMzZmXS9nO1xuY29uc3QgU0VBUkNIX0RFQk9VTkNFX01TID0gMjUwO1xuY29uc3QgU0NST0xMX1RIUkVTSE9MRF9QWCA9IDEyMDtcbmNvbnN0IEVNUFRZX0lDT05fUElDS0VSX1ZBTFVFID0gJyc7XG5jb25zdCBJQ09OX1BJQ0tFUl9LRVlfUFJFRklYID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmljb25QaWNrZXIuJztcbmNvbnN0IElDT05fVFJBTlNMQVRJT05fS0VZX1BSRUZJWCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pY29ucy4nO1xuY29uc3QgRk9OVF9BV0VTT01FX0NMQVNTX1JFR0VYID0gL1xcYmZhW3NyYmxkXT9cXGJ8XFxiZmFcXGIvZztcbmNvbnN0IEZPTlRfQVdFU09NRV9QUkVGSVhfUkVHRVggPSAvXFxiZmEtL2c7XG5jb25zdCBJQ09OX1BJQ0tFUl9UUkFOU0xBVElPTlMgPSB7XG4gIGVuOiBlblRyYW5zbGF0aW9ucyxcbiAgZXM6IGVzVHJhbnNsYXRpb25zLFxuICBwdDogcHRUcmFuc2xhdGlvbnNcbn0gYXMgUmVjb3JkPFN1cHBvcnRlZEljb25QaWNrZXJMYW5ndWFnZSwgUmVjb3JkPHN0cmluZywgc3RyaW5nPj47XG5jb25zdCBJQ09OX1BJQ0tFUl9ERUZBVUxUX1RFWFRTID0ge1xuICBjYW5jZWw6IHtcbiAgICBlbjogJ0NhbmNlbCcsXG4gICAgZXM6ICdDYW5jZWxhcicsXG4gICAgcHQ6ICdDYW5jZWxhcidcbiAgfSxcbiAgY29uZmlybToge1xuICAgIGVuOiAnQ29uZmlybScsXG4gICAgZXM6ICdDb25maXJtYXInLFxuICAgIHB0OiAnQ29uZmlybWFyJ1xuICB9LFxuICBpY29uc0ZvdW5kOiB7XG4gICAgZW46ICdpY29ucyBmb3VuZCcsXG4gICAgZXM6ICdcXHUwMGVkY29ub3MgZW5jb250cmFkb3MnLFxuICAgIHB0OiAnXFx1MDBlZGNvbmVzIGVuY29udHJhZG9zJ1xuICB9LFxuICBtb2RhbFRpdGxlOiB7XG4gICAgZW46ICdTZWxlY3QgaWNvbicsXG4gICAgZXM6ICdTZWxlY2Npb25hciBcXHUwMGVkY29ubycsXG4gICAgcHQ6ICdTZWxlY2lvbmFyIFxcdTAwZWRjb25lJ1xuICB9LFxuICBub0ljb25zRm91bmQ6IHtcbiAgICBlbjogJ05vIGljb25zIGZvdW5kJyxcbiAgICBlczogJ05pbmdcXHUwMGZhbiBcXHUwMGVkY29ubyBlbmNvbnRyYWRvJyxcbiAgICBwdDogJ05lbmh1bSBcXHUwMGVkY29uZSBlbmNvbnRyYWRvJ1xuICB9LFxuICBzZWFyY2hQbGFjZWhvbGRlcjoge1xuICAgIGVuOiAnVHlwZSB0aGUgaWNvbiBuYW1lLi4uJyxcbiAgICBlczogJ0VzY3JpYmEgZWwgbm9tYnJlIGRlbCBcXHUwMGVkY29uby4uLicsXG4gICAgcHQ6ICdEaWdpdGUgbyBub21lIGRvIFxcdTAwZWRjb25lLi4uJ1xuICB9XG59IGFzIGNvbnN0O1xuXG50eXBlIEljb25QaWNrZXJUZXh0S2V5ID0ga2V5b2YgdHlwZW9mIElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFM7XG50eXBlIFN1cHBvcnRlZEljb25QaWNrZXJMYW5ndWFnZSA9ICdlbicgfCAnZXMnIHwgJ3B0JztcblxuZnVuY3Rpb24gbm9ybWFsaXplVGV4dCh2YWx1ZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIHZhbHVlXG4gICAgLm5vcm1hbGl6ZSgnTkZEJylcbiAgICAucmVwbGFjZShTRUFSQ0hfTk9STUFMSVpBVElPTl9SRUdFWCwgJycpXG4gICAgLnRvTG93ZXJDYXNlKClcbiAgICAudHJpbSgpO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtaWNvbi1waWNrZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBNb2RhbENvbXBvbmVudCxcbiAgICBTZWFyY2hib3hDb21wb25lbnQsXG4gICAgVG9vbHRpcENvbXBvbmVudCxcbiAgICBCdXR0b25Db21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2ljb24tcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2ljb24tcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEljb25QaWNrZXJDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgSWNvblBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICBwcml2YXRlIHJlYWRvbmx5IGljb25TZWxlY3RvckRhdGEgPSBpbmplY3QoSWNvblNlbGVjdG9yRGF0YVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VhcmNoSW5wdXQkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGdlbmVyYXRlZElkID0gbmV4dFNlcXVlbnRpYWxJZCgnc2RjLWljb24tcGlja2VyJyk7XG5cbiAgQFZpZXdDaGlsZCgnc2VhcmNoYm94RWwnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hib3hFbD86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gIEBJbnB1dCgpIGxhYmVsID0gJyc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJyc7XG4gIEBJbnB1dCgpIHRvb2x0aXA6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGVycm9yTWVzc2FnZSA9ICcnO1xuICBASW5wdXQoKSBtb2RhbFRpdGxlID0gJyc7XG5cbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudWxsPigpO1xuXG4gIHZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgcGVuZGluZ1ZhbHVlOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgbW9kYWxPcGVuID0gZmFsc2U7XG4gIHNlYXJjaFRlcm0gPSAnJztcbiAgZGlzcGxheWVkQ291bnQgPSBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFO1xuICBpc0xvYWRpbmcgPSBmYWxzZTtcblxuICBhbGxJY29uczogSWNvblBpY2tlckl0ZW1bXSA9IFtdO1xuICBmaWx0ZXJlZEljb25zOiBJY29uUGlja2VySXRlbVtdID0gW107XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHZhbHVlOiBzdHJpbmcgfCBudWxsKSA9PiB2b2lkID0gKCkgPT4ge307XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMuc2VhcmNoSW5wdXQkXG4gICAgICAgIC5waXBlKGRlYm91bmNlVGltZShTRUFSQ0hfREVCT1VOQ0VfTVMpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgICAuc3Vic2NyaWJlKCh0ZXJtKSA9PiB7XG4gICAgICAgICAgdGhpcy5hcHBseUZpbHRlcih0ZXJtKTtcbiAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmFkZChcbiAgICAgIHRoaXMudHJhbnNsYXRlLm9uTGFuZ0NoYW5nZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRMYWJlbCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5sYWJlbCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLnBsYWNlaG9sZGVyKVxuICAgICAgOiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnc2VhcmNoUGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFNlYXJjaFBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdzZWFyY2hQbGFjZWhvbGRlcicpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkVG9vbHRpcCgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy50b29sdGlwKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZEVycm9yTWVzc2FnZSgpOiBzdHJpbmcgfCBudWxsIHtcbiAgICByZXR1cm4gcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5lcnJvck1lc3NhZ2UpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTW9kYWxUaXRsZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm1vZGFsVGl0bGVcbiAgICAgID8gcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubW9kYWxUaXRsZSlcbiAgICAgIDogdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ21vZGFsVGl0bGUnKTtcbiAgfVxuXG4gIGdldCB0cmlnZ2VySWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZWRJZDtcbiAgfVxuXG4gIGdldCB2aXNpYmxlSWNvbnMoKTogSWNvblBpY2tlckl0ZW1bXSB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJY29ucy5zbGljZSgwLCB0aGlzLmRpc3BsYXllZENvdW50KTtcbiAgfVxuXG4gIGdldCBpY29uc0ZvdW5kQ291bnQoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZEljb25zLmxlbmd0aDtcbiAgfVxuXG4gIGdldCBzZWxlY3RlZEljb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgcmV0dXJuIEVNUFRZX0lDT05fUElDS0VSX1ZBTFVFO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5hbGxJY29ucy5maW5kKChpY29uKSA9PiBpY29uLm5hbWUgPT09IHRoaXMudmFsdWUpO1xuICAgIHJldHVybiBmb3VuZD8ubGFiZWwgPz8gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIGdldCBwZW5kaW5nSWNvbkxhYmVsKCk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLnBlbmRpbmdWYWx1ZSkge1xuICAgICAgcmV0dXJuIEVNUFRZX0lDT05fUElDS0VSX1ZBTFVFO1xuICAgIH1cblxuICAgIGNvbnN0IGZvdW5kID0gdGhpcy5hbGxJY29ucy5maW5kKChpY29uKSA9PiBpY29uLm5hbWUgPT09IHRoaXMucGVuZGluZ1ZhbHVlKTtcbiAgICByZXR1cm4gZm91bmQ/LmxhYmVsID8/IHRoaXMucGVuZGluZ1ZhbHVlO1xuICB9XG5cbiAgZ2V0IGNvbmZpcm1UZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdjb25maXJtJyk7XG4gIH1cblxuICBnZXQgY2FuY2VsVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnY2FuY2VsJyk7XG4gIH1cblxuICBnZXQgaWNvbnNGb3VuZFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ2ljb25zRm91bmQnKTtcbiAgfVxuXG4gIGdldCBub0ljb25zRm91bmRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdub0ljb25zRm91bmQnKTtcbiAgfVxuXG4gIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IG51bGwpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWUgPz8gbnVsbDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWx1ZTogc3RyaW5nIHwgbnVsbCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgb3Blbk1vZGFsKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wZW5kaW5nVmFsdWUgPSB0aGlzLnZhbHVlO1xuICAgIHRoaXMuc2VhcmNoVGVybSA9ICcnO1xuICAgIHRoaXMuZGlzcGxheWVkQ291bnQgPSBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFO1xuICAgIHRoaXMubW9kYWxPcGVuID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMubG9hZEljb25zSWZOZWVkZWQoKTtcbiAgICB0aGlzLmZvY3VzU2VhcmNoSW5wdXQoKTtcbiAgfVxuXG4gIHByaXZhdGUgZm9jdXNTZWFyY2hJbnB1dCgpOiB2b2lkIHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0ID0gdGhpcy5zZWFyY2hib3hFbD8ubmF0aXZlRWxlbWVudD8ucXVlcnlTZWxlY3RvcjxIVE1MSW5wdXRFbGVtZW50PignaW5wdXQnKTtcbiAgICAgIGlucHV0Py5mb2N1cygpO1xuICAgIH0pO1xuICB9XG5cbiAgb25Nb2RhbFZpc2libGVDaGFuZ2UodmlzaWJsZTogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmICghdmlzaWJsZSkge1xuICAgICAgdGhpcy5tb2RhbE9wZW4gPSBmYWxzZTtcbiAgICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gbnVsbDtcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxuXG4gIG9uU2VhcmNoKHRlcm06IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XG4gICAgdGhpcy5kaXNwbGF5ZWRDb3VudCA9IFNEQ19JQ09OX1BJQ0tFUl9QQUdFX1NJWkU7XG4gICAgdGhpcy5zZWFyY2hJbnB1dCQubmV4dCh0ZXJtKTtcbiAgfVxuXG4gIG9uR3JpZFNjcm9sbChldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcbiAgICBjb25zdCBuZWFyQm90dG9tID0gZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuc2Nyb2xsVG9wIC0gZWwuY2xpZW50SGVpZ2h0IDwgU0NST0xMX1RIUkVTSE9MRF9QWDtcblxuICAgIGlmIChuZWFyQm90dG9tICYmIHRoaXMuZGlzcGxheWVkQ291bnQgPCB0aGlzLmZpbHRlcmVkSWNvbnMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmRpc3BsYXllZENvdW50ICs9IFNEQ19JQ09OX1BJQ0tFUl9QQUdFX1NJWkU7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RJY29uKGljb246IEljb25QaWNrZXJJdGVtKTogdm9pZCB7XG4gICAgdGhpcy5wZW5kaW5nVmFsdWUgPSB0aGlzLnBlbmRpbmdWYWx1ZSA9PT0gaWNvbi5uYW1lID8gbnVsbCA6IGljb24ubmFtZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGNvbmZpcm1TZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHRoaXMucGVuZGluZ1ZhbHVlO1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGhpcy52YWx1ZSk7XG4gICAgdGhpcy5tb2RhbE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnBlbmRpbmdWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjYW5jZWxTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbE9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLnBlbmRpbmdWYWx1ZSA9IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBpc0ljb25TZWxlY3RlZChpY29uOiBJY29uUGlja2VySXRlbSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnBlbmRpbmdWYWx1ZSA9PT0gaWNvbi5uYW1lO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2FkSWNvbnNJZk5lZWRlZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hbGxJY29ucy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFwcGx5RmlsdGVyKHRoaXMuc2VhcmNoVGVybSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuXG4gICAgdGhpcy5pY29uU2VsZWN0b3JEYXRhXG4gICAgICAubG9hZEZvbnRBd2Vzb21lVjVTb2xpZEljb25zKClcbiAgICAgIC50aGVuKChpY29ucykgPT4ge1xuICAgICAgICB0aGlzLmFsbEljb25zID0gdGhpcy5idWlsZEljb25MaXN0KGljb25zKTtcbiAgICAgICAgdGhpcy5hcHBseUZpbHRlcih0aGlzLnNlYXJjaFRlcm0pO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pXG4gICAgICAuY2F0Y2goKCkgPT4ge1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEljb25MaXN0KGljb25zOiBSZWFkb25seUFycmF5PEljb25TZWxlY3Rvckl0ZW0+KTogSWNvblBpY2tlckl0ZW1bXSB7XG4gICAgY29uc3QgYWxsID0gaWNvbnMucmVkdWNlPEljb25QaWNrZXJJdGVtW10+KChyZXN1bHQsIGljb24pID0+IHtcbiAgICAgIGlmICghdGhpcy5zaG91bGRJbmNsdWRlSWNvbihpY29uKSkge1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzb2x2ZUljb25MYWJlbChpY29uKTtcblxuICAgICAgcmVzdWx0LnB1c2goe1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgbmFtZTogaWNvbi5jbGFzc05hbWUsXG4gICAgICAgIG5vcm1hbGl6ZWRMYWJlbDogbm9ybWFsaXplVGV4dChsYWJlbClcbiAgICAgIH0pO1xuXG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIFtdKTtcblxuICAgIHJldHVybiB0aGlzLnNvcnRCeVByaW9yaXR5KGFsbCk7XG4gIH1cblxuICBwcml2YXRlIHNvcnRCeVByaW9yaXR5KGljb25zOiBJY29uUGlja2VySXRlbVtdKTogSWNvblBpY2tlckl0ZW1bXSB7XG4gICAgY29uc3QgcHJpb3JpdHlJbmRleCA9IG5ldyBNYXAoU0RDX0lDT05fUElDS0VSX1BSSU9SSVRZX05BTUVTLm1hcCgobmFtZSwgaSkgPT4gW25hbWUsIGldKSk7XG4gICAgY29uc3QgcHJpb3JpdGl6ZWQgPSBBcnJheS5mcm9tPEljb25QaWNrZXJJdGVtIHwgdW5kZWZpbmVkPih7IGxlbmd0aDogU0RDX0lDT05fUElDS0VSX1BSSU9SSVRZX05BTUVTLmxlbmd0aCB9KTtcbiAgICBjb25zdCByZXN0OiBJY29uUGlja2VySXRlbVtdID0gW107XG5cbiAgICBmb3IgKGNvbnN0IGljb24gb2YgaWNvbnMpIHtcbiAgICAgIGNvbnN0IGlkeCA9IHByaW9yaXR5SW5kZXguZ2V0KGljb24ubmFtZSk7XG4gICAgICBpZiAoaWR4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcHJpb3JpdGl6ZWRbaWR4XSA9IGljb247XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN0LnB1c2goaWNvbik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIFsuLi5wcmlvcml0aXplZC5maWx0ZXIoKGl0ZW0pOiBpdGVtIGlzIEljb25QaWNrZXJJdGVtID0+IGl0ZW0gIT09IHVuZGVmaW5lZCksIC4uLnJlc3RdO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUZpbHRlcih0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBub3JtYWxpemVkID0gbm9ybWFsaXplVGV4dCh0ZXJtKTtcblxuICAgIGlmICghbm9ybWFsaXplZCkge1xuICAgICAgdGhpcy5maWx0ZXJlZEljb25zID0gdGhpcy5hbGxJY29ucy5zbGljZSgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSWNvbnMgPSB0aGlzLmFsbEljb25zLmZpbHRlcihcbiAgICAgICAgKGljb24pID0+XG4gICAgICAgICAgaWNvbi5ub3JtYWxpemVkTGFiZWwuaW5jbHVkZXMobm9ybWFsaXplZCkgfHxcbiAgICAgICAgICBub3JtYWxpemVUZXh0KGljb24ubmFtZSkuaW5jbHVkZXMobm9ybWFsaXplZClcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG91bGRJbmNsdWRlSWNvbihpY29uOiBJY29uU2VsZWN0b3JJdGVtKTogYm9vbGVhbiB7XG4gICAgaWYgKFNEQ19JQ09OX1BJQ0tFUl9CTE9DS0VEX05BTUVTLmhhcyhpY29uLmNsYXNzTmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBsYWJlbCA9IHRoaXMucmVzb2x2ZUljb25MYWJlbChpY29uKTtcbiAgICBjb25zdCBub3JtYWxpemVkTGFiZWwgPSBub3JtYWxpemVUZXh0KGxhYmVsKTtcbiAgICBjb25zdCBub3JtYWxpemVkTmFtZSA9IG5vcm1hbGl6ZVRleHQoaWNvbi5jbGFzc05hbWUpO1xuXG4gICAgcmV0dXJuICFTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9URVJNUy5zb21lKFxuICAgICAgKHRlcm0pID0+IG5vcm1hbGl6ZWRMYWJlbC5pbmNsdWRlcyh0ZXJtKSB8fCBub3JtYWxpemVkTmFtZS5pbmNsdWRlcyh0ZXJtKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJY29uUGlja2VyVGV4dChrZXk6IEljb25QaWNrZXJUZXh0S2V5KTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGAke0lDT05fUElDS0VSX0tFWV9QUkVGSVh9JHtrZXl9YDtcbiAgICBjb25zdCB0cmFuc2xhdGVkID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRlZFZhbHVlKHRyYW5zbGF0aW9uS2V5KTtcblxuICAgIGlmICh0cmFuc2xhdGVkKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gSUNPTl9QSUNLRVJfREVGQVVMVF9URVhUU1trZXldW3RoaXMuY3VycmVudExhbmd1YWdlXTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZUljb25MYWJlbChpY29uOiBJY29uU2VsZWN0b3JJdGVtKTogc3RyaW5nIHtcbiAgICBjb25zdCB0cmFuc2xhdGlvbktleSA9IGljb24udHJhbnNsYXRpb25LZXk/LnRyaW0oKSA/PyAnJztcbiAgICBjb25zdCB0cmFuc2xhdGVkID0gdGhpcy5yZXNvbHZlVHJhbnNsYXRlZFZhbHVlKHRyYW5zbGF0aW9uS2V5KTtcblxuICAgIGlmICh0cmFuc2xhdGVkKSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRlZDtcbiAgICB9XG5cbiAgICBpZiAodHJhbnNsYXRpb25LZXkgJiYgIXRyYW5zbGF0aW9uS2V5LnN0YXJ0c1dpdGgoSUNPTl9UUkFOU0xBVElPTl9LRVlfUFJFRklYKSkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0aW9uS2V5O1xuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmh1bWFuaXplSWNvbkNsYXNzKGljb24uY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZShrZXk6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCFrZXkpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCB0cmFuc2xhdGVkID0gU3RyaW5nKHRoaXMudHJhbnNsYXRlLmluc3RhbnQoa2V5KSA/PyAnJykudHJpbSgpO1xuXG4gICAgaWYgKHRyYW5zbGF0ZWQgJiYgdHJhbnNsYXRlZCAhPT0ga2V5KSB7XG4gICAgICByZXR1cm4gdHJhbnNsYXRlZDtcbiAgICB9XG5cbiAgICByZXR1cm4gSUNPTl9QSUNLRVJfVFJBTlNMQVRJT05TW3RoaXMuY3VycmVudExhbmd1YWdlXVtrZXldID8/IEVNUFRZX0lDT05fUElDS0VSX1ZBTFVFO1xuICB9XG5cbiAgcHJpdmF0ZSBodW1hbml6ZUljb25DbGFzcyhjbGFzc05hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgcmV0dXJuIGh1bWFuaXplVGV4dChcbiAgICAgIGNsYXNzTmFtZVxuICAgICAgICAucmVwbGFjZShGT05UX0FXRVNPTUVfQ0xBU1NfUkVHRVgsICcnKVxuICAgICAgICAucmVwbGFjZShGT05UX0FXRVNPTUVfUFJFRklYX1JFR0VYLCAnICcpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0IGN1cnJlbnRMYW5ndWFnZSgpOiBTdXBwb3J0ZWRJY29uUGlja2VyTGFuZ3VhZ2Uge1xuICAgIGNvbnN0IGxhbmcgPSAodGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcgPz8gJycpLnRvTG93ZXJDYXNlKCk7XG5cbiAgICBpZiAobGFuZy5zdGFydHNXaXRoKCdlbicpKSB7XG4gICAgICByZXR1cm4gJ2VuJztcbiAgICB9XG5cbiAgICBpZiAobGFuZy5zdGFydHNXaXRoKCdlcycpKSB7XG4gICAgICByZXR1cm4gJ2VzJztcbiAgICB9XG5cbiAgICByZXR1cm4gJ3B0JztcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNkYy1pY29uLXBpY2tlclwiXG4gIFtjbGFzcy5zZGMtaWNvbi1waWNrZXItLWRpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgW2NsYXNzLnNkYy1pY29uLXBpY2tlci0taW52YWxpZF09XCJpbnZhbGlkXCJcbj5cbiAgQGlmIChyZXNvbHZlZExhYmVsKSB7XG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fbGFiZWwtcm93XCI+XG4gICAgICA8bGFiZWwgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xhYmVsXCIgW2Zvcl09XCJ0cmlnZ2VySWRcIiBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIj5cbiAgICAgICAge3sgcmVzb2x2ZWRMYWJlbCB9fVxuICAgICAgICBAaWYgKHJlcXVpcmVkKSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3JlcXVpcmVkXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+Kjwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9sYWJlbD5cblxuICAgICAgQGlmIChyZXNvbHZlZFRvb2x0aXApIHtcbiAgICAgICAgPHNkYy10b29sdGlwIFtwVG9vbHRpcF09XCJyZXNvbHZlZFRvb2x0aXBcIiBbdG9vbHRpcEV2ZW50XT1cIidib3RoJ1wiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2luZm8taWNvblwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cInJlc29sdmVkVG9vbHRpcFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtaW5mby1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvc2RjLXRvb2x0aXA+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gIH1cblxuICA8YnV0dG9uXG4gICAgW2lkXT1cInRyaWdnZXJJZFwiXG4gICAgdHlwZT1cImJ1dHRvblwiXG4gICAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXJcIlxuICAgIFthdHRyLmRpc2FibGVkXT1cImRpc2FibGVkID8gdHJ1ZSA6IG51bGxcIlxuICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwicmVxdWlyZWQgfHwgbnVsbFwiXG4gICAgW2F0dHIuYXJpYS1pbnZhbGlkXT1cImludmFsaWQgfHwgbnVsbFwiXG4gICAgKGNsaWNrKT1cIm9wZW5Nb2RhbCgpXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXN3YXRjaFwiPlxuICAgICAgQGlmICh2YWx1ZSkge1xuICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZhcyAnICsgdmFsdWVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICB9IEBlbHNlIHtcbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hldnJvbi1kb3duIHNkYy1pY29uLXBpY2tlcl9fdHJpZ2dlci1zd2F0Y2gtcGxhY2Vob2xkZXJcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXItc2VwXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9zcGFuPlxuXG4gICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXItdGV4dFwiPlxuICAgICAgQGlmICh2YWx1ZSAmJiBzZWxlY3RlZEljb25MYWJlbCkge1xuICAgICAgICB7eyBzZWxlY3RlZEljb25MYWJlbCB9fVxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wbGFjZWhvbGRlclwiPnt7IHJlc29sdmVkUGxhY2Vob2xkZXIgfX08L3NwYW4+XG4gICAgICB9XG4gICAgPC9zcGFuPlxuICA8L2J1dHRvbj5cblxuICBAaWYgKGludmFsaWQgJiYgcmVzb2x2ZWRFcnJvck1lc3NhZ2UpIHtcbiAgICA8c21hbGwgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2Vycm9yXCI+e3sgcmVzb2x2ZWRFcnJvck1lc3NhZ2UgfX08L3NtYWxsPlxuICB9XG48L2Rpdj5cblxuPHNkYy1tb2RhbFxuICBbaGVhZGVyXT1cInJlc29sdmVkTW9kYWxUaXRsZVwiXG4gIFt2aXNpYmxlXT1cIm1vZGFsT3BlblwiXG4gIFt3aWR0aF09XCI2NjBcIlxuICBbY2xvc2FibGVdPVwidHJ1ZVwiXG4gIHN0eWxlQ2xhc3M9XCJzZGMtbW9kYWwtLWljb24tcGlja2VyXCJcbiAgW2FwcGVuZFRvQm9keV09XCJ0cnVlXCJcbiAgKHZpc2libGVDaGFuZ2UpPVwib25Nb2RhbFZpc2libGVDaGFuZ2UoJGV2ZW50KVwiXG4+XG4gIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX21vZGFsLWJvZHlcIj5cbiAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19zZWFyY2gtcm93XCI+XG4gICAgICA8c2RjLXNlYXJjaGJveFxuICAgICAgICAjc2VhcmNoYm94RWxcbiAgICAgICAgW3ZhbHVlXT1cInNlYXJjaFRlcm1cIlxuICAgICAgICBbcGxhY2Vob2xkZXJdPVwicmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlclwiXG4gICAgICAgIFtkZWJvdW5jZVRpbWVNc109XCIyNTBcIlxuICAgICAgICAoZGVib3VuY2VkVmFsdWVDaGFuZ2UpPVwib25TZWFyY2goJGV2ZW50KVwiXG4gICAgICAgIChvbkNsZWFyKT1cIm9uU2VhcmNoKCcnKVwiXG4gICAgICA+PC9zZGMtc2VhcmNoYm94PlxuICAgIDwvZGl2PlxuXG4gICAgICBAaWYgKHBlbmRpbmdWYWx1ZSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWJhclwiPlxuICAgICAgICAgIDxpXG4gICAgICAgICAgICBbY2xhc3NdPVwiJ2ZhcyAnICsgcGVuZGluZ1ZhbHVlXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWljb25cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+PC9pPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctaW5mb1wiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctbGFiZWxcIj57eyBwZW5kaW5nSWNvbkxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX3ByZXZpZXctY2xhc3NcIj57eyBwZW5kaW5nVmFsdWUgfX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuXG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY291bnRlclwiPlxuICAgICAgQGlmIChmaWx0ZXJlZEljb25zLmxlbmd0aCA+IDApIHtcbiAgICAgICAgPHNwYW4+e3sgaWNvbnNGb3VuZENvdW50IH19IHt7IGljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfSBAZWxzZSBpZiAoIWlzTG9hZGluZykge1xuICAgICAgICA8c3Bhbj57eyBub0ljb25zRm91bmRUZXh0IH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChpc0xvYWRpbmcpIHtcbiAgICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xvYWRpbmdcIj5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtc3Bpbm5lciBmYS1zcGluXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8IS0tIE5PU09OQVI6IHRoaXMgcGlja2VyIG5lZWRzIGEgY3VzdG9tIEFSSUEgbGlzdGJveC9ncmlkIGV4cGVyaWVuY2UgdGhhdCBhIG5hdGl2ZSBzZWxlY3QgY2Fubm90IHByb3ZpZGUgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgICNpY29uR3JpZFxuICAgICAgICBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fZ3JpZFwiXG4gICAgICAgIFthdHRyLnJvbGVdPVwiJ2xpc3Rib3gnXCJcbiAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICAgICAgICAoc2Nyb2xsKT1cIm9uR3JpZFNjcm9sbCgkZXZlbnQpXCJcbiAgICAgID5cbiAgICAgICAgQGZvciAoaWNvbiBvZiB2aXNpYmxlSWNvbnM7IHRyYWNrIGljb24ubmFtZSkge1xuICAgICAgICAgIDwhLS0gTk9TT05BUiAtLT5cbiAgICAgICAgICA8IS0tIHRoZSBjdXN0b20gaWNvbiBncmlkIGtlZXBzIG9wdGlvbiBzZW1hbnRpY3Mgb24gdGhlIGZvY3VzYWJsZSBjYXJkIGZvciBrZXlib2FyZCBhbmQgU1Igc3VwcG9ydCAtLT5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19jYXJkXCJcbiAgICAgICAgICAgIFtjbGFzcy5zZGMtaWNvbi1waWNrZXJfX2NhcmQtLXNlbGVjdGVkXT1cImlzSWNvblNlbGVjdGVkKGljb24pXCJcbiAgICAgICAgICAgIFthdHRyLnJvbGVdPVwiJ29wdGlvbidcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0ljb25TZWxlY3RlZChpY29uKSA/ICd0cnVlJyA6ICdmYWxzZSdcIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJpY29uLmxhYmVsICsgJyAtICcgKyBpY29uLm5hbWVcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdEljb24oaWNvbilcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIFtjbGFzc109XCInZmFzICcgKyBpY29uLm5hbWVcIiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY2FyZC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2NhcmQtbmFtZVwiPnt7IGljb24ubGFiZWwgfX08L3NwYW4+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBmb290ZXIgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2Zvb3RlclwiPlxuICAgIDxzZGMtYnV0dG9uXG4gICAgICBbbGFiZWxdPVwiY2FuY2VsVGV4dFwiXG4gICAgICBwcmlvcml0eT1cInNlY29uZGFyeVwiXG4gICAgICAoY2xpY2tlZCk9XCJjYW5jZWxTZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgICA8c2RjLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cImNvbmZpcm1UZXh0XCJcbiAgICAgIHByaW9yaXR5PVwicHJpbWFyeVwiXG4gICAgICBbZGlzYWJsZWRdPVwicGVuZGluZ1ZhbHVlID09PSBudWxsICYmIHZhbHVlID09PSBudWxsXCJcbiAgICAgIChjbGlja2VkKT1cImNvbmZpcm1TZWxlY3Rpb24oKVwiXG4gICAgPjwvc2RjLWJ1dHRvbj5cbiAgPC9kaXY+XG48L3NkYy1tb2RhbD5cbiJdfQ==
|
|
404
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWNvbi1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL3NyYy9mZWF0dXJlcy9pY29uLXBpY2tlci9pY29uLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ljb24tcGlja2VyL2ljb24tcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsVUFBVSxFQUNWLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQXdCLFdBQVcsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RGLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFlBQVksRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFakYsT0FBTyxFQUNMLDZCQUE2QixFQUM3Qiw2QkFBNkIsRUFDN0IseUJBQXlCLEVBQ3pCLDhCQUE4QixFQUMvQixNQUFNLHdDQUF3QyxDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBR3pGLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUM1RCxP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LFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT3V0cHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBmb3J3YXJkUmVmLFxuICBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0LCBTdWJzY3JpcHRpb24sIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgU0RDX0lDT05fUElDS0VSX0JMT0NLRURfTkFNRVMsXG4gIFNEQ19JQ09OX1BJQ0tFUl9CTE9DS0VEX1RFUk1TLFxuICBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFLFxuICBTRENfSUNPTl9QSUNLRVJfUFJJT1JJVFlfTkFNRVNcbn0gZnJvbSAnLi4vLi4vY29yZS9jb25zdGFudHMvaWNvbi1waWNrZXIuY29uc3QnO1xuaW1wb3J0IHsgSWNvblNlbGVjdG9yRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2ljb24tc2VsZWN0b3ItZGF0YS5zZXJ2aWNlJztcbmltcG9ydCB0eXBlIHsgSWNvblNlbGVjdG9ySXRlbSB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaWNvbi1zZWxlY3Rvci50eXBlJztcbmltcG9ydCB0eXBlIHsgSWNvblBpY2tlckl0ZW0gfSBmcm9tICcuLi8uLi9jb3JlL3R5cGVzL2ljb24tcGlja2VyLnR5cGUnO1xuaW1wb3J0IHsgcmVzb2x2ZU51bGxhYmxlVHJhbnNsYXRhYmxlVGV4dCwgcmVzb2x2ZVRyYW5zbGF0YWJsZVRleHQgfSBmcm9tICcuLi8uLi9jb3JlL3V0aWxzL2kxOG4udXRpbCc7XG5pbXBvcnQgeyBuZXh0U2VxdWVudGlhbElkIH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pZC51dGlsJztcbmltcG9ydCB7IGh1bWFuaXplVGV4dCB9IGZyb20gJy4uLy4uL2NvcmUvdXRpbHMvc3RyaW5nLnV0aWwnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYm94Q29tcG9uZW50IH0gZnJvbSAnLi4vc2VhcmNoYm94L3NlYXJjaGJveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi4vYnV0dG9uL2J1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IGVuVHJhbnNsYXRpb25zIGZyb20gJy4uLy4uL2xvY2FsZXMvZW4uanNvbic7XG5pbXBvcnQgZXNUcmFuc2xhdGlvbnMgZnJvbSAnLi4vLi4vbG9jYWxlcy9lcy1DTy5qc29uJztcbmltcG9ydCBwdFRyYW5zbGF0aW9ucyBmcm9tICcuLi8uLi9sb2NhbGVzL3B0Lmpzb24nO1xuXG5jb25zdCBTRUFSQ0hfTk9STUFMSVpBVElPTl9SRUdFWCA9IC9bXFx1MDMwMC1cXHUwMzZmXS9nO1xuY29uc3QgU0VBUkNIX0RFQk9VTkNFX01TID0gMjUwO1xuY29uc3QgU0NST0xMX1RIUkVTSE9MRF9QWCA9IDEyMDtcbmNvbnN0IEVNUFRZX0lDT05fUElDS0VSX1ZBTFVFID0gJyc7XG5jb25zdCBJQ09OX1BJQ0tFUl9LRVlfUFJFRklYID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmljb25QaWNrZXIuJztcbmNvbnN0IElDT05fVFJBTlNMQVRJT05fS0VZX1BSRUZJWCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pY29ucy4nO1xuY29uc3QgRk9OVF9BV0VTT01FX0NMQVNTX1JFR0VYID0gL1xcYmZhW3NyYmxkXT9cXGJ8XFxiZmFcXGIvZztcbmNvbnN0IEZPTlRfQVdFU09NRV9QUkVGSVhfUkVHRVggPSAvXFxiZmEtL2c7XG5jb25zdCBJQ09OX1BJQ0tFUl9UUkFOU0xBVElPTlMgPSB7XG4gIGVuOiBlblRyYW5zbGF0aW9ucyxcbiAgZXM6IGVzVHJhbnNsYXRpb25zLFxuICBwdDogQXJyYXkuaXNBcnJheShwdFRyYW5zbGF0aW9ucykgPyBPYmplY3QuYXNzaWduKHt9LCAuLi5wdFRyYW5zbGF0aW9ucykgOiBwdFRyYW5zbGF0aW9uc1xufSBhcyBSZWNvcmQ8U3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+PjtcbmNvbnN0IElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFMgPSB7XG4gIGNhbmNlbDoge1xuICAgIGVuOiAnQ2FuY2VsJyxcbiAgICBlczogJ0NhbmNlbGFyJyxcbiAgICBwdDogJ0NhbmNlbGFyJ1xuICB9LFxuICBjb25maXJtOiB7XG4gICAgZW46ICdDb25maXJtJyxcbiAgICBlczogJ0NvbmZpcm1hcicsXG4gICAgcHQ6ICdDb25maXJtYXInXG4gIH0sXG4gIGljb25zRm91bmQ6IHtcbiAgICBlbjogJ2ljb25zIGZvdW5kJyxcbiAgICBlczogJ1xcdTAwZWRjb25vcyBlbmNvbnRyYWRvcycsXG4gICAgcHQ6ICdcXHUwMGVkY29uZXMgZW5jb250cmFkb3MnXG4gIH0sXG4gIG1vZGFsVGl0bGU6IHtcbiAgICBlbjogJ1NlbGVjdCBpY29uJyxcbiAgICBlczogJ1NlbGVjY2lvbmFyIFxcdTAwZWRjb25vJyxcbiAgICBwdDogJ1NlbGVjaW9uYXIgXFx1MDBlZGNvbmUnXG4gIH0sXG4gIG5vSWNvbnNGb3VuZDoge1xuICAgIGVuOiAnTm8gaWNvbnMgZm91bmQnLFxuICAgIGVzOiAnTmluZ1xcdTAwZmFuIFxcdTAwZWRjb25vIGVuY29udHJhZG8nLFxuICAgIHB0OiAnTmVuaHVtIFxcdTAwZWRjb25lIGVuY29udHJhZG8nXG4gIH0sXG4gIHNlYXJjaFBsYWNlaG9sZGVyOiB7XG4gICAgZW46ICdUeXBlIHRoZSBpY29uIG5hbWUuLi4nLFxuICAgIGVzOiAnRXNjcmliYSBlbCBub21icmUgZGVsIFxcdTAwZWRjb25vLi4uJyxcbiAgICBwdDogJ0RpZ2l0ZSBvIG5vbWUgZG8gXFx1MDBlZGNvbmUuLi4nXG4gIH1cbn0gYXMgY29uc3Q7XG5cbnR5cGUgSWNvblBpY2tlclRleHRLZXkgPSBrZXlvZiB0eXBlb2YgSUNPTl9QSUNLRVJfREVGQVVMVF9URVhUUztcbnR5cGUgU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlID0gJ2VuJyB8ICdlcycgfCAncHQnO1xuXG5mdW5jdGlvbiBub3JtYWxpemVUZXh0KHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWVcbiAgICAubm9ybWFsaXplKCdORkQnKVxuICAgIC5yZXBsYWNlKFNFQVJDSF9OT1JNQUxJWkFUSU9OX1JFR0VYLCAnJylcbiAgICAudG9Mb3dlckNhc2UoKVxuICAgIC50cmltKCk7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NkYy1pY29uLXBpY2tlcicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICAgIE1vZGFsQ29tcG9uZW50LFxuICAgIFNlYXJjaGJveENvbXBvbmVudCxcbiAgICBUb29sdGlwQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vaWNvbi1waWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gSWNvblBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZVxuICAgIH1cbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBJY29uUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xuICBwcml2YXRlIHJlYWRvbmx5IGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgcmVhZG9ubHkgaWNvblNlbGVjdG9yRGF0YSA9IGluamVjdChJY29uU2VsZWN0b3JEYXRhU2VydmljZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hJbnB1dCQgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ2VuZXJhdGVkSWQgPSBuZXh0U2VxdWVudGlhbElkKCdzZGMtaWNvbi1waWNrZXInKTtcblxuICBAVmlld0NoaWxkKCdzZWFyY2hib3hFbCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KSBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaGJveEVsPzogRWxlbWVudFJlZjxIVE1MRWxlbWVudD47XG5cbiAgQElucHV0KCkgbGFiZWwgPSAnJztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlcXVpcmVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcbiAgQElucHV0KCkgZXJyb3JNZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIG1vZGFsVGl0bGUgPSAnJztcblxuICBAT3V0cHV0KCkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZyB8IG51bGw+KCk7XG5cbiAgdmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBwZW5kaW5nVmFsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuICBtb2RhbE9wZW4gPSBmYWxzZTtcbiAgc2VhcmNoVGVybSA9ICcnO1xuICBkaXNwbGF5ZWRDb3VudCA9IFNEQ19JQ09OX1BJQ0tFUl9QQUdFX1NJWkU7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuXG4gIGFsbEljb25zOiBJY29uUGlja2VySXRlbVtdID0gW107XG4gIGZpbHRlcmVkSWNvbnM6IEljb25QaWNrZXJJdGVtW10gPSBbXTtcblxuICBwcml2YXRlIG9uQ2hhbmdlOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQgPSAoKSA9PiB7IH07XG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoKSA9PiB2b2lkID0gKCkgPT4geyB9O1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlYXJjaElucHV0JFxuICAgICAgICAucGlwZShkZWJvdW5jZVRpbWUoU0VBUkNIX0RFQk9VTkNFX01TKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgICAgLnN1YnNjcmliZSgodGVybSkgPT4ge1xuICAgICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGVybSk7XG4gICAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnRyYW5zbGF0ZS5vbkxhbmdDaGFuZ2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMudW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLnNlYXJjaElucHV0JC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkTGFiZWwoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMubGFiZWwpO1xuICB9XG5cbiAgZ2V0IHJlc29sdmVkUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5wbGFjZWhvbGRlclxuICAgICAgPyByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy5wbGFjZWhvbGRlcilcbiAgICAgIDogdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ3NlYXJjaFBsYWNlaG9sZGVyJyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRTZWFyY2hQbGFjZWhvbGRlcigpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnc2VhcmNoUGxhY2Vob2xkZXInKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZFRvb2x0aXAoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMudG9vbHRpcCk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRFcnJvck1lc3NhZ2UoKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgcmV0dXJuIHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQodGhpcy50cmFuc2xhdGUsIHRoaXMuZXJyb3JNZXNzYWdlKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZE1vZGFsVGl0bGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5tb2RhbFRpdGxlXG4gICAgICA/IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLm1vZGFsVGl0bGUpXG4gICAgICA6IHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdtb2RhbFRpdGxlJyk7XG4gIH1cblxuICBnZXQgdHJpZ2dlcklkKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuZ2VuZXJhdGVkSWQ7XG4gIH1cblxuICBnZXQgdmlzaWJsZUljb25zKCk6IEljb25QaWNrZXJJdGVtW10ge1xuICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSWNvbnMuc2xpY2UoMCwgdGhpcy5kaXNwbGF5ZWRDb3VudCk7XG4gIH1cblxuICBnZXQgaWNvbnNGb3VuZENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJY29ucy5sZW5ndGg7XG4gIH1cblxuICBnZXQgc2VsZWN0ZWRJY29uTGFiZWwoKTogc3RyaW5nIHtcbiAgICBpZiAoIXRoaXMudmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnZhbHVlKTtcbiAgICByZXR1cm4gZm91bmQ/LmxhYmVsID8/IHRoaXMudmFsdWU7XG4gIH1cblxuICBnZXQgcGVuZGluZ0ljb25MYWJlbCgpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5wZW5kaW5nVmFsdWUpIHtcbiAgICAgIHJldHVybiBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgICB9XG5cbiAgICBjb25zdCBmb3VuZCA9IHRoaXMuYWxsSWNvbnMuZmluZCgoaWNvbikgPT4gaWNvbi5uYW1lID09PSB0aGlzLnBlbmRpbmdWYWx1ZSk7XG4gICAgcmV0dXJuIGZvdW5kPy5sYWJlbCA/PyB0aGlzLnBlbmRpbmdWYWx1ZTtcbiAgfVxuXG4gIGdldCBjb25maXJtVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnY29uZmlybScpO1xuICB9XG5cbiAgZ2V0IGNhbmNlbFRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5yZXNvbHZlSWNvblBpY2tlclRleHQoJ2NhbmNlbCcpO1xuICB9XG5cbiAgZ2V0IGljb25zRm91bmRUZXh0KCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucmVzb2x2ZUljb25QaWNrZXJUZXh0KCdpY29uc0ZvdW5kJyk7XG4gIH1cblxuICBnZXQgbm9JY29uc0ZvdW5kVGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLnJlc29sdmVJY29uUGlja2VyVGV4dCgnbm9JY29uc0ZvdW5kJyk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlID8/IG51bGw7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAodmFsdWU6IHN0cmluZyB8IG51bGwpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSAnJztcbiAgICB0aGlzLmRpc3BsYXllZENvdW50ID0gU0RDX0lDT05fUElDS0VSX1BBR0VfU0laRTtcbiAgICB0aGlzLm1vZGFsT3BlbiA9IHRydWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG5cbiAgICB0aGlzLmxvYWRJY29uc0lmTmVlZGVkKCk7XG4gICAgdGhpcy5mb2N1c1NlYXJjaElucHV0KCk7XG4gIH1cblxuICBwcml2YXRlIGZvY3VzU2VhcmNoSW5wdXQoKTogdm9pZCB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBpbnB1dCA9IHRoaXMuc2VhcmNoYm94RWw/Lm5hdGl2ZUVsZW1lbnQ/LnF1ZXJ5U2VsZWN0b3I8SFRNTElucHV0RWxlbWVudD4oJ2lucHV0Jyk7XG4gICAgICBpbnB1dD8uZm9jdXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uTW9kYWxWaXNpYmxlQ2hhbmdlKHZpc2libGU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBpZiAoIXZpc2libGUpIHtcbiAgICAgIHRoaXMubW9kYWxPcGVuID0gZmFsc2U7XG4gICAgICB0aGlzLnBlbmRpbmdWYWx1ZSA9IG51bGw7XG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG4gIH1cblxuICBvblNlYXJjaCh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnNlYXJjaFRlcm0gPSB0ZXJtO1xuICAgIHRoaXMuZGlzcGxheWVkQ291bnQgPSBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFO1xuICAgIHRoaXMuc2VhcmNoSW5wdXQkLm5leHQodGVybSk7XG4gIH1cblxuICBvbkdyaWRTY3JvbGwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZWwgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQ7XG4gICAgY29uc3QgbmVhckJvdHRvbSA9IGVsLnNjcm9sbEhlaWdodCAtIGVsLnNjcm9sbFRvcCAtIGVsLmNsaWVudEhlaWdodCA8IFNDUk9MTF9USFJFU0hPTERfUFg7XG5cbiAgICBpZiAobmVhckJvdHRvbSAmJiB0aGlzLmRpc3BsYXllZENvdW50IDwgdGhpcy5maWx0ZXJlZEljb25zLmxlbmd0aCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRDb3VudCArPSBTRENfSUNPTl9QSUNLRVJfUEFHRV9TSVpFO1xuICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuICB9XG5cbiAgc2VsZWN0SWNvbihpY29uOiBJY29uUGlja2VySXRlbSk6IHZvaWQge1xuICAgIHRoaXMucGVuZGluZ1ZhbHVlID0gdGhpcy5wZW5kaW5nVmFsdWUgPT09IGljb24ubmFtZSA/IG51bGwgOiBpY29uLm5hbWU7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBjb25maXJtU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB0aGlzLnBlbmRpbmdWYWx1ZTtcbiAgICB0aGlzLm9uQ2hhbmdlKHRoaXMudmFsdWUpO1xuICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KHRoaXMudmFsdWUpO1xuICAgIHRoaXMubW9kYWxPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5wZW5kaW5nVmFsdWUgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgY2FuY2VsU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMubW9kYWxPcGVuID0gZmFsc2U7XG4gICAgdGhpcy5wZW5kaW5nVmFsdWUgPSBudWxsO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgaXNJY29uU2VsZWN0ZWQoaWNvbjogSWNvblBpY2tlckl0ZW0pOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nVmFsdWUgPT09IGljb24ubmFtZTtcbiAgfVxuXG4gIHByaXZhdGUgbG9hZEljb25zSWZOZWVkZWQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWxsSWNvbnMubGVuZ3RoID4gMCkge1xuICAgICAgdGhpcy5hcHBseUZpbHRlcih0aGlzLnNlYXJjaFRlcm0pO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNMb2FkaW5nID0gdHJ1ZTtcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcblxuICAgIHRoaXMuaWNvblNlbGVjdG9yRGF0YVxuICAgICAgLmxvYWRGb250QXdlc29tZVY1U29saWRJY29ucygpXG4gICAgICAudGhlbigoaWNvbnMpID0+IHtcbiAgICAgICAgdGhpcy5hbGxJY29ucyA9IHRoaXMuYnVpbGRJY29uTGlzdChpY29ucyk7XG4gICAgICAgIHRoaXMuYXBwbHlGaWx0ZXIodGhpcy5zZWFyY2hUZXJtKTtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKCgpID0+IHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRJY29uTGlzdChpY29uczogUmVhZG9ubHlBcnJheTxJY29uU2VsZWN0b3JJdGVtPik6IEljb25QaWNrZXJJdGVtW10ge1xuICAgIGNvbnN0IGFsbCA9IGljb25zLnJlZHVjZTxJY29uUGlja2VySXRlbVtdPigocmVzdWx0LCBpY29uKSA9PiB7XG4gICAgICBpZiAoIXRoaXMuc2hvdWxkSW5jbHVkZUljb24oaWNvbikpIHtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc29sdmVJY29uTGFiZWwoaWNvbik7XG5cbiAgICAgIHJlc3VsdC5wdXNoKHtcbiAgICAgICAgbGFiZWwsXG4gICAgICAgIG5hbWU6IGljb24uY2xhc3NOYW1lLFxuICAgICAgICBub3JtYWxpemVkTGFiZWw6IG5vcm1hbGl6ZVRleHQobGFiZWwpXG4gICAgICB9KTtcblxuICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gdGhpcy5zb3J0QnlQcmlvcml0eShhbGwpO1xuICB9XG5cbiAgcHJpdmF0ZSBzb3J0QnlQcmlvcml0eShpY29uczogSWNvblBpY2tlckl0ZW1bXSk6IEljb25QaWNrZXJJdGVtW10ge1xuICAgIGNvbnN0IHByaW9yaXR5SW5kZXggPSBuZXcgTWFwKFNEQ19JQ09OX1BJQ0tFUl9QUklPUklUWV9OQU1FUy5tYXAoKG5hbWUsIGkpID0+IFtuYW1lLCBpXSkpO1xuICAgIGNvbnN0IHByaW9yaXRpemVkID0gQXJyYXkuZnJvbTxJY29uUGlja2VySXRlbSB8IHVuZGVmaW5lZD4oeyBsZW5ndGg6IFNEQ19JQ09OX1BJQ0tFUl9QUklPUklUWV9OQU1FUy5sZW5ndGggfSk7XG4gICAgY29uc3QgcmVzdDogSWNvblBpY2tlckl0ZW1bXSA9IFtdO1xuXG4gICAgZm9yIChjb25zdCBpY29uIG9mIGljb25zKSB7XG4gICAgICBjb25zdCBpZHggPSBwcmlvcml0eUluZGV4LmdldChpY29uLm5hbWUpO1xuICAgICAgaWYgKGlkeCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHByaW9yaXRpemVkW2lkeF0gPSBpY29uO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdC5wdXNoKGljb24pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBbLi4ucHJpb3JpdGl6ZWQuZmlsdGVyKChpdGVtKTogaXRlbSBpcyBJY29uUGlja2VySXRlbSA9PiBpdGVtICE9PSB1bmRlZmluZWQpLCAuLi5yZXN0XTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlGaWx0ZXIodGVybTogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3Qgbm9ybWFsaXplZCA9IG5vcm1hbGl6ZVRleHQodGVybSk7XG5cbiAgICBpZiAoIW5vcm1hbGl6ZWQpIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJY29ucyA9IHRoaXMuYWxsSWNvbnMuc2xpY2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWx0ZXJlZEljb25zID0gdGhpcy5hbGxJY29ucy5maWx0ZXIoXG4gICAgICAgIChpY29uKSA9PlxuICAgICAgICAgIGljb24ubm9ybWFsaXplZExhYmVsLmluY2x1ZGVzKG5vcm1hbGl6ZWQpIHx8XG4gICAgICAgICAgbm9ybWFsaXplVGV4dChpY29uLm5hbWUpLmluY2x1ZGVzKG5vcm1hbGl6ZWQpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2hvdWxkSW5jbHVkZUljb24oaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IGJvb2xlYW4ge1xuICAgIGlmIChTRENfSUNPTl9QSUNLRVJfQkxPQ0tFRF9OQU1FUy5oYXMoaWNvbi5jbGFzc05hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSB0aGlzLnJlc29sdmVJY29uTGFiZWwoaWNvbik7XG4gICAgY29uc3Qgbm9ybWFsaXplZExhYmVsID0gbm9ybWFsaXplVGV4dChsYWJlbCk7XG4gICAgY29uc3Qgbm9ybWFsaXplZE5hbWUgPSBub3JtYWxpemVUZXh0KGljb24uY2xhc3NOYW1lKTtcblxuICAgIHJldHVybiAhU0RDX0lDT05fUElDS0VSX0JMT0NLRURfVEVSTVMuc29tZShcbiAgICAgICh0ZXJtKSA9PiBub3JtYWxpemVkTGFiZWwuaW5jbHVkZXModGVybSkgfHwgbm9ybWFsaXplZE5hbWUuaW5jbHVkZXModGVybSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSByZXNvbHZlSWNvblBpY2tlclRleHQoa2V5OiBJY29uUGlja2VyVGV4dEtleSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBgJHtJQ09OX1BJQ0tFUl9LRVlfUFJFRklYfSR7a2V5fWA7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX0RFRkFVTFRfVEVYVFNba2V5XVt0aGlzLmN1cnJlbnRMYW5ndWFnZV07XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVJY29uTGFiZWwoaWNvbjogSWNvblNlbGVjdG9ySXRlbSk6IHN0cmluZyB7XG4gICAgY29uc3QgdHJhbnNsYXRpb25LZXkgPSBpY29uLnRyYW5zbGF0aW9uS2V5Py50cmltKCkgPz8gJyc7XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMucmVzb2x2ZVRyYW5zbGF0ZWRWYWx1ZSh0cmFuc2xhdGlvbktleSk7XG5cbiAgICBpZiAodHJhbnNsYXRlZCkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgaWYgKHRyYW5zbGF0aW9uS2V5ICYmICF0cmFuc2xhdGlvbktleS5zdGFydHNXaXRoKElDT05fVFJBTlNMQVRJT05fS0VZX1BSRUZJWCkpIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbktleTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5odW1hbml6ZUljb25DbGFzcyhpY29uLmNsYXNzTmFtZSk7XG4gIH1cblxuICBwcml2YXRlIHJlc29sdmVUcmFuc2xhdGVkVmFsdWUoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICgha2V5KSB7XG4gICAgICByZXR1cm4gRU1QVFlfSUNPTl9QSUNLRVJfVkFMVUU7XG4gICAgfVxuXG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IFN0cmluZyh0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KGtleSkgPz8gJycpLnRyaW0oKTtcblxuICAgIGlmICh0cmFuc2xhdGVkICYmIHRyYW5zbGF0ZWQgIT09IGtleSkge1xuICAgICAgcmV0dXJuIHRyYW5zbGF0ZWQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIElDT05fUElDS0VSX1RSQU5TTEFUSU9OU1t0aGlzLmN1cnJlbnRMYW5ndWFnZV1ba2V5XSA/PyBFTVBUWV9JQ09OX1BJQ0tFUl9WQUxVRTtcbiAgfVxuXG4gIHByaXZhdGUgaHVtYW5pemVJY29uQ2xhc3MoY2xhc3NOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHJldHVybiBodW1hbml6ZVRleHQoXG4gICAgICBjbGFzc05hbWVcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX0NMQVNTX1JFR0VYLCAnJylcbiAgICAgICAgLnJlcGxhY2UoRk9OVF9BV0VTT01FX1BSRUZJWF9SRUdFWCwgJyAnKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldCBjdXJyZW50TGFuZ3VhZ2UoKTogU3VwcG9ydGVkSWNvblBpY2tlckxhbmd1YWdlIHtcbiAgICBjb25zdCBsYW5nID0gKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nID8/ICcnKS50b0xvd2VyQ2FzZSgpO1xuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZW4nKSkge1xuICAgICAgcmV0dXJuICdlbic7XG4gICAgfVxuXG4gICAgaWYgKGxhbmcuc3RhcnRzV2l0aCgnZXMnKSkge1xuICAgICAgcmV0dXJuICdlcyc7XG4gICAgfVxuXG4gICAgcmV0dXJuICdwdCc7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJcIlxuICBbY2xhc3Muc2RjLWljb24tcGlja2VyLS1kaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gIFtjbGFzcy5zZGMtaWNvbi1waWNrZXItLWludmFsaWRdPVwiaW52YWxpZFwiXG4+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2xhYmVsLXJvd1wiPlxuICAgICAgPGxhYmVsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19sYWJlbFwiIFtmb3JdPVwidHJpZ2dlcklkXCIgW2F0dHIuYXJpYS1yZXF1aXJlZF09XCJyZXF1aXJlZCB8fCBudWxsXCI+XG4gICAgICAgIHt7IHJlc29sdmVkTGFiZWwgfX1cbiAgICAgICAgQGlmIChyZXF1aXJlZCkge1xuICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19yZXF1aXJlZFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPio8L3NwYW4+XG4gICAgICAgIH1cbiAgICAgIDwvbGFiZWw+XG5cbiAgICAgIEBpZiAocmVzb2x2ZWRUb29sdGlwKSB7XG4gICAgICAgIDxzZGMtdG9vbHRpcCBbcFRvb2x0aXBdPVwicmVzb2x2ZWRUb29sdGlwXCIgW3Rvb2x0aXBFdmVudF09XCInYm90aCdcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19pbmZvLWljb25cIlxuICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJyZXNvbHZlZFRvb2x0aXBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWluZm8tY2lyY2xlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3NkYy10b29sdGlwPlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG5cbiAgPGJ1dHRvblxuICAgIFtpZF09XCJ0cmlnZ2VySWRcIlxuICAgIHR5cGU9XCJidXR0b25cIlxuICAgIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyXCJcbiAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/IHRydWUgOiBudWxsXCJcbiAgICBbYXR0ci5hcmlhLXJlcXVpcmVkXT1cInJlcXVpcmVkIHx8IG51bGxcIlxuICAgIFthdHRyLmFyaWEtaW52YWxpZF09XCJpbnZhbGlkIHx8IG51bGxcIlxuICAgIChjbGljayk9XCJvcGVuTW9kYWwoKVwiXG4gID5cbiAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fdHJpZ2dlci1zd2F0Y2hcIj5cbiAgICAgIEBpZiAodmFsdWUpIHtcbiAgICAgICAgPGkgW2NsYXNzXT1cIidmYXMgJyArIHZhbHVlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfSBAZWxzZSB7XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZXZyb24tZG93biBzZGMtaWNvbi1waWNrZXJfX3RyaWdnZXItc3dhdGNoLXBsYWNlaG9sZGVyXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCI+PC9pPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXNlcFwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvc3Bhbj5cblxuICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX190cmlnZ2VyLXRleHRcIj5cbiAgICAgIEBpZiAodmFsdWUgJiYgc2VsZWN0ZWRJY29uTGFiZWwpIHtcbiAgICAgICAge3sgc2VsZWN0ZWRJY29uTGFiZWwgfX1cbiAgICAgIH0gQGVsc2Uge1xuICAgICAgICA8c3BhbiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcGxhY2Vob2xkZXJcIj57eyByZXNvbHZlZFBsYWNlaG9sZGVyIH19PC9zcGFuPlxuICAgICAgfVxuICAgIDwvc3Bhbj5cbiAgPC9idXR0b24+XG5cbiAgQGlmIChpbnZhbGlkICYmIHJlc29sdmVkRXJyb3JNZXNzYWdlKSB7XG4gICAgPHNtYWxsIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19lcnJvclwiPnt7IHJlc29sdmVkRXJyb3JNZXNzYWdlIH19PC9zbWFsbD5cbiAgfVxuPC9kaXY+XG5cbjxzZGMtbW9kYWxcbiAgW2hlYWRlcl09XCJyZXNvbHZlZE1vZGFsVGl0bGVcIlxuICBbdmlzaWJsZV09XCJtb2RhbE9wZW5cIlxuICBbd2lkdGhdPVwiNjYwXCJcbiAgW2Nsb3NhYmxlXT1cInRydWVcIlxuICBzdHlsZUNsYXNzPVwic2RjLW1vZGFsLS1pY29uLXBpY2tlclwiXG4gIFthcHBlbmRUb0JvZHldPVwidHJ1ZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19tb2RhbC1ib2R5XCI+XG4gICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fc2VhcmNoLXJvd1wiPlxuICAgICAgPHNkYy1zZWFyY2hib3hcbiAgICAgICAgI3NlYXJjaGJveEVsXG4gICAgICAgIFt2YWx1ZV09XCJzZWFyY2hUZXJtXCJcbiAgICAgICAgW3BsYWNlaG9sZGVyXT1cInJlc29sdmVkU2VhcmNoUGxhY2Vob2xkZXJcIlxuICAgICAgICBbZGVib3VuY2VUaW1lTXNdPVwiMjUwXCJcbiAgICAgICAgKGRlYm91bmNlZFZhbHVlQ2hhbmdlKT1cIm9uU2VhcmNoKCRldmVudClcIlxuICAgICAgICAob25DbGVhcik9XCJvblNlYXJjaCgnJylcIlxuICAgICAgPjwvc2RjLXNlYXJjaGJveD5cbiAgICA8L2Rpdj5cblxuICAgICAgQGlmIChwZW5kaW5nVmFsdWUpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1iYXJcIj5cbiAgICAgICAgICA8aVxuICAgICAgICAgICAgW2NsYXNzXT1cIidmYXMgJyArIHBlbmRpbmdWYWx1ZVwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fcHJldmlldy1pY29uXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPjwvaT5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWluZm9cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWxhYmVsXCI+e3sgcGVuZGluZ0ljb25MYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19wcmV2aWV3LWNsYXNzXCI+e3sgcGVuZGluZ1ZhbHVlIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2NvdW50ZXJcIj5cbiAgICAgIEBpZiAoZmlsdGVyZWRJY29ucy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxzcGFuPnt7IGljb25zRm91bmRDb3VudCB9fSB7eyBpY29uc0ZvdW5kVGV4dCB9fTwvc3Bhbj5cbiAgICAgIH0gQGVsc2UgaWYgKCFpc0xvYWRpbmcpIHtcbiAgICAgICAgPHNwYW4+e3sgbm9JY29uc0ZvdW5kVGV4dCB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIEBpZiAoaXNMb2FkaW5nKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWljb24tcGlja2VyX19sb2FkaW5nXCI+XG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXNwaW5uZXIgZmEtc3BpblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgPCEtLSBOT1NPTkFSOiB0aGlzIHBpY2tlciBuZWVkcyBhIGN1c3RvbSBBUklBIGxpc3Rib3gvZ3JpZCBleHBlcmllbmNlIHRoYXQgYSBuYXRpdmUgc2VsZWN0IGNhbm5vdCBwcm92aWRlIC0tPlxuICAgICAgPGRpdlxuICAgICAgICAjaWNvbkdyaWRcbiAgICAgICAgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2dyaWRcIlxuICAgICAgICBbYXR0ci5yb2xlXT1cIidsaXN0Ym94J1wiXG4gICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRNb2RhbFRpdGxlXCJcbiAgICAgICAgKHNjcm9sbCk9XCJvbkdyaWRTY3JvbGwoJGV2ZW50KVwiXG4gICAgICA+XG4gICAgICAgIEBmb3IgKGljb24gb2YgdmlzaWJsZUljb25zOyB0cmFjayBpY29uLm5hbWUpIHtcbiAgICAgICAgICA8IS0tIE5PU09OQVIgLS0+XG4gICAgICAgICAgPCEtLSB0aGUgY3VzdG9tIGljb24gZ3JpZCBrZWVwcyBvcHRpb24gc2VtYW50aWNzIG9uIHRoZSBmb2N1c2FibGUgY2FyZCBmb3Iga2V5Ym9hcmQgYW5kIFNSIHN1cHBvcnQgLS0+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNkYy1pY29uLXBpY2tlcl9fY2FyZFwiXG4gICAgICAgICAgICBbY2xhc3Muc2RjLWljb24tcGlja2VyX19jYXJkLS1zZWxlY3RlZF09XCJpc0ljb25TZWxlY3RlZChpY29uKVwiXG4gICAgICAgICAgICBbYXR0ci5yb2xlXT1cIidvcHRpb24nXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtc2VsZWN0ZWRdPVwiaXNJY29uU2VsZWN0ZWQoaWNvbikgPyAndHJ1ZScgOiAnZmFsc2UnXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiaWNvbi5sYWJlbCArICcgLSAnICsgaWNvbi5uYW1lXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RJY29uKGljb24pXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwiJ2ZhcyAnICsgaWNvbi5uYW1lXCIgY2xhc3M9XCJzZGMtaWNvbi1waWNrZXJfX2NhcmQtaWNvblwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19jYXJkLW5hbWVcIj57eyBpY29uLmxhYmVsIH19PC9zcGFuPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICB9XG4gIDwvZGl2PlxuXG4gIDxkaXYgZm9vdGVyIGNsYXNzPVwic2RjLWljb24tcGlja2VyX19mb290ZXJcIj5cbiAgICA8c2RjLWJ1dHRvblxuICAgICAgW2xhYmVsXT1cImNhbmNlbFRleHRcIlxuICAgICAgcHJpb3JpdHk9XCJzZWNvbmRhcnlcIlxuICAgICAgKGNsaWNrZWQpPVwiY2FuY2VsU2VsZWN0aW9uKClcIlxuICAgID48L3NkYy1idXR0b24+XG4gICAgPHNkYy1idXR0b25cbiAgICAgIFtsYWJlbF09XCJjb25maXJtVGV4dFwiXG4gICAgICBwcmlvcml0eT1cInByaW1hcnlcIlxuICAgICAgW2Rpc2FibGVkXT1cInBlbmRpbmdWYWx1ZSA9PT0gbnVsbCAmJiB2YWx1ZSA9PT0gbnVsbFwiXG4gICAgICAoY2xpY2tlZCk9XCJjb25maXJtU2VsZWN0aW9uKClcIlxuICAgID48L3NkYy1idXR0b24+XG4gIDwvZGl2PlxuPC9zZGMtbW9kYWw+XG4iXX0=
|
|
@@ -166,7 +166,7 @@ export class ImageCropperComponent {
|
|
|
166
166
|
this.cdr.markForCheck();
|
|
167
167
|
}
|
|
168
168
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
169
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ImageCropperComponent, isStandalone: true, selector: "sdc-image-cropper", inputs: { visible: "visible", imageSource: "imageSource", header: "header", cropLabel: "cropLabel", cancelLabel: "cancelLabel", removeLabel: "removeLabel", selectAnotherLabel: "selectAnotherLabel", emptyStateTitle: "emptyStateTitle", emptyStateActionLabel: "emptyStateActionLabel", aspectRatio: "aspectRatio", rounded: "rounded", allowSelectAnother: "allowSelectAnother", allowRemove: "allowRemove", allowCancel: "allowCancel" }, outputs: { visibleChange: "visibleChange", croppedImage: "croppedImage", croppedCanvas: "croppedCanvas", changeImage: "changeImage", removedImage: "removedImage", cancel: "cancel" }, viewQueries: [{ propertyName: "imageEl", first: true, predicate: ["imageEl"], descendants: true }], ngImport: i0, template: "<sdc-modal\n [visible]=\"visible\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n [header]=\"header\"\n [closable]=\"true\"\n [responsive]=\"true\"\n width=\"600px\"\n styleClass=\"sdc-image-cropper-modal\"\n>\n <div class=\"sdc-image-cropper\">\n @if (hasImage) {\n <div class=\"sdc-image-cropper__image-container\">\n <img\n #imageEl\n class=\"sdc-image-cropper__image\"\n [class.sdc-image-cropper__image--rounded]=\"rounded\"\n [src]=\"imageSource\"\n [attr.width]=\"outputWidth\"\n [attr.height]=\"outputHeight\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n </div>\n } @else {\n <div class=\"sdc-image-cropper__empty\">\n <sdc-empty-state\n [title]=\"emptyStateTitle\"\n [primaryActionLabel]=\"emptyStateActionLabel\"\n [showPrimaryAction]=\"true\"\n [showSecondaryAction]=\"false\"\n (primaryAction)=\"onEmptyStateAction()\"\n ></sdc-empty-state>\n </div>\n }\n\n <div class=\"sdc-image-cropper__footer\">\n <div class=\"sdc-image-cropper__actions sdc-image-cropper__actions--left\">\n @if (allowSelectAnother && hasImage) {\n <sdc-button\n id=\"image-cropper-select-another\"\n [label]=\"selectAnotherLabel | translate\"\n priority=\"link\"\n (clicked)=\"onSelectAnother()\"\n ></sdc-button>\n }\n\n @if (allowRemove && hasImage) {\n <sdc-button\n id=\"image-cropper-remove\"\n [label]=\"removeLabel | translate\"\n priority=\"danger\"\n (clicked)=\"onRemove()\"\n ></sdc-button>\n }\n </div>\n\n <div class=\"sdc-image-cropper__actions sdc-image-cropper__actions--right\">\n @if (allowCancel) {\n <sdc-button\n id=\"image-cropper-cancel\"\n [label]=\"cancelLabel | translate\"\n priority=\"secondary\"\n (clicked)=\"onCancel()\"\n ></sdc-button>\n }\n\n @if (hasImage) {\n <sdc-button\n id=\"image-cropper-crop\"\n [label]=\"cropLabel | translate\"\n priority=\"primary\"\n (clicked)=\"onCropImage()\"\n ></sdc-button>\n }\n </div>\n </div>\n </div>\n</sdc-modal>\n", styles: [":host{display:block}.sdc-image-cropper{--sdc-image-cropper-bg: #000;--sdc-image-cropper-btn-gap: .5rem;--sdc-image-cropper-image-max-height: 60vh;--sdc-image-cropper-footer-padding: 1rem 0 0}.sdc-image-cropper__image-container{display:flex;justify-content:center;align-items:center;background-color:var(--sdc-image-cropper-bg);border-radius:4px;overflow:hidden;min-height:200px}.sdc-image-cropper__image{max-width:100%;max-height:var(--sdc-image-cropper-image-max-height);object-fit:contain;display:block}.sdc-image-cropper__image--rounded{border-radius:50%}.sdc-image-cropper__empty{display:flex;justify-content:center;align-items:center;min-height:200px;padding:2rem}.sdc-image-cropper__footer{display:flex;justify-content:space-between;align-items:center;padding:var(--sdc-image-cropper-footer-padding);flex-wrap:wrap;gap:var(--sdc-image-cropper-btn-gap)}.sdc-image-cropper__actions{display:flex;gap:var(--sdc-image-cropper-btn-gap);align-items:center}.sdc-image-cropper__actions--left{flex:1}.sdc-image-cropper__actions--right{display:flex;gap:var(--sdc-image-cropper-btn-gap)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: ButtonComponent, selector: "sdc-button", inputs: ["id", "label", "ariaLabel", "disabled", "width", "priority", "size", "type", "icon", "rightIcon", "auxiliary", "caret", "tooltip", "animation", "slide", "styleClass", "badge", "menuOptions", "menuContext", "model"], outputs: ["clicked"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
169
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: ImageCropperComponent, isStandalone: true, selector: "sdc-image-cropper", inputs: { visible: "visible", imageSource: "imageSource", header: "header", cropLabel: "cropLabel", cancelLabel: "cancelLabel", removeLabel: "removeLabel", selectAnotherLabel: "selectAnotherLabel", emptyStateTitle: "emptyStateTitle", emptyStateActionLabel: "emptyStateActionLabel", aspectRatio: "aspectRatio", rounded: "rounded", allowSelectAnother: "allowSelectAnother", allowRemove: "allowRemove", allowCancel: "allowCancel" }, outputs: { visibleChange: "visibleChange", croppedImage: "croppedImage", croppedCanvas: "croppedCanvas", changeImage: "changeImage", removedImage: "removedImage", cancel: "cancel" }, viewQueries: [{ propertyName: "imageEl", first: true, predicate: ["imageEl"], descendants: true }], ngImport: i0, template: "<sdc-modal\n [visible]=\"visible\"\n (visibleChange)=\"onModalVisibleChange($event)\"\n [header]=\"header\"\n [closable]=\"true\"\n [responsive]=\"true\"\n width=\"600px\"\n styleClass=\"sdc-image-cropper-modal\"\n>\n <div class=\"sdc-image-cropper\">\n @if (hasImage) {\n <div class=\"sdc-image-cropper__image-container\">\n <img\n #imageEl\n class=\"sdc-image-cropper__image\"\n [class.sdc-image-cropper__image--rounded]=\"rounded\"\n [src]=\"imageSource\"\n [attr.width]=\"outputWidth\"\n [attr.height]=\"outputHeight\"\n alt=\"\"\n aria-hidden=\"true\"\n />\n </div>\n } @else {\n <div class=\"sdc-image-cropper__empty\">\n <sdc-empty-state\n [title]=\"emptyStateTitle\"\n [primaryActionLabel]=\"emptyStateActionLabel\"\n [showPrimaryAction]=\"true\"\n [showSecondaryAction]=\"false\"\n (primaryAction)=\"onEmptyStateAction()\"\n ></sdc-empty-state>\n </div>\n }\n\n <div class=\"sdc-image-cropper__footer\">\n <div class=\"sdc-image-cropper__actions sdc-image-cropper__actions--left\">\n @if (allowSelectAnother && hasImage) {\n <sdc-button\n id=\"image-cropper-select-another\"\n [label]=\"selectAnotherLabel | translate\"\n priority=\"link\"\n (clicked)=\"onSelectAnother()\"\n ></sdc-button>\n }\n\n @if (allowRemove && hasImage) {\n <sdc-button\n id=\"image-cropper-remove\"\n [label]=\"removeLabel | translate\"\n priority=\"danger\"\n (clicked)=\"onRemove()\"\n ></sdc-button>\n }\n </div>\n\n <div class=\"sdc-image-cropper__actions sdc-image-cropper__actions--right\">\n @if (allowCancel) {\n <sdc-button\n id=\"image-cropper-cancel\"\n [label]=\"cancelLabel | translate\"\n priority=\"secondary\"\n (clicked)=\"onCancel()\"\n ></sdc-button>\n }\n\n @if (hasImage) {\n <sdc-button\n id=\"image-cropper-crop\"\n [label]=\"cropLabel | translate\"\n priority=\"primary\"\n (clicked)=\"onCropImage()\"\n ></sdc-button>\n }\n </div>\n </div>\n </div>\n</sdc-modal>\n", styles: [":host{display:block}.sdc-image-cropper{--sdc-image-cropper-bg: #000;--sdc-image-cropper-btn-gap: .5rem;--sdc-image-cropper-image-max-height: 60vh;--sdc-image-cropper-footer-padding: 1rem 0 0}.sdc-image-cropper__image-container{display:flex;justify-content:center;align-items:center;background-color:var(--sdc-image-cropper-bg);border-radius:4px;overflow:hidden;min-height:200px}.sdc-image-cropper__image{max-width:100%;max-height:var(--sdc-image-cropper-image-max-height);object-fit:contain;display:block}.sdc-image-cropper__image--rounded{border-radius:50%}.sdc-image-cropper__empty{display:flex;justify-content:center;align-items:center;min-height:200px;padding:2rem}.sdc-image-cropper__footer{display:flex;justify-content:space-between;align-items:center;padding:var(--sdc-image-cropper-footer-padding);flex-wrap:wrap;gap:var(--sdc-image-cropper-btn-gap)}.sdc-image-cropper__actions{display:flex;gap:var(--sdc-image-cropper-btn-gap);align-items:center}.sdc-image-cropper__actions--left{flex:1}.sdc-image-cropper__actions--right{display:flex;gap:var(--sdc-image-cropper-btn-gap)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { 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"] }, { kind: "component", type: EmptyStateComponent, selector: "sdc-empty-state", inputs: ["id", "title", "variant", "titleParams", "iconClass", "description", "descriptionParams", "showPrimaryAction", "showSecondaryAction", "primaryActionLabel", "primaryActionLabelParams", "secondaryActionLabel", "secondaryActionLabelParams", "primaryModel"], outputs: ["primaryAction", "secondaryAction"] }, { kind: "component", type: ModalComponent, selector: "sdc-modal", inputs: ["footerButtons", "headerActions", "header", "height", "maximizable", "maximize", "resizable", "responsive", "width", "zIndex", "closable", "styleClass", "appendToBody", "visible"], outputs: ["hidden", "visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
170
170
|
}
|
|
171
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ImageCropperComponent, decorators: [{
|
|
172
172
|
type: Component,
|
|
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
215
215
|
}], cancel: [{
|
|
216
216
|
type: Output
|
|
217
217
|
}] } });
|
|
218
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFMUQsMEJBQTBCO0FBQzFCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQVd2QixNQUFNLE9BQU8scUJBQXFCO0lBQ1YsT0FBTyxDQUFnQztJQUVwRCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBQzVDLE1BQU0sR0FBRyx3Q0FBd0MsQ0FBQztJQUNsRCxTQUFTLEdBQUcsc0NB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QVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxtQkFHN0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHbkIsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IEltYWdlQ3JvcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaW1hZ2UtY3JvcHBlci50eXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuXG4vLyBJbWFnZSBjcm9wcGVyIGNvbnN0YW50c1xuY29uc3QgREVGQVVMVF9PVVRQVVRfV0lEVEggPSA0MDA7XG5jb25zdCBKUEVHX1FVQUxJVFkgPSAwLjk7XG5jb25zdCBDSVJDTEVfRlVMTF9BTkdMRSA9IE1hdGguUEkgKiAyO1xuY29uc3QgSEFMRl9ESVZJU09SID0gMjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWltYWdlLWNyb3BwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgRW1wdHlTdGF0ZUNvbXBvbmVudCwgTW9kYWxDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ3JvcHBlckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2ltYWdlRWwnKSBpbWFnZUVsPzogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PjtcblxuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGltYWdlU291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGhlYWRlciA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmhlYWRlcic7XG4gIEBJbnB1dCgpIGNyb3BMYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmNyb3AnO1xuICBASW5wdXQoKSBjYW5jZWxMYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmNhbmNlbCc7XG4gIEBJbnB1dCgpIHJlbW92ZUxhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmltYWdlX2Nyb3BwZXIucmVtb3ZlJztcbiAgQElucHV0KCkgc2VsZWN0QW5vdGhlckxhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmltYWdlX2Nyb3BwZXIuc2VsZWN0X2Fub3RoZXInO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVGl0bGUgPSAncGxhdGZvcm0uZGF0YWNvcmUuaW1hZ2VfY3JvcHBlci5lbXB0eV9zdGF0ZV90aXRsZSc7XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVBY3Rpb25MYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmVtcHR5X3N0YXRlX2FjdGlvbic7XG4gIEBJbnB1dCgpIGFzcGVjdFJhdGlvID0gTmFOO1xuICBASW5wdXQoKSByb3VuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsbG93U2VsZWN0QW5vdGhlciA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlID0gdHJ1ZTtcbiAgQElucHV0KCkgYWxsb3dDYW5jZWwgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY3JvcHBlZEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjcm9wcGVkQ2FudmFzID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MQ2FudmFzRWxlbWVudD4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZUltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBnZXQgaGFzSW1hZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pbWFnZVNvdXJjZTtcbiAgfVxuXG4gIGdldCBvdXRwdXRXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiBERUZBVUxUX09VVFBVVF9XSURUSDtcbiAgfVxuXG4gIGdldCBvdXRwdXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOYU4odGhpcy5hc3BlY3RSYXRpbykgfHwgdGhpcy5hc3BlY3RSYXRpbyA8PSAwKSB7XG4gICAgICByZXR1cm4gREVGQVVMVF9PVVRQVVRfV0lEVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5vdXRwdXRXaWR0aCAvIHRoaXMuYXNwZWN0UmF0aW8pO1xuICB9XG5cbiAgb25Nb2RhbFZpc2libGVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNyb3BJbWFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbWcgPSB0aGlzLmltYWdlRWw/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWltZykge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY2FudmFzLndpZHRoID0gdGhpcy5vdXRwdXRXaWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5vdXRwdXRIZWlnaHQ7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICBpZiAoIWN0eCkge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm91bmRlZCkge1xuICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgY3R4LmFyYyhcbiAgICAgICAgY2FudmFzLndpZHRoIC8gSEFMRl9ESVZJU09SLFxuICAgICAgICBjYW52YXMuaGVpZ2h0IC8gSEFMRl9ESVZJU09SLFxuICAgICAgICBNYXRoLm1pbihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpIC8gSEFMRl9ESVZJU09SLFxuICAgICAgICAwLFxuICAgICAgICBDSVJDTEVfRlVMTF9BTkdMRVxuICAgICAgKTtcbiAgICAgIGN0eC5jbGlwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhbGVYID0gaW1nLm5hdHVyYWxXaWR0aCAvIChpbWcub2Zmc2V0V2lkdGggfHwgaW1nLm5hdHVyYWxXaWR0aCk7XG4gICAgY29uc3Qgc2NhbGVZID0gaW1nLm5hdHVyYWxIZWlnaHQgLyAoaW1nLm9mZnNldEhlaWdodCB8fCBpbWcubmF0dXJhbEhlaWdodCk7XG5cbiAgICBjdHguZHJhd0ltYWdlKFxuICAgICAgaW1nLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBpbWcub2Zmc2V0V2lkdGggKiBzY2FsZVgsXG4gICAgICBpbWcub2Zmc2V0SGVpZ2h0ICogc2NhbGVZLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBjYW52YXMud2lkdGgsXG4gICAgICBjYW52YXMuaGVpZ2h0XG4gICAgKTtcblxuICAgIGNvbnN0IGJhc2U2NCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBKUEVHX1FVQUxJVFkpO1xuICAgIHRoaXMuY3JvcHBlZEltYWdlLmVtaXQoYmFzZTY0KTtcbiAgICB0aGlzLmNyb3BwZWRDYW52YXMuZW1pdChjYW52YXMpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25SZW1vdmUoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVkSW1hZ2UuZW1pdCgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25TZWxlY3RBbm90aGVyKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW1hZ2UuZW1pdCgpO1xuICB9XG5cbiAgb25FbXB0eVN0YXRlQWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW1hZ2UuZW1pdCgpO1xuICB9XG5cbiAgYXBwbHlDb25maWcoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5Q29uZmlnUHJvcGVydGllcyhjb25maWcpO1xuICAgIHRoaXMuYXBwbHlDb25maWdFdmVudExpc3RlbmVycyhjb25maWcpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ1Byb3BlcnRpZXMoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuaW1hZ2VTb3VyY2UsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5pbWFnZVNvdXJjZSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5oZWFkZXIsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXIgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuY3JvcExhYmVsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY3JvcExhYmVsID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmNhbmNlbExhYmVsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY2FuY2VsTGFiZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcucmVtb3ZlTGFiZWwsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVMYWJlbCA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5zZWxlY3RBbm90aGVyTGFiZWwsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RBbm90aGVyTGFiZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuZW1wdHlTdGF0ZVRpdGxlLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuZW1wdHlTdGF0ZVRpdGxlID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmVtcHR5U3RhdGVBY3Rpb25MYWJlbCwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGVBY3Rpb25MYWJlbCA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5hc3BlY3RSYXRpbywgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFzcGVjdFJhdGlvID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLnJvdW5kZWQsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5yb3VuZGVkID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmFsbG93U2VsZWN0QW5vdGhlciwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFsbG93U2VsZWN0QW5vdGhlciA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5hbGxvd1JlbW92ZSwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFsbG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmFsbG93Q2FuY2VsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuYWxsb3dDYW5jZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSWZEZWZpbmVkPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkLCBzZXR0ZXI6IChuZXh0VmFsdWU6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2V0dGVyKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29uZmlnRXZlbnRMaXN0ZW5lcnMoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnLmNyb3BwZWRJbWFnZSkge1xuICAgICAgdGhpcy5jcm9wcGVkSW1hZ2Uuc3Vic2NyaWJlKGNvbmZpZy5jcm9wcGVkSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNyb3BwZWRDYW52YXMpIHtcbiAgICAgIHRoaXMuY3JvcHBlZENhbnZhcy5zdWJzY3JpYmUoY29uZmlnLmNyb3BwZWRDYW52YXMpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNoYW5nZUltYWdlKSB7XG4gICAgICB0aGlzLmNoYW5nZUltYWdlLnN1YnNjcmliZShjb25maWcuY2hhbmdlSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnJlbW92ZWRJbWFnZSkge1xuICAgICAgdGhpcy5yZW1vdmVkSW1hZ2Uuc3Vic2NyaWJlKGNvbmZpZy5yZW1vdmVkSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNhbmNlbCkge1xuICAgICAgdGhpcy5jYW5jZWwuc3Vic2NyaWJlKGNvbmZpZy5jYW5jZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxzZGMtbW9kYWxcbiAgW3Zpc2libGVdPVwidmlzaWJsZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuICBbaGVhZGVyXT1cImhlYWRlclwiXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcbiAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiXG4gIHdpZHRoPVwiNjAwcHhcIlxuICBzdHlsZUNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXItbW9kYWxcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJcIj5cbiAgICBAaWYgKGhhc0ltYWdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2ltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgI2ltYWdlRWxcbiAgICAgICAgICBjbGFzcz1cInNkYy1pbWFnZS1jcm9wcGVyX19pbWFnZVwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1pbWFnZS1jcm9wcGVyX19pbWFnZS0tcm91bmRlZF09XCJyb3VuZGVkXCJcbiAgICAgICAgICBbc3JjXT1cImltYWdlU291cmNlXCJcbiAgICAgICAgICBbYXR0ci53aWR0aF09XCJvdXRwdXRXaWR0aFwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm91dHB1dEhlaWdodFwiXG4gICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2VtcHR5XCI+XG4gICAgICAgIDxzZGMtZW1wdHktc3RhdGVcbiAgICAgICAgICBbdGl0bGVdPVwiZW1wdHlTdGF0ZVRpdGxlXCJcbiAgICAgICAgICBbcHJpbWFyeUFjdGlvbkxhYmVsXT1cImVtcHR5U3RhdGVBY3Rpb25MYWJlbFwiXG4gICAgICAgICAgW3Nob3dQcmltYXJ5QWN0aW9uXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93U2Vjb25kYXJ5QWN0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAocHJpbWFyeUFjdGlvbik9XCJvbkVtcHR5U3RhdGVBY3Rpb24oKVwiXG4gICAgICAgID48L3NkYy1lbXB0eS1zdGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtaW1hZ2UtY3JvcHBlcl9fZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2FjdGlvbnMgc2RjLWltYWdlLWNyb3BwZXJfX2FjdGlvbnMtLWxlZnRcIj5cbiAgICAgICAgQGlmIChhbGxvd1NlbGVjdEFub3RoZXIgJiYgaGFzSW1hZ2UpIHtcbiAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJpbWFnZS1jcm9wcGVyLXNlbGVjdC1hbm90aGVyXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJzZWxlY3RBbm90aGVyTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2VsZWN0QW5vdGhlcigpXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChhbGxvd1JlbW92ZSAmJiBoYXNJbWFnZSkge1xuICAgICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgICBpZD1cImltYWdlLWNyb3BwZXItcmVtb3ZlXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJyZW1vdmVMYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBwcmlvcml0eT1cImRhbmdlclwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJvblJlbW92ZSgpXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1pbWFnZS1jcm9wcGVyX19hY3Rpb25zIHNkYy1pbWFnZS1jcm9wcGVyX19hY3Rpb25zLS1yaWdodFwiPlxuICAgICAgICBAaWYgKGFsbG93Q2FuY2VsKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIGlkPVwiaW1hZ2UtY3JvcHBlci1jYW5jZWxcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNhbmNlbExhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHByaW9yaXR5PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGhhc0ltYWdlKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIGlkPVwiaW1hZ2UtY3JvcHBlci1jcm9wXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjcm9wTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ3JvcEltYWdlKClcIlxuICAgICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2RjLW1vZGFsPlxuIl19
|
|
218
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2ltYWdlLWNyb3BwZXIvaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUNqQixTQUFTLEVBRVQsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULGlCQUFpQixFQUNqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFFMUQsMEJBQTBCO0FBQzFCLE1BQU0sb0JBQW9CLEdBQUcsR0FBRyxDQUFDO0FBQ2pDLE1BQU0sWUFBWSxHQUFHLEdBQUcsQ0FBQztBQUN6QixNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0FBQ3RDLE1BQU0sWUFBWSxHQUFHLENBQUMsQ0FBQztBQVd2QixNQUFNLE9BQU8scUJBQXFCO0lBQ1YsT0FBTyxDQUFnQztJQUVwRCxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFdBQVcsR0FBdUIsU0FBUyxDQUFDO0lBQzVDLE1BQU0sR0FBRyx3Q0FBd0MsQ0FBQztJQUNsRCxTQUFTLEdBQUcsc0NB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QVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxlQUFlLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxtQkFHN0UsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsUUFBUTs4QkFHbkIsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVYLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csa0JBQWtCO3NCQUExQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csTUFBTTtzQkFBZixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7IEltYWdlQ3JvcHBlckNvbmZpZyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaW1hZ2UtY3JvcHBlci50eXBlJztcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4uL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IEVtcHR5U3RhdGVDb21wb25lbnQgfSBmcm9tICcuLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5jb21wb25lbnQnO1xuXG4vLyBJbWFnZSBjcm9wcGVyIGNvbnN0YW50c1xuY29uc3QgREVGQVVMVF9PVVRQVVRfV0lEVEggPSA0MDA7XG5jb25zdCBKUEVHX1FVQUxJVFkgPSAwLjk7XG5jb25zdCBDSVJDTEVfRlVMTF9BTkdMRSA9IE1hdGguUEkgKiAyO1xuY29uc3QgSEFMRl9ESVZJU09SID0gMjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2RjLWltYWdlLWNyb3BwZXInLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIEJ1dHRvbkNvbXBvbmVudCwgRW1wdHlTdGF0ZUNvbXBvbmVudCwgTW9kYWxDb21wb25lbnRdLFxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtY3JvcHBlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbWFnZS1jcm9wcGVyLmNvbXBvbmVudC5zY3NzJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLkVtdWxhdGVkXG59KVxuZXhwb3J0IGNsYXNzIEltYWdlQ3JvcHBlckNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoJ2ltYWdlRWwnKSBpbWFnZUVsPzogRWxlbWVudFJlZjxIVE1MSW1hZ2VFbGVtZW50PjtcblxuICBASW5wdXQoKSB2aXNpYmxlID0gZmFsc2U7XG4gIEBJbnB1dCgpIGltYWdlU291cmNlOiBzdHJpbmcgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIEBJbnB1dCgpIGhlYWRlciA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmhlYWRlcic7XG4gIEBJbnB1dCgpIGNyb3BMYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmNyb3AnO1xuICBASW5wdXQoKSBjYW5jZWxMYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmNhbmNlbCc7XG4gIEBJbnB1dCgpIHJlbW92ZUxhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmltYWdlX2Nyb3BwZXIucmVtb3ZlJztcbiAgQElucHV0KCkgc2VsZWN0QW5vdGhlckxhYmVsID0gJ3BsYXRmb3JtLmRhdGFjb3JlLmltYWdlX2Nyb3BwZXIuc2VsZWN0X2Fub3RoZXInO1xuICBASW5wdXQoKSBlbXB0eVN0YXRlVGl0bGUgPSAncGxhdGZvcm0uZGF0YWNvcmUuaW1hZ2VfY3JvcHBlci5lbXB0eV9zdGF0ZV90aXRsZSc7XG4gIEBJbnB1dCgpIGVtcHR5U3RhdGVBY3Rpb25MYWJlbCA9ICdwbGF0Zm9ybS5kYXRhY29yZS5pbWFnZV9jcm9wcGVyLmVtcHR5X3N0YXRlX2FjdGlvbic7XG4gIEBJbnB1dCgpIGFzcGVjdFJhdGlvID0gTmFOO1xuICBASW5wdXQoKSByb3VuZGVkID0gZmFsc2U7XG4gIEBJbnB1dCgpIGFsbG93U2VsZWN0QW5vdGhlciA9IHRydWU7XG4gIEBJbnB1dCgpIGFsbG93UmVtb3ZlID0gdHJ1ZTtcbiAgQElucHV0KCkgYWxsb3dDYW5jZWwgPSB0cnVlO1xuXG4gIEBPdXRwdXQoKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuICBAT3V0cHV0KCkgY3JvcHBlZEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBjcm9wcGVkQ2FudmFzID0gbmV3IEV2ZW50RW1pdHRlcjxIVE1MQ2FudmFzRWxlbWVudD4oKTtcbiAgQE91dHB1dCgpIGNoYW5nZUltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgcmVtb3ZlZEltYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgY2FuY2VsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBnZXQgaGFzSW1hZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhdGhpcy5pbWFnZVNvdXJjZTtcbiAgfVxuXG4gIGdldCBvdXRwdXRXaWR0aCgpOiBudW1iZXIge1xuICAgIHJldHVybiBERUZBVUxUX09VVFBVVF9XSURUSDtcbiAgfVxuXG4gIGdldCBvdXRwdXRIZWlnaHQoKTogbnVtYmVyIHtcbiAgICBpZiAoaXNOYU4odGhpcy5hc3BlY3RSYXRpbykgfHwgdGhpcy5hc3BlY3RSYXRpbyA8PSAwKSB7XG4gICAgICByZXR1cm4gREVGQVVMVF9PVVRQVVRfV0lEVEg7XG4gICAgfVxuXG4gICAgcmV0dXJuIE1hdGgucm91bmQodGhpcy5vdXRwdXRXaWR0aCAvIHRoaXMuYXNwZWN0UmF0aW8pO1xuICB9XG5cbiAgb25Nb2RhbFZpc2libGVDaGFuZ2UodmFsdWU6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSB2YWx1ZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2YWx1ZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBvbkNyb3BJbWFnZSgpOiB2b2lkIHtcbiAgICBjb25zdCBpbWcgPSB0aGlzLmltYWdlRWw/Lm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBpZiAoIWltZykge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG4gICAgY2FudmFzLndpZHRoID0gdGhpcy5vdXRwdXRXaWR0aDtcbiAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5vdXRwdXRIZWlnaHQ7XG4gICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG5cbiAgICBpZiAoIWN0eCkge1xuICAgICAgdGhpcy5jbG9zZU1vZGFsKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucm91bmRlZCkge1xuICAgICAgY3R4LmJlZ2luUGF0aCgpO1xuICAgICAgY3R4LmFyYyhcbiAgICAgICAgY2FudmFzLndpZHRoIC8gSEFMRl9ESVZJU09SLFxuICAgICAgICBjYW52YXMuaGVpZ2h0IC8gSEFMRl9ESVZJU09SLFxuICAgICAgICBNYXRoLm1pbihjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpIC8gSEFMRl9ESVZJU09SLFxuICAgICAgICAwLFxuICAgICAgICBDSVJDTEVfRlVMTF9BTkdMRVxuICAgICAgKTtcbiAgICAgIGN0eC5jbGlwKCk7XG4gICAgfVxuXG4gICAgY29uc3Qgc2NhbGVYID0gaW1nLm5hdHVyYWxXaWR0aCAvIChpbWcub2Zmc2V0V2lkdGggfHwgaW1nLm5hdHVyYWxXaWR0aCk7XG4gICAgY29uc3Qgc2NhbGVZID0gaW1nLm5hdHVyYWxIZWlnaHQgLyAoaW1nLm9mZnNldEhlaWdodCB8fCBpbWcubmF0dXJhbEhlaWdodCk7XG5cbiAgICBjdHguZHJhd0ltYWdlKFxuICAgICAgaW1nLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBpbWcub2Zmc2V0V2lkdGggKiBzY2FsZVgsXG4gICAgICBpbWcub2Zmc2V0SGVpZ2h0ICogc2NhbGVZLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICBjYW52YXMud2lkdGgsXG4gICAgICBjYW52YXMuaGVpZ2h0XG4gICAgKTtcblxuICAgIGNvbnN0IGJhc2U2NCA9IGNhbnZhcy50b0RhdGFVUkwoJ2ltYWdlL2pwZWcnLCBKUEVHX1FVQUxJVFkpO1xuICAgIHRoaXMuY3JvcHBlZEltYWdlLmVtaXQoYmFzZTY0KTtcbiAgICB0aGlzLmNyb3BwZWRDYW52YXMuZW1pdChjYW52YXMpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgdGhpcy5jYW5jZWwuZW1pdCgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25SZW1vdmUoKTogdm9pZCB7XG4gICAgdGhpcy5yZW1vdmVkSW1hZ2UuZW1pdCgpO1xuICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICB9XG5cbiAgb25TZWxlY3RBbm90aGVyKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW1hZ2UuZW1pdCgpO1xuICB9XG5cbiAgb25FbXB0eVN0YXRlQWN0aW9uKCk6IHZvaWQge1xuICAgIHRoaXMuY2hhbmdlSW1hZ2UuZW1pdCgpO1xuICB9XG5cbiAgYXBwbHlDb25maWcoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmFwcGx5Q29uZmlnUHJvcGVydGllcyhjb25maWcpO1xuICAgIHRoaXMuYXBwbHlDb25maWdFdmVudExpc3RlbmVycyhjb25maWcpO1xuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBhcHBseUNvbmZpZ1Byb3BlcnRpZXMoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuaW1hZ2VTb3VyY2UsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5pbWFnZVNvdXJjZSA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5oZWFkZXIsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5oZWFkZXIgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuY3JvcExhYmVsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY3JvcExhYmVsID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmNhbmNlbExhYmVsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuY2FuY2VsTGFiZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcucmVtb3ZlTGFiZWwsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5yZW1vdmVMYWJlbCA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5zZWxlY3RBbm90aGVyTGFiZWwsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5zZWxlY3RBbm90aGVyTGFiZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgICB0aGlzLmFzc2lnbklmRGVmaW5lZChjb25maWcuZW1wdHlTdGF0ZVRpdGxlLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuZW1wdHlTdGF0ZVRpdGxlID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmVtcHR5U3RhdGVBY3Rpb25MYWJlbCwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmVtcHR5U3RhdGVBY3Rpb25MYWJlbCA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5hc3BlY3RSYXRpbywgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFzcGVjdFJhdGlvID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLnJvdW5kZWQsICh2YWx1ZSkgPT4ge1xuICAgICAgdGhpcy5yb3VuZGVkID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmFsbG93U2VsZWN0QW5vdGhlciwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFsbG93U2VsZWN0QW5vdGhlciA9IHZhbHVlO1xuICAgIH0pO1xuICAgIHRoaXMuYXNzaWduSWZEZWZpbmVkKGNvbmZpZy5hbGxvd1JlbW92ZSwgKHZhbHVlKSA9PiB7XG4gICAgICB0aGlzLmFsbG93UmVtb3ZlID0gdmFsdWU7XG4gICAgfSk7XG4gICAgdGhpcy5hc3NpZ25JZkRlZmluZWQoY29uZmlnLmFsbG93Q2FuY2VsLCAodmFsdWUpID0+IHtcbiAgICAgIHRoaXMuYWxsb3dDYW5jZWwgPSB2YWx1ZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSWZEZWZpbmVkPFQ+KHZhbHVlOiBUIHwgdW5kZWZpbmVkLCBzZXR0ZXI6IChuZXh0VmFsdWU6IFQpID0+IHZvaWQpOiB2b2lkIHtcbiAgICBpZiAodmFsdWUgIT09IHVuZGVmaW5lZCkge1xuICAgICAgc2V0dGVyKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFwcGx5Q29uZmlnRXZlbnRMaXN0ZW5lcnMoY29uZmlnOiBJbWFnZUNyb3BwZXJDb25maWcpOiB2b2lkIHtcbiAgICBpZiAoY29uZmlnLmNyb3BwZWRJbWFnZSkge1xuICAgICAgdGhpcy5jcm9wcGVkSW1hZ2Uuc3Vic2NyaWJlKGNvbmZpZy5jcm9wcGVkSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNyb3BwZWRDYW52YXMpIHtcbiAgICAgIHRoaXMuY3JvcHBlZENhbnZhcy5zdWJzY3JpYmUoY29uZmlnLmNyb3BwZWRDYW52YXMpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNoYW5nZUltYWdlKSB7XG4gICAgICB0aGlzLmNoYW5nZUltYWdlLnN1YnNjcmliZShjb25maWcuY2hhbmdlSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLnJlbW92ZWRJbWFnZSkge1xuICAgICAgdGhpcy5yZW1vdmVkSW1hZ2Uuc3Vic2NyaWJlKGNvbmZpZy5yZW1vdmVkSW1hZ2UpO1xuICAgIH1cbiAgICBpZiAoY29uZmlnLmNhbmNlbCkge1xuICAgICAgdGhpcy5jYW5jZWwuc3Vic2NyaWJlKGNvbmZpZy5jYW5jZWwpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2xvc2VNb2RhbCgpOiB2b2lkIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxzZGMtbW9kYWxcbiAgW3Zpc2libGVdPVwidmlzaWJsZVwiXG4gICh2aXNpYmxlQ2hhbmdlKT1cIm9uTW9kYWxWaXNpYmxlQ2hhbmdlKCRldmVudClcIlxuICBbaGVhZGVyXT1cImhlYWRlclwiXG4gIFtjbG9zYWJsZV09XCJ0cnVlXCJcbiAgW3Jlc3BvbnNpdmVdPVwidHJ1ZVwiXG4gIHdpZHRoPVwiNjAwcHhcIlxuICBzdHlsZUNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXItbW9kYWxcIlxuPlxuICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJcIj5cbiAgICBAaWYgKGhhc0ltYWdlKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2ltYWdlLWNvbnRhaW5lclwiPlxuICAgICAgICA8aW1nXG4gICAgICAgICAgI2ltYWdlRWxcbiAgICAgICAgICBjbGFzcz1cInNkYy1pbWFnZS1jcm9wcGVyX19pbWFnZVwiXG4gICAgICAgICAgW2NsYXNzLnNkYy1pbWFnZS1jcm9wcGVyX19pbWFnZS0tcm91bmRlZF09XCJyb3VuZGVkXCJcbiAgICAgICAgICBbc3JjXT1cImltYWdlU291cmNlXCJcbiAgICAgICAgICBbYXR0ci53aWR0aF09XCJvdXRwdXRXaWR0aFwiXG4gICAgICAgICAgW2F0dHIuaGVpZ2h0XT1cIm91dHB1dEhlaWdodFwiXG4gICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2VtcHR5XCI+XG4gICAgICAgIDxzZGMtZW1wdHktc3RhdGVcbiAgICAgICAgICBbdGl0bGVdPVwiZW1wdHlTdGF0ZVRpdGxlXCJcbiAgICAgICAgICBbcHJpbWFyeUFjdGlvbkxhYmVsXT1cImVtcHR5U3RhdGVBY3Rpb25MYWJlbFwiXG4gICAgICAgICAgW3Nob3dQcmltYXJ5QWN0aW9uXT1cInRydWVcIlxuICAgICAgICAgIFtzaG93U2Vjb25kYXJ5QWN0aW9uXT1cImZhbHNlXCJcbiAgICAgICAgICAocHJpbWFyeUFjdGlvbik9XCJvbkVtcHR5U3RhdGVBY3Rpb24oKVwiXG4gICAgICAgID48L3NkYy1lbXB0eS1zdGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJzZGMtaW1hZ2UtY3JvcHBlcl9fZm9vdGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwic2RjLWltYWdlLWNyb3BwZXJfX2FjdGlvbnMgc2RjLWltYWdlLWNyb3BwZXJfX2FjdGlvbnMtLWxlZnRcIj5cbiAgICAgICAgQGlmIChhbGxvd1NlbGVjdEFub3RoZXIgJiYgaGFzSW1hZ2UpIHtcbiAgICAgICAgICA8c2RjLWJ1dHRvblxuICAgICAgICAgICAgaWQ9XCJpbWFnZS1jcm9wcGVyLXNlbGVjdC1hbm90aGVyXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJzZWxlY3RBbm90aGVyTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgcHJpb3JpdHk9XCJsaW5rXCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uU2VsZWN0QW5vdGhlcigpXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChhbGxvd1JlbW92ZSAmJiBoYXNJbWFnZSkge1xuICAgICAgICAgIDxzZGMtYnV0dG9uXG4gICAgICAgICAgICBpZD1cImltYWdlLWNyb3BwZXItcmVtb3ZlXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJyZW1vdmVMYWJlbCB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBwcmlvcml0eT1cImRhbmdlclwiXG4gICAgICAgICAgICAoY2xpY2tlZCk9XCJvblJlbW92ZSgpXCJcbiAgICAgICAgICA+PC9zZGMtYnV0dG9uPlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cInNkYy1pbWFnZS1jcm9wcGVyX19hY3Rpb25zIHNkYy1pbWFnZS1jcm9wcGVyX19hY3Rpb25zLS1yaWdodFwiPlxuICAgICAgICBAaWYgKGFsbG93Q2FuY2VsKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIGlkPVwiaW1hZ2UtY3JvcHBlci1jYW5jZWxcIlxuICAgICAgICAgICAgW2xhYmVsXT1cImNhbmNlbExhYmVsIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIHByaW9yaXR5PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ2FuY2VsKClcIlxuICAgICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGhhc0ltYWdlKSB7XG4gICAgICAgICAgPHNkYy1idXR0b25cbiAgICAgICAgICAgIGlkPVwiaW1hZ2UtY3JvcHBlci1jcm9wXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCJjcm9wTGFiZWwgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgcHJpb3JpdHk9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgIChjbGlja2VkKT1cIm9uQ3JvcEltYWdlKClcIlxuICAgICAgICAgID48L3NkYy1idXR0b24+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2RjLW1vZGFsPlxuIl19
|
|
@@ -15,6 +15,7 @@ export class InfoSignComponent {
|
|
|
15
15
|
iconAriaLabel = INFO_SIGN_DEFAULT_ARIA_LABEL;
|
|
16
16
|
tooltipPosition = 'right';
|
|
17
17
|
tooltipEvent = 'both';
|
|
18
|
+
allowHtml = false;
|
|
18
19
|
inline = true;
|
|
19
20
|
get resolvedTooltip() {
|
|
20
21
|
return resolveTranslatableText(this.translate, this.tooltip, '', this.tooltipParams);
|
|
@@ -27,11 +28,11 @@ export class InfoSignComponent {
|
|
|
27
28
|
return template.replace('{text}', this.resolvedTooltip);
|
|
28
29
|
}
|
|
29
30
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoSignComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InfoSignComponent, isStandalone: true, selector: "sdc-info-sign", inputs: { label: "label", labelParams: "labelParams", tooltip: "tooltip", tooltipParams: "tooltipParams", iconClass: "iconClass", iconAriaLabel: "iconAriaLabel", tooltipPosition: "tooltipPosition", tooltipEvent: "tooltipEvent", inline: "inline" }, ngImport: i0, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip
|
|
31
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: InfoSignComponent, isStandalone: true, selector: "sdc-info-sign", inputs: { label: "label", labelParams: "labelParams", tooltip: "tooltip", tooltipParams: "tooltipParams", iconClass: "iconClass", iconAriaLabel: "iconAriaLabel", tooltipPosition: "tooltipPosition", tooltipEvent: "tooltipEvent", allowHtml: "allowHtml", inline: "inline" }, ngImport: i0, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip\n [pTooltip]=\"resolvedTooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipEvent]=\"tooltipEvent\"\n [allowHtml]=\"allowHtml\"\n >\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem;min-width:0}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-info-sign-icon-color, var(--sdc-form-tooltip-color, #090909));cursor:var(--sdc-info-sign-icon-cursor, help);display:inline-flex;font-size:var(--sdc-info-sign-icon-size, .95rem);justify-content:center;min-height:var(--sdc-info-sign-button-height, 1.25rem);min-width:var(--sdc-info-sign-button-width, 1.25rem);padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "component", type: TooltipComponent, selector: "sdc-tooltip", inputs: ["pTooltip", "tooltipPosition", "tooltipEvent", "fitContent", "tooltipDisabled", "allowHtml"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
31
32
|
}
|
|
32
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InfoSignComponent, decorators: [{
|
|
33
34
|
type: Component,
|
|
34
|
-
args: [{ selector: 'sdc-info-sign', standalone: true, imports: [CommonModule, TranslateModule, TooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip
|
|
35
|
+
args: [{ selector: 'sdc-info-sign', standalone: true, imports: [CommonModule, TranslateModule, TooltipComponent], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.Emulated, template: "<span class=\"sdc-info-sign\" [class.sdc-info-sign--inline]=\"inline\">\n @if (resolvedLabel) {\n <span class=\"sdc-info-sign__label\">{{ resolvedLabel }}</span>\n } @else {\n <ng-content></ng-content>\n }\n\n <sdc-tooltip\n [pTooltip]=\"resolvedTooltip\"\n [tooltipPosition]=\"tooltipPosition\"\n [tooltipEvent]=\"tooltipEvent\"\n [allowHtml]=\"allowHtml\"\n >\n <button type=\"button\" class=\"sdc-info-sign__icon\" [attr.aria-label]=\"resolvedAriaLabel\">\n <i [class]=\"iconClass\" aria-hidden=\"true\"></i>\n </button>\n </sdc-tooltip>\n</span>\n", styles: [":host{display:inline-flex}.sdc-info-sign{align-items:center;color:inherit;display:inline-flex;gap:.375rem;min-width:0}.sdc-info-sign__label{min-width:0}.sdc-info-sign__icon{align-items:center;background:transparent;border:0;color:var(--sdc-info-sign-icon-color, var(--sdc-form-tooltip-color, #090909));cursor:var(--sdc-info-sign-icon-cursor, help);display:inline-flex;font-size:var(--sdc-info-sign-icon-size, .95rem);justify-content:center;min-height:var(--sdc-info-sign-button-height, 1.25rem);min-width:var(--sdc-info-sign-button-width, 1.25rem);padding:0}.sdc-info-sign__icon:focus-visible{outline:var(--sdc-focus-outline, 2px solid #428bca);outline-offset:2px}\n"] }]
|
|
35
36
|
}], propDecorators: { label: [{
|
|
36
37
|
type: Input
|
|
37
38
|
}], labelParams: [{
|
|
@@ -49,7 +50,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
49
50
|
type: Input
|
|
50
51
|
}], tooltipEvent: [{
|
|
51
52
|
type: Input
|
|
53
|
+
}], allowHtml: [{
|
|
54
|
+
type: Input
|
|
52
55
|
}], inline: [{
|
|
53
56
|
type: Input
|
|
54
57
|
}] } });
|
|
55
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
58
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5mby1zaWduLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9zcmMvZmVhdHVyZXMvaW5mby1zaWduL2luZm8tc2lnbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvc3JjL2ZlYXR1cmVzL2luZm8tc2lnbi9pbmZvLXNpZ24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNyRyxPQUFPLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFeEUsT0FBTyxFQUFFLDRCQUE0QixFQUFFLDRCQUE0QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFHbEgsT0FBTyxFQUFFLCtCQUErQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sOEJBQThCLENBQUM7O0FBV2hFLE1BQU0sT0FBTyxpQkFBaUI7SUFDWCxTQUFTLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFFN0MsS0FBSyxDQUFVO0lBQ2YsV0FBVyxDQUEyQjtJQUNwQixPQUFPLENBQVU7SUFDbkMsYUFBYSxDQUEyQjtJQUN4QyxTQUFTLEdBQUcsNEJBQTRCLENBQUM7SUFDekMsYUFBYSxHQUFHLDRCQUE0QixDQUFDO0lBQzdDLGVBQWUsR0FBb0IsT0FBTyxDQUFDO0lBQzNDLFlBQVksR0FBaUIsTUFBTSxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDbEIsTUFBTSxHQUFHLElBQUksQ0FBQztJQUV2QixJQUFJLGVBQWU7UUFDakIsT0FBTyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTywrQkFBK0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsTUFBTSxRQUFRLEdBQUcsdUJBQXVCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDN0UsT0FBTyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDMUQsQ0FBQzt3R0F6QlUsaUJBQWlCOzRGQUFqQixpQkFBaUIseVZDbkI5Qiw0a0JBa0JBLG10QkRMWSxZQUFZLDhCQUFFLGVBQWUsK0JBQUUsZ0JBQWdCOzs0RkFNOUMsaUJBQWlCO2tCQVQ3QixTQUFTOytCQUNFLGVBQWUsY0FDYixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsZUFBZSxFQUFFLGdCQUFnQixDQUFDLG1CQUd6Qyx1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxRQUFROzhCQUtoQyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDcUIsT0FBTztzQkFBakMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBJbnB1dCwgVmlld0VuY2Fwc3VsYXRpb24sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IElORk9fU0lHTl9ERUZBVUxUX0FSSUFfTEFCRUwsIElORk9fU0lHTl9ERUZBVUxUX0lDT05fQ0xBU1MgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnN0YW50cy9pbmZvLXNpZ24uY29uc3QnO1xuaW1wb3J0IHR5cGUgeyBJbmZvU2lnblRyYW5zbGF0ZVBhcmFtcyB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvaW5mby1zaWduLnR5cGUnO1xuaW1wb3J0IHR5cGUgeyBUb29sdGlwRXZlbnQsIFRvb2x0aXBQb3NpdGlvbiB9IGZyb20gJy4uLy4uL2NvcmUvdHlwZXMvdG9vbHRpcC50eXBlJztcbmltcG9ydCB7IHJlc29sdmVOdWxsYWJsZVRyYW5zbGF0YWJsZVRleHQsIHJlc29sdmVUcmFuc2xhdGFibGVUZXh0IH0gZnJvbSAnLi4vLi4vY29yZS91dGlscy9pMThuLnV0aWwnO1xuaW1wb3J0IHsgVG9vbHRpcENvbXBvbmVudCB9IGZyb20gJy4uL3Rvb2x0aXAvdG9vbHRpcC5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzZGMtaW5mby1zaWduJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgVHJhbnNsYXRlTW9kdWxlLCBUb29sdGlwQ29tcG9uZW50XSxcbiAgdGVtcGxhdGVVcmw6ICcuL2luZm8tc2lnbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9pbmZvLXNpZ24uY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWRcbn0pXG5leHBvcnQgY2xhc3MgSW5mb1NpZ25Db21wb25lbnQge1xuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZSA9IGluamVjdChUcmFuc2xhdGVTZXJ2aWNlKTtcblxuICBASW5wdXQoKSBsYWJlbD86IHN0cmluZztcbiAgQElucHV0KCkgbGFiZWxQYXJhbXM/OiBJbmZvU2lnblRyYW5zbGF0ZVBhcmFtcztcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgdG9vbHRpcCE6IHN0cmluZztcbiAgQElucHV0KCkgdG9vbHRpcFBhcmFtcz86IEluZm9TaWduVHJhbnNsYXRlUGFyYW1zO1xuICBASW5wdXQoKSBpY29uQ2xhc3MgPSBJTkZPX1NJR05fREVGQVVMVF9JQ09OX0NMQVNTO1xuICBASW5wdXQoKSBpY29uQXJpYUxhYmVsID0gSU5GT19TSUdOX0RFRkFVTFRfQVJJQV9MQUJFTDtcbiAgQElucHV0KCkgdG9vbHRpcFBvc2l0aW9uOiBUb29sdGlwUG9zaXRpb24gPSAncmlnaHQnO1xuICBASW5wdXQoKSB0b29sdGlwRXZlbnQ6IFRvb2x0aXBFdmVudCA9ICdib3RoJztcbiAgQElucHV0KCkgYWxsb3dIdG1sID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlubGluZSA9IHRydWU7XG5cbiAgZ2V0IHJlc29sdmVkVG9vbHRpcCgpOiBzdHJpbmcge1xuICAgIHJldHVybiByZXNvbHZlVHJhbnNsYXRhYmxlVGV4dCh0aGlzLnRyYW5zbGF0ZSwgdGhpcy50b29sdGlwLCAnJywgdGhpcy50b29sdGlwUGFyYW1zKTtcbiAgfVxuXG4gIGdldCByZXNvbHZlZExhYmVsKCk6IHN0cmluZyB8IG51bGwge1xuICAgIHJldHVybiByZXNvbHZlTnVsbGFibGVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmxhYmVsLCAnJywgdGhpcy5sYWJlbFBhcmFtcyk7XG4gIH1cblxuICBnZXQgcmVzb2x2ZWRBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICBjb25zdCB0ZW1wbGF0ZSA9IHJlc29sdmVUcmFuc2xhdGFibGVUZXh0KHRoaXMudHJhbnNsYXRlLCB0aGlzLmljb25BcmlhTGFiZWwpO1xuICAgIHJldHVybiB0ZW1wbGF0ZS5yZXBsYWNlKCd7dGV4dH0nLCB0aGlzLnJlc29sdmVkVG9vbHRpcCk7XG4gIH1cbn1cbiIsIjxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnblwiIFtjbGFzcy5zZGMtaW5mby1zaWduLS1pbmxpbmVdPVwiaW5saW5lXCI+XG4gIEBpZiAocmVzb2x2ZWRMYWJlbCkge1xuICAgIDxzcGFuIGNsYXNzPVwic2RjLWluZm8tc2lnbl9fbGFiZWxcIj57eyByZXNvbHZlZExhYmVsIH19PC9zcGFuPlxuICB9IEBlbHNlIHtcbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIH1cblxuICA8c2RjLXRvb2x0aXBcbiAgICBbcFRvb2x0aXBdPVwicmVzb2x2ZWRUb29sdGlwXCJcbiAgICBbdG9vbHRpcFBvc2l0aW9uXT1cInRvb2x0aXBQb3NpdGlvblwiXG4gICAgW3Rvb2x0aXBFdmVudF09XCJ0b29sdGlwRXZlbnRcIlxuICAgIFthbGxvd0h0bWxdPVwiYWxsb3dIdG1sXCJcbiAgPlxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwic2RjLWluZm8tc2lnbl9faWNvblwiIFthdHRyLmFyaWEtbGFiZWxdPVwicmVzb2x2ZWRBcmlhTGFiZWxcIj5cbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3NcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2k+XG4gICAgPC9idXR0b24+XG4gIDwvc2RjLXRvb2x0aXA+XG48L3NwYW4+XG4iXX0=
|
|
@@ -23,7 +23,7 @@ export class InlineEditNumberComponent {
|
|
|
23
23
|
this.formGroup.get(this.field.name)?.setValue(this.tempValue);
|
|
24
24
|
}
|
|
25
25
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditNumberComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InlineEditNumberComponent, isStandalone: true, selector: "sdc-inline-edit-number", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "<sdc-number-input\n [(ngModel)]=\"tempValue\"\n width=\"100%\"\n [placeholder]=\"field.placeholder || ''\"\n [min]=\"field.min ?? undefined\"\n [max]=\"field.max ?? undefined\"\n [step]=\"field.step ?? 1\"\n></sdc-number-input>\n", styles: [".sdc-inline-edit-number__input{width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NumberInputComponent, selector: "sdc-number-input", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "min", "max", "step", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent"], outputs: ["pasteRejected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
26
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: InlineEditNumberComponent, isStandalone: true, selector: "sdc-inline-edit-number", inputs: { field: "field", formGroup: "formGroup" }, ngImport: i0, template: "<sdc-number-input\n [(ngModel)]=\"tempValue\"\n width=\"100%\"\n [placeholder]=\"field.placeholder || ''\"\n [min]=\"field.min ?? undefined\"\n [max]=\"field.max ?? undefined\"\n [step]=\"field.step ?? 1\"\n></sdc-number-input>\n", styles: [".sdc-inline-edit-number__input{width:100%;box-sizing:border-box}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: NumberInputComponent, selector: "sdc-number-input", inputs: ["precision", "scale", "decimalSeparator", "thousandsSeparator", "alignTo", "allowNegative", "min", "max", "step", "infoTooltip", "infoTooltipPosition", "infoTooltipEvent", "addonLeft", "addonRight"], outputs: ["pasteRejected"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
27
27
|
}
|
|
28
28
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: InlineEditNumberComponent, decorators: [{
|
|
29
29
|
type: Component,
|