@design-system-rte/angular 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/esm2022/lib/components/assistive-text/assistive-text.component.mjs +34 -0
  2. package/esm2022/lib/components/badge/badge.component.mjs +7 -4
  3. package/esm2022/lib/components/banner/banner.component.mjs +3 -3
  4. package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +18 -3
  5. package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +19 -3
  6. package/esm2022/lib/components/button/button.component.mjs +2 -2
  7. package/esm2022/lib/components/card/card.component.mjs +3 -3
  8. package/esm2022/lib/components/checkbox/checkbox.component.mjs +3 -3
  9. package/esm2022/lib/components/checkbox-group/checkbox-group.component.mjs +3 -3
  10. package/esm2022/lib/components/chip/chip.component.mjs +3 -3
  11. package/esm2022/lib/components/divider/divider.component.mjs +3 -3
  12. package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +23 -6
  13. package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +16 -5
  14. package/esm2022/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.mjs +23 -2
  15. package/esm2022/lib/components/dropdown/dropdown.directive.mjs +71 -15
  16. package/esm2022/lib/components/icon/icon.component.mjs +3 -3
  17. package/esm2022/lib/components/icon/icon.service.mjs +1 -1
  18. package/esm2022/lib/components/icon-button/icon-button.component.mjs +6 -6
  19. package/esm2022/lib/components/icon-button-toggle/icon-button-toggle.component.mjs +3 -3
  20. package/esm2022/lib/components/link/link.component.mjs +3 -3
  21. package/esm2022/lib/components/modal/modal.component.mjs +3 -3
  22. package/esm2022/lib/components/popover/popover.component.mjs +3 -3
  23. package/esm2022/lib/components/radio-button/radio-button.component.mjs +3 -3
  24. package/esm2022/lib/components/radio-button-group/radio-button-group.component.mjs +3 -3
  25. package/esm2022/lib/components/searchbar/searchbar.component.mjs +86 -0
  26. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +13 -3
  27. package/esm2022/lib/components/select/select.component.mjs +168 -0
  28. package/esm2022/lib/components/side-nav/base-side-nav/base-side-nav.component.mjs +3 -3
  29. package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +3 -3
  30. package/esm2022/lib/components/side-nav/nav-menu/nav-menu.component.mjs +3 -3
  31. package/esm2022/lib/components/side-nav/side-nav.component.mjs +3 -3
  32. package/esm2022/lib/components/split-button/split-button.component.mjs +17 -3
  33. package/esm2022/lib/components/switch/switch.component.mjs +3 -3
  34. package/esm2022/lib/components/tag/tag.component.mjs +43 -0
  35. package/esm2022/lib/components/text-input/base-text-input/base-text-input.component.mjs +109 -0
  36. package/esm2022/lib/components/text-input/text-input.component.mjs +8 -103
  37. package/esm2022/lib/components/textarea/textarea.component.mjs +8 -7
  38. package/esm2022/lib/components/toast/toast.component.mjs +3 -3
  39. package/esm2022/lib/components/tooltip/tooltip.component.mjs +3 -3
  40. package/esm2022/lib/services/dropdown.service.mjs +2 -3
  41. package/esm2022/public-api.mjs +4 -1
  42. package/fesm2022/design-system-rte-angular.mjs +648 -187
  43. package/fesm2022/design-system-rte-angular.mjs.map +1 -1
  44. package/lib/components/assistive-text/assistive-text.component.d.ts +14 -0
  45. package/lib/components/badge/badge.directive.d.ts +1 -1
  46. package/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.d.ts +3 -2
  47. package/lib/components/breadcrumbs/breadcrumbs.component.d.ts +10 -3
  48. package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +4 -1
  49. package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +10 -1
  50. package/lib/components/dropdown/dropdown-trigger/dropdown-trigger.directive.d.ts +7 -1
  51. package/lib/components/dropdown/dropdown.directive.d.ts +10 -2
  52. package/lib/components/icon/icon.service.d.ts +1 -2
  53. package/lib/components/icon-button/icon-button.component.d.ts +5 -4
  54. package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
  55. package/lib/components/searchbar/searchbar.component.d.ts +31 -0
  56. package/lib/components/segmented-control/segmented-control.component.d.ts +1 -0
  57. package/lib/components/select/select.component.d.ts +56 -0
  58. package/lib/components/split-button/split-button.component.d.ts +10 -2
  59. package/lib/components/tag/tag.component.d.ts +14 -0
  60. package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +47 -0
  61. package/lib/components/text-input/text-input.component.d.ts +3 -39
  62. package/package.json +2 -2
  63. package/public-api.d.ts +3 -0
@@ -0,0 +1,109 @@
1
+ import { CommonModule } from "@angular/common";
2
+ import { ChangeDetectionStrategy, Component, input, output, signal, computed, effect } from "@angular/core";
3
+ import { IconComponent } from "../../icon/icon.component";
4
+ import { IconButtonComponent } from "../../icon-button/icon-button.component";
5
+ import { LinkComponent } from "../../link/link.component";
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ export class BaseTextInputComponent {
9
+ constructor() {
10
+ this.id = input();
11
+ this.label = input("");
12
+ this.labelPosition = input("top");
13
+ this.placeholder = input("");
14
+ this.required = input(false);
15
+ this.showCounter = input(false);
16
+ this.value = input("");
17
+ this.internalValue = signal(this.value());
18
+ this.leftIcon = input(null);
19
+ this.showRightIcon = input(true);
20
+ this.rightIconAction = input("clean");
21
+ this.showLabelRequirement = input(false);
22
+ this.assistiveAppearance = input("description");
23
+ this.showAssistiveIcon = input(false);
24
+ this.assistiveTextLabel = input("");
25
+ this.error = input(false);
26
+ this.maxLength = input(150);
27
+ this.disabled = input(false);
28
+ this.readOnly = input(false);
29
+ this.width = input("300px");
30
+ this.ariaLabel = input("");
31
+ this.ariaRequired = input(false);
32
+ this.ariaLabelledby = input("");
33
+ this.compactSpacing = input(false);
34
+ this.customStyle = input();
35
+ this.autocomplete = input("");
36
+ this.highlighted = input(false);
37
+ this.valueChange = output();
38
+ this.rightIconClick = output();
39
+ this.characterCount = signal(this.internalValue().length);
40
+ this.isHiddenInput = signal(this.showRightIcon() && this.rightIconAction() === "visibilityOn");
41
+ this.displayedLeftIcon = computed(() => (this.error() ? "error" : this.leftIcon()));
42
+ this.displayCounter = computed(() => this.showCounter() && typeof this.maxLength() === "number");
43
+ this.rightIconName = computed(() => {
44
+ if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
45
+ return this.isHiddenInput() ? "visibility-show" : "visibility-hide";
46
+ }
47
+ return "cancel";
48
+ });
49
+ this.rightIconAriaLabel = computed(() => {
50
+ if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
51
+ return this.isHiddenInput() ? "show text" : "hide text";
52
+ }
53
+ else if (this.rightIconAction() === "clean") {
54
+ return "clear";
55
+ }
56
+ return "";
57
+ });
58
+ this.shouldShowRightIcon = computed(() => {
59
+ if (this.readOnly() || this.disabled()) {
60
+ return false;
61
+ }
62
+ if (this.rightIconAction() === "clean") {
63
+ return !!this.internalValue()?.length && this.showRightIcon();
64
+ }
65
+ return this.showRightIcon() && !!this.rightIconAction();
66
+ });
67
+ this.lastParentValue = this.value();
68
+ effect(() => {
69
+ const parentValue = this.value();
70
+ if (parentValue !== this.lastParentValue) {
71
+ this.lastParentValue = parentValue;
72
+ this.internalValue.set(parentValue);
73
+ }
74
+ }, { allowSignalWrites: true });
75
+ }
76
+ handleChange(event) {
77
+ const input = event.target;
78
+ const newValue = input.value;
79
+ this.internalValue.set(newValue);
80
+ if (this.maxLength()) {
81
+ this.characterCount.set(newValue.length);
82
+ }
83
+ this.valueChange.emit(newValue);
84
+ }
85
+ onRightIconClickHandler() {
86
+ this.rightIconClick.emit();
87
+ this.triggerRightIconAction();
88
+ }
89
+ toggleInputVisibility() {
90
+ this.isHiddenInput.set(!this.isHiddenInput());
91
+ }
92
+ triggerRightIconAction() {
93
+ if (this.rightIconAction() === "clean") {
94
+ this.internalValue.set("");
95
+ this.valueChange.emit("");
96
+ this.characterCount.set(0);
97
+ }
98
+ if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
99
+ this.toggleInputVisibility();
100
+ }
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseTextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: BaseTextInputComponent, isStandalone: true, selector: "rte-base-text-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showCounter: { classPropertyName: "showCounter", publicName: "showCounter", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, showRightIcon: { classPropertyName: "showRightIcon", publicName: "showRightIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIconAction: { classPropertyName: "rightIconAction", publicName: "rightIconAction", isSignal: true, isRequired: false, transformFunction: null }, showLabelRequirement: { classPropertyName: "showLabelRequirement", publicName: "showLabelRequirement", isSignal: true, isRequired: false, transformFunction: null }, assistiveAppearance: { classPropertyName: "assistiveAppearance", publicName: "assistiveAppearance", isSignal: true, isRequired: false, transformFunction: null }, showAssistiveIcon: { classPropertyName: "showAssistiveIcon", publicName: "showAssistiveIcon", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLabel: { classPropertyName: "assistiveTextLabel", publicName: "assistiveTextLabel", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaRequired: { classPropertyName: "ariaRequired", publicName: "ariaRequired", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null }, compactSpacing: { classPropertyName: "compactSpacing", publicName: "compactSpacing", isSignal: true, isRequired: false, transformFunction: null }, customStyle: { classPropertyName: "customStyle", publicName: "customStyle", isSignal: true, isRequired: false, transformFunction: null }, autocomplete: { classPropertyName: "autocomplete", publicName: "autocomplete", isSignal: true, isRequired: false, transformFunction: null }, highlighted: { classPropertyName: "highlighted", publicName: "highlighted", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", rightIconClick: "rightIconClick" }, ngImport: i0, template: "<div\n class=\"container {{ labelPosition() }}\"\n [ngClass]=\"{ error: error(), 'compact-spacing': compactSpacing() }\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div class=\"input {{ labelPosition() }}\" [ngClass]=\"{ disabled: disabled(), 'read-only': readOnly() }\">\n <div\n class=\"input-bar\"\n [ngClass]=\"{ 'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction() }\"\n >\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon appearance=\"outlined\" class=\"left-icon\" aria-hidden=\"true\" [name]=\"displayedLeftIcon()!\" />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{ error: error(), highlighted: highlighted() }\"\n [ngStyle]=\"customStyle()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"neutral\"\n size=\"s\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [compactSpacing]=\"true\"\n [name]=\"rightIconName()\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (clickEvent)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n <div class=\"right-slot\">\n <ng-content select=\"[baseTextInputRightSlot]\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n</div>\n", styles: [".container{display:flex;width:300px;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:0px}.container.compact-spacing .input-container,.container.compact-spacing .input-container .input .input-bar .input-field{height:24px;min-height:24px}.container.compact-spacing .rte-icon-button ::ng-deep button{height:24px;width:24px;padding:0 2px}.container.side{align-items:center;flex-direction:row}.container.side .text{width:auto;align-items:center}.container.side .input-counter{padding:0 8px}.container.error .input-container .input .input-bar .left-icon{color:var(--content-danger-default)}.container .text{width:100%;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;padding:2px 8px;box-sizing:border-box}.container .text .label-container{display:flex;align-items:flex-start}.container .text .label-container .input-label{color:var(--content-secondary);font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.container .text .label-container .required-text{color:var(--content-tertiary);align-self:center;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin-block:0px;margin-inline:4px}.container .text .label-container .required-icon-container{color:var(--content-danger-default);display:flex;align-items:center;justify-content:center;margin-inline:4px}.container .input-container{display:flex;flex-direction:column;height:32px;width:100%;min-width:48px;min-height:32px;max-height:32px;align-self:stretch}.container .input-container .input{display:flex;align-items:center;gap:0;width:100%;height:100%}.container .input-container .input .input-bar{position:relative;display:flex;align-items:center;flex:1}.container .input-container .input .input-bar.with-left-icon .input-field{padding-left:32px}.container .input-container .input .input-bar.with-right-icon .input-field{padding-right:32px}.container .input-container .input .input-bar .left-icon{position:absolute;left:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon{position:absolute;right:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon:focus{outline:none}.container .input-container .input .input-bar .right-icon:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:8px}.container .input-container .input .input-bar .right-icon:focus-visible:after{display:none}.container .input-container .input .input-bar .input-field{box-sizing:border-box;appearance:none;width:100%;height:32px;min-width:48px;max-height:32px;border-radius:4px;border:1px solid var(--border-secondary);padding:4px 16px;background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-default);transition:border .2s,outline .2s;color:var(--content-primary);box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.container .input-container .input .input-bar .input-field:hover{border-color:var(--border-primary)}.container .input-container .input .input-bar .input-field:focus,.container .input-container .input .input-bar .input-field.highlighted{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:active{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:disabled,.container .input-container .input .input-bar .input-field:read-only{border-color:var(--border-disabled);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-disabled);cursor:not-allowed;box-shadow:none}.container .input-container .input .input-bar .input-field.error{outline:1px solid var(--border-danger);border-color:var(--border-danger)}.container .input-container .input .input-bar .input-field::placeholder{color:var(--content-tertiary)}.container .input-container .input .right-slot{display:flex;align-items:center;flex-shrink:0;position:relative}.container .input-container .assistive-text{display:flex;align-items:center;gap:4px;padding:4px 8px}.container .input-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.container .input-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.container .input-container .assistive-text .assistive-label{transition:color .2s}.container .input-container .assistive-text .assistive-label.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.description{color:var(--content-tertiary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.input-counter{color:var(--content-tertiary);font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;margin-block:0px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon", "customStyle"], outputs: ["clickEvent"] }, { kind: "component", type: LinkComponent, selector: "rte-link", inputs: ["label", "href", "subtle", "externalLink", "reverse", "maxWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: BaseTextInputComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: "rte-base-text-input", imports: [CommonModule, IconComponent, IconButtonComponent, LinkComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"container {{ labelPosition() }}\"\n [ngClass]=\"{ error: error(), 'compact-spacing': compactSpacing() }\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div class=\"input {{ labelPosition() }}\" [ngClass]=\"{ disabled: disabled(), 'read-only': readOnly() }\">\n <div\n class=\"input-bar\"\n [ngClass]=\"{ 'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction() }\"\n >\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon appearance=\"outlined\" class=\"left-icon\" aria-hidden=\"true\" [name]=\"displayedLeftIcon()!\" />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{ error: error(), highlighted: highlighted() }\"\n [ngStyle]=\"customStyle()\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n [placeholder]=\"placeholder()\"\n [attr.autocomplete]=\"autocomplete()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"neutral\"\n size=\"s\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [compactSpacing]=\"true\"\n [name]=\"rightIconName()\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (clickEvent)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n <div class=\"right-slot\">\n <ng-content select=\"[baseTextInputRightSlot]\"></ng-content>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">{{ characterCount() }}/{{ maxLength() }}</p>\n </ng-container>\n</div>\n", styles: [".container{display:flex;width:300px;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:0px}.container.compact-spacing .input-container,.container.compact-spacing .input-container .input .input-bar .input-field{height:24px;min-height:24px}.container.compact-spacing .rte-icon-button ::ng-deep button{height:24px;width:24px;padding:0 2px}.container.side{align-items:center;flex-direction:row}.container.side .text{width:auto;align-items:center}.container.side .input-counter{padding:0 8px}.container.error .input-container .input .input-bar .left-icon{color:var(--content-danger-default)}.container .text{width:100%;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;padding:2px 8px;box-sizing:border-box}.container .text .label-container{display:flex;align-items:flex-start}.container .text .label-container .input-label{color:var(--content-secondary);font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.container .text .label-container .required-text{color:var(--content-tertiary);align-self:center;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin-block:0px;margin-inline:4px}.container .text .label-container .required-icon-container{color:var(--content-danger-default);display:flex;align-items:center;justify-content:center;margin-inline:4px}.container .input-container{display:flex;flex-direction:column;height:32px;width:100%;min-width:48px;min-height:32px;max-height:32px;align-self:stretch}.container .input-container .input{display:flex;align-items:center;gap:0;width:100%;height:100%}.container .input-container .input .input-bar{position:relative;display:flex;align-items:center;flex:1}.container .input-container .input .input-bar.with-left-icon .input-field{padding-left:32px}.container .input-container .input .input-bar.with-right-icon .input-field{padding-right:32px}.container .input-container .input .input-bar .left-icon{position:absolute;left:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon{position:absolute;right:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon:focus{outline:none}.container .input-container .input .input-bar .right-icon:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:8px}.container .input-container .input .input-bar .right-icon:focus-visible:after{display:none}.container .input-container .input .input-bar .input-field{box-sizing:border-box;appearance:none;width:100%;height:32px;min-width:48px;max-height:32px;border-radius:4px;border:1px solid var(--border-secondary);padding:4px 16px;background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-default);transition:border .2s,outline .2s;color:var(--content-primary);box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.container .input-container .input .input-bar .input-field:hover{border-color:var(--border-primary)}.container .input-container .input .input-bar .input-field:focus,.container .input-container .input .input-bar .input-field.highlighted{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:active{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:disabled,.container .input-container .input .input-bar .input-field:read-only{border-color:var(--border-disabled);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-disabled);cursor:not-allowed;box-shadow:none}.container .input-container .input .input-bar .input-field.error{outline:1px solid var(--border-danger);border-color:var(--border-danger)}.container .input-container .input .input-bar .input-field::placeholder{color:var(--content-tertiary)}.container .input-container .input .right-slot{display:flex;align-items:center;flex-shrink:0;position:relative}.container .input-container .assistive-text{display:flex;align-items:center;gap:4px;padding:4px 8px}.container .input-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.container .input-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.container .input-container .assistive-text .assistive-label{transition:color .2s}.container .input-container .assistive-text .assistive-label.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.description{color:var(--content-tertiary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.input-counter{color:var(--content-tertiary);font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;margin-block:0px}\n"] }]
108
+ }], ctorParameters: () => [] });
109
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS10ZXh0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RzLXJ0ZS1saWIvc3JjL2xpYi9jb21wb25lbnRzL3RleHQtaW5wdXQvYmFzZS10ZXh0LWlucHV0L2Jhc2UtdGV4dC1pbnB1dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90ZXh0LWlucHV0L2Jhc2UtdGV4dC1pbnB1dC9iYXNlLXRleHQtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU1RyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFMUQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7QUFVMUQsTUFBTSxPQUFPLHNCQUFzQjtJQWtFakM7UUFqRVMsT0FBRSxHQUFHLEtBQUssRUFBVSxDQUFDO1FBQ3JCLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxLQUFLLENBQWlCLEtBQUssQ0FBQyxDQUFDO1FBQzdDLGdCQUFXLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ2hDLGFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDakMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDcEMsVUFBSyxH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RSxhQUFhOzs0RkFNOUQsc0JBQXNCO2tCQVJsQyxTQUFTOytCQUNFLHFCQUFxQixXQUN0QixDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxDQUFDLGNBQzlELElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCwgY29tcHV0ZWQsIGVmZmVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEljb25Db21wb25lbnQgfSBmcm9tIFwiLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgUmVndWxhckljb25JZEtleSwgVG9nZ2xhYmxlSWNvbklkS2V5IH0gZnJvbSBcIi4uLy4uL2ljb24vaWNvbi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJY29uQnV0dG9uQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2ljb24tYnV0dG9uL2ljb24tYnV0dG9uLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgTGlua0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9saW5rL2xpbmsuY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJydGUtYmFzZS10ZXh0LWlucHV0XCIsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Db21wb25lbnQsIEljb25CdXR0b25Db21wb25lbnQsIExpbmtDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL2Jhc2UtdGV4dC1pbnB1dC5jb21wb25lbnQuaHRtbFwiLFxuICBzdHlsZVVybDogXCIuL2Jhc2UtdGV4dC1pbnB1dC5jb21wb25lbnQuc2Nzc1wiLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZVRleHRJbnB1dENvbXBvbmVudCB7XG4gIHJlYWRvbmx5IGlkID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbCA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IGxhYmVsUG9zaXRpb24gPSBpbnB1dDxcInRvcFwiIHwgXCJzaWRlXCI+KFwidG9wXCIpO1xuICByZWFkb25seSBwbGFjZWhvbGRlciA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IHJlcXVpcmVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBzaG93Q291bnRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgdmFsdWUgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICByZWFkb25seSBpbnRlcm5hbFZhbHVlID0gc2lnbmFsPHN0cmluZz4odGhpcy52YWx1ZSgpKTtcbiAgcmVhZG9ubHkgbGVmdEljb24gPSBpbnB1dDxSZWd1bGFySWNvbklkS2V5IHwgVG9nZ2xhYmxlSWNvbklkS2V5IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IHNob3dSaWdodEljb24gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgcmlnaHRJY29uQWN0aW9uID0gaW5wdXQ8XCJjbGVhblwiIHwgXCJ2aXNpYmlsaXR5T25cIiB8IFwidmlzaWJpbGl0eU9mZlwiPihcImNsZWFuXCIpO1xuICByZWFkb25seSBzaG93TGFiZWxSZXF1aXJlbWVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgYXNzaXN0aXZlQXBwZWFyYW5jZSA9IGlucHV0PFwiZGVzY3JpcHRpb25cIiB8IFwiZXJyb3JcIiB8IFwic3VjY2Vzc1wiIHwgXCJsaW5rXCI+KFwiZGVzY3JpcHRpb25cIik7XG4gIHJlYWRvbmx5IHNob3dBc3Npc3RpdmVJY29uID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhc3Npc3RpdmVUZXh0TGFiZWwgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICByZWFkb25seSBlcnJvciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigxNTApO1xuICByZWFkb25seSBkaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcmVhZE9ubHkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHdpZHRoID0gaW5wdXQ8c3RyaW5nPihcIjMwMHB4XCIpO1xuICByZWFkb25seSBhcmlhTGFiZWwgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICByZWFkb25seSBhcmlhUmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbGxlZGJ5ID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgcmVhZG9ubHkgY29tcGFjdFNwYWNpbmcgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGN1c3RvbVN0eWxlID0gaW5wdXQ8UmVjb3JkPHN0cmluZywgc3RyaW5nPj4oKTtcbiAgcmVhZG9ubHkgYXV0b2NvbXBsZXRlID0gaW5wdXQ8c3RyaW5nPihcIlwiKTtcbiAgcmVhZG9ubHkgaGlnaGxpZ2h0ZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgcmVhZG9ubHkgdmFsdWVDaGFuZ2UgPSBvdXRwdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSByaWdodEljb25DbGljayA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IGNoYXJhY3RlckNvdW50ID0gc2lnbmFsPG51bWJlcj4odGhpcy5pbnRlcm5hbFZhbHVlKCkubGVuZ3RoKTtcbiAgcmVhZG9ubHkgaXNIaWRkZW5JbnB1dCA9IHNpZ25hbDxib29sZWFuPih0aGlzLnNob3dSaWdodEljb24oKSAmJiB0aGlzLnJpZ2h0SWNvbkFjdGlvbigpID09PSBcInZpc2liaWxpdHlPblwiKTtcbiAgcmVhZG9ubHkgZGlzcGxheWVkTGVmdEljb24gPSBjb21wdXRlZCgoKSA9PiAodGhpcy5lcnJvcigpID8gXCJlcnJvclwiIDogdGhpcy5sZWZ0SWNvbigpKSk7XG5cbiAgcmVhZG9ubHkgZGlzcGxheUNvdW50ZXIgPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNob3dDb3VudGVyKCkgJiYgdHlwZW9mIHRoaXMubWF4TGVuZ3RoKCkgPT09IFwibnVtYmVyXCIpO1xuXG4gIHJlYWRvbmx5IHJpZ2h0SWNvbk5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKFtcInZpc2liaWxpdHlPblwiLCBcInZpc2liaWxpdHlPZmZcIl0uaW5jbHVkZXModGhpcy5yaWdodEljb25BY3Rpb24oKSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmlzSGlkZGVuSW5wdXQoKSA/IFwidmlzaWJpbGl0eS1zaG93XCIgOiBcInZpc2liaWxpdHktaGlkZVwiO1xuICAgIH1cbiAgICByZXR1cm4gXCJjYW5jZWxcIjtcbiAgfSk7XG5cbiAgcmVhZG9ubHkgcmlnaHRJY29uQXJpYUxhYmVsID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmIChbXCJ2aXNpYmlsaXR5T25cIiwgXCJ2aXNpYmlsaXR5T2ZmXCJdLmluY2x1ZGVzKHRoaXMucmlnaHRJY29uQWN0aW9uKCkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0hpZGRlbklucHV0KCkgPyBcInNob3cgdGV4dFwiIDogXCJoaWRlIHRleHRcIjtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmlnaHRJY29uQWN0aW9uKCkgPT09IFwiY2xlYW5cIikge1xuICAgICAgcmV0dXJuIFwiY2xlYXJcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHNob3VsZFNob3dSaWdodEljb24gPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgaWYgKHRoaXMucmVhZE9ubHkoKSB8fCB0aGlzLmRpc2FibGVkKCkpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMucmlnaHRJY29uQWN0aW9uKCkgPT09IFwiY2xlYW5cIikge1xuICAgICAgcmV0dXJuICEhdGhpcy5pbnRlcm5hbFZhbHVlKCk/Lmxlbmd0aCAmJiB0aGlzLnNob3dSaWdodEljb24oKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuc2hvd1JpZ2h0SWNvbigpICYmICEhdGhpcy5yaWdodEljb25BY3Rpb24oKTtcbiAgfSk7XG5cbiAgcHJpdmF0ZSBsYXN0UGFyZW50VmFsdWUgPSB0aGlzLnZhbHVlKCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBwYXJlbnRWYWx1ZSA9IHRoaXMudmFsdWUoKTtcbiAgICAgICAgaWYgKHBhcmVudFZhbHVlICE9PSB0aGlzLmxhc3RQYXJlbnRWYWx1ZSkge1xuICAgICAgICAgIHRoaXMubGFzdFBhcmVudFZhbHVlID0gcGFyZW50VmFsdWU7XG4gICAgICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldChwYXJlbnRWYWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZShldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gaW5wdXQudmFsdWU7XG4gICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldChuZXdWYWx1ZSk7XG4gICAgaWYgKHRoaXMubWF4TGVuZ3RoKCkpIHtcbiAgICAgIHRoaXMuY2hhcmFjdGVyQ291bnQuc2V0KG5ld1ZhbHVlLmxlbmd0aCk7XG4gICAgfVxuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChuZXdWYWx1ZSk7XG4gIH1cblxuICBvblJpZ2h0SWNvbkNsaWNrSGFuZGxlcigpOiB2b2lkIHtcbiAgICB0aGlzLnJpZ2h0SWNvbkNsaWNrLmVtaXQoKTtcbiAgICB0aGlzLnRyaWdnZXJSaWdodEljb25BY3Rpb24oKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlSW5wdXRWaXNpYmlsaXR5KCk6IHZvaWQge1xuICAgIHRoaXMuaXNIaWRkZW5JbnB1dC5zZXQoIXRoaXMuaXNIaWRkZW5JbnB1dCgpKTtcbiAgfVxuXG4gIHByaXZhdGUgdHJpZ2dlclJpZ2h0SWNvbkFjdGlvbigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5yaWdodEljb25BY3Rpb24oKSA9PT0gXCJjbGVhblwiKSB7XG4gICAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KFwiXCIpO1xuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFwiXCIpO1xuICAgICAgdGhpcy5jaGFyYWN0ZXJDb3VudC5zZXQoMCk7XG4gICAgfVxuICAgIGlmIChbXCJ2aXNpYmlsaXR5T25cIiwgXCJ2aXNpYmlsaXR5T2ZmXCJdLmluY2x1ZGVzKHRoaXMucmlnaHRJY29uQWN0aW9uKCkpKSB7XG4gICAgICB0aGlzLnRvZ2dsZUlucHV0VmlzaWJpbGl0eSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cImNvbnRhaW5lciB7eyBsYWJlbFBvc2l0aW9uKCkgfX1cIlxuICBbbmdDbGFzc109XCJ7IGVycm9yOiBlcnJvcigpLCAnY29tcGFjdC1zcGFjaW5nJzogY29tcGFjdFNwYWNpbmcoKSB9XCJcbiAgW3N0eWxlLndpZHRoXT1cIndpZHRoKClcIlxuPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwibGFiZWwoKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgIDxsYWJlbCBjbGFzcz1cImlucHV0LWxhYmVsXCIgW2lkXT1cIidpbnB1dC1sYWJlbC0nICsgaWRcIiBbZm9yXT1cImlkKClcIj5cbiAgICAgICAgICB7eyBsYWJlbCgpIH19XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyZXF1aXJlZCgpXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dMYWJlbFJlcXVpcmVtZW50KCk7IGVsc2UgcmVxdWlyZWRJY29uXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLXRleHRcIj4ob2JsaWdhdG9pcmUpPC9zcGFuPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjcmVxdWlyZWRJY29uPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC1pY29uLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICA8cnRlLWljb24gbmFtZT1cImFzdGVyaXNrXCIgW3NpemVdPVwiOFwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhcmVxdWlyZWQoKSAmJiBzaG93TGFiZWxSZXF1aXJlbWVudCgpXCI+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC10ZXh0XCI+KG9wdGlvbm5lbCk8L3NwYW4+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheUNvdW50ZXIoKSAmJiBsYWJlbFBvc2l0aW9uKCkgPT09ICd0b3AnXCI+XG4gICAgICAgIDxwIGNsYXNzPVwiaW5wdXQtY291bnRlclwiIGRhdGEtdGVzdGlkPVwiaW5wdXQtY291bnRlclwiPnt7IGNoYXJhY3RlckNvdW50KCkgfX0ve3sgbWF4TGVuZ3RoKCkgfX08L3A+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgPC9uZy1jb250YWluZXI+XG5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWNvbnRhaW5lclwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dCB7eyBsYWJlbFBvc2l0aW9uKCkgfX1cIiBbbmdDbGFzc109XCJ7IGRpc2FibGVkOiBkaXNhYmxlZCgpLCAncmVhZC1vbmx5JzogcmVhZE9ubHkoKSB9XCI+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiaW5wdXQtYmFyXCJcbiAgICAgICAgW25nQ2xhc3NdPVwieyAnd2l0aC1sZWZ0LWljb24nOiBkaXNwbGF5ZWRMZWZ0SWNvbigpLCAnd2l0aC1yaWdodC1pY29uJzogcmlnaHRJY29uQWN0aW9uKCkgfVwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5ZWRMZWZ0SWNvbigpXCI+XG4gICAgICAgICAgPHJ0ZS1pY29uIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwibGVmdC1pY29uXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCIgW25hbWVdPVwiZGlzcGxheWVkTGVmdEljb24oKSFcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICAjaW5wdXRSZWZcbiAgICAgICAgICBjbGFzcz1cImlucHV0LWZpZWxkXCJcbiAgICAgICAgICBbaWRdPVwiaWQoKVwiXG4gICAgICAgICAgW25nQ2xhc3NdPVwieyBlcnJvcjogZXJyb3IoKSwgaGlnaGxpZ2h0ZWQ6IGhpZ2hsaWdodGVkKCkgfVwiXG4gICAgICAgICAgW25nU3R5bGVdPVwiY3VzdG9tU3R5bGUoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5KClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwiYXJpYVJlcXVpcmVkKClcIlxuICAgICAgICAgIFt0eXBlXT1cImlzSGlkZGVuSW5wdXQoKSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImludGVybmFsVmFsdWUoKVwiXG4gICAgICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIlxuICAgICAgICAgIFthdHRyLmF1dG9jb21wbGV0ZV09XCJhdXRvY29tcGxldGUoKVwiXG4gICAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkU2hvd1JpZ2h0SWNvbigpXCI+XG4gICAgICAgICAgPHJ0ZS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJuZXV0cmFsXCJcbiAgICAgICAgICAgIHNpemU9XCJzXCJcbiAgICAgICAgICAgIGNsYXNzPVwicmlnaHQtaWNvblwiXG4gICAgICAgICAgICBkYXRhLXRlc3RpZD1cInJpZ2h0LWljb25cIlxuICAgICAgICAgICAgW2NvbXBhY3RTcGFjaW5nXT1cInRydWVcIlxuICAgICAgICAgICAgW25hbWVdPVwicmlnaHRJY29uTmFtZSgpXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwicmlnaHRJY29uQXJpYUxhYmVsKClcIlxuICAgICAgICAgICAgKGNsaWNrRXZlbnQpPVwib25SaWdodEljb25DbGlja0hhbmRsZXIoKVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyaWdodC1zbG90XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltiYXNlVGV4dElucHV0UmlnaHRTbG90XVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImFzc2lzdGl2ZVRleHRMYWJlbCgpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiYXNzaXN0aXZlLXRleHRcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInNob3dBc3Npc3RpdmVJY29uKCkgJiYgYXNzaXN0aXZlQXBwZWFyYW5jZSgpID09PSAnZXJyb3InXCI+XG4gICAgICAgICAgPHJ0ZS1pY29uIG5hbWU9XCJlcnJvclwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYXNzaXN0aXZlLWljb24tZXJyb3JcIiBbc2l6ZV09XCIxMlwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Fzc2lzdGl2ZUljb24oKSAmJiBhc3Npc3RpdmVBcHBlYXJhbmNlKCkgPT09ICdzdWNjZXNzJ1wiPlxuICAgICAgICAgIDxydGUtaWNvbiBuYW1lPVwiY2hlY2tcIiBhcHBlYXJhbmNlPVwib3V0bGluZWRcIiBjbGFzcz1cImFzc2lzdGl2ZS1pY29uLXN1Y2Nlc3NcIiBbc2l6ZV09XCIxMlwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaXN0aXZlQXBwZWFyYW5jZSgpID09PSAnbGluayc7IGVsc2UgYXNzaXN0aXZlTGFiZWxcIj5cbiAgICAgICAgICA8cnRlLWxpbmsgW2xhYmVsXT1cImFzc2lzdGl2ZVRleHRMYWJlbCgpXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjYXNzaXN0aXZlTGFiZWw+XG4gICAgICAgICAgPHAgY2xhc3M9XCJhc3Npc3RpdmUtbGFiZWxcIiBbbmdDbGFzc109XCJhc3Npc3RpdmVBcHBlYXJhbmNlKClcIj5cbiAgICAgICAgICAgIHt7IGFzc2lzdGl2ZVRleHRMYWJlbCgpIH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5Q291bnRlcigpICYmIGxhYmVsUG9zaXRpb24oKSA9PT0gJ3NpZGUnXCI+XG4gICAgPHAgY2xhc3M9XCJpbnB1dC1jb3VudGVyXCIgZGF0YS10ZXN0aWQ9XCJpbnB1dC1jb3VudGVyXCI+e3sgY2hhcmFjdGVyQ291bnQoKSB9fS97eyBtYXhMZW5ndGgoKSB9fTwvcD5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
@@ -1,107 +1,12 @@
1
- import { CommonModule } from "@angular/common";
2
- import { ChangeDetectionStrategy, Component, input, output, signal, computed, effect } from "@angular/core";
3
- import { IconComponent } from "../icon/icon.component";
4
- import { IconButtonComponent } from "../icon-button/icon-button.component";
5
- import { LinkComponent } from "../link/link.component";
1
+ import { ChangeDetectionStrategy, Component } from "@angular/core";
2
+ import { BaseTextInputComponent } from "./base-text-input/base-text-input.component";
6
3
  import * as i0 from "@angular/core";
7
- import * as i1 from "@angular/common";
8
- export class TextInputComponent {
9
- constructor() {
10
- this.id = input();
11
- this.label = input("");
12
- this.labelPosition = input("top");
13
- this.required = input(false);
14
- this.showCounter = input(false);
15
- this.value = input("");
16
- this.internalValue = signal(this.value());
17
- this.leftIcon = input(null);
18
- this.showRightIcon = input(true);
19
- this.rightIconAction = input("clean");
20
- this.showLabelRequirement = input(false);
21
- this.assistiveAppearance = input("description");
22
- this.showAssistiveIcon = input(false);
23
- this.assistiveTextLabel = input("");
24
- this.error = input(false);
25
- this.maxLength = input(150);
26
- this.disabled = input(false);
27
- this.readOnly = input(false);
28
- this.width = input("300px");
29
- this.ariaLabel = input("");
30
- this.ariaRequired = input(false);
31
- this.ariaLabelledby = input("");
32
- this.valueChange = output();
33
- this.rightIconClick = output();
34
- this.characterCount = signal(this.internalValue().length);
35
- this.isHiddenInput = signal(this.showRightIcon() && this.rightIconAction() === "visibilityOn");
36
- this.displayedLeftIcon = computed(() => (this.error() ? "error" : this.leftIcon()));
37
- this.displayCounter = computed(() => this.showCounter() && typeof this.maxLength() === "number");
38
- this.rightIconName = computed(() => {
39
- if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
40
- return this.isHiddenInput() ? "visibility-show" : "visibility-hide";
41
- }
42
- else if (this.rightIconAction() === "clean") {
43
- return "close";
44
- }
45
- return "";
46
- });
47
- this.rightIconAriaLabel = computed(() => {
48
- if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
49
- return this.isHiddenInput() ? "show text" : "hide text";
50
- }
51
- else if (this.rightIconAction() === "clean") {
52
- return "clear";
53
- }
54
- return "";
55
- });
56
- this.shouldShowRightIcon = computed(() => {
57
- if (this.readOnly() || this.disabled()) {
58
- return false;
59
- }
60
- if (this.rightIconAction() === "clean") {
61
- return !!this.internalValue()?.length && this.showRightIcon();
62
- }
63
- return this.showRightIcon() && !!this.rightIconAction();
64
- });
65
- this.lastParentValue = this.value();
66
- effect(() => {
67
- const parentValue = this.value();
68
- if (parentValue !== this.lastParentValue) {
69
- this.lastParentValue = parentValue;
70
- this.internalValue.set(parentValue);
71
- }
72
- }, { allowSignalWrites: true });
73
- }
74
- handleChange(event) {
75
- const input = event.target;
76
- this.internalValue.set(input.value);
77
- this.valueChange.emit(input.value);
78
- if (this.maxLength()) {
79
- this.characterCount.set(input.value.length);
80
- }
81
- this.valueChange.emit(input.value);
82
- }
83
- onRightIconClickHandler() {
84
- this.rightIconClick.emit();
85
- this.triggerRightIconAction();
86
- }
87
- toggleInputVisibility() {
88
- this.isHiddenInput.set(!this.isHiddenInput());
89
- }
90
- triggerRightIconAction() {
91
- if (this.rightIconAction() === "clean") {
92
- this.internalValue.set("");
93
- this.valueChange.emit("");
94
- this.characterCount.set(0);
95
- }
96
- if (["visibilityOn", "visibilityOff"].includes(this.rightIconAction())) {
97
- this.toggleInputVisibility();
98
- }
99
- }
100
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
101
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: TextInputComponent, isStandalone: true, selector: "rte-text-input", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, labelPosition: { classPropertyName: "labelPosition", publicName: "labelPosition", isSignal: true, isRequired: false, transformFunction: null }, required: { classPropertyName: "required", publicName: "required", isSignal: true, isRequired: false, transformFunction: null }, showCounter: { classPropertyName: "showCounter", publicName: "showCounter", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, leftIcon: { classPropertyName: "leftIcon", publicName: "leftIcon", isSignal: true, isRequired: false, transformFunction: null }, showRightIcon: { classPropertyName: "showRightIcon", publicName: "showRightIcon", isSignal: true, isRequired: false, transformFunction: null }, rightIconAction: { classPropertyName: "rightIconAction", publicName: "rightIconAction", isSignal: true, isRequired: false, transformFunction: null }, showLabelRequirement: { classPropertyName: "showLabelRequirement", publicName: "showLabelRequirement", isSignal: true, isRequired: false, transformFunction: null }, assistiveAppearance: { classPropertyName: "assistiveAppearance", publicName: "assistiveAppearance", isSignal: true, isRequired: false, transformFunction: null }, showAssistiveIcon: { classPropertyName: "showAssistiveIcon", publicName: "showAssistiveIcon", isSignal: true, isRequired: false, transformFunction: null }, assistiveTextLabel: { classPropertyName: "assistiveTextLabel", publicName: "assistiveTextLabel", isSignal: true, isRequired: false, transformFunction: null }, error: { classPropertyName: "error", publicName: "error", isSignal: true, isRequired: false, transformFunction: null }, maxLength: { classPropertyName: "maxLength", publicName: "maxLength", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null }, readOnly: { classPropertyName: "readOnly", publicName: "readOnly", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, ariaRequired: { classPropertyName: "ariaRequired", publicName: "ariaRequired", isSignal: true, isRequired: false, transformFunction: null }, ariaLabelledby: { classPropertyName: "ariaLabelledby", publicName: "ariaLabelledby", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { valueChange: "valueChange", rightIconClick: "rightIconClick" }, ngImport: i0, template: "<div\n class=\"container {{labelPosition()}}\"\n [ngClass]=\"{'error': error()}\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">\n {{ characterCount() }}/{{ maxLength() }}\n </p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div\n class=\"input {{labelPosition()}}\"\n [ngClass]=\"{'disabled': disabled(), 'read-only': readOnly()}\"\n >\n <div class=\"input-bar\" [ngClass]=\"{'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction()}\">\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon\n appearance=\"outlined\"\n class=\"left-icon\"\n aria-hidden=\"true\"\n [name]=\"displayedLeftIcon()!\"\n />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{'error': error()}\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"transparent\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [name]=\"rightIconName() || 'close'\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (click)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">\n {{ characterCount() }}/{{ maxLength() }}\n </p>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.container{display:flex;width:300px;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:0px}.container.side{align-items:center;flex-direction:row}.container.side .text{width:auto;align-items:center}.container.side .input-counter{padding:0 8px}.container.error .input-container .input .input-bar .left-icon{color:var(--content-danger-default)}.container .text{width:100%;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;padding:2px 8px;box-sizing:border-box}.container .text .label-container{display:flex;align-items:flex-start}.container .text .label-container .input-label{color:var(--content-secondary);font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.container .text .label-container .required-text{color:var(--content-tertiary);align-self:center;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin-block:0px;margin-inline:4px}.container .text .label-container .required-icon-container{color:var(--content-danger-default);display:flex;align-items:center;justify-content:center;margin-inline:4px}.container .input-container{display:flex;flex-direction:column;height:32px;width:100%;min-width:48px;min-height:32px;max-height:32px;align-self:stretch}.container .input-container .input .input-bar{position:relative;display:flex;align-items:center}.container .input-container .input .input-bar.with-left-icon .input-field{padding-left:32px}.container .input-container .input .input-bar.with-right-icon .input-field{padding-right:32px}.container .input-container .input .input-bar .left-icon{position:absolute;left:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button{color:var(--content-secondary);height:24px;width:24px;padding:0 2px}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus{outline:none}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:8px}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus-visible:after{display:none}.container .input-container .input .input-bar .input-field{box-sizing:border-box;appearance:none;width:100%;height:32px;min-width:48px;max-height:32px;border-radius:4px;border:1px solid var(--border-secondary);padding:4px 16px;background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-default);transition:border .2s,outline .2s;color:var(--content-primary);box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.container .input-container .input .input-bar .input-field:hover{outline:1px solid var(--border-primary);border-color:var(--border-primary)}.container .input-container .input .input-bar .input-field:focus{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:active{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:disabled,.container .input-container .input .input-bar .input-field:read-only{outline:1px solid var(--border-brand-disabled);border-color:var(--border-disabled);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-disabled);cursor:not-allowed}.container .input-container .input .input-bar .input-field.error{outline:1px solid var(--border-danger);border-color:var(--border-danger)}.container .input-container .assistive-text{display:flex;align-items:center;gap:4px;padding:4px 8px}.container .input-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.container .input-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.container .input-container .assistive-text .assistive-label{transition:color .2s}.container .input-container .assistive-text .assistive-label.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.description{color:var(--content-tertiary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.input-counter{color:var(--content-tertiary);font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;margin-block:0px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "rte-icon", inputs: ["name", "size", "color", "classes", "appearance"] }, { kind: "component", type: IconButtonComponent, selector: "rte-icon-button", inputs: ["disabled", "name", "size", "variant", "type", "appearance", "compactSpacing", "ariaLabel", "ariaLabelledBy", "badgeCount", "badgeContent", "badgeType", "badgeIcon"], outputs: ["click"] }, { kind: "component", type: LinkComponent, selector: "rte-link", inputs: ["label", "href", "subtle", "externalLink", "reverse", "maxWidth"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4
+ export class TextInputComponent extends BaseTextInputComponent {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.14", type: TextInputComponent, isStandalone: true, selector: "rte-text-input", usesInheritance: true, ngImport: i0, template: "<rte-base-text-input\n [id]=\"id()\"\n [label]=\"label()\"\n [labelPosition]=\"labelPosition()\"\n [required]=\"required()\"\n [showCounter]=\"showCounter()\"\n [value]=\"value()\"\n [leftIcon]=\"leftIcon()\"\n [showRightIcon]=\"showRightIcon()\"\n [rightIconAction]=\"rightIconAction()\"\n [showLabelRequirement]=\"showLabelRequirement()\"\n [assistiveAppearance]=\"assistiveAppearance()\"\n [showAssistiveIcon]=\"showAssistiveIcon()\"\n [assistiveTextLabel]=\"assistiveTextLabel()\"\n [error]=\"error()\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [width]=\"width()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaRequired]=\"ariaRequired()\"\n [ariaLabelledby]=\"ariaLabelledby()\"\n [customStyle]=\"customStyle()\"\n [autocomplete]=\"autocomplete()\"\n (valueChange)=\"valueChange.emit($event)\"\n (rightIconClick)=\"rightIconClick.emit()\"\n/>\n", dependencies: [{ kind: "component", type: BaseTextInputComponent, selector: "rte-base-text-input", inputs: ["id", "label", "labelPosition", "placeholder", "required", "showCounter", "value", "leftIcon", "showRightIcon", "rightIconAction", "showLabelRequirement", "assistiveAppearance", "showAssistiveIcon", "assistiveTextLabel", "error", "maxLength", "disabled", "readOnly", "width", "ariaLabel", "ariaRequired", "ariaLabelledby", "compactSpacing", "customStyle", "autocomplete", "highlighted"], outputs: ["valueChange", "rightIconClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
102
7
  }
103
8
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: TextInputComponent, decorators: [{
104
9
  type: Component,
105
- args: [{ selector: "rte-text-input", imports: [CommonModule, IconComponent, IconButtonComponent, LinkComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\n class=\"container {{labelPosition()}}\"\n [ngClass]=\"{'error': error()}\"\n [style.width]=\"width()\"\n>\n <ng-container *ngIf=\"label()\">\n <div class=\"text\">\n <div class=\"label-container\">\n <label class=\"input-label\" [id]=\"'input-label-' + id\" [for]=\"id()\">\n {{ label() }}\n </label>\n <ng-container *ngIf=\"required()\">\n <ng-container *ngIf=\"showLabelRequirement(); else requiredIcon\">\n <span class=\"required-text\">(obligatoire)</span>\n </ng-container>\n <ng-template #requiredIcon>\n <span class=\"required-icon-container\">\n <rte-icon name=\"asterisk\" [size]=\"8\" />\n </span>\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"!required() && showLabelRequirement()\">\n <span class=\"required-text\">(optionnel)</span>\n </ng-container>\n </div>\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'top'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">\n {{ characterCount() }}/{{ maxLength() }}\n </p>\n </ng-container>\n </div>\n </ng-container>\n\n <div class=\"input-container\">\n <div\n class=\"input {{labelPosition()}}\"\n [ngClass]=\"{'disabled': disabled(), 'read-only': readOnly()}\"\n >\n <div class=\"input-bar\" [ngClass]=\"{'with-left-icon': displayedLeftIcon(), 'with-right-icon': rightIconAction()}\">\n <ng-container *ngIf=\"displayedLeftIcon()\">\n <rte-icon\n appearance=\"outlined\"\n class=\"left-icon\"\n aria-hidden=\"true\"\n [name]=\"displayedLeftIcon()!\"\n />\n </ng-container>\n\n <input\n #inputRef\n class=\"input-field\"\n [id]=\"id()\"\n [ngClass]=\"{'error': error()}\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.aria-labelledby]=\"ariaLabelledby()\"\n [attr.aria-required]=\"ariaRequired()\"\n [type]=\"isHiddenInput() ? 'password' : 'text'\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [value]=\"internalValue()\"\n (input)=\"handleChange($event)\"\n />\n\n <ng-container *ngIf=\"shouldShowRightIcon()\">\n <rte-icon-button\n appearance=\"outlined\"\n variant=\"transparent\"\n class=\"right-icon\"\n data-testid=\"right-icon\"\n [name]=\"rightIconName() || 'close'\"\n [ariaLabel]=\"rightIconAriaLabel()\"\n (click)=\"onRightIconClickHandler()\"\n />\n </ng-container>\n </div>\n </div>\n\n <ng-container *ngIf=\"assistiveTextLabel()\">\n <div class=\"assistive-text\">\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'error'\">\n <rte-icon name=\"error\" appearance=\"outlined\" class=\"assistive-icon-error\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"showAssistiveIcon() && assistiveAppearance() === 'success'\">\n <rte-icon name=\"check\" appearance=\"outlined\" class=\"assistive-icon-success\" [size]=\"12\" />\n </ng-container>\n <ng-container *ngIf=\"assistiveAppearance() === 'link'; else assistiveLabel\">\n <rte-link [label]=\"assistiveTextLabel()\" />\n </ng-container>\n <ng-template #assistiveLabel>\n <p class=\"assistive-label\" [ngClass]=\"assistiveAppearance()\">\n {{ assistiveTextLabel() }}\n </p>\n </ng-template>\n </div>\n </ng-container>\n </div>\n\n <ng-container *ngIf=\"displayCounter() && labelPosition() === 'side'\">\n <p class=\"input-counter\" data-testid=\"input-counter\">\n {{ characterCount() }}/{{ maxLength() }}\n </p>\n </ng-container>\n</div>", styles: ["@import\"https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:wght,FILL,GRAD@400,0,0&display=swap\";@import\"https://fonts.googleapis.com/css2?family=Nunito:ital,wght@0,200..1000;1,200..1000&display=swap\";.container{display:flex;width:300px;padding:0;flex-direction:column;justify-content:center;align-items:flex-start;gap:0px}.container.side{align-items:center;flex-direction:row}.container.side .text{width:auto;align-items:center}.container.side .input-counter{padding:0 8px}.container.error .input-container .input .input-bar .left-icon{color:var(--content-danger-default)}.container .text{width:100%;display:flex;flex-direction:row;align-items:flex-end;justify-content:space-between;padding:2px 8px;box-sizing:border-box}.container .text .label-container{display:flex;align-items:flex-start}.container .text .label-container .input-label{color:var(--content-secondary);font-family:Arial;font-size:14px;font-weight:400;line-height:20px;letter-spacing:0px}.container .text .label-container .required-text{color:var(--content-tertiary);align-self:center;font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin-block:0px;margin-inline:4px}.container .text .label-container .required-icon-container{color:var(--content-danger-default);display:flex;align-items:center;justify-content:center;margin-inline:4px}.container .input-container{display:flex;flex-direction:column;height:32px;width:100%;min-width:48px;min-height:32px;max-height:32px;align-self:stretch}.container .input-container .input .input-bar{position:relative;display:flex;align-items:center}.container .input-container .input .input-bar.with-left-icon .input-field{padding-left:32px}.container .input-container .input .input-bar.with-right-icon .input-field{padding-right:32px}.container .input-container .input .input-bar .left-icon{position:absolute;left:8px;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon{position:absolute;right:8px;display:flex;align-items:center;justify-content:center;color:var(--content-secondary)}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button{color:var(--content-secondary);height:24px;width:24px;padding:0 2px}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus{outline:none}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus-visible{outline:1px solid var(--border-brand-focused);border-radius:8px}.container .input-container .input .input-bar .right-icon ::ng-deep .rte-icon-button:focus-visible:after{display:none}.container .input-container .input .input-bar .input-field{box-sizing:border-box;appearance:none;width:100%;height:32px;min-width:48px;max-height:32px;border-radius:4px;border:1px solid var(--border-secondary);padding:4px 16px;background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-default);transition:border .2s,outline .2s;color:var(--content-primary);box-shadow:inset 0 1px 4px 0 var(--elevation-shadow-key)}.container .input-container .input .input-bar .input-field:hover{outline:1px solid var(--border-primary);border-color:var(--border-primary)}.container .input-container .input .input-bar .input-field:focus{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:active{outline:1px solid var(--border-brand-default);border-color:var(--border-brand-default)}.container .input-container .input .input-bar .input-field:disabled,.container .input-container .input .input-bar .input-field:read-only{outline:1px solid var(--border-brand-disabled);border-color:var(--border-disabled);background:linear-gradient(0deg,var(--elevation-surface-inner-shadow) 0%,var(--elevation-surface-inner-shadow) 100%),var(--background-disabled);cursor:not-allowed}.container .input-container .input .input-bar .input-field.error{outline:1px solid var(--border-danger);border-color:var(--border-danger)}.container .input-container .assistive-text{display:flex;align-items:center;gap:4px;padding:4px 8px}.container .input-container .assistive-text .assistive-icon-error{color:var(--content-danger-default)}.container .input-container .assistive-text .assistive-icon-success{color:var(--content-success-default)}.container .input-container .assistive-text .assistive-label{transition:color .2s}.container .input-container .assistive-text .assistive-label.error{color:var(--content-danger-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.success{color:var(--content-success-default);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:700;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.container .input-container .assistive-text .assistive-label.description{color:var(--content-tertiary);font-feature-settings:\"liga\" off,\"clig\" off;font-style:normal;font-family:Arial;font-weight:400;font-size:12px;line-height:16px;letter-spacing:0px;margin:0}.input-counter{color:var(--content-tertiary);font-family:Arial;font-size:12px;font-weight:400;line-height:16px;letter-spacing:0px;margin-block:0px}\n"] }]
106
- }], ctorParameters: () => [] });
107
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFNUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRXZELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzNFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7O0FBVXZELE1BQU0sT0FBTyxrQkFBa0I7SUErRDdCO1FBOURTLE9BQUUsR0FBRyxLQUFLLEVBQVUsQ0FBQztRQUNyQixVQUFLLEdBQUcsS0FBSyxDQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQzFCLGtCQUFhLEdBQUcsS0FBSyxDQUFpQixLQUFLLENBQUMsQ0FBQztRQUM3QyxhQUFRLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLGdCQUFXLEdBQUcsS0FBSyxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBQ3BDLFVBQUssR0FBRyxLQUFLLENBQVMsRUFBRSxDQUFDLENBQUM7UUFDMUIsa0JBQWEsR0FBRyxNQUFNLENBQVMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7UUFDN0MsYUFB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dUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsLCBjb21wdXRlZCwgZWZmZWN0IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgSWNvbkNvbXBvbmVudCB9IGZyb20gXCIuLi9pY29uL2ljb24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBSZWd1bGFySWNvbklkS2V5LCBUb2dnbGFibGVJY29uSWRLZXkgfSBmcm9tIFwiLi4vaWNvbi9pY29uLnNlcnZpY2VcIjtcbmltcG9ydCB7IEljb25CdXR0b25Db21wb25lbnQgfSBmcm9tIFwiLi4vaWNvbi1idXR0b24vaWNvbi1idXR0b24uY29tcG9uZW50XCI7XG5pbXBvcnQgeyBMaW5rQ29tcG9uZW50IH0gZnJvbSBcIi4uL2xpbmsvbGluay5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInJ0ZS10ZXh0LWlucHV0XCIsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEljb25Db21wb25lbnQsIEljb25CdXR0b25Db21wb25lbnQsIExpbmtDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWxcIixcbiAgc3R5bGVVcmw6IFwiLi90ZXh0LWlucHV0LmNvbXBvbmVudC5zY3NzXCIsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxufSlcbmV4cG9ydCBjbGFzcyBUZXh0SW5wdXRDb21wb25lbnQge1xuICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgbGFiZWwgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuICByZWFkb25seSBsYWJlbFBvc2l0aW9uID0gaW5wdXQ8XCJ0b3BcIiB8IFwic2lkZVwiPihcInRvcFwiKTtcbiAgcmVhZG9ubHkgcmVxdWlyZWQgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IHNob3dDb3VudGVyID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSB2YWx1ZSA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IGludGVybmFsVmFsdWUgPSBzaWduYWw8c3RyaW5nPih0aGlzLnZhbHVlKCkpO1xuICByZWFkb25seSBsZWZ0SWNvbiA9IGlucHV0PFJlZ3VsYXJJY29uSWRLZXkgfCBUb2dnbGFibGVJY29uSWRLZXkgfCBudWxsPihudWxsKTtcbiAgcmVhZG9ubHkgc2hvd1JpZ2h0SWNvbiA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSByaWdodEljb25BY3Rpb24gPSBpbnB1dDxcImNsZWFuXCIgfCBcInZpc2liaWxpdHlPblwiIHwgXCJ2aXNpYmlsaXR5T2ZmXCI+KFwiY2xlYW5cIik7XG4gIHJlYWRvbmx5IHNob3dMYWJlbFJlcXVpcmVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhc3Npc3RpdmVBcHBlYXJhbmNlID0gaW5wdXQ8XCJkZXNjcmlwdGlvblwiIHwgXCJlcnJvclwiIHwgXCJzdWNjZXNzXCIgfCBcImxpbmtcIj4oXCJkZXNjcmlwdGlvblwiKTtcbiAgcmVhZG9ubHkgc2hvd0Fzc2lzdGl2ZUljb24gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGFzc2lzdGl2ZVRleHRMYWJlbCA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IGVycm9yID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBtYXhMZW5ndGggPSBpbnB1dDxudW1iZXI+KDE1MCk7XG4gIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSByZWFkT25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgd2lkdGggPSBpbnB1dDxzdHJpbmc+KFwiMzAwcHhcIik7XG4gIHJlYWRvbmx5IGFyaWFMYWJlbCA9IGlucHV0PHN0cmluZz4oXCJcIik7XG4gIHJlYWRvbmx5IGFyaWFSZXF1aXJlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgYXJpYUxhYmVsbGVkYnkgPSBpbnB1dDxzdHJpbmc+KFwiXCIpO1xuXG4gIHJlYWRvbmx5IHZhbHVlQ2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmlnaHRJY29uQ2xpY2sgPSBvdXRwdXQ8dm9pZD4oKTtcblxuICByZWFkb25seSBjaGFyYWN0ZXJDb3VudCA9IHNpZ25hbDxudW1iZXI+KHRoaXMuaW50ZXJuYWxWYWx1ZSgpLmxlbmd0aCk7XG4gIHJlYWRvbmx5IGlzSGlkZGVuSW5wdXQgPSBzaWduYWw8Ym9vbGVhbj4odGhpcy5zaG93UmlnaHRJY29uKCkgJiYgdGhpcy5yaWdodEljb25BY3Rpb24oKSA9PT0gXCJ2aXNpYmlsaXR5T25cIik7XG4gIHJlYWRvbmx5IGRpc3BsYXllZExlZnRJY29uID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuZXJyb3IoKSA/IFwiZXJyb3JcIiA6IHRoaXMubGVmdEljb24oKSkpO1xuXG4gIHJlYWRvbmx5IGRpc3BsYXlDb3VudGVyID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5zaG93Q291bnRlcigpICYmIHR5cGVvZiB0aGlzLm1heExlbmd0aCgpID09PSBcIm51bWJlclwiKTtcblxuICByZWFkb25seSByaWdodEljb25OYW1lID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmIChbXCJ2aXNpYmlsaXR5T25cIiwgXCJ2aXNpYmlsaXR5T2ZmXCJdLmluY2x1ZGVzKHRoaXMucmlnaHRJY29uQWN0aW9uKCkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5pc0hpZGRlbklucHV0KCkgPyBcInZpc2liaWxpdHktc2hvd1wiIDogXCJ2aXNpYmlsaXR5LWhpZGVcIjtcbiAgICB9IGVsc2UgaWYgKHRoaXMucmlnaHRJY29uQWN0aW9uKCkgPT09IFwiY2xlYW5cIikge1xuICAgICAgcmV0dXJuIFwiY2xvc2VcIjtcbiAgICB9XG4gICAgcmV0dXJuIFwiXCI7XG4gIH0pO1xuXG4gIHJlYWRvbmx5IHJpZ2h0SWNvbkFyaWFMYWJlbCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBpZiAoW1widmlzaWJpbGl0eU9uXCIsIFwidmlzaWJpbGl0eU9mZlwiXS5pbmNsdWRlcyh0aGlzLnJpZ2h0SWNvbkFjdGlvbigpKSkge1xuICAgICAgcmV0dXJuIHRoaXMuaXNIaWRkZW5JbnB1dCgpID8gXCJzaG93IHRleHRcIiA6IFwiaGlkZSB0ZXh0XCI7XG4gICAgfSBlbHNlIGlmICh0aGlzLnJpZ2h0SWNvbkFjdGlvbigpID09PSBcImNsZWFuXCIpIHtcbiAgICAgIHJldHVybiBcImNsZWFyXCI7XG4gICAgfVxuICAgIHJldHVybiBcIlwiO1xuICB9KTtcblxuICByZWFkb25seSBzaG91bGRTaG93UmlnaHRJY29uID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGlmICh0aGlzLnJlYWRPbmx5KCkgfHwgdGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnJpZ2h0SWNvbkFjdGlvbigpID09PSBcImNsZWFuXCIpIHtcbiAgICAgIHJldHVybiAhIXRoaXMuaW50ZXJuYWxWYWx1ZSgpPy5sZW5ndGggJiYgdGhpcy5zaG93UmlnaHRJY29uKCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNob3dSaWdodEljb24oKSAmJiAhIXRoaXMucmlnaHRJY29uQWN0aW9uKCk7XG4gIH0pO1xuXG4gIHByaXZhdGUgbGFzdFBhcmVudFZhbHVlID0gdGhpcy52YWx1ZSgpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFyZW50VmFsdWUgPSB0aGlzLnZhbHVlKCk7XG4gICAgICAgIGlmIChwYXJlbnRWYWx1ZSAhPT0gdGhpcy5sYXN0UGFyZW50VmFsdWUpIHtcbiAgICAgICAgICB0aGlzLmxhc3RQYXJlbnRWYWx1ZSA9IHBhcmVudFZhbHVlO1xuICAgICAgICAgIHRoaXMuaW50ZXJuYWxWYWx1ZS5zZXQocGFyZW50VmFsdWUpO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBoYW5kbGVDaGFuZ2UoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXQgPSBldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudDtcbiAgICB0aGlzLmludGVybmFsVmFsdWUuc2V0KGlucHV0LnZhbHVlKTtcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaW5wdXQudmFsdWUpO1xuICAgIGlmICh0aGlzLm1heExlbmd0aCgpKSB7XG4gICAgICB0aGlzLmNoYXJhY3RlckNvdW50LnNldChpbnB1dC52YWx1ZS5sZW5ndGgpO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoaW5wdXQudmFsdWUpO1xuICB9XG5cbiAgb25SaWdodEljb25DbGlja0hhbmRsZXIoKTogdm9pZCB7XG4gICAgdGhpcy5yaWdodEljb25DbGljay5lbWl0KCk7XG4gICAgdGhpcy50cmlnZ2VyUmlnaHRJY29uQWN0aW9uKCk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUlucHV0VmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICB0aGlzLmlzSGlkZGVuSW5wdXQuc2V0KCF0aGlzLmlzSGlkZGVuSW5wdXQoKSk7XG4gIH1cblxuICBwcml2YXRlIHRyaWdnZXJSaWdodEljb25BY3Rpb24oKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucmlnaHRJY29uQWN0aW9uKCkgPT09IFwiY2xlYW5cIikge1xuICAgICAgdGhpcy5pbnRlcm5hbFZhbHVlLnNldChcIlwiKTtcbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChcIlwiKTtcbiAgICAgIHRoaXMuY2hhcmFjdGVyQ291bnQuc2V0KDApO1xuICAgIH1cbiAgICBpZiAoW1widmlzaWJpbGl0eU9uXCIsIFwidmlzaWJpbGl0eU9mZlwiXS5pbmNsdWRlcyh0aGlzLnJpZ2h0SWNvbkFjdGlvbigpKSkge1xuICAgICAgdGhpcy50b2dnbGVJbnB1dFZpc2liaWxpdHkoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJjb250YWluZXIge3tsYWJlbFBvc2l0aW9uKCl9fVwiXG4gIFtuZ0NsYXNzXT1cInsnZXJyb3InOiBlcnJvcigpfVwiXG4gIFtzdHlsZS53aWR0aF09XCJ3aWR0aCgpXCJcbj5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImxhYmVsKClcIj5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxhYmVsLWNvbnRhaW5lclwiPlxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJpbnB1dC1sYWJlbFwiIFtpZF09XCInaW5wdXQtbGFiZWwtJyArIGlkXCIgW2Zvcl09XCJpZCgpXCI+XG4gICAgICAgICAge3sgbGFiZWwoKSB9fVxuICAgICAgICA8L2xhYmVsPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicmVxdWlyZWQoKVwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93TGFiZWxSZXF1aXJlbWVudCgpOyBlbHNlIHJlcXVpcmVkSWNvblwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJyZXF1aXJlZC10ZXh0XCI+KG9ibGlnYXRvaXJlKTwvc3Bhbj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI3JlcXVpcmVkSWNvbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtaWNvbi1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgPHJ0ZS1pY29uIG5hbWU9XCJhc3Rlcmlza1wiIFtzaXplXT1cIjhcIiAvPlxuICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlcXVpcmVkKCkgJiYgc2hvd0xhYmVsUmVxdWlyZW1lbnQoKVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicmVxdWlyZWQtdGV4dFwiPihvcHRpb25uZWwpPC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvZGl2PlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlDb3VudGVyKCkgJiYgbGFiZWxQb3NpdGlvbigpID09PSAndG9wJ1wiPlxuICAgICAgICA8cCBjbGFzcz1cImlucHV0LWNvdW50ZXJcIiBkYXRhLXRlc3RpZD1cImlucHV0LWNvdW50ZXJcIj5cbiAgICAgICAgICB7eyBjaGFyYWN0ZXJDb3VudCgpIH19L3t7IG1heExlbmd0aCgpIH19XG4gICAgICAgIDwvcD5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cblxuICA8ZGl2IGNsYXNzPVwiaW5wdXQtY29udGFpbmVyXCI+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJpbnB1dCB7e2xhYmVsUG9zaXRpb24oKX19XCJcbiAgICAgIFtuZ0NsYXNzXT1cInsnZGlzYWJsZWQnOiBkaXNhYmxlZCgpLCAncmVhZC1vbmx5JzogcmVhZE9ubHkoKX1cIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1iYXJcIiBbbmdDbGFzc109XCJ7J3dpdGgtbGVmdC1pY29uJzogZGlzcGxheWVkTGVmdEljb24oKSwgJ3dpdGgtcmlnaHQtaWNvbic6IHJpZ2h0SWNvbkFjdGlvbigpfVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZGlzcGxheWVkTGVmdEljb24oKVwiPlxuICAgICAgICAgIDxydGUtaWNvblxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIGNsYXNzPVwibGVmdC1pY29uXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbmFtZV09XCJkaXNwbGF5ZWRMZWZ0SWNvbigpIVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG5cbiAgICAgICAgPGlucHV0XG4gICAgICAgICAgI2lucHV0UmVmXG4gICAgICAgICAgY2xhc3M9XCJpbnB1dC1maWVsZFwiXG4gICAgICAgICAgW2lkXT1cImlkKClcIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cInsnZXJyb3InOiBlcnJvcigpfVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJhcmlhTGFiZWwoKVwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5KClcIlxuICAgICAgICAgIFthdHRyLmFyaWEtcmVxdWlyZWRdPVwiYXJpYVJlcXVpcmVkKClcIlxuICAgICAgICAgIFt0eXBlXT1cImlzSGlkZGVuSW5wdXQoKSA/ICdwYXNzd29yZCcgOiAndGV4dCdcIlxuICAgICAgICAgIFttYXhMZW5ndGhdPVwibWF4TGVuZ3RoKClcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgICAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHkoKVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImludGVybmFsVmFsdWUoKVwiXG4gICAgICAgICAgKGlucHV0KT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgLz5cblxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvdWxkU2hvd1JpZ2h0SWNvbigpXCI+XG4gICAgICAgICAgPHJ0ZS1pY29uLWJ1dHRvblxuICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCJcbiAgICAgICAgICAgIHZhcmlhbnQ9XCJ0cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBjbGFzcz1cInJpZ2h0LWljb25cIlxuICAgICAgICAgICAgZGF0YS10ZXN0aWQ9XCJyaWdodC1pY29uXCJcbiAgICAgICAgICAgIFtuYW1lXT1cInJpZ2h0SWNvbk5hbWUoKSB8fCAnY2xvc2UnXCJcbiAgICAgICAgICAgIFthcmlhTGFiZWxdPVwicmlnaHRJY29uQXJpYUxhYmVsKClcIlxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmlnaHRJY29uQ2xpY2tIYW5kbGVyKClcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXNzaXN0aXZlVGV4dExhYmVsKClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJhc3Npc3RpdmUtdGV4dFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd0Fzc2lzdGl2ZUljb24oKSAmJiBhc3Npc3RpdmVBcHBlYXJhbmNlKCkgPT09ICdlcnJvcidcIj5cbiAgICAgICAgICA8cnRlLWljb24gbmFtZT1cImVycm9yXCIgYXBwZWFyYW5jZT1cIm91dGxpbmVkXCIgY2xhc3M9XCJhc3Npc3RpdmUtaWNvbi1lcnJvclwiIFtzaXplXT1cIjEyXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzaG93QXNzaXN0aXZlSWNvbigpICYmIGFzc2lzdGl2ZUFwcGVhcmFuY2UoKSA9PT0gJ3N1Y2Nlc3MnXCI+XG4gICAgICAgICAgPHJ0ZS1pY29uIG5hbWU9XCJjaGVja1wiIGFwcGVhcmFuY2U9XCJvdXRsaW5lZFwiIGNsYXNzPVwiYXNzaXN0aXZlLWljb24tc3VjY2Vzc1wiIFtzaXplXT1cIjEyXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhc3Npc3RpdmVBcHBlYXJhbmNlKCkgPT09ICdsaW5rJzsgZWxzZSBhc3Npc3RpdmVMYWJlbFwiPlxuICAgICAgICAgIDxydGUtbGluayBbbGFiZWxdPVwiYXNzaXN0aXZlVGV4dExhYmVsKClcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNhc3Npc3RpdmVMYWJlbD5cbiAgICAgICAgICA8cCBjbGFzcz1cImFzc2lzdGl2ZS1sYWJlbFwiIFtuZ0NsYXNzXT1cImFzc2lzdGl2ZUFwcGVhcmFuY2UoKVwiPlxuICAgICAgICAgICAge3sgYXNzaXN0aXZlVGV4dExhYmVsKCkgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlDb3VudGVyKCkgJiYgbGFiZWxQb3NpdGlvbigpID09PSAnc2lkZSdcIj5cbiAgICA8cCBjbGFzcz1cImlucHV0LWNvdW50ZXJcIiBkYXRhLXRlc3RpZD1cImlucHV0LWNvdW50ZXJcIj5cbiAgICAgIHt7IGNoYXJhY3RlckNvdW50KCkgfX0ve3sgbWF4TGVuZ3RoKCkgfX1cbiAgICA8L3A+XG4gIDwvbmctY29udGFpbmVyPlxuPC9kaXY+Il19
10
+ args: [{ selector: "rte-text-input", imports: [BaseTextInputComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<rte-base-text-input\n [id]=\"id()\"\n [label]=\"label()\"\n [labelPosition]=\"labelPosition()\"\n [required]=\"required()\"\n [showCounter]=\"showCounter()\"\n [value]=\"value()\"\n [leftIcon]=\"leftIcon()\"\n [showRightIcon]=\"showRightIcon()\"\n [rightIconAction]=\"rightIconAction()\"\n [showLabelRequirement]=\"showLabelRequirement()\"\n [assistiveAppearance]=\"assistiveAppearance()\"\n [showAssistiveIcon]=\"showAssistiveIcon()\"\n [assistiveTextLabel]=\"assistiveTextLabel()\"\n [error]=\"error()\"\n [maxLength]=\"maxLength()\"\n [disabled]=\"disabled()\"\n [readOnly]=\"readOnly()\"\n [width]=\"width()\"\n [ariaLabel]=\"ariaLabel()\"\n [ariaRequired]=\"ariaRequired()\"\n [ariaLabelledby]=\"ariaLabelledby()\"\n [customStyle]=\"customStyle()\"\n [autocomplete]=\"autocomplete()\"\n (valueChange)=\"valueChange.emit($event)\"\n (rightIconClick)=\"rightIconClick.emit()\"\n/>\n" }]
11
+ }] });
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1pbnB1dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy90ZXh0LWlucHV0L3RleHQtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvdGV4dC1pbnB1dC90ZXh0LWlucHV0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7O0FBU3JGLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxzQkFBc0I7K0dBQWpELGtCQUFrQjttR0FBbEIsa0JBQWtCLGlHQ1gvQixpNUJBMkJBLDRDRHJCWSxzQkFBc0I7OzRGQUtyQixrQkFBa0I7a0JBUDlCLFNBQVM7K0JBQ0UsZ0JBQWdCLFdBQ2pCLENBQUMsc0JBQXNCLENBQUMsY0FDckIsSUFBSSxtQkFFQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEJhc2VUZXh0SW5wdXRDb21wb25lbnQgfSBmcm9tIFwiLi9iYXNlLXRleHQtaW5wdXQvYmFzZS10ZXh0LWlucHV0LmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6IFwicnRlLXRleHQtaW5wdXRcIixcbiAgaW1wb3J0czogW0Jhc2VUZXh0SW5wdXRDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICB0ZW1wbGF0ZVVybDogXCIuL3RleHQtaW5wdXQuY29tcG9uZW50Lmh0bWxcIixcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFRleHRJbnB1dENvbXBvbmVudCBleHRlbmRzIEJhc2VUZXh0SW5wdXRDb21wb25lbnQge31cbiIsIjxydGUtYmFzZS10ZXh0LWlucHV0XG4gIFtpZF09XCJpZCgpXCJcbiAgW2xhYmVsXT1cImxhYmVsKClcIlxuICBbbGFiZWxQb3NpdGlvbl09XCJsYWJlbFBvc2l0aW9uKClcIlxuICBbcmVxdWlyZWRdPVwicmVxdWlyZWQoKVwiXG4gIFtzaG93Q291bnRlcl09XCJzaG93Q291bnRlcigpXCJcbiAgW3ZhbHVlXT1cInZhbHVlKClcIlxuICBbbGVmdEljb25dPVwibGVmdEljb24oKVwiXG4gIFtzaG93UmlnaHRJY29uXT1cInNob3dSaWdodEljb24oKVwiXG4gIFtyaWdodEljb25BY3Rpb25dPVwicmlnaHRJY29uQWN0aW9uKClcIlxuICBbc2hvd0xhYmVsUmVxdWlyZW1lbnRdPVwic2hvd0xhYmVsUmVxdWlyZW1lbnQoKVwiXG4gIFthc3Npc3RpdmVBcHBlYXJhbmNlXT1cImFzc2lzdGl2ZUFwcGVhcmFuY2UoKVwiXG4gIFtzaG93QXNzaXN0aXZlSWNvbl09XCJzaG93QXNzaXN0aXZlSWNvbigpXCJcbiAgW2Fzc2lzdGl2ZVRleHRMYWJlbF09XCJhc3Npc3RpdmVUZXh0TGFiZWwoKVwiXG4gIFtlcnJvcl09XCJlcnJvcigpXCJcbiAgW21heExlbmd0aF09XCJtYXhMZW5ndGgoKVwiXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZCgpXCJcbiAgW3JlYWRPbmx5XT1cInJlYWRPbmx5KClcIlxuICBbd2lkdGhdPVwid2lkdGgoKVwiXG4gIFthcmlhTGFiZWxdPVwiYXJpYUxhYmVsKClcIlxuICBbYXJpYVJlcXVpcmVkXT1cImFyaWFSZXF1aXJlZCgpXCJcbiAgW2FyaWFMYWJlbGxlZGJ5XT1cImFyaWFMYWJlbGxlZGJ5KClcIlxuICBbY3VzdG9tU3R5bGVdPVwiY3VzdG9tU3R5bGUoKVwiXG4gIFthdXRvY29tcGxldGVdPVwiYXV0b2NvbXBsZXRlKClcIlxuICAodmFsdWVDaGFuZ2UpPVwidmFsdWVDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgKHJpZ2h0SWNvbkNsaWNrKT1cInJpZ2h0SWNvbkNsaWNrLmVtaXQoKVwiXG4vPlxuIl19