@agorapulse/ui-components 20.0.0-beta → 20.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/action-dropdown/index.d.ts +13 -4
- package/agorapulse-ui-components-20.0.0.tgz +0 -0
- package/avatar/index.d.ts +2 -2
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs +18 -5
- package/fesm2022/agorapulse-ui-components-action-dropdown.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-directives.mjs +0 -2
- package/fesm2022/agorapulse-ui-components-directives.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-input-search.mjs +3 -0
- package/fesm2022/agorapulse-ui-components-input-search.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-labels-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-legacy-select.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs +35 -54
- package/fesm2022/agorapulse-ui-components-nav-selector.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs +1 -1
- package/fesm2022/agorapulse-ui-components-phone-number-input.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-social-button.mjs.map +1 -1
- package/fesm2022/agorapulse-ui-components-split-button.mjs.map +1 -1
- package/nav-selector/index.d.ts +1 -2
- package/package.json +54 -54
- package/select/index.d.ts +1 -1
- package/tooltip/index.d.ts +1 -1
- package/agorapulse-ui-components-20.0.0-beta.tgz +0 -0
|
@@ -137,7 +137,7 @@ class PhoneNumberInputComponent {
|
|
|
137
137
|
useExisting: forwardRef(() => PhoneNumberInputComponent),
|
|
138
138
|
multi: true,
|
|
139
139
|
},
|
|
140
|
-
], ngImport: i0, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @let countryCode = formGroup.controls.countryCode.value;\n @let phoneNumberCode = countryCode ? countryCodeMappedPhoneNumberInfos[countryCode]?.phoneNumberCode : '';\n \n @if (phoneNumberCode) {\n <ap-input-prefix>{{phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: InputGroupComponent, selector: "ap-input-group", inputs: ["symbolPosition"] }, { kind: "directive", type: InputDirective, selector: "[apInput]" }, { kind: "component", type: InputPrefixComponent, selector: "ap-input-prefix" }, { kind: "component", type: DropdownItemSingleOneLineComponent, selector: "ap-dropdown-item-single-one-line", inputs: ["text", "selected", "disabled", "avatarUrl", "showAvatarInitials", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "network", "roundedAvatar", "isFeatureLocked"], outputs: ["lockedFeatureClicked"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: DropdownSearchFormComponent, selector: "ap-dropdown-search-form", inputs: ["searchPlaceholder", "createNewEnabled", "createText", "select"], outputs: ["createNew"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
140
|
+
], ngImport: i0, template: "<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @let countryCode = formGroup.controls.countryCode.value;\n @let phoneNumberCode = countryCode ? countryCodeMappedPhoneNumberInfos[countryCode]?.phoneNumberCode : '';\n \n @if (phoneNumberCode) {\n <ap-input-prefix>{{phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n", styles: ["ng-dropdown-panel.ap-phone-number-code-select{width:auto!important;min-width:310px!important;max-width:310px}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line .option{display:flex;flex-direction:row;align-items:center}ng-dropdown-panel.ap-phone-number-code-select ap-dropdown-item-single-one-line ap-avatar{border:0;max-height:16px;min-height:16px;height:initial;box-shadow:unset;overflow:hidden;background:none}ap-phone-number-input{display:flex;flex-direction:row;align-items:center;justify-content:flex-start;gap:var(--ref-spacing-xxs)}ap-phone-number-input .ap-phone-number-code-select{flex:0 0 70px;width:70px}ap-phone-number-input .ap-phone-number-code-select .flag{display:flex;flex-direction:row;align-items:center;justify-content:center;overflow:hidden}ap-phone-number-input .ap-phone-number-code-select .flag img{max-height:16px;max-width:24px;object-fit:cover;border-radius:4px;object-position:center center}ap-phone-number-input .ap-phone-number-code-select .ng-input{padding:2px var(--ref-spacing-sm)}ap-phone-number-input .ap-phone-number-code-select .ng-input input{display:none}ap-phone-number-input .phone-number-input-group{flex:1 0 auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: NgSelectModule }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "directive", type: i3.NgHeaderTemplateDirective, selector: "[ng-header-tmp]" }, { kind: "component", type: InputGroupComponent, selector: "ap-input-group", inputs: ["symbolPosition"] }, { kind: "directive", type: InputDirective, selector: "[apInput]" }, { kind: "component", type: InputPrefixComponent, selector: "ap-input-prefix" }, { kind: "component", type: DropdownItemSingleOneLineComponent, selector: "ap-dropdown-item-single-one-line", inputs: ["text", "selected", "disabled", "avatarUrl", "showAvatarInitials", "symbolId", "disabledTooltip", "badgeText", "dividerEnabled", "network", "roundedAvatar", "isFeatureLocked"], outputs: ["lockedFeatureClicked"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: NgOptimizedImage, selector: "img[ngSrc]", inputs: ["ngSrc", "ngSrcset", "sizes", "width", "height", "decoding", "loading", "priority", "loaderParams", "disableOptimizedSrcset", "fill", "placeholder", "placeholderConfig", "src", "srcset"] }, { kind: "component", type: DropdownSearchFormComponent, selector: "ap-dropdown-search-form", inputs: ["searchPlaceholder", "createNewEnabled", "createText", "select"], outputs: ["createNew"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
141
141
|
}
|
|
142
142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.3", ngImport: i0, type: PhoneNumberInputComponent, decorators: [{
|
|
143
143
|
type: Component,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-phone-number-input.mjs","sources":["../../../libs/ui-components/phone-number-input/src/phone-number-input.component.ts","../../../libs/ui-components/phone-number-input/src/phone-number-input.component.html","../../../libs/ui-components/phone-number-input/src/agorapulse-ui-components-phone-number-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { InputDirective } from '@agorapulse/ui-components/input';\nimport { InputGroupComponent, InputPrefixComponent } from '@agorapulse/ui-components/input-group';\nimport { DropdownItemSingleOneLineComponent, DropdownSearchFormComponent, SelectBaseDirective } from '@agorapulse/ui-components/select';\nimport { apCheck, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, forwardRef, inject, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport interface PhoneNumberInfo {\n countryCode: string;\n countryName: string;\n phoneNumberCode: string;\n}\n\nexport interface Phone {\n phoneNumber: string;\n phoneNumberCode: string;\n}\n\nconst NUMBER_ONLY_PATTERN = /[0-9]/;\n\nconst DEFAULT_COUNTRY_CODE = 'US';\nconst DEFAULT_PHONE_NUMBER_CODE = '+1';\n\n@Component({\n selector: 'ap-phone-number-input',\n templateUrl: 'phone-number-input.component.html',\n styleUrls: ['phone-number-input.component.scss'],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n InputGroupComponent,\n SelectBaseDirective,\n InputDirective,\n InputPrefixComponent,\n DropdownItemSingleOneLineComponent,\n ReactiveFormsModule,\n NgOptimizedImage,\n DropdownSearchFormComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PhoneNumberInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PhoneNumberInputComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator, OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() set errorsDisplayForced(errorsDisplayForced: boolean) {\n if (errorsDisplayForced) {\n this.formGroup.markAllAsTouched();\n Object.values(this.formGroup.controls).forEach(control => control.markAsDirty());\n this.formGroup.updateValueAndValidity();\n }\n }\n @Input({ required: true }) flagsBucketUrl!: string;\n @Input({ required: true }) set phoneNumberInfos(phoneNumberInfos: PhoneNumberInfo[]) {\n this.codeNumberInfos = phoneNumberInfos ?? [];\n this.countryCodeMappedPhoneNumberInfos = phoneNumberInfos.reduce(\n (acc, phoneNumberInfo) => {\n acc[phoneNumberInfo.countryCode as string] = phoneNumberInfo;\n return acc;\n },\n {} as Record<string, PhoneNumberInfo>\n );\n }\n codeNumberInfos: PhoneNumberInfo[] = [];\n countryCodeMappedPhoneNumberInfos: Record<string, PhoneNumberInfo> = {};\n\n @Input({ required: true }) name!: string;\n @Input({ required: true }) placeholder!: string;\n @Input({ required: true }) searchPlaceholder!: string;\n @Input() set phoneNumber(phoneNumber: string) {\n this.formGroup.controls.phoneNumber.setValue(phoneNumber);\n }\n @Input() set phoneNumberCode(phoneNumberCode: string) {\n this.formGroup.controls.countryCode.setValue(phoneNumberCode);\n }\n @Input() set initialCountryCode(initialCountryCode: string) {\n const firstValue = this.findPhoneNumberInfoByCountryCode(initialCountryCode)?.countryCode;\n if (firstValue) {\n this.formGroup.patchValue({ countryCode: firstValue });\n }\n }\n\n @Output() changePhoneNumber: EventEmitter<string> = new EventEmitter<string>();\n @Output() changePhoneNumberCode: EventEmitter<string> = new EventEmitter<string>();\n\n formGroup = new FormGroup({\n countryCode: new FormControl<string>(DEFAULT_COUNTRY_CODE, [Validators.required]),\n phoneNumber: new FormControl<string>('', [Validators.required]),\n });\n\n public onTouched: any = () => {};\n public onChange: any = () => {};\n\n constructor(symbolRegistry: SymbolRegistry) {\n symbolRegistry.registerSymbols([apCheck]);\n }\n\n ngOnInit(): void {\n // Subscribe to form changes to propagate them to the parent component\n this.formGroup.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n let phoneNumberCode = DEFAULT_PHONE_NUMBER_CODE;\n if (value.countryCode) {\n const phoneNumberInfo = this.findPhoneNumberInfoByCountryCode(value.countryCode);\n if (phoneNumberInfo) {\n phoneNumberCode = phoneNumberInfo.phoneNumberCode;\n }\n }\n if (this.onChange && phoneNumberCode) {\n this.onChange({\n phoneNumber: value.phoneNumber,\n phoneNumberCode,\n });\n }\n if (value.phoneNumber !== this.phoneNumber) {\n this.changePhoneNumber.emit(value.phoneNumber ?? '');\n }\n if (phoneNumberCode !== this.phoneNumberCode) {\n this.changePhoneNumberCode.emit(phoneNumberCode ?? '');\n }\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(): ValidationErrors | null {\n return this.formGroup.valid ? null : { phoneNumber: 'invalid', ...this.formGroup.errors };\n }\n\n writeValue(phone: Phone | null): void {\n // Avoid setting an empty value for the phone number code, it should always have a value\n if (phone === null || !phone.phoneNumberCode) {\n this.formGroup.patchValue({ phoneNumber: phone?.phoneNumberCode ?? '' });\n } else {\n this.formGroup.patchValue(phone);\n }\n }\n\n phoneNumberCodeSearchFn(term: string, item: PhoneNumberInfo): boolean {\n const termCased = term.toLocaleLowerCase();\n return item.countryName.toLocaleLowerCase().indexOf(termCased) > -1 || item.countryCode.toLocaleLowerCase().indexOf(termCased) > -1;\n }\n\n markAsTouched(): void {\n this.formGroup.markAllAsTouched();\n }\n\n /**\n * Filter the phone number input to only allow numbers\n */\n filterChars(event: InputEvent): void {\n if (event.inputType !== 'insertText') {\n return;\n }\n const inputChar: string | null = event.data;\n if (inputChar && !NUMBER_ONLY_PATTERN.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n private findPhoneNumberInfoByCountryCode(countryCode: string): PhoneNumberInfo | undefined {\n return this.codeNumberInfos.find(codeInfo => codeInfo.countryCode === countryCode);\n }\n}\n","<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @let countryCode = formGroup.controls.countryCode.value;\n @let phoneNumberCode = countryCode ? countryCodeMappedPhoneNumberInfos[countryCode]?.phoneNumberCode : '';\n \n @if (phoneNumberCode) {\n <ap-input-prefix>{{phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-phone-number-input.mjs","sources":["../../../libs/ui-components/phone-number-input/src/phone-number-input.component.ts","../../../libs/ui-components/phone-number-input/src/phone-number-input.component.html","../../../libs/ui-components/phone-number-input/src/agorapulse-ui-components-phone-number-input.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-empty-function */\nimport { InputDirective } from '@agorapulse/ui-components/input';\nimport { InputGroupComponent, InputPrefixComponent } from '@agorapulse/ui-components/input-group';\nimport { DropdownItemSingleOneLineComponent, DropdownSearchFormComponent, SelectBaseDirective } from '@agorapulse/ui-components/select';\nimport { apCheck, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, DestroyRef, EventEmitter, forwardRef, inject, Input, OnInit, Output, ViewEncapsulation } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n ControlValueAccessor,\n FormControl,\n FormGroup,\n FormsModule,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { NgSelectModule } from '@ng-select/ng-select';\n\nexport interface PhoneNumberInfo {\n countryCode: string;\n countryName: string;\n phoneNumberCode: string;\n}\n\nexport interface Phone {\n phoneNumber: string;\n phoneNumberCode: string;\n}\n\nconst NUMBER_ONLY_PATTERN = /[0-9]/;\n\nconst DEFAULT_COUNTRY_CODE = 'US';\nconst DEFAULT_PHONE_NUMBER_CODE = '+1';\n\n@Component({\n selector: 'ap-phone-number-input',\n templateUrl: 'phone-number-input.component.html',\n styleUrls: ['phone-number-input.component.scss'],\n imports: [\n CommonModule,\n FormsModule,\n NgSelectModule,\n InputGroupComponent,\n SelectBaseDirective,\n InputDirective,\n InputPrefixComponent,\n DropdownItemSingleOneLineComponent,\n ReactiveFormsModule,\n NgOptimizedImage,\n DropdownSearchFormComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => PhoneNumberInputComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => PhoneNumberInputComponent),\n multi: true,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class PhoneNumberInputComponent implements ControlValueAccessor, Validator, OnInit {\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() set errorsDisplayForced(errorsDisplayForced: boolean) {\n if (errorsDisplayForced) {\n this.formGroup.markAllAsTouched();\n Object.values(this.formGroup.controls).forEach(control => control.markAsDirty());\n this.formGroup.updateValueAndValidity();\n }\n }\n @Input({ required: true }) flagsBucketUrl!: string;\n @Input({ required: true }) set phoneNumberInfos(phoneNumberInfos: PhoneNumberInfo[]) {\n this.codeNumberInfos = phoneNumberInfos ?? [];\n this.countryCodeMappedPhoneNumberInfos = phoneNumberInfos.reduce(\n (acc, phoneNumberInfo) => {\n acc[phoneNumberInfo.countryCode as string] = phoneNumberInfo;\n return acc;\n },\n {} as Record<string, PhoneNumberInfo>\n );\n }\n codeNumberInfos: PhoneNumberInfo[] = [];\n countryCodeMappedPhoneNumberInfos: Record<string, PhoneNumberInfo> = {};\n\n @Input({ required: true }) name!: string;\n @Input({ required: true }) placeholder!: string;\n @Input({ required: true }) searchPlaceholder!: string;\n @Input() set phoneNumber(phoneNumber: string) {\n this.formGroup.controls.phoneNumber.setValue(phoneNumber);\n }\n @Input() set phoneNumberCode(phoneNumberCode: string) {\n this.formGroup.controls.countryCode.setValue(phoneNumberCode);\n }\n @Input() set initialCountryCode(initialCountryCode: string) {\n const firstValue = this.findPhoneNumberInfoByCountryCode(initialCountryCode)?.countryCode;\n if (firstValue) {\n this.formGroup.patchValue({ countryCode: firstValue });\n }\n }\n\n @Output() changePhoneNumber: EventEmitter<string> = new EventEmitter<string>();\n @Output() changePhoneNumberCode: EventEmitter<string> = new EventEmitter<string>();\n\n formGroup = new FormGroup({\n countryCode: new FormControl<string>(DEFAULT_COUNTRY_CODE, [Validators.required]),\n phoneNumber: new FormControl<string>('', [Validators.required]),\n });\n\n public onTouched: any = () => {};\n public onChange: any = () => {};\n\n constructor(symbolRegistry: SymbolRegistry) {\n symbolRegistry.registerSymbols([apCheck]);\n }\n\n ngOnInit(): void {\n // Subscribe to form changes to propagate them to the parent component\n this.formGroup.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(value => {\n let phoneNumberCode = DEFAULT_PHONE_NUMBER_CODE;\n if (value.countryCode) {\n const phoneNumberInfo = this.findPhoneNumberInfoByCountryCode(value.countryCode);\n if (phoneNumberInfo) {\n phoneNumberCode = phoneNumberInfo.phoneNumberCode;\n }\n }\n if (this.onChange && phoneNumberCode) {\n this.onChange({\n phoneNumber: value.phoneNumber,\n phoneNumberCode,\n });\n }\n if (value.phoneNumber !== this.phoneNumber) {\n this.changePhoneNumber.emit(value.phoneNumber ?? '');\n }\n if (phoneNumberCode !== this.phoneNumberCode) {\n this.changePhoneNumberCode.emit(phoneNumberCode ?? '');\n }\n });\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n validate(): ValidationErrors | null {\n return this.formGroup.valid ? null : { phoneNumber: 'invalid', ...this.formGroup.errors };\n }\n\n writeValue(phone: Phone | null): void {\n // Avoid setting an empty value for the phone number code, it should always have a value\n if (phone === null || !phone.phoneNumberCode) {\n this.formGroup.patchValue({ phoneNumber: phone?.phoneNumberCode ?? '' });\n } else {\n this.formGroup.patchValue(phone);\n }\n }\n\n phoneNumberCodeSearchFn(term: string, item: PhoneNumberInfo): boolean {\n const termCased = term.toLocaleLowerCase();\n return item.countryName.toLocaleLowerCase().indexOf(termCased) > -1 || item.countryCode.toLocaleLowerCase().indexOf(termCased) > -1;\n }\n\n markAsTouched(): void {\n this.formGroup.markAllAsTouched();\n }\n\n /**\n * Filter the phone number input to only allow numbers\n */\n filterChars(event: InputEvent): void {\n if (event.inputType !== 'insertText') {\n return;\n }\n const inputChar: string | null = event.data;\n if (inputChar && !NUMBER_ONLY_PATTERN.test(inputChar)) {\n event.preventDefault();\n }\n }\n\n private findPhoneNumberInfoByCountryCode(countryCode: string): PhoneNumberInfo | undefined {\n return this.codeNumberInfos.find(codeInfo => codeInfo.countryCode === countryCode);\n }\n}\n","<ng-container [formGroup]=\"formGroup\">\n <ng-select\n #select\n apSelectSingle\n data-test=\"subscription-billing-infos-phoneNumberCode\"\n class=\"ap-phone-number-code-select ap-select\"\n bindLabel=\"countryName\"\n bindValue=\"countryCode\"\n notFoundText=\"\"\n formControlName=\"countryCode\"\n appendTo=\"body\"\n [clearable]=\"false\"\n [items]=\"codeNumberInfos\"\n [searchFn]=\"phoneNumberCodeSearchFn\"\n (blur)=\"onTouched()\">\n <ng-template\n let-item=\"item\"\n ng-label-tmp>\n @if (item && item.countryCode) {\n <div class=\"flag\">\n @if (!!flagsBucketUrl) {\n <img\n width=\"24\"\n height=\"16\"\n alt=\"flag\"\n [ngSrc]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\" />\n } @else {\n <span>{{ item.countryCode }}</span>\n }\n </div>\n }\n </ng-template>\n <ng-template\n let-item=\"item\"\n let-item$=\"item$\"\n ng-option-tmp>\n <ap-dropdown-item-single-one-line\n [text]=\"item.phoneNumberCode + ' ' + item.countryName\"\n [avatarUrl]=\"flagsBucketUrl + '/' + item.countryCode.toUpperCase() + '.png'\"\n [selected]=\"item$.selected\"\n [roundedAvatar]=\"false\"\n />\n </ng-template>\n <ng-template\n let-searchTerm=\"searchTerm\"\n ng-header-tmp>\n <ap-dropdown-search-form\n [searchPlaceholder]=\"searchPlaceholder\"\n [select]=\"select\"\n />\n </ng-template>\n </ng-select>\n <ap-input-group class=\"phone-number-input-group\">\n @let countryCode = formGroup.controls.countryCode.value;\n @let phoneNumberCode = countryCode ? countryCodeMappedPhoneNumberInfos[countryCode]?.phoneNumberCode : '';\n \n @if (phoneNumberCode) {\n <ap-input-prefix>{{phoneNumberCode}}</ap-input-prefix>\n }\n <input\n apInput\n class=\"phone-field\"\n data-test=\"subscription-billing-infos-phoneNumberInput\"\n type=\"text\"\n data-recurly=\"phone\"\n formControlName=\"phoneNumber\"\n [placeholder]=\"placeholder\"\n [attr.name]=\"name\"\n (beforeinput)=\"filterChars($event)\"\n (blur)=\"onTouched()\"\n />\n </ap-input-group>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-social-button.mjs","sources":["../../../libs/ui-components/social-button/src/social-button.component.ts","../../../libs/ui-components/social-button/src/social-button.component.html","../../../libs/ui-components/social-button/src/agorapulse-ui-components-social-button.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { LoaderComponent } from '@agorapulse/ui-animations';\nimport { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport {\n apBluesky,\n apBlueskyOfficial,\n apFacebook,\n apGoogleMyBusinessIcon,\n apGoogleMyBusinessOfficial,\n apInstagramOutline,\n apLinkedin,\n apLinkedinOfficial,\n apPinterestIcon,\n apPinterestOfficial,\n apThreadsOfficial,\n apThreadsWhiteOfficial,\n apTiktokOfficial,\n apTiktokWhiteOfficial,\n apXOfficial,\n apXWhiteOfficial,\n apYoutube,\n apYoutubeOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\n\ntype Service =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'youtube'\n | 'tiktok'\n | 'google'\n | 'googleMyBusiness'\n | 'microsoft'\n | 'pinterest'\n | 'X'\n | 'threads'\n | 'bluesky';\ntype SocialButtonType = 'default' | 'stroked';\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-social-button',\n styleUrls: ['./social-button.component.scss'],\n imports: [SymbolComponent, LoaderComponent],\n providers: [],\n templateUrl: './social-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': 'loading || disabled || null',\n },\n})\nexport class SocialButtonComponent {\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input() ariaLabel = '';\n @Input({\n transform: booleanAttribute,\n })\n disabled = false;\n @Input({\n required: true,\n })\n name = '';\n @Input() loading = false;\n @Input() network: Service = 'facebook';\n @Input() buttonType: SocialButtonType = 'default';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n symbolIdPerNetwork: Record<Service, Record<SocialButtonType, string>> = {\n facebook: {\n default: 'facebook',\n stroked: 'facebook-official',\n },\n instagram: {\n default: 'instagram-outline',\n stroked: 'instagram-official',\n },\n twitter: {\n default: 'x-white-official',\n stroked: 'x-official',\n },\n X: {\n default: 'x-white-official',\n stroked: 'x-official',\n },\n linkedin: {\n default: 'linkedin',\n stroked: 'linkedin-official',\n },\n youtube: {\n default: 'youtube',\n stroked: 'youtube-official',\n },\n tiktok: {\n default: 'tiktok-white-official',\n stroked: 'tiktok-official',\n },\n google: {\n default: 'google-icon',\n stroked: 'google-official',\n },\n microsoft: {\n default: 'microsoft-icon',\n stroked: 'microsoft-official',\n },\n googleMyBusiness: {\n default: 'google-my-business-icon',\n stroked: 'google-my-business-official',\n },\n pinterest: {\n default: 'pinterest-icon',\n stroked: 'pinterest-official',\n },\n threads: {\n default: 'threads-white-official',\n stroked: 'threads-official',\n },\n bluesky: {\n default: 'bluesky',\n stroked: 'bluesky-official',\n },\n };\n\n constructor(private symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apFacebook,\n apLinkedin,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apYoutube,\n apInstagramOutline,\n apTiktokOfficial,\n apTiktokWhiteOfficial,\n apPinterestIcon,\n apPinterestOfficial,\n apXOfficial,\n apXWhiteOfficial,\n apGoogleMyBusinessIcon,\n apGoogleMyBusinessOfficial,\n apThreadsOfficial,\n apThreadsWhiteOfficial,\n apBluesky,\n apBlueskyOfficial,\n ]);\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled || this.loading) {\n return;\n }\n $event.stopImmediatePropagation();\n this.click.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n onBlurHandle($event: FocusEvent): void {\n this.focused = false;\n this.blur.emit($event);\n }\n\n onFocusHandle($event: FocusEvent): void {\n this.focused = true;\n this.focus.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused && !this.disabled && !this.loading) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n role=\"button\"\n [class.stroked]=\"buttonType === 'stroked'\"\n [class.facebook]=\"network === 'facebook'\"\n [class.twitter]=\"network === 'twitter'\"\n [class.x]=\"network === 'X'\"\n [class.instagram]=\"network === 'instagram'\"\n [class.linkedin]=\"network === 'linkedin'\"\n [class.youtube]=\"network === 'youtube'\"\n [class.tiktok]=\"network === 'tiktok'\"\n [class.microsoft]=\"network === 'microsoft'\"\n [class.google-my-business]=\"network === 'googleMyBusiness'\"\n [class.google]=\"network === 'google'\"\n [class.pinterest]=\"network === 'pinterest'\"\n [class.threads]=\"network === 'threads'\"\n [class.bluesky]=\"network === 'bluesky'\"\n [class.loading]=\"loading\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.type]=\"baseButtonDirective.hostType\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (blur)=\"onBlurHandle($event)\">\n @if (!loading) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdPerNetwork[network][buttonType]\" />\n }\n @if (loading) {\n <ap-loader\n [color]=\"buttonType === 'default' ? 'white' : network\"\n [diameter]=\"16\" />\n }\n <ng-content select=\"span\" />\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-social-button.mjs","sources":["../../../libs/ui-components/social-button/src/social-button.component.ts","../../../libs/ui-components/social-button/src/social-button.component.html","../../../libs/ui-components/social-button/src/agorapulse-ui-components-social-button.ts"],"sourcesContent":["import {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\n\nimport { LoaderComponent } from '@agorapulse/ui-animations';\nimport { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport {\n apBluesky,\n apBlueskyOfficial,\n apFacebook,\n apGoogleMyBusinessIcon,\n apGoogleMyBusinessOfficial,\n apInstagramOutline,\n apLinkedin,\n apLinkedinOfficial,\n apPinterestIcon,\n apPinterestOfficial,\n apThreadsOfficial,\n apThreadsWhiteOfficial,\n apTiktokOfficial,\n apTiktokWhiteOfficial,\n apXOfficial,\n apXWhiteOfficial,\n apYoutube,\n apYoutubeOfficial,\n SymbolComponent,\n SymbolRegistry,\n} from '@agorapulse/ui-symbol';\n\ntype Service =\n | 'facebook'\n | 'instagram'\n | 'twitter'\n | 'linkedin'\n | 'youtube'\n | 'tiktok'\n | 'google'\n | 'googleMyBusiness'\n | 'microsoft'\n | 'pinterest'\n | 'X'\n | 'threads'\n | 'bluesky';\ntype SocialButtonType = 'default' | 'stroked';\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-social-button',\n styleUrls: ['./social-button.component.scss'],\n imports: [SymbolComponent, LoaderComponent],\n providers: [],\n templateUrl: './social-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n host: {\n '[attr.disabled]': 'loading || disabled || null',\n },\n})\nexport class SocialButtonComponent {\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input() ariaLabel = '';\n @Input({\n transform: booleanAttribute,\n })\n disabled = false;\n @Input({\n required: true,\n })\n name = '';\n @Input() loading = false;\n @Input() network: Service = 'facebook';\n @Input() buttonType: SocialButtonType = 'default';\n\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() click: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n symbolIdPerNetwork: Record<Service, Record<SocialButtonType, string>> = {\n facebook: {\n default: 'facebook',\n stroked: 'facebook-official',\n },\n instagram: {\n default: 'instagram-outline',\n stroked: 'instagram-official',\n },\n twitter: {\n default: 'x-white-official',\n stroked: 'x-official',\n },\n X: {\n default: 'x-white-official',\n stroked: 'x-official',\n },\n linkedin: {\n default: 'linkedin',\n stroked: 'linkedin-official',\n },\n youtube: {\n default: 'youtube',\n stroked: 'youtube-official',\n },\n tiktok: {\n default: 'tiktok-white-official',\n stroked: 'tiktok-official',\n },\n google: {\n default: 'google-icon',\n stroked: 'google-official',\n },\n microsoft: {\n default: 'microsoft-icon',\n stroked: 'microsoft-official',\n },\n googleMyBusiness: {\n default: 'google-my-business-icon',\n stroked: 'google-my-business-official',\n },\n pinterest: {\n default: 'pinterest-icon',\n stroked: 'pinterest-official',\n },\n threads: {\n default: 'threads-white-official',\n stroked: 'threads-official',\n },\n bluesky: {\n default: 'bluesky',\n stroked: 'bluesky-official',\n },\n };\n\n constructor(private symbolRegistry: SymbolRegistry) {\n this.symbolRegistry.registerSymbols([\n apFacebook,\n apLinkedin,\n apLinkedinOfficial,\n apYoutubeOfficial,\n apYoutube,\n apInstagramOutline,\n apTiktokOfficial,\n apTiktokWhiteOfficial,\n apPinterestIcon,\n apPinterestOfficial,\n apXOfficial,\n apXWhiteOfficial,\n apGoogleMyBusinessIcon,\n apGoogleMyBusinessOfficial,\n apThreadsOfficial,\n apThreadsWhiteOfficial,\n apBluesky,\n apBlueskyOfficial,\n ]);\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled || this.loading) {\n return;\n }\n $event.stopImmediatePropagation();\n this.click.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n onBlurHandle($event: FocusEvent): void {\n this.focused = false;\n this.blur.emit($event);\n }\n\n onFocusHandle($event: FocusEvent): void {\n this.focused = true;\n this.focus.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused && !this.disabled && !this.loading) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n role=\"button\"\n [class.stroked]=\"buttonType === 'stroked'\"\n [class.facebook]=\"network === 'facebook'\"\n [class.twitter]=\"network === 'twitter'\"\n [class.x]=\"network === 'X'\"\n [class.instagram]=\"network === 'instagram'\"\n [class.linkedin]=\"network === 'linkedin'\"\n [class.youtube]=\"network === 'youtube'\"\n [class.tiktok]=\"network === 'tiktok'\"\n [class.microsoft]=\"network === 'microsoft'\"\n [class.google-my-business]=\"network === 'googleMyBusiness'\"\n [class.google]=\"network === 'google'\"\n [class.pinterest]=\"network === 'pinterest'\"\n [class.threads]=\"network === 'threads'\"\n [class.bluesky]=\"network === 'bluesky'\"\n [class.loading]=\"loading\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [attr.id]=\"baseButtonDirective.hostId\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n [attr.type]=\"baseButtonDirective.hostType\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"disabled.toString()\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"onFocusHandle($event)\"\n (blur)=\"onBlurHandle($event)\">\n @if (!loading) {\n <ap-symbol\n size=\"sm\"\n [symbolId]=\"symbolIdPerNetwork[network][buttonType]\" />\n }\n @if (loading) {\n <ap-loader\n [color]=\"buttonType === 'default' ? 'white' : network\"\n [diameter]=\"16\" />\n }\n <ng-content select=\"span\" />\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agorapulse-ui-components-split-button.mjs","sources":["../../../libs/ui-components/split-button/src/split-button.component.ts","../../../libs/ui-components/split-button/src/split-button.component.html","../../../libs/ui-components/split-button/src/agorapulse-ui-components-split-button.ts"],"sourcesContent":["import { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport { agorapulseSymbol, apChevronDown, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n input,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\ntype SplitButtonConfig = { style: 'primary'; color: 'orange' | 'blue' };\n\nlet id = 1;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-split-button',\n styleUrls: ['./split-button.component.scss'],\n imports: [SymbolComponent, MatMenuModule],\n templateUrl: './split-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n // eslint-disable-next-line @angular-eslint/no-host-metadata-property\n host: {\n '[attr.disabled]': '(disabled && splitDisabled) || null',\n },\n})\nexport class SplitButtonComponent implements AfterContentInit, AfterViewInit {\n private symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input({ transform: booleanAttribute })\n disabled: boolean = false;\n @Input({ required: true })\n name = '';\n @Input({ required: true })\n config!: SplitButtonConfig;\n @Input() menuTrigger: MatMenu | null = null;\n @Input() splitDisabled: boolean = false;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n @Input() splitButtonDataTest: string | undefined = undefined;\n symbolId = input<agorapulseSymbol>();\n\n @ViewChild('splitButton') splitButtonElement!: ElementRef<HTMLButtonElement>;\n\n @ContentChild(SymbolComponent) symbolComponent!: SymbolComponent;\n\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n @Output() mainButtonClick: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n id!: string;\n menuOpen = false;\n\n constructor() {\n this.symbolRegistry.registerSymbols([apChevronDown]);\n }\n\n ngAfterViewInit() {\n this.id = this.baseButtonDirective.hostId ?? `ap-split-button-${id++}`;\n }\n\n ngAfterContentInit() {\n if (this.symbolComponent) {\n this.symbolComponent.size.set('sm');\n }\n }\n\n onSplitButtonClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n }\n\n handleMenuOpened(): void {\n this.menuOpened.emit();\n this.menuOpen = true;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n handleMenuClosed(): void {\n this.menuClosed.emit();\n this.menuOpen = false;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n $event.stopImmediatePropagation();\n this.mainButtonClick.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n @if (symbolId()) {\n <ap-symbol [symbolId]=\"symbolId()\" />\n } @else {\n <ng-content select=\"ap-symbol\" />\n }\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"agorapulse-ui-components-split-button.mjs","sources":["../../../libs/ui-components/split-button/src/split-button.component.ts","../../../libs/ui-components/split-button/src/split-button.component.html","../../../libs/ui-components/split-button/src/agorapulse-ui-components-split-button.ts"],"sourcesContent":["import { BaseButtonDirective } from '@agorapulse/ui-components/directives';\nimport { agorapulseSymbol, apChevronDown, SymbolComponent, SymbolRegistry } from '@agorapulse/ui-symbol';\nimport {\n AfterContentInit,\n AfterViewInit,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n HostListener,\n inject,\n input,\n Input,\n Output,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { MatMenu, MatMenuModule } from '@angular/material/menu';\n\ntype SplitButtonConfig = { style: 'primary'; color: 'orange' | 'blue' };\n\nlet id = 1;\n\n@Component({\n changeDetection: ChangeDetectionStrategy.OnPush,\n selector: 'ap-split-button',\n styleUrls: ['./split-button.component.scss'],\n imports: [SymbolComponent, MatMenuModule],\n templateUrl: './split-button.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [BaseButtonDirective],\n host: {\n '[attr.disabled]': '(disabled && splitDisabled) || null',\n },\n})\nexport class SplitButtonComponent implements AfterContentInit, AfterViewInit {\n private symbolRegistry: SymbolRegistry = inject(SymbolRegistry);\n readonly baseButtonDirective: BaseButtonDirective = inject(BaseButtonDirective, { self: true });\n\n @ViewChild('button') buttonElement!: ElementRef<HTMLButtonElement>;\n\n @Input({ transform: booleanAttribute })\n disabled: boolean = false;\n @Input({ required: true })\n name = '';\n @Input({ required: true })\n config!: SplitButtonConfig;\n @Input() menuTrigger: MatMenu | null = null;\n @Input() splitDisabled: boolean = false;\n @Input() symbolPosition: 'left' | 'right' = 'right';\n @Input() splitButtonDataTest: string | undefined = undefined;\n symbolId = input<agorapulseSymbol>();\n\n @ViewChild('splitButton') splitButtonElement!: ElementRef<HTMLButtonElement>;\n\n @ContentChild(SymbolComponent) symbolComponent!: SymbolComponent;\n\n @Output() menuOpened: EventEmitter<void> = new EventEmitter();\n @Output() menuClosed: EventEmitter<void> = new EventEmitter();\n @Output() mainButtonClick: EventEmitter<MouseEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() focus: EventEmitter<FocusEvent> = new EventEmitter();\n // eslint-disable-next-line @angular-eslint/no-output-native\n @Output() blur: EventEmitter<FocusEvent> = new EventEmitter();\n\n id!: string;\n menuOpen = false;\n\n constructor() {\n this.symbolRegistry.registerSymbols([apChevronDown]);\n }\n\n ngAfterViewInit() {\n this.id = this.baseButtonDirective.hostId ?? `ap-split-button-${id++}`;\n }\n\n ngAfterContentInit() {\n if (this.symbolComponent) {\n this.symbolComponent.size.set('sm');\n }\n }\n\n onSplitButtonClickHandle($event: MouseEvent): void {\n $event.stopImmediatePropagation();\n }\n\n handleMenuOpened(): void {\n this.menuOpened.emit();\n this.menuOpen = true;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n handleMenuClosed(): void {\n this.menuClosed.emit();\n this.menuOpen = false;\n this.buttonElement.nativeElement.blur();\n this.splitButtonElement.nativeElement.blur();\n }\n\n focused: boolean = false;\n\n onClickHandle($event: MouseEvent): void {\n if (this.disabled) {\n return;\n }\n $event.stopImmediatePropagation();\n this.mainButtonClick.emit($event);\n this.buttonElement.nativeElement.blur();\n this.blur.emit($event);\n }\n\n @HostListener('window:keyup.space', ['$event'])\n onSpaceKeyUp(event: KeyboardEvent) {\n if (this.focused) {\n event.preventDefault();\n this.buttonElement.nativeElement.click();\n }\n }\n}\n","<button\n #button\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [class.inverse]=\"symbolPosition === 'left'\"\n [disabled]=\"disabled\"\n [name]=\"name\"\n [id]=\"id\"\n [attr.data-test]=\"baseButtonDirective.hostDataTest ?? name\"\n (click)=\"onClickHandle($event)\"\n (focus)=\"focus.emit($event)\"\n (blur)=\"blur.emit($event)\">\n <ng-content select=\"span\" />\n @if (symbolId()) {\n <ap-symbol [symbolId]=\"symbolId()\" />\n } @else {\n <ng-content select=\"ap-symbol\" />\n }\n</button>\n<button\n #splitButton\n type=\"button\"\n [class.primary]=\"config.style === 'primary'\"\n [class.orange]=\"config.color === 'orange'\"\n [class.blue]=\"config.color === 'blue'\"\n [disabled]=\"splitDisabled\"\n [id]=\"id + '-split'\"\n [attr.aria-labelledby]=\"id + '-split ' + id\"\n [attr.data-test]=\"splitButtonDataTest ?? name + '-split'\"\n [matMenuTriggerFor]=\"menuTrigger\"\n (click)=\"onSplitButtonClickHandle($event)\"\n (menuClosed)=\"handleMenuClosed()\"\n (menuOpened)=\"handleMenuOpened()\">\n <ap-symbol\n symbolId=\"chevron-down\"\n size=\"sm\"\n [class.opened]=\"menuOpen\" />\n <span class=\"visually-hidden\">Toggle</span>\n</button>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public_api';\n"],"names":[],"mappings":"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"}
|
package/nav-selector/index.d.ts
CHANGED
|
@@ -291,7 +291,6 @@ declare class NavSelectorState {
|
|
|
291
291
|
noResults: _angular_core.Signal<boolean>;
|
|
292
292
|
texts: _angular_core.Signal<NavSelectorTranslatedTexts>;
|
|
293
293
|
expanded: _angular_core.WritableSignal<boolean>;
|
|
294
|
-
expandedAfterDelay: _angular_core.WritableSignal<boolean>;
|
|
295
294
|
previousSelectedUids: string[];
|
|
296
295
|
selectedUidsChangeCallback: ((selectedUids: string[]) => void) | null;
|
|
297
296
|
constructor();
|
|
@@ -361,4 +360,4 @@ declare class NavSelectorComponent implements OnInit {
|
|
|
361
360
|
}
|
|
362
361
|
|
|
363
362
|
export { NavSelectorComponent, NavSelectorPopoverItemComponent };
|
|
364
|
-
export type { NavSelectorCategory, NavSelectorGroup, NavSelectorLeaf, NavSelectorLeafDetails, NavSelectorTranslatedTexts, NodeAccessibility };
|
|
363
|
+
export type { NavSelectorCategory, NavSelectorEntry, NavSelectorGroup, NavSelectorLeaf, NavSelectorLeafAction, NavSelectorLeafActionClickedEvent, NavSelectorLeafDetails, NavSelectorTranslatedTexts, NodeAccessibility };
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@agorapulse/ui-components",
|
|
3
3
|
"description": "Agorapulse UI Components Library",
|
|
4
|
-
"version": "20.0.0
|
|
4
|
+
"version": "20.0.0",
|
|
5
5
|
"author": "Benoit Hediard",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -12,9 +12,9 @@
|
|
|
12
12
|
},
|
|
13
13
|
"homepage": "https://github.com/agorapulse/design",
|
|
14
14
|
"peerDependencies": {
|
|
15
|
-
"@agorapulse/ui-symbol": "^20.0.0
|
|
16
|
-
"@agorapulse/ui-theme": "^20.0.0
|
|
17
|
-
"@agorapulse/ui-animations": "^20.0.0
|
|
15
|
+
"@agorapulse/ui-symbol": "^20.0.0",
|
|
16
|
+
"@agorapulse/ui-theme": "^20.0.0",
|
|
17
|
+
"@agorapulse/ui-animations": "^20.0.0",
|
|
18
18
|
"@angular/cdk": "20.1.3",
|
|
19
19
|
"@angular/common": "20.1.3",
|
|
20
20
|
"@angular/core": "20.1.3",
|
|
@@ -39,30 +39,26 @@
|
|
|
39
39
|
"types": "./action-dropdown/index.d.ts",
|
|
40
40
|
"default": "./fesm2022/agorapulse-ui-components-action-dropdown.mjs"
|
|
41
41
|
},
|
|
42
|
-
"./add-comment": {
|
|
43
|
-
"types": "./add-comment/index.d.ts",
|
|
44
|
-
"default": "./fesm2022/agorapulse-ui-components-add-comment.mjs"
|
|
45
|
-
},
|
|
46
42
|
"./autocomplete": {
|
|
47
43
|
"types": "./autocomplete/index.d.ts",
|
|
48
44
|
"default": "./fesm2022/agorapulse-ui-components-autocomplete.mjs"
|
|
49
45
|
},
|
|
50
|
-
"./
|
|
51
|
-
"types": "./
|
|
52
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
46
|
+
"./add-comment": {
|
|
47
|
+
"types": "./add-comment/index.d.ts",
|
|
48
|
+
"default": "./fesm2022/agorapulse-ui-components-add-comment.mjs"
|
|
53
49
|
},
|
|
54
50
|
"./badge": {
|
|
55
51
|
"types": "./badge/index.d.ts",
|
|
56
52
|
"default": "./fesm2022/agorapulse-ui-components-badge.mjs"
|
|
57
53
|
},
|
|
54
|
+
"./avatar": {
|
|
55
|
+
"types": "./avatar/index.d.ts",
|
|
56
|
+
"default": "./fesm2022/agorapulse-ui-components-avatar.mjs"
|
|
57
|
+
},
|
|
58
58
|
"./button": {
|
|
59
59
|
"types": "./button/index.d.ts",
|
|
60
60
|
"default": "./fesm2022/agorapulse-ui-components-button.mjs"
|
|
61
61
|
},
|
|
62
|
-
"./close-button": {
|
|
63
|
-
"types": "./close-button/index.d.ts",
|
|
64
|
-
"default": "./fesm2022/agorapulse-ui-components-close-button.mjs"
|
|
65
|
-
},
|
|
66
62
|
"./checkbox": {
|
|
67
63
|
"types": "./checkbox/index.d.ts",
|
|
68
64
|
"default": "./fesm2022/agorapulse-ui-components-checkbox.mjs"
|
|
@@ -71,38 +67,38 @@
|
|
|
71
67
|
"types": "./confirm-modal/index.d.ts",
|
|
72
68
|
"default": "./fesm2022/agorapulse-ui-components-confirm-modal.mjs"
|
|
73
69
|
},
|
|
74
|
-
"./
|
|
75
|
-
"types": "./
|
|
76
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
70
|
+
"./close-button": {
|
|
71
|
+
"types": "./close-button/index.d.ts",
|
|
72
|
+
"default": "./fesm2022/agorapulse-ui-components-close-button.mjs"
|
|
73
|
+
},
|
|
74
|
+
"./directives": {
|
|
75
|
+
"types": "./directives/index.d.ts",
|
|
76
|
+
"default": "./fesm2022/agorapulse-ui-components-directives.mjs"
|
|
77
77
|
},
|
|
78
78
|
"./datepicker": {
|
|
79
79
|
"types": "./datepicker/index.d.ts",
|
|
80
80
|
"default": "./fesm2022/agorapulse-ui-components-datepicker.mjs"
|
|
81
81
|
},
|
|
82
|
-
"./
|
|
83
|
-
"types": "./
|
|
84
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
82
|
+
"./counter": {
|
|
83
|
+
"types": "./counter/index.d.ts",
|
|
84
|
+
"default": "./fesm2022/agorapulse-ui-components-counter.mjs"
|
|
85
85
|
},
|
|
86
86
|
"./dot-stepper": {
|
|
87
87
|
"types": "./dot-stepper/index.d.ts",
|
|
88
88
|
"default": "./fesm2022/agorapulse-ui-components-dot-stepper.mjs"
|
|
89
89
|
},
|
|
90
|
-
"./form-field": {
|
|
91
|
-
"types": "./form-field/index.d.ts",
|
|
92
|
-
"default": "./fesm2022/agorapulse-ui-components-form-field.mjs"
|
|
93
|
-
},
|
|
94
90
|
"./form-message": {
|
|
95
91
|
"types": "./form-message/index.d.ts",
|
|
96
92
|
"default": "./fesm2022/agorapulse-ui-components-form-message.mjs"
|
|
97
93
|
},
|
|
94
|
+
"./form-field": {
|
|
95
|
+
"types": "./form-field/index.d.ts",
|
|
96
|
+
"default": "./fesm2022/agorapulse-ui-components-form-field.mjs"
|
|
97
|
+
},
|
|
98
98
|
"./icon-button": {
|
|
99
99
|
"types": "./icon-button/index.d.ts",
|
|
100
100
|
"default": "./fesm2022/agorapulse-ui-components-icon-button.mjs"
|
|
101
101
|
},
|
|
102
|
-
"./infobox": {
|
|
103
|
-
"types": "./infobox/index.d.ts",
|
|
104
|
-
"default": "./fesm2022/agorapulse-ui-components-infobox.mjs"
|
|
105
|
-
},
|
|
106
102
|
"./input": {
|
|
107
103
|
"types": "./input/index.d.ts",
|
|
108
104
|
"default": "./fesm2022/agorapulse-ui-components-input.mjs"
|
|
@@ -111,22 +107,30 @@
|
|
|
111
107
|
"types": "./input-group/index.d.ts",
|
|
112
108
|
"default": "./fesm2022/agorapulse-ui-components-input-group.mjs"
|
|
113
109
|
},
|
|
110
|
+
"./infobox": {
|
|
111
|
+
"types": "./infobox/index.d.ts",
|
|
112
|
+
"default": "./fesm2022/agorapulse-ui-components-infobox.mjs"
|
|
113
|
+
},
|
|
114
114
|
"./input-search": {
|
|
115
115
|
"types": "./input-search/index.d.ts",
|
|
116
116
|
"default": "./fesm2022/agorapulse-ui-components-input-search.mjs"
|
|
117
117
|
},
|
|
118
|
-
"./labels": {
|
|
119
|
-
"types": "./labels/index.d.ts",
|
|
120
|
-
"default": "./fesm2022/agorapulse-ui-components-labels.mjs"
|
|
121
|
-
},
|
|
122
118
|
"./labels-selector": {
|
|
123
119
|
"types": "./labels-selector/index.d.ts",
|
|
124
120
|
"default": "./fesm2022/agorapulse-ui-components-labels-selector.mjs"
|
|
125
121
|
},
|
|
122
|
+
"./labels": {
|
|
123
|
+
"types": "./labels/index.d.ts",
|
|
124
|
+
"default": "./fesm2022/agorapulse-ui-components-labels.mjs"
|
|
125
|
+
},
|
|
126
126
|
"./media-display-overlay": {
|
|
127
127
|
"types": "./media-display-overlay/index.d.ts",
|
|
128
128
|
"default": "./fesm2022/agorapulse-ui-components-media-display-overlay.mjs"
|
|
129
129
|
},
|
|
130
|
+
"./neo-datepicker": {
|
|
131
|
+
"types": "./neo-datepicker/index.d.ts",
|
|
132
|
+
"default": "./fesm2022/agorapulse-ui-components-neo-datepicker.mjs"
|
|
133
|
+
},
|
|
130
134
|
"./modal": {
|
|
131
135
|
"types": "./modal/index.d.ts",
|
|
132
136
|
"default": "./fesm2022/agorapulse-ui-components-modal.mjs"
|
|
@@ -135,18 +139,10 @@
|
|
|
135
139
|
"types": "./nav-selector/index.d.ts",
|
|
136
140
|
"default": "./fesm2022/agorapulse-ui-components-nav-selector.mjs"
|
|
137
141
|
},
|
|
138
|
-
"./neo-datepicker": {
|
|
139
|
-
"types": "./neo-datepicker/index.d.ts",
|
|
140
|
-
"default": "./fesm2022/agorapulse-ui-components-neo-datepicker.mjs"
|
|
141
|
-
},
|
|
142
142
|
"./notification": {
|
|
143
143
|
"types": "./notification/index.d.ts",
|
|
144
144
|
"default": "./fesm2022/agorapulse-ui-components-notification.mjs"
|
|
145
145
|
},
|
|
146
|
-
"./paginator": {
|
|
147
|
-
"types": "./paginator/index.d.ts",
|
|
148
|
-
"default": "./fesm2022/agorapulse-ui-components-paginator.mjs"
|
|
149
|
-
},
|
|
150
146
|
"./password-input": {
|
|
151
147
|
"types": "./password-input/index.d.ts",
|
|
152
148
|
"default": "./fesm2022/agorapulse-ui-components-password-input.mjs"
|
|
@@ -155,6 +151,10 @@
|
|
|
155
151
|
"types": "./phone-number-input/index.d.ts",
|
|
156
152
|
"default": "./fesm2022/agorapulse-ui-components-phone-number-input.mjs"
|
|
157
153
|
},
|
|
154
|
+
"./paginator": {
|
|
155
|
+
"types": "./paginator/index.d.ts",
|
|
156
|
+
"default": "./fesm2022/agorapulse-ui-components-paginator.mjs"
|
|
157
|
+
},
|
|
158
158
|
"./popmenu": {
|
|
159
159
|
"types": "./popmenu/index.d.ts",
|
|
160
160
|
"default": "./fesm2022/agorapulse-ui-components-popmenu.mjs"
|
|
@@ -167,6 +167,10 @@
|
|
|
167
167
|
"types": "./range-slider/index.d.ts",
|
|
168
168
|
"default": "./fesm2022/agorapulse-ui-components-range-slider.mjs"
|
|
169
169
|
},
|
|
170
|
+
"./select": {
|
|
171
|
+
"types": "./select/index.d.ts",
|
|
172
|
+
"default": "./fesm2022/agorapulse-ui-components-select.mjs"
|
|
173
|
+
},
|
|
170
174
|
"./slide-toggle": {
|
|
171
175
|
"types": "./slide-toggle/index.d.ts",
|
|
172
176
|
"default": "./fesm2022/agorapulse-ui-components-slide-toggle.mjs"
|
|
@@ -183,18 +187,14 @@
|
|
|
183
187
|
"types": "./split-button/index.d.ts",
|
|
184
188
|
"default": "./fesm2022/agorapulse-ui-components-split-button.mjs"
|
|
185
189
|
},
|
|
186
|
-
"./
|
|
187
|
-
"types": "./
|
|
188
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
190
|
+
"./status-card": {
|
|
191
|
+
"types": "./status-card/index.d.ts",
|
|
192
|
+
"default": "./fesm2022/agorapulse-ui-components-status-card.mjs"
|
|
189
193
|
},
|
|
190
194
|
"./status": {
|
|
191
195
|
"types": "./status/index.d.ts",
|
|
192
196
|
"default": "./fesm2022/agorapulse-ui-components-status.mjs"
|
|
193
197
|
},
|
|
194
|
-
"./status-card": {
|
|
195
|
-
"types": "./status-card/index.d.ts",
|
|
196
|
-
"default": "./fesm2022/agorapulse-ui-components-status-card.mjs"
|
|
197
|
-
},
|
|
198
198
|
"./stepper": {
|
|
199
199
|
"types": "./stepper/index.d.ts",
|
|
200
200
|
"default": "./fesm2022/agorapulse-ui-components-stepper.mjs"
|
|
@@ -207,17 +207,17 @@
|
|
|
207
207
|
"types": "./text-measurement/index.d.ts",
|
|
208
208
|
"default": "./fesm2022/agorapulse-ui-components-text-measurement.mjs"
|
|
209
209
|
},
|
|
210
|
-
"./
|
|
211
|
-
"types": "./
|
|
212
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
210
|
+
"./textarea": {
|
|
211
|
+
"types": "./textarea/index.d.ts",
|
|
212
|
+
"default": "./fesm2022/agorapulse-ui-components-textarea.mjs"
|
|
213
213
|
},
|
|
214
214
|
"./toggle": {
|
|
215
215
|
"types": "./toggle/index.d.ts",
|
|
216
216
|
"default": "./fesm2022/agorapulse-ui-components-toggle.mjs"
|
|
217
217
|
},
|
|
218
|
-
"./
|
|
219
|
-
"types": "./
|
|
220
|
-
"default": "./fesm2022/agorapulse-ui-components-
|
|
218
|
+
"./tooltip": {
|
|
219
|
+
"types": "./tooltip/index.d.ts",
|
|
220
|
+
"default": "./fesm2022/agorapulse-ui-components-tooltip.mjs"
|
|
221
221
|
},
|
|
222
222
|
"./legacy/input": {
|
|
223
223
|
"types": "./legacy/input/index.d.ts",
|
package/select/index.d.ts
CHANGED
|
@@ -137,7 +137,7 @@ declare class SelectLabelSingleComponent {
|
|
|
137
137
|
}
|
|
138
138
|
|
|
139
139
|
declare class SelectLabelMultipleComponent implements AfterViewInit {
|
|
140
|
-
displayType: _angular_core.InputSignal<"
|
|
140
|
+
displayType: _angular_core.InputSignal<"label" | "tag">;
|
|
141
141
|
selectedItems: _angular_core.InputSignal<any[]>;
|
|
142
142
|
bindLabel: _angular_core.InputSignal<string>;
|
|
143
143
|
bindValue: _angular_core.InputSignal<string>;
|
package/tooltip/index.d.ts
CHANGED
|
@@ -8,7 +8,7 @@ declare class TooltipDirective implements AfterViewInit, OnDestroy, OnInit {
|
|
|
8
8
|
private readonly viewContainerRef;
|
|
9
9
|
private readonly destroyRef;
|
|
10
10
|
apTooltip: _angular_core.InputSignal<string | TemplateRef<HTMLElement> | null | undefined>;
|
|
11
|
-
apTooltipPosition: _angular_core.InputSignal<"
|
|
11
|
+
apTooltipPosition: _angular_core.InputSignal<"left" | "right" | "top" | "bottom" | "bottom-left" | "bottom-right" | "top-left" | "top-right">;
|
|
12
12
|
apTooltipShowDelay: _angular_core.InputSignal<number>;
|
|
13
13
|
apTooltipHideDelay: _angular_core.InputSignal<number>;
|
|
14
14
|
apTooltipDuration: _angular_core.InputSignal<number>;
|
|
Binary file
|