@updevs/components 1.0.0-alpha.24 → 1.0.0-alpha.25
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.
|
@@ -107,11 +107,11 @@ export class InputComponent extends BaseControl {
|
|
|
107
107
|
];
|
|
108
108
|
}
|
|
109
109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
110
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
111
111
|
}
|
|
112
112
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, decorators: [{
|
|
113
113
|
type: Component,
|
|
114
|
-
args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
|
|
114
|
+
args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
|
|
115
115
|
}], propDecorators: { hostWrapperClasses: [{
|
|
116
116
|
type: HostBinding,
|
|
117
117
|
args: ['class']
|
|
@@ -176,4 +176,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
|
176
176
|
}], keyUpEnter: [{
|
|
177
177
|
type: Output
|
|
178
178
|
}] } });
|
|
179
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvaW5wdXQvc3JjL2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBSUwsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBNkMsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBUzdFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQU4vQzs7UUFPMEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBSXJDLFNBQUksR0FBYyxNQUFNLENBQUM7UUFJekIsU0FBSSxHQUFzQixTQUFTLENBQUM7UUFJcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FB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QW5ELFlBQVk7dUJBQUMscUJBQXFCO2dCQUUxQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNO2dCQUlZLE9BQU87c0JBQXpCLE1BQU07Z0JBSVksVUFBVTtzQkFBNUIsTUFBTTtnQkFJWSxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1vZGVsIH0gZnJvbSAnQHVwZGV2cy9pY29ucyc7XG5pbXBvcnQgeyBVcGRNYXNrQ29uZmlnIH0gZnJvbSAnQHVwZGV2cy9zZGsvbWFzayc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplVHlwZSwgSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSwgQ29sdW1uU2l6ZUhlbHBlciB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4vdHlwZXMvaW5wdXQudHlwZSc7XG5pbXBvcnQgeyBJbnB1dEFwcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1hcHBlbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0UHJlcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1wcmVwZW5kLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMb2FkZXJQb3NpdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL2xvYWRlci1wb3NpdGlvbi50eXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RXcmFwcGVyQ2xhc3NlcyA9ICcnO1xuICAgIEBDb250ZW50Q2hpbGQoSW5wdXRBcHBlbmREaXJlY3RpdmUpIGFwcGVuZFRlbXBsYXRlPzogSW5wdXRBcHBlbmREaXJlY3RpdmU7XG4gICAgQENvbnRlbnRDaGlsZChJbnB1dFByZXBlbmREaXJlY3RpdmUpIHByZXBlbmRUZW1wbGF0ZT86IElucHV0UHJlcGVuZERpcmVjdGl2ZTtcblxuICAgIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcbiAgICBASW5wdXQoKSBtYXNrPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1hc2tDb25maWc/OiBVcGRNYXNrQ29uZmlnO1xuICAgIEBJbnB1dCgpIHZhbHVlPzogYW55O1xuICAgIEBJbnB1dCgpIHNpemU6IENvbXBvbmVudFNpemVUeXBlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgd3JhcHBlckNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGlzUGxhaW5UZXh0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUm91bmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0ZsdXNoID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNJbnB1dEdyb3VwRmxhdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUHJlcGVuZEJ1dHRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQXBwZW5kQnV0dG9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNGbG9hdGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxvYWRlclBvc2l0aW9uOiBMb2FkZXJQb3NpdGlvblR5cGUgPSAnYXBwZW5kJztcbiAgICBASW5wdXQoKSBwcmVwZW5kSWNvbk1vZGVsPzogSWNvbk1vZGVsO1xuICAgIEBJbnB1dCgpIGFwcGVuZEljb25Nb2RlbD86IEljb25Nb2RlbDtcbiAgICBASW5wdXQoKSBpc1ZhbGlkYXRpb25TdGF0dXNMaWdodCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxheW91dDogSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSA9ICd2ZXJ0aWNhbCc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IGtleSBpcyBwcmVzc2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBrZXlEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFU0Mga2V5IGlzIHByZXNzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleURvd25Fc2MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFTlRFUiBrZXkgaXMgcmVsZWFzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleVVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGdldCBzaG91bGREaXNwbGF5SW5uZXJMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5sYWJlbCgpXG4gICAgICAgICAgICAmJiAhdGhpcy5wcmVwZW5kSWNvbk1vZGVsXG4gICAgICAgICAgICAmJiAhdGhpcy5hcHBlbmRJY29uTW9kZWxcbiAgICAgICAgICAgICYmICF0aGlzLmlzTG9hZGluZ1xuICAgICAgICAgICAgJiYgIXRoaXMuYXBwZW5kVGVtcGxhdGVcbiAgICAgICAgICAgICYmICF0aGlzLnByZXBlbmRUZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0IGxhYmVsU2l6ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnZm9ybS1sYWJlbCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ29sdW1uU2l6ZUhlbHBlci5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgJ2NvbC1mb3JtLWxhYmVsJyxcbiAgICAgICAgICAgIENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5sYWJlbENvbFNpemUoKSwgMylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZWRTdWIgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcblxuICAgICAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSAmJiAhIXRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWRTdWIubmV4dChjaGFuZ2VzWyd2YWx1ZSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Q2hhbmdlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldnQudGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2dC50YXJnZXQgYXMgYW55KS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsQ2xhc3Nlczogc3RyaW5nW10gPSAhdGhpcy5pc1BsYWluVGV4dCA/IFsnZm9ybS1jb250cm9sJ10gOiBbJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQnXTtcblxuICAgICAgICBpZiAodGhpcy5pc1JvdW5kKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdmb3JtLWNvbnRyb2wtcm91bmRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGbHVzaCkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnZm9ybS1jb250cm9sLWZsdXNoJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGZvcm0tY29udHJvbC0ke3RoaXMuc2l6ZSA9PT0gJ2xhcmdlJyA/ICdsZycgOiAnc20nfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy52YWxpZGF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NscyA9IGBpcy0ke3RoaXMudmFsaWRhdGlvblN0YXR1cygpfWA7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKHN0YXR1c0Nscyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRhdGlvblN0YXR1c0xpZ2h0KSB7XG4gICAgICAgICAgICAgICAgbENsYXNzZXMucHVzaChgJHtzdGF0dXNDbHN9LWxpdGVgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyQ2xhc3NlcyA9ICdyb3cnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy53cmFwcGVyQ2xhc3Nlcykge1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckNsYXNzZXMgKz0gYCAke3RoaXMud3JhcHBlckNsYXNzZXN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJDbGFzc2VzICs9ICcgZm9ybS1mbG9hdGluZyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsYXNzZXMgPSBbXG4gICAgICAgICAgICAuLi5sQ2xhc3NlcyxcbiAgICAgICAgICAgIC4uLih0aGlzLmN1c3RvbUNsYXNzZXMgfHwgJycpLnNwbGl0KCcgJyksXG4gICAgICAgICAgICB0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnID8gJ2NvbCcgOiAnJ1xuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIkBpZiAoISFhcHBlbmRUZW1wbGF0ZSB8fCAhIXByZXBlbmRUZW1wbGF0ZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgW2NsYXNzLmlucHV0LWdyb3VwLWZsYXRdPVwiaXNJbnB1dEdyb3VwRmxhdFwiPlxuICAgICAgICBAaWYgKCEhcHJlcGVuZFRlbXBsYXRlKSB7XG4gICAgICAgICAgICBAaWYgKCFpc1ByZXBlbmRCdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJlcGVuZFRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmVwZW5kVGVtcGxhdGUudGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICBAaWYgKCEhYXBwZW5kVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIEBpZiAoIWlzQXBwZW5kQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFwcGVuZFRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhcHBlbmRUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbn0gQGVsc2UgaWYgKCEhcHJlcGVuZEljb25Nb2RlbCB8fCAhIWFwcGVuZEljb25Nb2RlbCB8fCBpc0xvYWRpbmcpIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRJY29uVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbn0gQGVsc2Uge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnB1dFRwbFwiPjwvbmctdGVtcGxhdGU+XG59XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUcGw+XG4gICAgQGlmIChzaG91bGREaXNwbGF5SW5uZXJMYWJlbCAmJiAhaXNGbG9hdGluZykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJiYXNpY0lucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgIEBpZiAoc2hvdWxkRGlzcGxheUlubmVyTGFiZWwgJiYgaXNGbG9hdGluZykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRJY29uVHBsPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBbY2xhc3MuY29sXT1cImxheW91dCA9PT0gJ2hvcml6b250YWwnXCIgW2NsYXNzLmlucHV0LWljb25dPVwibGF5b3V0ID09PSAndmVydGljYWwnXCI+XG4gICAgICAgIEBpZiAobGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0SWNvbkJhc2VUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0SWNvbkJhc2VUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0SWNvbkJhc2VUcGw+XG4gICAgQGlmICghIXByZXBlbmRJY29uTW9kZWwgfHwgKGlzTG9hZGluZyAmJiBsb2FkZXJQb3NpdGlvbiA9PT0gJ3ByZXBlbmQnKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWljb24tYWRkb25cIj5cbiAgICAgICAgICAgIEBpZiAoISFwcmVwZW5kSWNvbk1vZGVsKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJwcmVwZW5kSWNvbk1vZGVsXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkZXJUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgIEBpZiAoISFhcHBlbmRJY29uTW9kZWwgfHwgKGlzTG9hZGluZyAmJiBsb2FkZXJQb3NpdGlvbiA9PT0gJ2FwcGVuZCcpKSB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiaW5wdXQtaWNvbi1hZGRvblwiPlxuICAgICAgICAgICAgQGlmICghIWFwcGVuZEljb25Nb2RlbCkge1xuICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiYXBwZW5kSWNvbk1vZGVsXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkZXJUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNsb2FkZXJUcGw+XG4gICAgPGRpdiBjbGFzcz1cInNwaW5uZXItYm9yZGVyIHNwaW5uZXItYm9yZGVyLXNtIHRleHQtbXV0ZWRcIiByb2xlPVwic3RhdHVzXCI+PC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Jhc2ljSW5wdXRUcGw+XG4gICAgQGlmICghIW1hc2spIHtcbiAgICAgICAgPGlucHV0IFt1cGRNYXNrXT1cIm1hc2tcIiBbdXBkTWFza0NvbmZpZ109XCJtYXNrQ29uZmlnXCIgW3VwZGF0ZU1hc2tWYWx1ZVN1YmplY3RdPVwidmFsdWVDaGFuZ2VkU3ViXCIgW2F0dHIudHlwZV09XCJ0eXBlXCJcbiAgICAgICAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhMZW5ndGhcIiBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCIgW25nQ2xhc3NdPVwiY2xhc3Nlc1wiIFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlclRleHRcIiBbdmFsdWVdPVwidmFsdWUgfHwgJydcIlxuICAgICAgICAgICAgW2F0dHIubmFtZV09XCJuYW1lKClcIiBbYXR0ci5yZWFkb25seV09XCJpc1JlYWRPbmx5ID8gJycgOiB1bmRlZmluZWRcIiAoaW5wdXQpPVwib25JbnB1dENoYW5nZSgkZXZlbnQpXCIgKGJsdXIpPVwiYmx1cnJlZC5lbWl0KClcIlxuICAgICAgICAgICAgKGtleWRvd24pPVwia2V5RG93bi5lbWl0KCRldmVudClcIiAoa2V5ZG93bi5lc2NhcGUpPVwia2V5RG93bkVzYy5lbWl0KClcIiAoa2V5dXAuZW50ZXIpPVwia2V5VXBFbnRlci5lbWl0KClcIiAvPlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8aW5wdXQgW2F0dHIudHlwZV09XCJ0eXBlXCIgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbbmdDbGFzc109XCJjbGFzc2VzXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyVGV4dFwiXG4gICAgICAgICAgICBbdmFsdWVdPVwidmFsdWUgfHwgJydcIiBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiIFthdHRyLnJlYWRvbmx5XT1cImlzUmVhZE9ubHkgPyAnJyA6IHVuZGVmaW5lZFwiIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgKGJsdXIpPVwiYmx1cnJlZC5lbWl0KClcIiAoa2V5ZG93bik9XCJrZXlEb3duLmVtaXQoJGV2ZW50KVwiIChrZXlkb3duLmVzY2FwZSk9XCJrZXlEb3duRXNjLmVtaXQoKVwiXG4gICAgICAgICAgICAoa2V5dXAuZW50ZXIpPVwia2V5VXBFbnRlci5lbWl0KClcIiAvPlxuICAgIH1cblxuICAgIEBpZiAodmFsaWRhdGlvblN0YXR1cygpID09PSAnaW52YWxpZCcgJiYgdmFsaWRhdGlvblN0YXR1c1RleHRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgQGZvciAoZGVzYyBvZiB2YWxpZGF0aW9uU3RhdHVzVGV4dHM7IHRyYWNrIGRlc2MpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnZhbGlkLWZlZWRiYWNrXCI+e3sgZGVzYyB9fTwvZGl2PlxuICAgICAgICB9XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNoaW50VHBsPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oZWxwIG1zLTJcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIiBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgP1xuICAgIDwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGFiZWxUcGw+XG4gICAgQGlmICghIWxhYmVsVGV4dCkge1xuICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj5cbiAgICAgICAgICAgIDxsYWJlbCBbY2xhc3MucmVxdWlyZWRdPVwiaXNSZXF1aXJlZCgpXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cblxuICAgICAgICAgICAgQGlmICghIWhpbnRUZXh0IHx8ICEhdGhpcy5oaW50VGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJoaW50VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvaW5wdXQvc3JjL2lucHV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2lucHV0L3NyYy9pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULGlCQUFpQixFQUNqQixLQUFLLEVBSUwsWUFBWSxFQUNaLFdBQVcsRUFDWCxNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBNkMsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQzs7Ozs7O0FBUzdFLE1BQU0sT0FBTyxjQUFlLFNBQVEsV0FBVztJQU4vQzs7UUFPMEIsdUJBQWtCLEdBQUcsRUFBRSxDQUFDO1FBSXJDLFNBQUksR0FBYyxNQUFNLENBQUM7UUFJekIsU0FBSSxHQUFzQixTQUFTLENBQUM7UUFJcEMsZ0JBQVcsR0FBRyxLQUFLLENBQUM7UUFDcEIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFDekIsb0JBQWUsR0FBRyxLQUFLLENBQUM7UUFDeEIsbUJBQWMsR0FBRyxLQUFLLENBQUM7UUFDdkIsZUFBVSxHQUFHLEtBQUssQ0FBQztRQUNuQixtQkFBYyxHQUF1QixRQUFRLENBQUM7UUFHOUMsNEJBQXVCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLFdBQU0sR0FBMkIsVUFBVSxDQUFDO1FBRWxDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUN0QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN0RDs7V0FFRztRQUNnQixZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztRQUNyRDs7V0FFRztRQUNnQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6RDs7V0FFRztRQUNnQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV6RCxZQUFPLEdBQWEsRUFBRSxDQUFDO1FBb0JkLG9CQUFlLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztLQWdFcEQ7SUFuRkcsSUFBSSx1QkFBdUI7UUFDdkIsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRTtlQUNkLENBQUMsSUFBSSxDQUFDLGdCQUFnQjtlQUN0QixDQUFDLElBQUksQ0FBQyxlQUFlO2VBQ3JCLENBQUMsSUFBSSxDQUFDLFNBQVM7ZUFDZixDQUFDLElBQUksQ0FBQyxjQUFjO2VBQ3BCLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsSUFBSSxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsTUFBTSxLQUFLLFlBQVksRUFBRSxDQUFDO1lBQy9CLE9BQU8sWUFBWSxDQUFDO1FBQ3hCLENBQUM7UUFFRCxPQUFPLGdCQUFnQixDQUFDLFVBQVUsQ0FDOUIsZ0JBQWdCLEVBQ2hCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQzFELENBQUM7SUFDTixDQUFDO0lBSUQsUUFBUTtRQUNKLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUVyQixJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM3RCxDQUFDO0lBQ0wsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFVO1FBQ3BCLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDZCxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFFLEdBQUcsQ0FBQyxNQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVPLGFBQWE7UUFDakIsTUFBTSxRQUFRLEdBQWEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLHdCQUF3QixDQUFDLENBQUM7UUFFN0YsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDZixRQUFRLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUM7UUFDMUMsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3hDLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDMUIsUUFBUSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQztZQUM1QixNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxFQUFFLENBQUM7WUFDbEQsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV6QixJQUFJLElBQUksQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO2dCQUMvQixRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsU0FBUyxPQUFPLENBQUMsQ0FBQztZQUN2QyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxZQUFZLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ3BDLENBQUM7UUFFRCxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixJQUFJLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsa0JBQWtCLElBQUksZ0JBQWdCLENBQUM7UUFDaEQsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLEdBQUc7WUFDWCxHQUFHLFFBQVE7WUFDWCxHQUFHLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDO1lBQ3hDLElBQUksQ0FBQyxNQUFNLEtBQUssWUFBWSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7U0FDNUMsQ0FBQztJQUNOLENBQUM7OEdBOUhRLGNBQWM7a0dBQWQsY0FBYyx3NEJBRVQsb0JBQW9CLGtGQUNwQixxQkFBcUIsNEZDaEN2QywycktBK0hBOzsyRkRsR2EsY0FBYztrQkFOMUIsU0FBUzsrQkFDSSxXQUFXLGlCQUdOLGlCQUFpQixDQUFDLElBQUk7OEJBR2Ysa0JBQWtCO3NCQUF2QyxXQUFXO3VCQUFDLE9BQU87Z0JBQ2dCLGNBQWM7c0JBQWpELFlBQVk7dUJBQUMsb0JBQW9CO2dCQUNHLGVBQWU7c0JBQW5ELFlBQVk7dUJBQUMscUJBQXFCO2dCQUUxQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLHVCQUF1QjtzQkFBL0IsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBRWEsV0FBVztzQkFBN0IsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNO2dCQUlZLE9BQU87c0JBQXpCLE1BQU07Z0JBSVksVUFBVTtzQkFBNUIsTUFBTTtnQkFJWSxVQUFVO3NCQUE1QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgSW5wdXQsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBPbkluaXQsXG4gICAgT25DaGFuZ2VzLFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWNvbk1vZGVsIH0gZnJvbSAnQHVwZGV2cy9pY29ucyc7XG5pbXBvcnQgeyBVcGRNYXNrQ29uZmlnIH0gZnJvbSAnQHVwZGV2cy9zZGsvbWFzayc7XG5pbXBvcnQgeyBDb21wb25lbnRTaXplVHlwZSwgSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSwgQ29sdW1uU2l6ZUhlbHBlciB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cyc7XG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IElucHV0VHlwZSB9IGZyb20gJy4vdHlwZXMvaW5wdXQudHlwZSc7XG5pbXBvcnQgeyBJbnB1dEFwcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1hcHBlbmQuZGlyZWN0aXZlJztcbmltcG9ydCB7IElucHV0UHJlcGVuZERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9pbnB1dC1wcmVwZW5kLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBMb2FkZXJQb3NpdGlvblR5cGUgfSBmcm9tICcuL3R5cGVzL2xvYWRlci1wb3NpdGlvbi50eXBlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICd1cGQtaW5wdXQnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW5wdXQuY29tcG9uZW50LnNjc3MnXSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lXG59KVxuZXhwb3J0IGNsYXNzIElucHV0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpIGhvc3RXcmFwcGVyQ2xhc3NlcyA9ICcnO1xuICAgIEBDb250ZW50Q2hpbGQoSW5wdXRBcHBlbmREaXJlY3RpdmUpIGFwcGVuZFRlbXBsYXRlPzogSW5wdXRBcHBlbmREaXJlY3RpdmU7XG4gICAgQENvbnRlbnRDaGlsZChJbnB1dFByZXBlbmREaXJlY3RpdmUpIHByZXBlbmRUZW1wbGF0ZT86IElucHV0UHJlcGVuZERpcmVjdGl2ZTtcblxuICAgIEBJbnB1dCgpIHR5cGU6IElucHV0VHlwZSA9ICd0ZXh0JztcbiAgICBASW5wdXQoKSBtYXNrPzogc3RyaW5nO1xuICAgIEBJbnB1dCgpIG1hc2tDb25maWc/OiBVcGRNYXNrQ29uZmlnO1xuICAgIEBJbnB1dCgpIHZhbHVlPzogYW55O1xuICAgIEBJbnB1dCgpIHNpemU6IENvbXBvbmVudFNpemVUeXBlID0gJ2RlZmF1bHQnO1xuICAgIEBJbnB1dCgpIGN1c3RvbUNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgd3JhcHBlckNsYXNzZXM/OiBzdHJpbmc7XG4gICAgQElucHV0KCkgbWF4TGVuZ3RoPzogbnVtYmVyO1xuICAgIEBJbnB1dCgpIGlzUGxhaW5UZXh0ID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNSZWFkT25seSA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzTG9hZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUm91bmQgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBpc0ZsdXNoID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNJbnB1dEdyb3VwRmxhdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzUHJlcGVuZEJ1dHRvbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGlzQXBwZW5kQnV0dG9uID0gZmFsc2U7XG4gICAgQElucHV0KCkgaXNGbG9hdGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxvYWRlclBvc2l0aW9uOiBMb2FkZXJQb3NpdGlvblR5cGUgPSAnYXBwZW5kJztcbiAgICBASW5wdXQoKSBwcmVwZW5kSWNvbk1vZGVsPzogSWNvbk1vZGVsO1xuICAgIEBJbnB1dCgpIGFwcGVuZEljb25Nb2RlbD86IEljb25Nb2RlbDtcbiAgICBASW5wdXQoKSBpc1ZhbGlkYXRpb25TdGF0dXNMaWdodCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGxheW91dDogSG9yaXpvbnRhbFZlcnRpY2FsVHlwZSA9ICd2ZXJ0aWNhbCc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYmx1cnJlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gYW55IGtleSBpcyBwcmVzc2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBrZXlEb3duID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFU0Mga2V5IGlzIHByZXNzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleURvd25Fc2MgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBFTlRFUiBrZXkgaXMgcmVsZWFzZWQuXG4gICAgICovXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGtleVVwRW50ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgICBjbGFzc2VzOiBzdHJpbmdbXSA9IFtdO1xuICAgIGdldCBzaG91bGREaXNwbGF5SW5uZXJMYWJlbCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5sYWJlbCgpXG4gICAgICAgICAgICAmJiAhdGhpcy5wcmVwZW5kSWNvbk1vZGVsXG4gICAgICAgICAgICAmJiAhdGhpcy5hcHBlbmRJY29uTW9kZWxcbiAgICAgICAgICAgICYmICF0aGlzLmlzTG9hZGluZ1xuICAgICAgICAgICAgJiYgIXRoaXMuYXBwZW5kVGVtcGxhdGVcbiAgICAgICAgICAgICYmICF0aGlzLnByZXBlbmRUZW1wbGF0ZTtcbiAgICB9XG4gICAgZ2V0IGxhYmVsU2l6ZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKHRoaXMubGF5b3V0ICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnZm9ybS1sYWJlbCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ29sdW1uU2l6ZUhlbHBlci5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgJ2NvbC1mb3JtLWxhYmVsJyxcbiAgICAgICAgICAgIENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5sYWJlbENvbFNpemUoKSwgMylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWFkb25seSB2YWx1ZUNoYW5nZWRTdWIgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVDbGFzc2VzKCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzZXMoKTtcblxuICAgICAgICBpZiAoY2hhbmdlc1sndmFsdWUnXSAmJiAhIXRoaXMubWFzaykge1xuICAgICAgICAgICAgdGhpcy52YWx1ZUNoYW5nZWRTdWIubmV4dChjaGFuZ2VzWyd2YWx1ZSddLmN1cnJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbklucHV0Q2hhbmdlKGV2dDogRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgaWYgKCFldnQudGFyZ2V0KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoKGV2dC50YXJnZXQgYXMgYW55KS52YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsQ2xhc3Nlczogc3RyaW5nW10gPSAhdGhpcy5pc1BsYWluVGV4dCA/IFsnZm9ybS1jb250cm9sJ10gOiBbJ2Zvcm0tY29udHJvbC1wbGFpbnRleHQnXTtcblxuICAgICAgICBpZiAodGhpcy5pc1JvdW5kKSB7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKCdmb3JtLWNvbnRyb2wtcm91bmRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGbHVzaCkge1xuICAgICAgICAgICAgbENsYXNzZXMucHVzaCgnZm9ybS1jb250cm9sLWZsdXNoJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaXplICE9PSAnZGVmYXVsdCcpIHtcbiAgICAgICAgICAgIGxDbGFzc2VzLnB1c2goYGZvcm0tY29udHJvbC0ke3RoaXMuc2l6ZSA9PT0gJ2xhcmdlJyA/ICdsZycgOiAnc20nfWApO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy52YWxpZGF0aW9uU3RhdHVzKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IHN0YXR1c0NscyA9IGBpcy0ke3RoaXMudmFsaWRhdGlvblN0YXR1cygpfWA7XG4gICAgICAgICAgICBsQ2xhc3Nlcy5wdXNoKHN0YXR1c0Nscyk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmlzVmFsaWRhdGlvblN0YXR1c0xpZ2h0KSB7XG4gICAgICAgICAgICAgICAgbENsYXNzZXMucHVzaChgJHtzdGF0dXNDbHN9LWxpdGVgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RXcmFwcGVyQ2xhc3NlcyA9ICdyb3cnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCEhdGhpcy53cmFwcGVyQ2xhc3Nlcykge1xuICAgICAgICAgICAgdGhpcy5ob3N0V3JhcHBlckNsYXNzZXMgKz0gYCAke3RoaXMud3JhcHBlckNsYXNzZXN9YDtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzRmxvYXRpbmcpIHtcbiAgICAgICAgICAgIHRoaXMuaG9zdFdyYXBwZXJDbGFzc2VzICs9ICcgZm9ybS1mbG9hdGluZyc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNsYXNzZXMgPSBbXG4gICAgICAgICAgICAuLi5sQ2xhc3NlcyxcbiAgICAgICAgICAgIC4uLih0aGlzLmN1c3RvbUNsYXNzZXMgfHwgJycpLnNwbGl0KCcgJyksXG4gICAgICAgICAgICB0aGlzLmxheW91dCA9PT0gJ2hvcml6b250YWwnID8gJ2NvbCcgOiAnJ1xuICAgICAgICBdO1xuICAgIH1cbn1cbiIsIkBpZiAoISFhcHBlbmRUZW1wbGF0ZSB8fCAhIXByZXBlbmRUZW1wbGF0ZSkge1xuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCIgW2NsYXNzLmlucHV0LWdyb3VwLWZsYXRdPVwiaXNJbnB1dEdyb3VwRmxhdFwiPlxuICAgICAgICBAaWYgKCEhcHJlcGVuZFRlbXBsYXRlKSB7XG4gICAgICAgICAgICBAaWYgKCFpc1ByZXBlbmRCdXR0b24pIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwicHJlcGVuZFRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJwcmVwZW5kVGVtcGxhdGUudGVtcGxhdGVSZWZcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgICAgICBAaWYgKCEhYXBwZW5kVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIEBpZiAoIWlzQXBwZW5kQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwLXRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImFwcGVuZFRlbXBsYXRlLnRlbXBsYXRlUmVmXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJhcHBlbmRUZW1wbGF0ZS50ZW1wbGF0ZVJlZlwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmZWVkYmFja1RwbFwiPjwvbmctdGVtcGxhdGU+XG59IEBlbHNlIGlmICghIXByZXBlbmRJY29uTW9kZWwgfHwgISFhcHBlbmRJY29uTW9kZWwgfHwgaXNMb2FkaW5nKSB7XG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0SWNvblRwbFwiPjwvbmctdGVtcGxhdGU+XG59IEBlbHNlIHtcbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJmZWVkYmFja1RwbFwiPjwvbmctdGVtcGxhdGU+XG59XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRUcGw+XG4gICAgQGlmIChzaG91bGREaXNwbGF5SW5uZXJMYWJlbCAmJiAhaXNGbG9hdGluZykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJiYXNpY0lucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cblxuICAgIEBpZiAoc2hvdWxkRGlzcGxheUlubmVyTGFiZWwgJiYgaXNGbG9hdGluZykge1xuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaW5wdXRJY29uVHBsPlxuICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsYWJlbFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgPGRpdiBbY2xhc3MuY29sXT1cImxheW91dCA9PT0gJ2hvcml6b250YWwnXCIgW2NsYXNzLmlucHV0LWljb25dPVwibGF5b3V0ID09PSAndmVydGljYWwnXCI+XG4gICAgICAgIEBpZiAobGF5b3V0ID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1pY29uXCI+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0SWNvbkJhc2VUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0SWNvbkJhc2VUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2lucHV0SWNvbkJhc2VUcGw+XG4gICAgQGlmICghIXByZXBlbmRJY29uTW9kZWwgfHwgKGlzTG9hZGluZyAmJiBsb2FkZXJQb3NpdGlvbiA9PT0gJ3ByZXBlbmQnKSkge1xuICAgICAgICA8c3BhbiBjbGFzcz1cImlucHV0LWljb24tYWRkb25cIj5cbiAgICAgICAgICAgIEBpZiAoISFwcmVwZW5kSWNvbk1vZGVsKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJwcmVwZW5kSWNvbk1vZGVsXCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkZXJUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3NwYW4+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImlucHV0VHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZmVlZGJhY2tUcGxcIj48L25nLXRlbXBsYXRlPlxuXG4gICAgQGlmICghIWFwcGVuZEljb25Nb2RlbCB8fCAoaXNMb2FkaW5nICYmIGxvYWRlclBvc2l0aW9uID09PSAnYXBwZW5kJykpIHtcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJpbnB1dC1pY29uLWFkZG9uXCI+XG4gICAgICAgICAgICBAaWYgKCEhYXBwZW5kSWNvbk1vZGVsKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJhcHBlbmRJY29uTW9kZWxcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRlclRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvc3Bhbj5cbiAgICB9XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xvYWRlclRwbD5cbiAgICA8ZGl2IGNsYXNzPVwic3Bpbm5lci1ib3JkZXIgc3Bpbm5lci1ib3JkZXItc20gdGV4dC1tdXRlZFwiIHJvbGU9XCJzdGF0dXNcIj48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjYmFzaWNJbnB1dFRwbD5cbiAgICBAaWYgKCEhbWFzaykge1xuICAgICAgICA8aW5wdXQgW3VwZE1hc2tdPVwibWFza1wiIFt1cGRNYXNrQ29uZmlnXT1cIm1hc2tDb25maWdcIiBbdXBkYXRlTWFza1ZhbHVlU3ViamVjdF09XCJ2YWx1ZUNoYW5nZWRTdWJcIiBbYXR0ci50eXBlXT1cInR5cGVcIlxuICAgICAgICAgICAgW2F0dHIubWF4bGVuZ3RoXT1cIm1heExlbmd0aFwiIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiBbbmdDbGFzc109XCJjbGFzc2VzXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyVGV4dFwiIFt2YWx1ZV09XCJ2YWx1ZSB8fCAnJ1wiXG4gICAgICAgICAgICBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiIFthdHRyLnJlYWRvbmx5XT1cImlzUmVhZE9ubHkgPyAnJyA6IHVuZGVmaW5lZFwiIChpbnB1dCk9XCJvbklucHV0Q2hhbmdlKCRldmVudClcIiAoYmx1cik9XCJibHVycmVkLmVtaXQoKVwiXG4gICAgICAgICAgICAoa2V5ZG93bik9XCJrZXlEb3duLmVtaXQoJGV2ZW50KVwiIChrZXlkb3duLmVzY2FwZSk9XCJrZXlEb3duRXNjLmVtaXQoKVwiIChrZXl1cC5lbnRlcik9XCJrZXlVcEVudGVyLmVtaXQoKVwiIC8+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxpbnB1dCBbYXR0ci50eXBlXT1cInR5cGVcIiBbYXR0ci5tYXhsZW5ndGhdPVwibWF4TGVuZ3RoXCIgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiIFtuZ0NsYXNzXT1cImNsYXNzZXNcIiBbcGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJUZXh0XCJcbiAgICAgICAgICAgIFt2YWx1ZV09XCJ2YWx1ZSB8fCAnJ1wiIFthdHRyLm5hbWVdPVwibmFtZSgpXCIgW2F0dHIucmVhZG9ubHldPVwiaXNSZWFkT25seSA/ICcnIDogdW5kZWZpbmVkXCIgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgICAoYmx1cik9XCJibHVycmVkLmVtaXQoKVwiIChrZXlkb3duKT1cImtleURvd24uZW1pdCgkZXZlbnQpXCIgKGtleWRvd24uZXNjYXBlKT1cImtleURvd25Fc2MuZW1pdCgpXCJcbiAgICAgICAgICAgIChrZXl1cC5lbnRlcik9XCJrZXlVcEVudGVyLmVtaXQoKVwiIC8+XG4gICAgfVxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNmZWVkYmFja1RwbD5cbiAgICBAaWYgKHZhbGlkYXRpb25TdGF0dXMoKSA9PT0gJ2ludmFsaWQnICYmIHZhbGlkYXRpb25TdGF0dXNUZXh0cy5sZW5ndGggPiAwKSB7XG4gICAgICAgIEBmb3IgKGRlc2Mgb2YgdmFsaWRhdGlvblN0YXR1c1RleHRzOyB0cmFjayBkZXNjKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW52YWxpZC1mZWVkYmFja1wiPnt7IGRlc2MgfX08L2Rpdj5cbiAgICAgICAgfVxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjaGludFRwbD5cbiAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscCBtcy0yXCIgW3VwZFBvcG92ZXJdPVwiaGludFRleHRcIiBbdXBkUG9wb3ZlclRlbXBsYXRlXT1cImhpbnRUZW1wbGF0ZSgpXCIgW3VwZFBvcG92ZXJBY3RBc1Rvb2x0aXBdPVwiaGludEFzVG9vbHRpcCgpXCI+XG4gICAgICAgID9cbiAgICA8L3NwYW4+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xhYmVsVHBsPlxuICAgIEBpZiAoISFsYWJlbFRleHQpIHtcbiAgICAgICAgPGRpdiBbbmdDbGFzc109XCJsYWJlbFNpemVDbGFzc2VzXCI+XG4gICAgICAgICAgICA8bGFiZWwgW2NsYXNzLnJlcXVpcmVkXT1cImlzUmVxdWlyZWQoKVwiPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWw+XG5cbiAgICAgICAgICAgIEBpZiAoISFoaW50VGV4dCB8fCAhIXRoaXMuaGludFRlbXBsYXRlKCkpIHtcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGludFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIH1cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
@@ -138,11 +138,11 @@ class InputComponent extends BaseControl {
|
|
|
138
138
|
];
|
|
139
139
|
}
|
|
140
140
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
141
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
141
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: InputComponent, selector: "upd-input", inputs: { type: "type", mask: "mask", maskConfig: "maskConfig", value: "value", size: "size", customClasses: "customClasses", wrapperClasses: "wrapperClasses", maxLength: "maxLength", isPlainText: "isPlainText", isReadOnly: "isReadOnly", isLoading: "isLoading", isRound: "isRound", isFlush: "isFlush", isInputGroupFlat: "isInputGroupFlat", isPrependButton: "isPrependButton", isAppendButton: "isAppendButton", isFloating: "isFloating", loaderPosition: "loaderPosition", prependIconModel: "prependIconModel", appendIconModel: "appendIconModel", isValidationStatusLight: "isValidationStatusLight", layout: "layout" }, outputs: { valueChange: "valueChange", blurred: "blurred", keyDown: "keyDown", keyDownEsc: "keyDownEsc", keyUpEnter: "keyUpEnter" }, host: { properties: { "class": "this.hostWrapperClasses" } }, queries: [{ propertyName: "appendTemplate", first: true, predicate: InputAppendDirective, descendants: true }, { propertyName: "prependTemplate", first: true, predicate: InputPrependDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "directive", type: i3.MaskDirective, selector: "[updMask]", inputs: ["updMask", "updMaskConfig", "specialCharacters", "patterns", "prefix", "thousandSeparator", "decimalMarker", "suffix", "shownMaskExpression", "removeSpecialCharacters", "placeholderCharacter", "isHiddenInput", "showMaskTyped", "showTemplate", "clearIfNoMatch", "shouldValidate", "shouldTriggerOnMaskChange", "allowNegativeNumbers", "leadZeroDateTime", "separatorLimit", "updateMaskValueSubject"], outputs: ["maskFilled"] }, { kind: "directive", type: i4.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
142
142
|
}
|
|
143
143
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: InputComponent, decorators: [{
|
|
144
144
|
type: Component,
|
|
145
|
-
args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
|
|
145
|
+
args: [{ selector: 'upd-input', encapsulation: ViewEncapsulation.None, template: "@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n", styles: [".input-group-text .form-check>.form-check-input{margin:0!important}.input-group-text>upd-checkbox{height:16px!important}.input-group-text .form-check{margin:0!important;padding-left:0!important;min-height:16px!important}\n"] }]
|
|
146
146
|
}], propDecorators: { hostWrapperClasses: [{
|
|
147
147
|
type: HostBinding,
|
|
148
148
|
args: ['class']
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"updevs-components-form-controls-input.mjs","sources":["../../../../libs/components/form-controls/input/src/directives/input-append.directive.ts","../../../../libs/components/form-controls/input/src/directives/input-prepend.directive.ts","../../../../libs/components/form-controls/input/src/input.component.ts","../../../../libs/components/form-controls/input/src/input.component.html","../../../../libs/components/form-controls/input/src/upd-input.module.ts","../../../../libs/components/form-controls/input/src/updevs-components-form-controls-input.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputAppend]'\n})\nexport class InputAppendDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputPrepend]'\n})\nexport class InputPrependDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n SimpleChanges,\n OnInit,\n OnChanges,\n ContentChild,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { UpdMaskConfig } from '@updevs/sdk/mask';\nimport { ComponentSizeType, HorizontalVerticalType, ColumnSizeHelper } from '@updevs/components';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\nimport { Subject } from 'rxjs';\n\nimport { InputType } from './types/input.type';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\nimport { LoaderPositionType } from './types/loader-position.type';\n\n@Component({\n selector: 'upd-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n @ContentChild(InputAppendDirective) appendTemplate?: InputAppendDirective;\n @ContentChild(InputPrependDirective) prependTemplate?: InputPrependDirective;\n\n @Input() type: InputType = 'text';\n @Input() mask?: string;\n @Input() maskConfig?: UpdMaskConfig;\n @Input() value?: any;\n @Input() size: ComponentSizeType = 'default';\n @Input() customClasses?: string;\n @Input() wrapperClasses?: string;\n @Input() maxLength?: number;\n @Input() isPlainText = false;\n @Input() isReadOnly = false;\n @Input() isLoading = false;\n @Input() isRound = false;\n @Input() isFlush = false;\n @Input() isInputGroupFlat = false;\n @Input() isPrependButton = false;\n @Input() isAppendButton = false;\n @Input() isFloating = false;\n @Input() loaderPosition: LoaderPositionType = 'append';\n @Input() prependIconModel?: IconModel;\n @Input() appendIconModel?: IconModel;\n @Input() isValidationStatusLight = false;\n @Input() layout: HorizontalVerticalType = 'vertical';\n\n @Output() readonly valueChange = new EventEmitter<any>();\n @Output() readonly blurred = new EventEmitter<void>();\n /**\n * Emitted when any key is pressed.\n */\n @Output() readonly keyDown = new EventEmitter<any>();\n /**\n * Emitted when the ESC key is pressed.\n */\n @Output() readonly keyDownEsc = new EventEmitter<void>();\n /**\n * Emitted when the ENTER key is released.\n */\n @Output() readonly keyUpEnter = new EventEmitter<void>();\n\n classes: string[] = [];\n get shouldDisplayInnerLabel(): boolean {\n return !!this.label()\n && !this.prependIconModel\n && !this.appendIconModel\n && !this.isLoading\n && !this.appendTemplate\n && !this.prependTemplate;\n }\n get labelSizeClasses(): string {\n if (this.layout !== 'horizontal') {\n return 'form-label';\n }\n\n return ColumnSizeHelper.getClasses(\n 'col-form-label',\n ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3)\n );\n }\n\n readonly valueChangedSub = new Subject<string>();\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateClasses();\n\n if (changes['value'] && !!this.mask) {\n this.valueChangedSub.next(changes['value'].currentValue);\n }\n }\n\n onInputChange(evt: Event): void {\n if (!evt.target) {\n return;\n }\n\n this.valueChange.emit((evt.target as any).value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = !this.isPlainText ? ['form-control'] : ['form-control-plaintext'];\n\n if (this.isRound) {\n lClasses.push('form-control-rounded');\n }\n\n if (this.isFlush) {\n lClasses.push('form-control-flush');\n }\n\n if (this.size !== 'default') {\n lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);\n }\n\n if (!!this.validationStatus()) {\n const statusCls = `is-${this.validationStatus()}`;\n lClasses.push(statusCls);\n\n if (this.isValidationStatusLight) {\n lClasses.push(`${statusCls}-lite`);\n }\n }\n\n if (this.layout === 'horizontal') {\n this.hostWrapperClasses = 'row';\n }\n\n if (!!this.wrapperClasses) {\n this.hostWrapperClasses += ` ${this.wrapperClasses}`;\n }\n\n if (this.isFloating) {\n this.hostWrapperClasses += ' form-floating';\n }\n\n this.classes = [\n ...lClasses,\n ...(this.customClasses || '').split(' '),\n this.layout === 'horizontal' ? 'col' : ''\n ];\n }\n}\n","@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMaskModule } from '@updevs/sdk/mask';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { InputComponent } from './input.component';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdMaskModule,\n UpdPopoverModule\n ],\n declarations: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ],\n exports: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ]\n})\nexport class UpdInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"updevs-components-form-controls-input.mjs","sources":["../../../../libs/components/form-controls/input/src/directives/input-append.directive.ts","../../../../libs/components/form-controls/input/src/directives/input-prepend.directive.ts","../../../../libs/components/form-controls/input/src/input.component.ts","../../../../libs/components/form-controls/input/src/input.component.html","../../../../libs/components/form-controls/input/src/upd-input.module.ts","../../../../libs/components/form-controls/input/src/updevs-components-form-controls-input.ts"],"sourcesContent":["import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputAppend]'\n})\nexport class InputAppendDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: 'ng-template[updInputPrepend]'\n})\nexport class InputPrependDirective {\n readonly templateRef = inject(TemplateRef<any>);\n}\n","import {\n Component,\n ViewEncapsulation,\n Input,\n SimpleChanges,\n OnInit,\n OnChanges,\n ContentChild,\n HostBinding,\n Output,\n EventEmitter\n} from '@angular/core';\nimport { IconModel } from '@updevs/icons';\nimport { UpdMaskConfig } from '@updevs/sdk/mask';\nimport { ComponentSizeType, HorizontalVerticalType, ColumnSizeHelper } from '@updevs/components';\nimport { BaseControl } from '@updevs/components/form-controls/abstractions';\nimport { Subject } from 'rxjs';\n\nimport { InputType } from './types/input.type';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\nimport { LoaderPositionType } from './types/loader-position.type';\n\n@Component({\n selector: 'upd-input',\n templateUrl: './input.component.html',\n styleUrls: ['./input.component.scss'],\n encapsulation: ViewEncapsulation.None\n})\nexport class InputComponent extends BaseControl implements OnInit, OnChanges {\n @HostBinding('class') hostWrapperClasses = '';\n @ContentChild(InputAppendDirective) appendTemplate?: InputAppendDirective;\n @ContentChild(InputPrependDirective) prependTemplate?: InputPrependDirective;\n\n @Input() type: InputType = 'text';\n @Input() mask?: string;\n @Input() maskConfig?: UpdMaskConfig;\n @Input() value?: any;\n @Input() size: ComponentSizeType = 'default';\n @Input() customClasses?: string;\n @Input() wrapperClasses?: string;\n @Input() maxLength?: number;\n @Input() isPlainText = false;\n @Input() isReadOnly = false;\n @Input() isLoading = false;\n @Input() isRound = false;\n @Input() isFlush = false;\n @Input() isInputGroupFlat = false;\n @Input() isPrependButton = false;\n @Input() isAppendButton = false;\n @Input() isFloating = false;\n @Input() loaderPosition: LoaderPositionType = 'append';\n @Input() prependIconModel?: IconModel;\n @Input() appendIconModel?: IconModel;\n @Input() isValidationStatusLight = false;\n @Input() layout: HorizontalVerticalType = 'vertical';\n\n @Output() readonly valueChange = new EventEmitter<any>();\n @Output() readonly blurred = new EventEmitter<void>();\n /**\n * Emitted when any key is pressed.\n */\n @Output() readonly keyDown = new EventEmitter<any>();\n /**\n * Emitted when the ESC key is pressed.\n */\n @Output() readonly keyDownEsc = new EventEmitter<void>();\n /**\n * Emitted when the ENTER key is released.\n */\n @Output() readonly keyUpEnter = new EventEmitter<void>();\n\n classes: string[] = [];\n get shouldDisplayInnerLabel(): boolean {\n return !!this.label()\n && !this.prependIconModel\n && !this.appendIconModel\n && !this.isLoading\n && !this.appendTemplate\n && !this.prependTemplate;\n }\n get labelSizeClasses(): string {\n if (this.layout !== 'horizontal') {\n return 'form-label';\n }\n\n return ColumnSizeHelper.getClasses(\n 'col-form-label',\n ColumnSizeHelper.getSizeClasses(this.labelColSize(), 3)\n );\n }\n\n readonly valueChangedSub = new Subject<string>();\n\n ngOnInit(): void {\n this.updateClasses();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n this.updateClasses();\n\n if (changes['value'] && !!this.mask) {\n this.valueChangedSub.next(changes['value'].currentValue);\n }\n }\n\n onInputChange(evt: Event): void {\n if (!evt.target) {\n return;\n }\n\n this.valueChange.emit((evt.target as any).value);\n }\n\n private updateClasses(): void {\n const lClasses: string[] = !this.isPlainText ? ['form-control'] : ['form-control-plaintext'];\n\n if (this.isRound) {\n lClasses.push('form-control-rounded');\n }\n\n if (this.isFlush) {\n lClasses.push('form-control-flush');\n }\n\n if (this.size !== 'default') {\n lClasses.push(`form-control-${this.size === 'large' ? 'lg' : 'sm'}`);\n }\n\n if (!!this.validationStatus()) {\n const statusCls = `is-${this.validationStatus()}`;\n lClasses.push(statusCls);\n\n if (this.isValidationStatusLight) {\n lClasses.push(`${statusCls}-lite`);\n }\n }\n\n if (this.layout === 'horizontal') {\n this.hostWrapperClasses = 'row';\n }\n\n if (!!this.wrapperClasses) {\n this.hostWrapperClasses += ` ${this.wrapperClasses}`;\n }\n\n if (this.isFloating) {\n this.hostWrapperClasses += ' form-floating';\n }\n\n this.classes = [\n ...lClasses,\n ...(this.customClasses || '').split(' '),\n this.layout === 'horizontal' ? 'col' : ''\n ];\n }\n}\n","@if (!!appendTemplate || !!prependTemplate) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div class=\"input-group\" [class.input-group-flat]=\"isInputGroupFlat\">\n @if (!!prependTemplate) {\n @if (!isPrependButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"prependTemplate.templateRef\"></ng-template>\n }\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n\n @if (!!appendTemplate) {\n @if (!isAppendButton) {\n <div class=\"input-group-text\">\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"appendTemplate.templateRef\"></ng-template>\n }\n }\n </div>\n\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n} @else if (!!prependIconModel || !!appendIconModel || isLoading) {\n <ng-template [ngTemplateOutlet]=\"inputIconTpl\"></ng-template>\n} @else {\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n}\n\n<ng-template #inputTpl>\n @if (shouldDisplayInnerLabel && !isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n\n <ng-template [ngTemplateOutlet]=\"basicInputTpl\"></ng-template>\n\n @if (shouldDisplayInnerLabel && isFloating) {\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n }\n</ng-template>\n\n<ng-template #inputIconTpl>\n <ng-template [ngTemplateOutlet]=\"labelTpl\"></ng-template>\n <div [class.col]=\"layout === 'horizontal'\" [class.input-icon]=\"layout === 'vertical'\">\n @if (layout === 'horizontal') {\n <div class=\"input-icon\">\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"inputIconBaseTpl\"></ng-template>\n }\n </div>\n</ng-template>\n\n<ng-template #inputIconBaseTpl>\n @if (!!prependIconModel || (isLoading && loaderPosition === 'prepend')) {\n <span class=\"input-icon-addon\">\n @if (!!prependIconModel) {\n <upd-icon [model]=\"prependIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n\n <ng-template [ngTemplateOutlet]=\"inputTpl\"></ng-template>\n <ng-template [ngTemplateOutlet]=\"feedbackTpl\"></ng-template>\n\n @if (!!appendIconModel || (isLoading && loaderPosition === 'append')) {\n <span class=\"input-icon-addon\">\n @if (!!appendIconModel) {\n <upd-icon [model]=\"appendIconModel\"></upd-icon>\n } @else {\n <ng-template [ngTemplateOutlet]=\"loaderTpl\"></ng-template>\n }\n </span>\n }\n</ng-template>\n\n<ng-template #loaderTpl>\n <div class=\"spinner-border spinner-border-sm text-muted\" role=\"status\"></div>\n</ng-template>\n\n<ng-template #basicInputTpl>\n @if (!!mask) {\n <input [updMask]=\"mask\" [updMaskConfig]=\"maskConfig\" [updateMaskValueSubject]=\"valueChangedSub\" [attr.type]=\"type\"\n [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\" [value]=\"value || ''\"\n [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\" (blur)=\"blurred.emit()\"\n (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\" (keyup.enter)=\"keyUpEnter.emit()\" />\n } @else {\n <input [attr.type]=\"type\" [attr.maxlength]=\"maxLength\" [disabled]=\"isDisabled()\" [ngClass]=\"classes\" [placeholder]=\"placeholderText\"\n [value]=\"value || ''\" [attr.name]=\"name()\" [attr.readonly]=\"isReadOnly ? '' : undefined\" (input)=\"onInputChange($event)\"\n (blur)=\"blurred.emit()\" (keydown)=\"keyDown.emit($event)\" (keydown.escape)=\"keyDownEsc.emit()\"\n (keyup.enter)=\"keyUpEnter.emit()\" />\n }\n</ng-template>\n\n<ng-template #feedbackTpl>\n @if (validationStatus() === 'invalid' && validationStatusTexts.length > 0) {\n @for (desc of validationStatusTexts; track desc) {\n <div class=\"invalid-feedback\">{{ desc }}</div>\n }\n }\n</ng-template>\n\n<ng-template #hintTpl>\n <span class=\"form-help ms-2\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\" [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n</ng-template>\n\n<ng-template #labelTpl>\n @if (!!labelText) {\n <div [ngClass]=\"labelSizeClasses\">\n <label [class.required]=\"isRequired()\">{{ labelText }}</label>\n\n @if (!!hintText || !!this.hintTemplate()) {\n <ng-template [ngTemplateOutlet]=\"hintTpl\"></ng-template>\n }\n </div>\n }\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { UpdIconsModule } from '@updevs/icons';\nimport { UpdMaskModule } from '@updevs/sdk/mask';\nimport { UpdPopoverModule } from '@updevs/components/popover';\n\nimport { InputComponent } from './input.component';\nimport { InputAppendDirective } from './directives/input-append.directive';\nimport { InputPrependDirective } from './directives/input-prepend.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n UpdIconsModule,\n UpdMaskModule,\n UpdPopoverModule\n ],\n declarations: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ],\n exports: [\n InputComponent,\n InputAppendDirective,\n InputPrependDirective\n ]\n})\nexport class UpdInputModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@updevs/components",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.25",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.0.1",
|
|
6
6
|
"@angular/core": "^18.0.1",
|
|
7
7
|
"@jsverse/transloco": "^7.4.2",
|
|
8
8
|
"@jsverse/transloco-messageformat": "^7.0.1",
|
|
9
9
|
"@updevs/icons": "^1.0.9",
|
|
10
|
-
"@updevs/sdk": "^1.0.0-alpha.
|
|
10
|
+
"@updevs/sdk": "^1.0.0-alpha.30"
|
|
11
11
|
},
|
|
12
12
|
"dependencies": {
|
|
13
13
|
"tslib": "^2.3.0"
|
|
@@ -46,23 +46,17 @@
|
|
|
46
46
|
"esm": "./esm2022/drag-and-drop/updevs-components-drag-and-drop.mjs",
|
|
47
47
|
"default": "./fesm2022/updevs-components-drag-and-drop.mjs"
|
|
48
48
|
},
|
|
49
|
-
"./calendar": {
|
|
50
|
-
"types": "./calendar/index.d.ts",
|
|
51
|
-
"esm2022": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
52
|
-
"esm": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
53
|
-
"default": "./fesm2022/updevs-components-calendar.mjs"
|
|
54
|
-
},
|
|
55
49
|
"./dropdown": {
|
|
56
50
|
"types": "./dropdown/index.d.ts",
|
|
57
51
|
"esm2022": "./esm2022/dropdown/updevs-components-dropdown.mjs",
|
|
58
52
|
"esm": "./esm2022/dropdown/updevs-components-dropdown.mjs",
|
|
59
53
|
"default": "./fesm2022/updevs-components-dropdown.mjs"
|
|
60
54
|
},
|
|
61
|
-
"./
|
|
62
|
-
"types": "./
|
|
63
|
-
"esm2022": "./esm2022/
|
|
64
|
-
"esm": "./esm2022/
|
|
65
|
-
"default": "./fesm2022/updevs-components-
|
|
55
|
+
"./calendar": {
|
|
56
|
+
"types": "./calendar/index.d.ts",
|
|
57
|
+
"esm2022": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
58
|
+
"esm": "./esm2022/calendar/updevs-components-calendar.mjs",
|
|
59
|
+
"default": "./fesm2022/updevs-components-calendar.mjs"
|
|
66
60
|
},
|
|
67
61
|
"./form": {
|
|
68
62
|
"types": "./form/index.d.ts",
|
|
@@ -70,6 +64,12 @@
|
|
|
70
64
|
"esm": "./esm2022/form/updevs-components-form.mjs",
|
|
71
65
|
"default": "./fesm2022/updevs-components-form.mjs"
|
|
72
66
|
},
|
|
67
|
+
"./card": {
|
|
68
|
+
"types": "./card/index.d.ts",
|
|
69
|
+
"esm2022": "./esm2022/card/updevs-components-card.mjs",
|
|
70
|
+
"esm": "./esm2022/card/updevs-components-card.mjs",
|
|
71
|
+
"default": "./fesm2022/updevs-components-card.mjs"
|
|
72
|
+
},
|
|
73
73
|
"./layout": {
|
|
74
74
|
"types": "./layout/index.d.ts",
|
|
75
75
|
"esm2022": "./esm2022/layout/updevs-components-layout.mjs",
|
|
@@ -94,18 +94,18 @@
|
|
|
94
94
|
"esm": "./esm2022/modal/updevs-components-modal.mjs",
|
|
95
95
|
"default": "./fesm2022/updevs-components-modal.mjs"
|
|
96
96
|
},
|
|
97
|
-
"./paginator": {
|
|
98
|
-
"types": "./paginator/index.d.ts",
|
|
99
|
-
"esm2022": "./esm2022/paginator/updevs-components-paginator.mjs",
|
|
100
|
-
"esm": "./esm2022/paginator/updevs-components-paginator.mjs",
|
|
101
|
-
"default": "./fesm2022/updevs-components-paginator.mjs"
|
|
102
|
-
},
|
|
103
97
|
"./popover": {
|
|
104
98
|
"types": "./popover/index.d.ts",
|
|
105
99
|
"esm2022": "./esm2022/popover/updevs-components-popover.mjs",
|
|
106
100
|
"esm": "./esm2022/popover/updevs-components-popover.mjs",
|
|
107
101
|
"default": "./fesm2022/updevs-components-popover.mjs"
|
|
108
102
|
},
|
|
103
|
+
"./paginator": {
|
|
104
|
+
"types": "./paginator/index.d.ts",
|
|
105
|
+
"esm2022": "./esm2022/paginator/updevs-components-paginator.mjs",
|
|
106
|
+
"esm": "./esm2022/paginator/updevs-components-paginator.mjs",
|
|
107
|
+
"default": "./fesm2022/updevs-components-paginator.mjs"
|
|
108
|
+
},
|
|
109
109
|
"./table": {
|
|
110
110
|
"types": "./table/index.d.ts",
|
|
111
111
|
"esm2022": "./esm2022/table/updevs-components-table.mjs",
|
|
@@ -148,18 +148,18 @@
|
|
|
148
148
|
"esm": "./esm2022/form-controls/radio/updevs-components-form-controls-radio.mjs",
|
|
149
149
|
"default": "./fesm2022/updevs-components-form-controls-radio.mjs"
|
|
150
150
|
},
|
|
151
|
-
"./form-controls/select": {
|
|
152
|
-
"types": "./form-controls/select/index.d.ts",
|
|
153
|
-
"esm2022": "./esm2022/form-controls/select/updevs-components-form-controls-select.mjs",
|
|
154
|
-
"esm": "./esm2022/form-controls/select/updevs-components-form-controls-select.mjs",
|
|
155
|
-
"default": "./fesm2022/updevs-components-form-controls-select.mjs"
|
|
156
|
-
},
|
|
157
151
|
"./form-controls/textarea": {
|
|
158
152
|
"types": "./form-controls/textarea/index.d.ts",
|
|
159
153
|
"esm2022": "./esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs",
|
|
160
154
|
"esm": "./esm2022/form-controls/textarea/updevs-components-form-controls-textarea.mjs",
|
|
161
155
|
"default": "./fesm2022/updevs-components-form-controls-textarea.mjs"
|
|
162
156
|
},
|
|
157
|
+
"./form-controls/select": {
|
|
158
|
+
"types": "./form-controls/select/index.d.ts",
|
|
159
|
+
"esm2022": "./esm2022/form-controls/select/updevs-components-form-controls-select.mjs",
|
|
160
|
+
"esm": "./esm2022/form-controls/select/updevs-components-form-controls-select.mjs",
|
|
161
|
+
"default": "./fesm2022/updevs-components-form-controls-select.mjs"
|
|
162
|
+
},
|
|
163
163
|
"./form-controls/time-picker": {
|
|
164
164
|
"types": "./form-controls/time-picker/index.d.ts",
|
|
165
165
|
"esm2022": "./esm2022/form-controls/time-picker/updevs-components-form-controls-time-picker.mjs",
|