@seniorsistemas/angular-components 19.9.3 → 19.9.5-develop-17c73b08
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/accordion/package.json +3 -0
- package/alert/package.json +3 -0
- package/autocomplete/README.md +4 -0
- package/autocomplete/lib/autocomplete/autocomplete.component.d.ts +7 -1
- package/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.d.ts +3 -1
- package/autocomplete/package.json +3 -0
- package/badge/package.json +3 -0
- package/bignumber-input/package.json +3 -0
- package/breadcrumb/package.json +3 -0
- package/button/package.json +3 -0
- package/calendar-mask/package.json +3 -0
- package/card/package.json +3 -0
- package/chat/package.json +3 -0
- package/checkbox/lib/checkbox/checkbox.component.d.ts +1 -6
- package/checkbox/package.json +3 -0
- package/checkbox-list/lib/checkbox-list/checkbox-list.component.d.ts +8 -0
- package/checkbox-list/package.json +3 -0
- package/chips/package.json +3 -0
- package/code-editor/package.json +3 -0
- package/collapse-link/package.json +3 -0
- package/common/deprecated-selector/package.json +3 -0
- package/common/package.json +3 -0
- package/confirm-dialog/package.json +3 -0
- package/content-generator/lib/content-generator/content-generator.component.d.ts +2 -2
- package/content-generator/package.json +3 -0
- package/control-errors/package.json +3 -0
- package/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.d.ts +2 -0
- package/country-phone-picker/package.json +3 -0
- package/currency/package.json +3 -0
- package/custom-fields/package.json +3 -0
- package/datepicker/package.json +3 -0
- package/dialog/package.json +3 -0
- package/drawer/README.md +9 -2
- package/drawer/lib/drawer/drawer.component.d.ts +12 -1
- package/drawer/package.json +3 -0
- package/dynamic-form/package.json +3 -0
- package/editable-overlay/package.json +3 -0
- package/editor/lib/editor/editor.component.d.ts +1 -1
- package/editor/package.json +3 -0
- package/empty-state/package.json +3 -0
- package/esm2022/alert/lib/alert/alert.component.mjs +3 -3
- package/esm2022/autocomplete/lib/autocomplete/autocomplete.component.mjs +10 -4
- package/esm2022/autocomplete/lib/autocomplete/components/autocomplete-chip/autocomplete-chip.component.mjs +5 -3
- package/esm2022/button/lib/button/button.component.mjs +3 -3
- package/esm2022/checkbox/lib/checkbox/checkbox.component.mjs +3 -9
- package/esm2022/checkbox-list/lib/checkbox-list/checkbox-list.component.mjs +17 -5
- package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +9 -8
- package/esm2022/country-phone-picker/lib/country-phone-picker/country-phone-picker.component.mjs +18 -3
- package/esm2022/drawer/lib/drawer/drawer.component.mjs +33 -11
- package/esm2022/drawer/lib/drawer/drawer.module.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-switch-field/boolean-switch-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/checkbox/checkbox-field.component.mjs +4 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +3 -3
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/select/select-field.component.mjs +2 -2
- package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +3 -3
- package/esm2022/editor/lib/editor/editor.component.mjs +8 -8
- package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +4 -4
- package/esm2022/global-search/lib/global-search/global-search.module.mjs +2 -2
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +3 -3
- package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-text/inline-edit-text.component.mjs +2 -3
- package/esm2022/insights/lib/insights/components/insights-card/insights-card.component.mjs +21 -3
- package/esm2022/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.mjs +14 -3
- package/esm2022/insights/lib/insights/insights.component.mjs +15 -4
- package/esm2022/paginator/lib/models/paginator.models.mjs +1 -1
- package/esm2022/paginator/lib/paginator/paginator.component.mjs +19 -13
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +19 -8
- package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.module.mjs +3 -4
- package/esm2022/rating-scale/lib/rating-scale/models/rating-scale-node.mjs +1 -1
- package/esm2022/rating-scale/lib/rating-scale/rating-scale.component.mjs +23 -3
- package/esm2022/select/lib/select/components/select-option/select-option.component.mjs +5 -3
- package/esm2022/select/lib/select/select.component.mjs +6 -4
- package/esm2022/side-sheet/lib/side-sheet/side-sheet.component.mjs +6 -5
- package/esm2022/slider/lib/slider/slider.component.mjs +3 -3
- package/esm2022/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.mjs +58 -8
- package/esm2022/split-button/lib/split-button/split-button.component.mjs +11 -3
- package/esm2022/star-rating/star-rating/star-rating.component.mjs +3 -3
- package/esm2022/table/lib/table/table-column/table-columns.component.mjs +1 -1
- package/esm2022/table-header/lib/table-header/table-header-checkbox.component.mjs +14 -21
- package/esm2022/text-area/lib/text-area/text-area.component.mjs +3 -3
- package/esm2022/token-list/lib/token-list/token-list.component.mjs +7 -3
- package/esm2022/tooltip/lib/tooltip/tooltip.directive.mjs +3 -2
- package/esm2022/utils/lib/utils/utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-alert.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-alert.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs +13 -5
- package/fesm2022/seniorsistemas-angular-components-autocomplete.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-button.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs +16 -4
- package/fesm2022/seniorsistemas-angular-components-checkbox-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs +2 -8
- package/fesm2022/seniorsistemas-angular-components-checkbox.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +8 -6
- package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs +17 -2
- package/fesm2022/seniorsistemas-angular-components-country-phone-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs +32 -9
- package/fesm2022/seniorsistemas-angular-components-drawer.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +17 -17
- package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-editor.mjs +7 -7
- package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs +3 -3
- package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +3 -4
- package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-insights.mjs +47 -7
- package/fesm2022/seniorsistemas-angular-components-insights.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs +18 -12
- package/fesm2022/seniorsistemas-angular-components-paginator.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +20 -9
- package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs +22 -2
- package/fesm2022/seniorsistemas-angular-components-rating-scale.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-select.mjs +9 -5
- package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs +5 -4
- package/fesm2022/seniorsistemas-angular-components-side-sheet.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-slider.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-slider.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs +57 -7
- package/fesm2022/seniorsistemas-angular-components-speech-recognition.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs +10 -2
- package/fesm2022/seniorsistemas-angular-components-split-button.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-star-rating.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs +13 -20
- package/fesm2022/seniorsistemas-angular-components-table-header.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
- package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs +2 -2
- package/fesm2022/seniorsistemas-angular-components-text-area.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs +6 -2
- package/fesm2022/seniorsistemas-angular-components-token-list.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs +2 -1
- package/fesm2022/seniorsistemas-angular-components-tooltip.mjs.map +1 -1
- package/fesm2022/seniorsistemas-angular-components-utils.mjs +49 -3
- package/fesm2022/seniorsistemas-angular-components-utils.mjs.map +1 -1
- package/fieldset/package.json +3 -0
- package/file-picker/package.json +3 -0
- package/file-upload/package.json +3 -0
- package/gantt/package.json +3 -0
- package/global-search/lib/global-search/global-search.module.d.ts +1 -1
- package/global-search/package.json +3 -0
- package/grid-menu/package.json +3 -0
- package/help-popover/package.json +3 -0
- package/ia-insight/package.json +3 -0
- package/image-cropper/package.json +3 -0
- package/infinite-scroll/package.json +3 -0
- package/info-sign/package.json +3 -0
- package/inline-edit/package.json +3 -0
- package/input-mask/package.json +3 -0
- package/input-text/package.json +3 -0
- package/insights/README.md +12 -0
- package/insights/lib/insights/components/insights-card/insights-card.component.d.ts +22 -1
- package/insights/lib/insights/components/insights-sidebar/insights-sidebar.component.d.ts +9 -1
- package/insights/lib/insights/insights.component.d.ts +9 -1
- package/insights/package.json +3 -0
- package/interactive-content/package.json +3 -0
- package/kanban/package.json +3 -0
- package/label-value/package.json +3 -0
- package/loading-state/package.json +3 -0
- package/locale/package.json +3 -0
- package/localized-number-input/package.json +3 -0
- package/mask/package.json +3 -0
- package/mouse-events/package.json +3 -0
- package/navigation-button/package.json +3 -0
- package/number-input/package.json +3 -0
- package/numeric/package.json +3 -0
- package/numeric-mask/package.json +3 -0
- package/object-card/package.json +3 -0
- package/optional-fields/editor/package.json +3 -0
- package/package.json +398 -400
- package/paginator/lib/models/paginator.models.d.ts +1 -0
- package/paginator/lib/paginator/paginator.component.d.ts +3 -1
- package/paginator/package.json +3 -0
- package/panel/package.json +3 -0
- package/password-strength/package.json +3 -0
- package/picklist/package.json +3 -0
- package/pin-code-field/package.json +3 -0
- package/product-header/package.json +3 -0
- package/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.d.ts +3 -1
- package/profile-picture-picker/package.json +3 -0
- package/progressbar/package.json +3 -0
- package/radio-button/package.json +3 -0
- package/rating-scale/README.md +38 -13
- package/rating-scale/lib/rating-scale/models/rating-scale-node.d.ts +8 -0
- package/rating-scale/lib/rating-scale/rating-scale.component.d.ts +4 -1
- package/rating-scale/package.json +3 -0
- package/select/README.md +2 -0
- package/select/lib/select/components/select-option/select-option.component.d.ts +3 -1
- package/select/lib/select/select.component.d.ts +3 -1
- package/select/package.json +3 -0
- package/select-button/package.json +3 -0
- package/shared/package.json +3 -0
- package/side-sheet/README.md +4 -4
- package/side-sheet/lib/side-sheet/side-sheet.component.d.ts +1 -0
- package/side-sheet/package.json +3 -0
- package/sidebar/package.json +3 -0
- package/slide-in-bar/package.json +3 -0
- package/slider/package.json +3 -0
- package/speech-recognition/README.md +1 -0
- package/speech-recognition/lib/speech-recognition/speech-recognition/speech-recognition.component.d.ts +4 -1
- package/speech-recognition/package.json +3 -0
- package/split-button/README.md +2 -0
- package/split-button/lib/split-button/split-button.component.d.ts +5 -1
- package/split-button/package.json +3 -0
- package/spotlight/package.json +3 -0
- package/star-rating/package.json +3 -0
- package/stats-card/package.json +3 -0
- package/stepper/package.json +3 -0
- package/structure/package.json +3 -0
- package/switch/package.json +3 -0
- package/table/package.json +3 -0
- package/table-header/lib/table-header/table-header-checkbox.component.d.ts +1 -4
- package/table-header/package.json +3 -0
- package/tabs/package.json +3 -0
- package/template/package.json +3 -0
- package/text-area/package.json +3 -0
- package/text-area-ia/package.json +3 -0
- package/thumbnail/package.json +3 -0
- package/thumbnails/package.json +3 -0
- package/tiered-menu/package.json +3 -0
- package/tile/package.json +3 -0
- package/timeline/package.json +3 -0
- package/toast/package.json +3 -0
- package/token-list/lib/token-list/token-list.component.d.ts +3 -1
- package/token-list/package.json +3 -0
- package/tooltip/package.json +3 -0
- package/topbar/package.json +3 -0
- package/tree/package.json +3 -0
- package/utils/lib/utils/utils.d.ts +21 -0
- package/utils/package.json +3 -0
- package/workspace-switch/package.json +3 -0
|
@@ -71,11 +71,11 @@ class AlertComponent {
|
|
|
71
71
|
}
|
|
72
72
|
_isOpen = true;
|
|
73
73
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
74
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AlertComponent, isStandalone: true, selector: "s-alert", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: false, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: false, isRequired: true, transformFunction: null }, detail: { classPropertyName: "detail", publicName: "detail", isSignal: false, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: false, isRequired: false, transformFunction: null }, escape: { classPropertyName: "escape", publicName: "escape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (isOpen) {\n <div\n class=\"alert
|
|
74
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AlertComponent, isStandalone: true, selector: "s-alert", inputs: { severity: { classPropertyName: "severity", publicName: "severity", isSignal: false, isRequired: false, transformFunction: null }, summary: { classPropertyName: "summary", publicName: "summary", isSignal: false, isRequired: true, transformFunction: null }, detail: { classPropertyName: "detail", publicName: "detail", isSignal: false, isRequired: false, transformFunction: null }, closable: { classPropertyName: "closable", publicName: "closable", isSignal: false, isRequired: false, transformFunction: null }, escape: { classPropertyName: "escape", publicName: "escape", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed" }, ngImport: i0, template: "@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
|
|
75
75
|
}
|
|
76
76
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AlertComponent, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
|
-
args: [{ selector: 's-alert', standalone: true, imports: [NgClass], template: "@if (isOpen) {\n <div\n class=\"alert
|
|
78
|
+
args: [{ selector: 's-alert', standalone: true, imports: [NgClass], template: "@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n" }]
|
|
79
79
|
}], propDecorators: { severity: [{
|
|
80
80
|
type: Input
|
|
81
81
|
}], summary: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"seniorsistemas-angular-components-alert.mjs","sources":["../../projects/angular-components/alert/src/lib/alert/alert.component.ts","../../projects/angular-components/alert/src/lib/alert/alert.component.html","../../projects/angular-components/alert/src/lib/alert/alert.module.ts","../../projects/angular-components/alert/src/seniorsistemas-angular-components-alert.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * @description Componente de alerta que exibe mensagens informativas, de sucesso, aviso ou erro.\r\n * Suporta fechamento manual pelo usuário e emite um evento ao ser fechado.\r\n *\r\n * @example\r\n * ```html\r\n * <s-alert\r\n * severity=\"warning\"\r\n * summary=\"Atenção\"\r\n * detail=\"Verifique os dados antes de continuar.\"\r\n * (closed)=\"onAlertClosed()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-alert',\r\n templateUrl: './alert.component.html',\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class AlertComponent {\r\n /**\r\n * @description Nível de severidade do alerta, que define a cor e o ícone exibidos.\r\n * - `'info'`: alerta informativo (padrão).\r\n * - `'success'`: alerta de sucesso.\r\n * - `'warning'`: alerta de aviso.\r\n * - `'error'`: alerta de erro.\r\n *\r\n * @default 'info'\r\n */\r\n // sonar-ignore: Refactor this union type to have less than 3 elements\r\n @Input()\r\n public severity: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n /**\r\n * @description Título principal do alerta exibido em destaque. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public summary!: string;\r\n\r\n /**\r\n * @description Mensagem detalhada exibida abaixo do título do alerta. Campo obrigatório.\r\n */\r\n @Input()\r\n public detail!: string;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar o alerta.\r\n * Quando `false`, o alerta não pode ser dispensado pelo usuário.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public closable = true;\r\n\r\n /**\r\n * @description Quando `true`, o conteúdo do alerta é escapado para evitar a execução de HTML ou scripts.\r\n * Quando `false`, o conteúdo do alerta é renderizado como HTML, permitindo a inclusão de links, negrito, etc.\r\n *\r\n * @default true\r\n */\r\n escape = input<boolean>(true);\r\n\r\n /**\r\n * @description Emitido quando o usuário fecha o alerta clicando no botão de fechar.\r\n */\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n public closeAlert(): void {\r\n this._isOpen = false;\r\n }\r\n\r\n public showAlert(): void {\r\n this._isOpen = true;\r\n }\r\n\r\n public onClose(): void {\r\n this.closed.emit();\r\n this.closeAlert();\r\n }\r\n\r\n private _isOpen = true;\r\n}\r\n","@if (isOpen) {\n <div\n class=\"alert
|
|
1
|
+
{"version":3,"file":"seniorsistemas-angular-components-alert.mjs","sources":["../../projects/angular-components/alert/src/lib/alert/alert.component.ts","../../projects/angular-components/alert/src/lib/alert/alert.component.html","../../projects/angular-components/alert/src/lib/alert/alert.module.ts","../../projects/angular-components/alert/src/seniorsistemas-angular-components-alert.ts"],"sourcesContent":["import { NgClass } from '@angular/common';\r\nimport { Component, EventEmitter, input, Input, Output } from '@angular/core';\r\n\r\n/**\r\n * @description Componente de alerta que exibe mensagens informativas, de sucesso, aviso ou erro.\r\n * Suporta fechamento manual pelo usuário e emite um evento ao ser fechado.\r\n *\r\n * @example\r\n * ```html\r\n * <s-alert\r\n * severity=\"warning\"\r\n * summary=\"Atenção\"\r\n * detail=\"Verifique os dados antes de continuar.\"\r\n * (closed)=\"onAlertClosed()\"\r\n * />\r\n * ```\r\n *\r\n * @category Feedback\r\n */\r\n@Component({\r\n selector: 's-alert',\r\n templateUrl: './alert.component.html',\r\n standalone: true,\r\n imports: [NgClass],\r\n})\r\nexport class AlertComponent {\r\n /**\r\n * @description Nível de severidade do alerta, que define a cor e o ícone exibidos.\r\n * - `'info'`: alerta informativo (padrão).\r\n * - `'success'`: alerta de sucesso.\r\n * - `'warning'`: alerta de aviso.\r\n * - `'error'`: alerta de erro.\r\n *\r\n * @default 'info'\r\n */\r\n // sonar-ignore: Refactor this union type to have less than 3 elements\r\n @Input()\r\n public severity: 'info' | 'success' | 'warning' | 'error' = 'info';\r\n\r\n /**\r\n * @description Título principal do alerta exibido em destaque. Campo obrigatório.\r\n */\r\n @Input({ required: true })\r\n public summary!: string;\r\n\r\n /**\r\n * @description Mensagem detalhada exibida abaixo do título do alerta. Campo obrigatório.\r\n */\r\n @Input()\r\n public detail!: string;\r\n\r\n /**\r\n * @description Quando `true`, exibe o botão de fechar o alerta.\r\n * Quando `false`, o alerta não pode ser dispensado pelo usuário.\r\n *\r\n * @default true\r\n */\r\n @Input()\r\n public closable = true;\r\n\r\n /**\r\n * @description Quando `true`, o conteúdo do alerta é escapado para evitar a execução de HTML ou scripts.\r\n * Quando `false`, o conteúdo do alerta é renderizado como HTML, permitindo a inclusão de links, negrito, etc.\r\n *\r\n * @default true\r\n */\r\n escape = input<boolean>(true);\r\n\r\n /**\r\n * @description Emitido quando o usuário fecha o alerta clicando no botão de fechar.\r\n */\r\n @Output()\r\n public closed = new EventEmitter<void>();\r\n\r\n public get isOpen(): boolean {\r\n return this._isOpen;\r\n }\r\n\r\n public closeAlert(): void {\r\n this._isOpen = false;\r\n }\r\n\r\n public showAlert(): void {\r\n this._isOpen = true;\r\n }\r\n\r\n public onClose(): void {\r\n this.closed.emit();\r\n this.closeAlert();\r\n }\r\n\r\n private _isOpen = true;\r\n}\r\n","@if (isOpen) {\n <div\n class=\"alert my-2 flex items-center justify-between gap-4 rounded-medium border-l-4 px-4 py-3 shadow-[1px_1px_2px_rgba(0,0,0,0.2)]\"\n [ngClass]=\"{\n 'alert--info': severity === 'info',\n 'alert--success': severity === 'success',\n 'alert--warning': severity === 'warning',\n 'alert--error': severity === 'error',\n 'border-primary bg-hippie-blue-50': severity === 'info',\n 'border-criticality-green bg-teal-50': severity === 'success',\n 'border-criticality-yellow bg-buttercup-50': severity === 'warning',\n 'border-criticality-red bg-sunset-orange-50': severity === 'error',\n }\"\n >\n <div class=\"content flex items-center gap-4\">\n <div\n class=\"icon-container inline-flex h-10 w-10 flex-shrink-0 items-center justify-center rounded-[50%]\"\n [ngClass]=\"{\n 'bg-primary': severity === 'info',\n 'bg-criticality-green': severity === 'success',\n 'bg-criticality-yellow': severity === 'warning',\n 'bg-criticality-red': severity === 'error',\n }\"\n >\n <i\n class=\"fas\"\n [ngClass]=\"{\n 'fa-info': severity === 'info',\n 'fa-check': severity === 'success',\n 'fa-exclamation-triangle': severity === 'warning',\n 'fa-times': severity === 'error',\n 'text-grayscale-0': severity !== 'warning',\n 'text-grayscale-90': severity === 'warning',\n }\"\n ></i>\n </div>\n <div class=\"text-container flex flex-col gap-4\">\n <div class=\"text flex flex-col justify-start\">\n @if (summary) {\n <span class=\"summary font-open-sans text-sm font-bold text-grayscale-90\">{{ summary }}</span>\n }\n\n @if (detail) {\n @if (escape()) {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n {{ detail }}\n </span>\n } @else {\n <span\n class=\"detail font-open-sans text-sm text-grayscale-90\"\n [innerHTML]=\"detail\"\n ></span>\n }\n } @else {\n <span class=\"detail font-open-sans text-sm text-grayscale-90\">\n <ng-content />\n </span>\n }\n </div>\n </div>\n </div>\n @if (closable) {\n <button\n class=\"close-option cursor-pointer border-0 bg-transparent p-1 text-base text-grayscale-90\"\n (click)=\"onClose()\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n }\n </div>\n}\n","import { NgModule } from '@angular/core';\r\n\r\nimport { AlertComponent } from './alert.component';\r\n\r\n@NgModule({\r\n imports: [AlertComponent],\r\n exports: [AlertComponent],\r\n})\r\nexport class AlertModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;AAGA;;;;;;;;;;;;;;;AAeG;MAOU,cAAc,CAAA;AACvB;;;;;;;;AAQG;;IAGI,QAAQ,GAA6C,MAAM,CAAC;AAEnE;;AAEG;AAEI,IAAA,OAAO,CAAU;AAExB;;AAEG;AAEI,IAAA,MAAM,CAAU;AAEvB;;;;;AAKG;IAEI,QAAQ,GAAG,IAAI,CAAC;AAEvB;;;;;AAKG;AACH,IAAA,MAAM,GAAG,KAAK,CAAU,IAAI,CAAC,CAAC;AAE9B;;AAEG;AAEI,IAAA,MAAM,GAAG,IAAI,YAAY,EAAQ,CAAC;AAEzC,IAAA,IAAW,MAAM,GAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;KACvB;IAEM,UAAU,GAAA;AACb,QAAA,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC;KACxB;IAEM,SAAS,GAAA;AACZ,QAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;KACvB;IAEM,OAAO,GAAA;AACV,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;IAEO,OAAO,GAAG,IAAI,CAAC;wGAlEd,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;4FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzB3B,6qGAuEA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDhDc,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FAER,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,EAEP,UAAA,EAAA,IAAI,EACP,OAAA,EAAA,CAAC,OAAO,CAAC,EAAA,QAAA,EAAA,6qGAAA,EAAA,CAAA;8BAcX,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAOC,OAAO,EAAA,CAAA;sBADb,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAA;gBAOlB,MAAM,EAAA,CAAA;sBADZ,KAAK;gBAUC,QAAQ,EAAA,CAAA;sBADd,KAAK;gBAeC,MAAM,EAAA,CAAA;sBADZ,MAAM;;;ME/DE,WAAW,CAAA;wGAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAX,WAAW,EAAA,OAAA,EAAA,CAHV,cAAc,CAAA,EAAA,OAAA,EAAA,CACd,cAAc,CAAA,EAAA,CAAA,CAAA;yGAEf,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,OAAO,EAAE,CAAC,cAAc,CAAC;AAC5B,iBAAA,CAAA;;;ACPD;;AAEG;;;;"}
|
|
@@ -18,16 +18,18 @@ import { AutoComplete } from 'primeng/autocomplete';
|
|
|
18
18
|
class AutocompleteChipComponent {
|
|
19
19
|
suggestion = input.required();
|
|
20
20
|
suggestionLabel = input();
|
|
21
|
+
/** @description Classe do ícone do botão de remover o chip. @default 'far fa-times' */
|
|
22
|
+
removeIconClass = input('far fa-times');
|
|
21
23
|
suggestionRemoved = output();
|
|
22
24
|
removeSuggestion() {
|
|
23
25
|
this.suggestionRemoved.emit(this.suggestion());
|
|
24
26
|
}
|
|
25
27
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteChipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
26
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: AutocompleteChipComponent, isStandalone: true, selector: "s-autocomplete-chip", inputs: { suggestion: { classPropertyName: "suggestion", publicName: "suggestion", isSignal: true, isRequired: true, transformFunction: null }, suggestionLabel: { classPropertyName: "suggestionLabel", publicName: "suggestionLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { suggestionRemoved: "suggestionRemoved" }, ngImport: i0, template: "<div class=\"flex items-center gap-2 rounded-[4px] border border-grayscale-50 bg-grayscale-10 px-2\">\n <span class=\"text-nowrap\">{{ suggestionLabel() ? suggestion()[suggestionLabel()!] : suggestion() }}</span>\n <button (click)=\"removeSuggestion()\">\n <i class=\"
|
|
28
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.14", type: AutocompleteChipComponent, isStandalone: true, selector: "s-autocomplete-chip", inputs: { suggestion: { classPropertyName: "suggestion", publicName: "suggestion", isSignal: true, isRequired: true, transformFunction: null }, suggestionLabel: { classPropertyName: "suggestionLabel", publicName: "suggestionLabel", isSignal: true, isRequired: false, transformFunction: null }, removeIconClass: { classPropertyName: "removeIconClass", publicName: "removeIconClass", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { suggestionRemoved: "suggestionRemoved" }, ngImport: i0, template: "<div class=\"flex items-center gap-2 rounded-[4px] border border-grayscale-50 bg-grayscale-10 px-2\">\n <span class=\"text-nowrap\">{{ suggestionLabel() ? suggestion()[suggestionLabel()!] : suggestion() }}</span>\n <button (click)=\"removeSuggestion()\">\n <i [class]=\"removeIconClass()\"></i>\n </button>\n</div>\n" });
|
|
27
29
|
}
|
|
28
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteChipComponent, decorators: [{
|
|
29
31
|
type: Component,
|
|
30
|
-
args: [{ selector: 's-autocomplete-chip', standalone: true, template: "<div class=\"flex items-center gap-2 rounded-[4px] border border-grayscale-50 bg-grayscale-10 px-2\">\n <span class=\"text-nowrap\">{{ suggestionLabel() ? suggestion()[suggestionLabel()!] : suggestion() }}</span>\n <button (click)=\"removeSuggestion()\">\n <i class=\"
|
|
32
|
+
args: [{ selector: 's-autocomplete-chip', standalone: true, template: "<div class=\"flex items-center gap-2 rounded-[4px] border border-grayscale-50 bg-grayscale-10 px-2\">\n <span class=\"text-nowrap\">{{ suggestionLabel() ? suggestion()[suggestionLabel()!] : suggestion() }}</span>\n <button (click)=\"removeSuggestion()\">\n <i [class]=\"removeIconClass()\"></i>\n </button>\n</div>\n" }]
|
|
31
33
|
}] });
|
|
32
34
|
|
|
33
35
|
/**
|
|
@@ -79,6 +81,12 @@ class AutocompleteComponent {
|
|
|
79
81
|
forceSelection = input(false);
|
|
80
82
|
/** @description Exibe ícone de checkmark ao lado da opção selecionada no dropdown. @default false */
|
|
81
83
|
checkmark = input(false);
|
|
84
|
+
/** @description Classe do ícone do botão de limpar o valor do campo. @default 'far fa-times' */
|
|
85
|
+
clearIconClass = input('far fa-times');
|
|
86
|
+
/** @description Classe do ícone de checkmark exibido ao lado da opção selecionada no dropdown. @default 'far fa-check' */
|
|
87
|
+
checkIconClass = input('far fa-check');
|
|
88
|
+
/** @description Classe do ícone do botão de remover chip, exibido no modo `multiple`. @default 'far fa-times' */
|
|
89
|
+
removeIconClass = input('far fa-times');
|
|
82
90
|
/** @description Habilita seleção de múltiplos itens exibidos como chips no campo. @default false */
|
|
83
91
|
multiple = input(false);
|
|
84
92
|
/** @description Quantidade mínima de caracteres necessária para acionar a busca por sugestões. @default 1 */
|
|
@@ -590,13 +598,13 @@ class AutocompleteComponent {
|
|
|
590
598
|
}
|
|
591
599
|
}
|
|
592
600
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
593
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AutocompleteComponent, isStandalone: true, selector: "s-autocomplete", inputs: { suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, suggestionValue: { classPropertyName: "suggestionValue", publicName: "suggestionValue", isSignal: true, isRequired: false, transformFunction: null }, suggestionLabel: { classPropertyName: "suggestionLabel", publicName: "suggestionLabel", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, dropdown: { classPropertyName: "dropdown", publicName: "dropdown", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, minLengthToSearch: { classPropertyName: "minLengthToSearch", publicName: "minLengthToSearch", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", values: "valuesChange", disabled: "disabledChange", lazyLoad: "lazyLoad", selected: "selected", unselected: "unselected", blurred: "blurred", cleared: "cleared", keyUp: "keyUp", focused: "focused", completeMethod: "completeMethod" }, host: { attributes: { "role": "combobox" }, listeners: { "window:resize": "onWindowResize()" }, properties: { "attr.aria-expanded": "isOpen()", "attr.aria-haspopup": "\"listbox\"", "attr.aria-owns": "isOpen() ? \"dropdown-container-\" + componentId : null" } }, providers: [
|
|
601
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: AutocompleteComponent, isStandalone: true, selector: "s-autocomplete", inputs: { suggestions: { classPropertyName: "suggestions", publicName: "suggestions", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, suggestionValue: { classPropertyName: "suggestionValue", publicName: "suggestionValue", isSignal: true, isRequired: false, transformFunction: null }, suggestionLabel: { classPropertyName: "suggestionLabel", publicName: "suggestionLabel", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, emptyMessage: { classPropertyName: "emptyMessage", publicName: "emptyMessage", isSignal: true, isRequired: false, transformFunction: null }, delay: { classPropertyName: "delay", publicName: "delay", isSignal: true, isRequired: false, transformFunction: null }, invalid: { classPropertyName: "invalid", publicName: "invalid", isSignal: true, isRequired: false, transformFunction: null }, virtualScroll: { classPropertyName: "virtualScroll", publicName: "virtualScroll", isSignal: true, isRequired: false, transformFunction: null }, virtualScrollItemSize: { classPropertyName: "virtualScrollItemSize", publicName: "virtualScrollItemSize", isSignal: true, isRequired: false, transformFunction: null }, lazy: { classPropertyName: "lazy", publicName: "lazy", isSignal: true, isRequired: false, transformFunction: null }, dropdown: { classPropertyName: "dropdown", publicName: "dropdown", isSignal: true, isRequired: false, transformFunction: null }, forceSelection: { classPropertyName: "forceSelection", publicName: "forceSelection", isSignal: true, isRequired: false, transformFunction: null }, checkmark: { classPropertyName: "checkmark", publicName: "checkmark", isSignal: true, isRequired: false, transformFunction: null }, clearIconClass: { classPropertyName: "clearIconClass", publicName: "clearIconClass", isSignal: true, isRequired: false, transformFunction: null }, checkIconClass: { classPropertyName: "checkIconClass", publicName: "checkIconClass", isSignal: true, isRequired: false, transformFunction: null }, removeIconClass: { classPropertyName: "removeIconClass", publicName: "removeIconClass", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: "multiple", publicName: "multiple", isSignal: true, isRequired: false, transformFunction: null }, minLengthToSearch: { classPropertyName: "minLengthToSearch", publicName: "minLengthToSearch", isSignal: true, isRequired: false, transformFunction: null }, inputClass: { classPropertyName: "inputClass", publicName: "inputClass", isSignal: true, isRequired: false, transformFunction: null }, dataKey: { classPropertyName: "dataKey", publicName: "dataKey", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: false, transformFunction: null }, values: { classPropertyName: "values", publicName: "values", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "valueChange", values: "valuesChange", disabled: "disabledChange", lazyLoad: "lazyLoad", selected: "selected", unselected: "unselected", blurred: "blurred", cleared: "cleared", keyUp: "keyUp", focused: "focused", completeMethod: "completeMethod" }, host: { attributes: { "role": "combobox" }, listeners: { "window:resize": "onWindowResize()" }, properties: { "attr.aria-expanded": "isOpen()", "attr.aria-haspopup": "\"listbox\"", "attr.aria-owns": "isOpen() ? \"dropdown-container-\" + componentId : null" } }, providers: [
|
|
594
602
|
{
|
|
595
603
|
provide: NG_VALUE_ACCESSOR,
|
|
596
604
|
useExisting: forwardRef(() => AutocompleteComponent),
|
|
597
605
|
multi: true,
|
|
598
606
|
},
|
|
599
|
-
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #containerDiv\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"flex h-[35px] w-full items-center overflow-hidden rounded-[4px] border focus-within:border-2 focus-within:border-primary hover:bg-grayscale-10\"\n [class]=\"inputClass()\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5 text-grayscale-30': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0 text-grayscale-90': !disabled(),\n 'border-criticality-red': invalid(),\n }\"\n>\n <div\n class=\"flex flex-grow gap-2 px-2\"\n [ngClass]=\"{\n 'border-r': dropdown(),\n 'border-grayscale-20': dropdown() && disabled(),\n 'border-grayscale-30 focus-within:border-r-2 focus-within:border-r-primary': dropdown() && !disabled(),\n 'bg-grayscale-5': disabled(),\n 'bg-grayscale-0': !disabled(),\n }\"\n >\n @if (multiple() && values().length > 0) {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (suggestion of values(); track suggestion) {\n <s-autocomplete-chip\n [suggestion]=\"suggestion\"\n [suggestionLabel]=\"suggestionLabel()\"\n (suggestionRemoved)=\"removeSuggestion($event)\"\n ></s-autocomplete-chip>\n }\n </div>\n }\n <input\n #inputEl\n class=\"min-h-[35px] grow outline-none\"\n type=\"text\"\n [placeholder]=\"placeholder() ?? 'platform.angular_components.type_to_search' | translate\"\n [readOnly]=\"readonly()\"\n [(ngModel)]=\"inputValue\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-autocomplete]=\"multiple() ? 'list' : 'both'\"\n [attr.aria-activedescendant]=\"focusedIndex() >= 0 ? filteredSuggestions()[focusedIndex()].id : null\"\n role=\"searchbox\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keyUp)=\"onKeyUp($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center justify-center\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"animate-spin\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"9\"\n stroke=\"#428bca\"\n stroke-width=\"2\"\n fill=\"none\"\n stroke-dasharray=\"56.5\"\n stroke-dashoffset=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n } @else {\n @if (value() && !this.disabled()) {\n <button\n class=\"px-2\"\n (click)=\"clear()\"\n tabindex=\"-1\"\n >\n <i class=\"far fa-times text-grayscale-60\"></i>\n </button>\n }\n }\n </div>\n\n @if (dropdown()) {\n <button\n class=\"flex h-full w-[35px] flex-shrink-0 flex-grow-0 items-center justify-center hover:bg-grayscale-10\"\n (click)=\"toggleDropdown()\"\n >\n <i\n class=\"fas text-grayscale-90\"\n [class.fa-caret-down]=\"!isOpen()\"\n [class.fa-caret-up]=\"isOpen()\"\n ></i>\n </button>\n }\n</div>\n\n@if (showEmptyMessage() || (filteredSuggestions().length > 0 && !readonly())) {\n <ng-template\n #dropdownTemplate\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"isOpen.set(false)\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (detach)=\"isOpen.set(false)\"\n >\n <div\n [id]=\"'dropdown-container-' + componentId\"\n class=\"mt-0.5 rounded-[4px] bg-grayscale-0 py-1 shadow\"\n [style.width.px]=\"containerDiv.offsetWidth\"\n >\n <ul\n class=\"max-h-52 overflow-auto\"\n role=\"listbox\"\n >\n <!-- Virtual scroll -->\n @if (virtualScroll() && filteredSuggestions().length > 10) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize()\"\n class=\"h-52 overflow-auto\"\n >\n <ng-container\n *cdkVirtualFor=\"\n let suggestion of enrichedFilteredSuggestions();\n let i = $index;\n trackBy: trackById\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n\n <!-- Normal list -->\n @if (!virtualScroll() || filteredSuggestions().length <= 10) {\n @for (suggestion of enrichedFilteredSuggestions(); track suggestion.id; let i = $index) {\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n }\n }\n\n @if (showEmptyMessage()) {\n <span class=\"p-3 text-grayscale-60\">{{\n emptyMessage() ?? 'platform.angular_components.no_records_found' | translate\n }}</span>\n }\n </ul>\n </div>\n </ng-template>\n}\n\n<ng-template\n #suggestionItemTemplate\n let-suggestion=\"suggestion\"\n let-i=\"i\"\n>\n <li\n [id]=\"suggestion.id\"\n class=\"rounded-xsmall flex cursor-pointer items-center gap-2 px-3 py-2 text-grayscale-70\"\n [class.bg-grayscale-10]=\"i === focusedIndex()\"\n [class.bg-grayscale-20]=\"suggestion.isSelected\"\n [attr.aria-selected]=\"suggestion.isSelected\"\n role=\"option\"\n (click)=\"selectSuggestion(suggestion.data)\"\n >\n @if (checkmark() && multiple() && suggestion.isSelected) {\n <i class=\"far fa-check\"></i>\n }\n {{ suggestionLabel() ? suggestion.data[suggestionLabel()!] : suggestion.data }}\n </li>\n</ng-template>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i3.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: AutocompleteChipComponent, selector: "s-autocomplete-chip", inputs: ["suggestion", "suggestionLabel"], outputs: ["suggestionRemoved"] }] });
|
|
607
|
+
], viewQueries: [{ propertyName: "inputEl", first: true, predicate: ["inputEl"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\n #containerDiv\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"flex h-[35px] w-full items-center overflow-hidden rounded-[4px] border focus-within:border-2 focus-within:border-primary hover:bg-grayscale-10\"\n [class]=\"inputClass()\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5 text-grayscale-30': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0 text-grayscale-90': !disabled(),\n 'border-criticality-red': invalid(),\n }\"\n>\n <div\n class=\"flex flex-grow gap-2 px-2\"\n [ngClass]=\"{\n 'border-r': dropdown(),\n 'border-grayscale-20': dropdown() && disabled(),\n 'border-grayscale-30 focus-within:border-r-2 focus-within:border-r-primary': dropdown() && !disabled(),\n 'bg-grayscale-5': disabled(),\n 'bg-grayscale-0': !disabled(),\n }\"\n >\n @if (multiple() && values().length > 0) {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (suggestion of values(); track suggestion) {\n <s-autocomplete-chip\n [suggestion]=\"suggestion\"\n [suggestionLabel]=\"suggestionLabel()\"\n [removeIconClass]=\"removeIconClass()\"\n (suggestionRemoved)=\"removeSuggestion($event)\"\n ></s-autocomplete-chip>\n }\n </div>\n }\n <input\n #inputEl\n class=\"min-h-[35px] grow outline-none\"\n type=\"text\"\n [placeholder]=\"placeholder() ?? 'platform.angular_components.type_to_search' | translate\"\n [readOnly]=\"readonly()\"\n [(ngModel)]=\"inputValue\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-autocomplete]=\"multiple() ? 'list' : 'both'\"\n [attr.aria-activedescendant]=\"focusedIndex() >= 0 ? filteredSuggestions()[focusedIndex()].id : null\"\n role=\"searchbox\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keyUp)=\"onKeyUp($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center justify-center\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"animate-spin\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"9\"\n stroke=\"#428bca\"\n stroke-width=\"2\"\n fill=\"none\"\n stroke-dasharray=\"56.5\"\n stroke-dashoffset=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n } @else {\n @if (value() && !this.disabled()) {\n <button\n class=\"px-2\"\n (click)=\"clear()\"\n tabindex=\"-1\"\n >\n <i\n class=\"text-grayscale-60\"\n [class]=\"clearIconClass()\"\n ></i>\n </button>\n }\n }\n </div>\n\n @if (dropdown()) {\n <button\n class=\"flex h-full w-[35px] flex-shrink-0 flex-grow-0 items-center justify-center hover:bg-grayscale-10\"\n (click)=\"toggleDropdown()\"\n >\n <i\n class=\"fas text-grayscale-90\"\n [class.fa-caret-down]=\"!isOpen()\"\n [class.fa-caret-up]=\"isOpen()\"\n ></i>\n </button>\n }\n</div>\n\n@if (showEmptyMessage() || (filteredSuggestions().length > 0 && !readonly())) {\n <ng-template\n #dropdownTemplate\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"isOpen.set(false)\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (detach)=\"isOpen.set(false)\"\n >\n <div\n [id]=\"'dropdown-container-' + componentId\"\n class=\"mt-0.5 rounded-[4px] bg-grayscale-0 py-1 shadow\"\n [style.width.px]=\"containerDiv.offsetWidth\"\n >\n <ul\n class=\"max-h-52 overflow-auto\"\n role=\"listbox\"\n >\n <!-- Virtual scroll -->\n @if (virtualScroll() && filteredSuggestions().length > 10) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize()\"\n class=\"h-52 overflow-auto\"\n >\n <ng-container\n *cdkVirtualFor=\"\n let suggestion of enrichedFilteredSuggestions();\n let i = $index;\n trackBy: trackById\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n\n <!-- Normal list -->\n @if (!virtualScroll() || filteredSuggestions().length <= 10) {\n @for (suggestion of enrichedFilteredSuggestions(); track suggestion.id; let i = $index) {\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n }\n }\n\n @if (showEmptyMessage()) {\n <span class=\"p-3 text-grayscale-60\">{{\n emptyMessage() ?? 'platform.angular_components.no_records_found' | translate\n }}</span>\n }\n </ul>\n </div>\n </ng-template>\n}\n\n<ng-template\n #suggestionItemTemplate\n let-suggestion=\"suggestion\"\n let-i=\"i\"\n>\n <li\n [id]=\"suggestion.id\"\n class=\"rounded-xsmall flex cursor-pointer items-center gap-2 px-3 py-2 text-grayscale-70\"\n [class.bg-grayscale-10]=\"i === focusedIndex()\"\n [class.bg-grayscale-20]=\"suggestion.isSelected\"\n [attr.aria-selected]=\"suggestion.isSelected\"\n role=\"option\"\n (click)=\"selectSuggestion(suggestion.data)\"\n >\n @if (checkmark() && multiple() && suggestion.isSelected) {\n <i [class]=\"checkIconClass()\"></i>\n }\n {{ suggestionLabel() ? suggestion.data[suggestionLabel()!] : suggestion.data }}\n </li>\n</ng-template>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i3.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: i4.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i4.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i4.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: ScrollingModule }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "component", type: AutocompleteChipComponent, selector: "s-autocomplete-chip", inputs: ["suggestion", "suggestionLabel", "removeIconClass"], outputs: ["suggestionRemoved"] }] });
|
|
600
608
|
}
|
|
601
609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: AutocompleteComponent, decorators: [{
|
|
602
610
|
type: Component,
|
|
@@ -620,7 +628,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
620
628
|
'[attr.aria-haspopup]': '"listbox"',
|
|
621
629
|
'[attr.aria-owns]': 'isOpen() ? "dropdown-container-" + componentId : null',
|
|
622
630
|
'(window:resize)': 'onWindowResize()',
|
|
623
|
-
}, template: "<div\n #containerDiv\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"flex h-[35px] w-full items-center overflow-hidden rounded-[4px] border focus-within:border-2 focus-within:border-primary hover:bg-grayscale-10\"\n [class]=\"inputClass()\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5 text-grayscale-30': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0 text-grayscale-90': !disabled(),\n 'border-criticality-red': invalid(),\n }\"\n>\n <div\n class=\"flex flex-grow gap-2 px-2\"\n [ngClass]=\"{\n 'border-r': dropdown(),\n 'border-grayscale-20': dropdown() && disabled(),\n 'border-grayscale-30 focus-within:border-r-2 focus-within:border-r-primary': dropdown() && !disabled(),\n 'bg-grayscale-5': disabled(),\n 'bg-grayscale-0': !disabled(),\n }\"\n >\n @if (multiple() && values().length > 0) {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (suggestion of values(); track suggestion) {\n <s-autocomplete-chip\n [suggestion]=\"suggestion\"\n [suggestionLabel]=\"suggestionLabel()\"\n (suggestionRemoved)=\"removeSuggestion($event)\"\n ></s-autocomplete-chip>\n }\n </div>\n }\n <input\n #inputEl\n class=\"min-h-[35px] grow outline-none\"\n type=\"text\"\n [placeholder]=\"placeholder() ?? 'platform.angular_components.type_to_search' | translate\"\n [readOnly]=\"readonly()\"\n [(ngModel)]=\"inputValue\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-autocomplete]=\"multiple() ? 'list' : 'both'\"\n [attr.aria-activedescendant]=\"focusedIndex() >= 0 ? filteredSuggestions()[focusedIndex()].id : null\"\n role=\"searchbox\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keyUp)=\"onKeyUp($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center justify-center\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"animate-spin\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"9\"\n stroke=\"#428bca\"\n stroke-width=\"2\"\n fill=\"none\"\n stroke-dasharray=\"56.5\"\n stroke-dashoffset=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n } @else {\n @if (value() && !this.disabled()) {\n <button\n class=\"px-2\"\n (click)=\"clear()\"\n tabindex=\"-1\"\n >\n <i
|
|
631
|
+
}, template: "<div\n #containerDiv\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n class=\"flex h-[35px] w-full items-center overflow-hidden rounded-[4px] border focus-within:border-2 focus-within:border-primary hover:bg-grayscale-10\"\n [class]=\"inputClass()\"\n [ngClass]=\"{\n 'pointer-events-none border-grayscale-20 bg-grayscale-5 text-grayscale-30': disabled(),\n 'pointer-events-auto border-grayscale-30 bg-grayscale-0 text-grayscale-90': !disabled(),\n 'border-criticality-red': invalid(),\n }\"\n>\n <div\n class=\"flex flex-grow gap-2 px-2\"\n [ngClass]=\"{\n 'border-r': dropdown(),\n 'border-grayscale-20': dropdown() && disabled(),\n 'border-grayscale-30 focus-within:border-r-2 focus-within:border-r-primary': dropdown() && !disabled(),\n 'bg-grayscale-5': disabled(),\n 'bg-grayscale-0': !disabled(),\n }\"\n >\n @if (multiple() && values().length > 0) {\n <div class=\"flex flex-wrap items-center gap-2\">\n @for (suggestion of values(); track suggestion) {\n <s-autocomplete-chip\n [suggestion]=\"suggestion\"\n [suggestionLabel]=\"suggestionLabel()\"\n [removeIconClass]=\"removeIconClass()\"\n (suggestionRemoved)=\"removeSuggestion($event)\"\n ></s-autocomplete-chip>\n }\n </div>\n }\n <input\n #inputEl\n class=\"min-h-[35px] grow outline-none\"\n type=\"text\"\n [placeholder]=\"placeholder() ?? 'platform.angular_components.type_to_search' | translate\"\n [readOnly]=\"readonly()\"\n [(ngModel)]=\"inputValue\"\n [attr.aria-disabled]=\"disabled()\"\n [attr.aria-autocomplete]=\"multiple() ? 'list' : 'both'\"\n [attr.aria-activedescendant]=\"focusedIndex() >= 0 ? filteredSuggestions()[focusedIndex()].id : null\"\n role=\"searchbox\"\n (input)=\"onInput($event)\"\n (keydown)=\"onKeyDown($event)\"\n (keyUp)=\"onKeyUp($event)\"\n (blur)=\"onInputBlur($event)\"\n (focus)=\"onInputFocus($event)\"\n />\n\n @if (loading()) {\n <div class=\"flex items-center justify-center\">\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"animate-spin\"\n >\n <circle\n cx=\"10\"\n cy=\"10\"\n r=\"9\"\n stroke=\"#428bca\"\n stroke-width=\"2\"\n fill=\"none\"\n stroke-dasharray=\"56.5\"\n stroke-dashoffset=\"10\"\n stroke-linecap=\"round\"\n />\n </svg>\n </div>\n } @else {\n @if (value() && !this.disabled()) {\n <button\n class=\"px-2\"\n (click)=\"clear()\"\n tabindex=\"-1\"\n >\n <i\n class=\"text-grayscale-60\"\n [class]=\"clearIconClass()\"\n ></i>\n </button>\n }\n }\n </div>\n\n @if (dropdown()) {\n <button\n class=\"flex h-full w-[35px] flex-shrink-0 flex-grow-0 items-center justify-center hover:bg-grayscale-10\"\n (click)=\"toggleDropdown()\"\n >\n <i\n class=\"fas text-grayscale-90\"\n [class.fa-caret-down]=\"!isOpen()\"\n [class.fa-caret-up]=\"isOpen()\"\n ></i>\n </button>\n }\n</div>\n\n@if (showEmptyMessage() || (filteredSuggestions().length > 0 && !readonly())) {\n <ng-template\n #dropdownTemplate\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n (backdropClick)=\"isOpen.set(false)\"\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n (detach)=\"isOpen.set(false)\"\n >\n <div\n [id]=\"'dropdown-container-' + componentId\"\n class=\"mt-0.5 rounded-[4px] bg-grayscale-0 py-1 shadow\"\n [style.width.px]=\"containerDiv.offsetWidth\"\n >\n <ul\n class=\"max-h-52 overflow-auto\"\n role=\"listbox\"\n >\n <!-- Virtual scroll -->\n @if (virtualScroll() && filteredSuggestions().length > 10) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSize()\"\n class=\"h-52 overflow-auto\"\n >\n <ng-container\n *cdkVirtualFor=\"\n let suggestion of enrichedFilteredSuggestions();\n let i = $index;\n trackBy: trackById\n \"\n >\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n </ng-container>\n </cdk-virtual-scroll-viewport>\n }\n\n <!-- Normal list -->\n @if (!virtualScroll() || filteredSuggestions().length <= 10) {\n @for (suggestion of enrichedFilteredSuggestions(); track suggestion.id; let i = $index) {\n <ng-container\n [ngTemplateOutlet]=\"suggestionItemTemplate\"\n [ngTemplateOutletContext]=\"{ suggestion, i }\"\n ></ng-container>\n }\n }\n\n @if (showEmptyMessage()) {\n <span class=\"p-3 text-grayscale-60\">{{\n emptyMessage() ?? 'platform.angular_components.no_records_found' | translate\n }}</span>\n }\n </ul>\n </div>\n </ng-template>\n}\n\n<ng-template\n #suggestionItemTemplate\n let-suggestion=\"suggestion\"\n let-i=\"i\"\n>\n <li\n [id]=\"suggestion.id\"\n class=\"rounded-xsmall flex cursor-pointer items-center gap-2 px-3 py-2 text-grayscale-70\"\n [class.bg-grayscale-10]=\"i === focusedIndex()\"\n [class.bg-grayscale-20]=\"suggestion.isSelected\"\n [attr.aria-selected]=\"suggestion.isSelected\"\n role=\"option\"\n (click)=\"selectSuggestion(suggestion.data)\"\n >\n @if (checkmark() && multiple() && suggestion.isSelected) {\n <i [class]=\"checkIconClass()\"></i>\n }\n {{ suggestionLabel() ? suggestion.data[suggestionLabel()!] : suggestion.data }}\n </li>\n</ng-template>\n\n" }]
|
|
624
632
|
}], ctorParameters: () => [] });
|
|
625
633
|
|
|
626
634
|
/**
|