@seniorsistemas/angular-components 19.9.10 → 19.9.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. package/button/lib/button/button.component.d.ts +3 -1
  2. package/esm2022/button/lib/button/button.component.mjs +7 -3
  3. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +1 -1
  4. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +2 -2
  5. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  6. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
  7. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
  8. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  9. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  10. package/esm2022/dynamic-form/dynamic-form/form-field/fields/currency/currency-field.component.mjs +1 -1
  11. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
  12. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
  13. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  14. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
  15. package/esm2022/editor/lib/editor/link-dialog/link-dialog.component.mjs +2 -2
  16. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
  17. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +2 -2
  18. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +2 -2
  19. package/esm2022/global-search/lib/global-search/global-search.component.mjs +2 -2
  20. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  21. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
  22. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +2 -2
  23. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +2 -2
  24. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  25. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  26. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  27. package/esm2022/picklist/lib/picklist/picklist.component.mjs +2 -2
  28. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +2 -2
  29. package/esm2022/spotlight/lib/spotlight/spotlight.component.mjs +2 -2
  30. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  31. package/fesm2022/seniorsistemas-angular-components-button.mjs +6 -2
  32. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  33. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
  34. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  35. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
  36. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  37. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +10 -10
  38. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  39. package/fesm2022/seniorsistemas-angular-components-editor.mjs +1 -1
  40. package/fesm2022/seniorsistemas-angular-components-editor.mjs.map +1 -1
  41. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
  42. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  43. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  45. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
  46. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  47. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
  48. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  49. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  51. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
  52. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  53. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  55. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
  56. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  57. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
  58. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  59. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  61. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs.map +1 -1
  63. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  65. package/package.json +1 -1
@@ -612,7 +612,7 @@ class PicklistComponent {
612
612
  this.selectedItensChange.emit(parseValueEmit(this.selectedItens));
613
613
  }
614
614
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PicklistComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
615
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PicklistComponent, isStandalone: true, selector: "s-picklist", inputs: { itensToSelect: { classPropertyName: "itensToSelect", publicName: "itensToSelect", isSignal: false, isRequired: false, transformFunction: null }, selectedItens: { classPropertyName: "selectedItens", publicName: "selectedItens", isSignal: false, isRequired: false, transformFunction: null }, availableItensLabel: { classPropertyName: "availableItensLabel", publicName: "availableItensLabel", isSignal: false, isRequired: false, transformFunction: null }, availableItensPlaceholder: { classPropertyName: "availableItensPlaceholder", publicName: "availableItensPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, addSelectedItensLabel: { classPropertyName: "addSelectedItensLabel", publicName: "addSelectedItensLabel", isSignal: false, isRequired: false, transformFunction: null }, addAllItensLabel: { classPropertyName: "addAllItensLabel", publicName: "addAllItensLabel", isSignal: false, isRequired: false, transformFunction: null }, selectedItensLabel: { classPropertyName: "selectedItensLabel", publicName: "selectedItensLabel", isSignal: false, isRequired: false, transformFunction: null }, selectedItensPlaceholder: { classPropertyName: "selectedItensPlaceholder", publicName: "selectedItensPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, removeSelectedItemsLabel: { classPropertyName: "removeSelectedItemsLabel", publicName: "removeSelectedItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, removeAllItemsLabel: { classPropertyName: "removeAllItemsLabel", publicName: "removeAllItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, lazyLoad: { classPropertyName: "lazyLoad", publicName: "lazyLoad", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, sourceLoader: { classPropertyName: "sourceLoader", publicName: "sourceLoader", isSignal: true, isRequired: false, transformFunction: null }, targetLoader: { classPropertyName: "targetLoader", publicName: "targetLoader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeMoved: "nodeMoved", selectedItensChange: "selectedItensChange", itensToSelectChange: "itensToSelectChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-template\n #previewRender\n let-itens=\"itens\"\n let-template=\"template\"\n>\n <section class=\"picklist-items\">\n @for (item of itens; track $index) {\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n }\n </section>\n</ng-template>\n\n<ng-template\n #picklistItensRender\n let-id=\"id\"\n let-itens=\"itens\"\n let-template=\"template\"\n let-listConnectedTo=\"listConnectedTo\"\n let-isLoading=\"isLoading\"\n>\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\"\n *sLoadingState=\"{ loading: isLoading, indicator: logoIndicator }\"\n (scroll)=\"onScroll($event, id)\"\n >\n @for (item of itens; track $index) {\n <div\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\"\n >\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n />\n }\n <div class=\"picklist-content\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { item: item.data, selected: item.selected, disabled: item.disabled }\n \"\n ></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container\n *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"\n ></ng-container>\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template\n #checkboxTitleRender\n let-disabled=\"disabled\"\n let-checked=\"checked\"\n let-changeFn=\"changeFn\"\n let-id=\"id\"\n>\n @if (showCheckbox && !lazyLoad()) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === itensToSelectId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"itensToSelectFilterUtil.allItensSelected\"\n (change)=\"checkAllAvailableItensChange($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === selectedItensId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"selectedItensFilterUtil.allItensSelected\"\n (change)=\"checkAllSelectedItensChange($any($event.target).checked)\"\n />\n }\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"\n availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId,\n isLoading: _loadingSource(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!hasSelectedItens\"\n (clicked)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (clicked)=\"add(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"\n selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId,\n isLoading: _loadingTarget(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!hasSelectedItens\"\n [auxiliary]=\"false\"\n (clicked)=\"remove()\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (clicked)=\"remove(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n</div>\n\n", styles: [".picklist-container{display:flex;flex-wrap:wrap;border-radius:4px solid #dedce5;width:100%;background-color:#fff;gap:20px;padding:8px}.picklist-container .picklist-item-container{display:flex;flex-direction:column;flex:1}.picklist-container .picklist-item-container .picklist-box{border:1px solid #dedce5;padding:8px;height:100%;min-width:200px}.picklist-container .picklist-item-container .picklist-box .picklist-filter{display:flex;width:100%}.picklist-container .picklist-item-container .picklist-box .picklist-filter .input-search{border:1px solid #dedce5;min-height:35px;width:100%;border-radius:3px;margin-bottom:10px;margin-top:10px;padding:0 8px;flex:1}.picklist-container .picklist-item-container .picklist-box .picklist-title-container{width:100%;display:flex;align-items:center}.picklist-container .picklist-item-container .picklist-box .picklist-title-container .picklist-title{font-family:Open Sans;font-size:14px;font-weight:700;line-height:21px;text-underline-position:from-font;text-decoration-skip-ink:none}.picklist-container .picklist-item-container .picklist-box .picklist-items{max-height:23em;overflow:auto;height:100%;min-height:100px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-content{width:100%;height:100%;padding-right:8px;border-radius:3px;margin-bottom:8px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item{height:55px;border:3px;display:flex}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:not(.picklist-disabled){cursor:pointer}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:hover:not(.picklist-disabled,.picklist-item-active,.picklist-item-invisible){background-color:#f1f7f8}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-active:not(.picklist-item-invisible){background-color:#d5e8ec}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-disabled{opacity:.5;background-color:#fbfafc}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-invisible{display:none!important}.picklist-container .picklist-item-container .buttons-container{padding-top:10px;display:flex}.picklist-container .picklist-item-container .input-checkbox{margin:12px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: LoadingStateModule }, { kind: "directive", type: i4.LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }] });
615
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: PicklistComponent, isStandalone: true, selector: "s-picklist", inputs: { itensToSelect: { classPropertyName: "itensToSelect", publicName: "itensToSelect", isSignal: false, isRequired: false, transformFunction: null }, selectedItens: { classPropertyName: "selectedItens", publicName: "selectedItens", isSignal: false, isRequired: false, transformFunction: null }, availableItensLabel: { classPropertyName: "availableItensLabel", publicName: "availableItensLabel", isSignal: false, isRequired: false, transformFunction: null }, availableItensPlaceholder: { classPropertyName: "availableItensPlaceholder", publicName: "availableItensPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, addSelectedItensLabel: { classPropertyName: "addSelectedItensLabel", publicName: "addSelectedItensLabel", isSignal: false, isRequired: false, transformFunction: null }, addAllItensLabel: { classPropertyName: "addAllItensLabel", publicName: "addAllItensLabel", isSignal: false, isRequired: false, transformFunction: null }, selectedItensLabel: { classPropertyName: "selectedItensLabel", publicName: "selectedItensLabel", isSignal: false, isRequired: false, transformFunction: null }, selectedItensPlaceholder: { classPropertyName: "selectedItensPlaceholder", publicName: "selectedItensPlaceholder", isSignal: false, isRequired: false, transformFunction: null }, removeSelectedItemsLabel: { classPropertyName: "removeSelectedItemsLabel", publicName: "removeSelectedItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, removeAllItemsLabel: { classPropertyName: "removeAllItemsLabel", publicName: "removeAllItemsLabel", isSignal: false, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: "showCheckbox", publicName: "showCheckbox", isSignal: false, isRequired: false, transformFunction: null }, filterBy: { classPropertyName: "filterBy", publicName: "filterBy", isSignal: false, isRequired: false, transformFunction: null }, lazyLoad: { classPropertyName: "lazyLoad", publicName: "lazyLoad", isSignal: true, isRequired: false, transformFunction: null }, rows: { classPropertyName: "rows", publicName: "rows", isSignal: true, isRequired: false, transformFunction: null }, sourceLoader: { classPropertyName: "sourceLoader", publicName: "sourceLoader", isSignal: true, isRequired: false, transformFunction: null }, targetLoader: { classPropertyName: "targetLoader", publicName: "targetLoader", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { nodeMoved: "nodeMoved", selectedItensChange: "selectedItensChange", itensToSelectChange: "itensToSelectChange" }, queries: [{ propertyName: "templates", predicate: TemplateDirective }], usesOnChanges: true, ngImport: i0, template: "<ng-template\n #previewRender\n let-itens=\"itens\"\n let-template=\"template\"\n>\n <section class=\"picklist-items\">\n @for (item of itens; track $index) {\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n }\n </section>\n</ng-template>\n\n<ng-template\n #picklistItensRender\n let-id=\"id\"\n let-itens=\"itens\"\n let-template=\"template\"\n let-listConnectedTo=\"listConnectedTo\"\n let-isLoading=\"isLoading\"\n>\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\"\n *sLoadingState=\"{ loading: isLoading, indicator: logoIndicator }\"\n (scroll)=\"onScroll($event, id)\"\n >\n @for (item of itens; track $index) {\n <div\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\"\n >\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n />\n }\n <div class=\"picklist-content\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { item: item.data, selected: item.selected, disabled: item.disabled }\n \"\n ></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container\n *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"\n ></ng-container>\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template\n #checkboxTitleRender\n let-disabled=\"disabled\"\n let-checked=\"checked\"\n let-changeFn=\"changeFn\"\n let-id=\"id\"\n>\n @if (showCheckbox && !lazyLoad()) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === itensToSelectId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"itensToSelectFilterUtil.allItensSelected\"\n (change)=\"checkAllAvailableItensChange($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === selectedItensId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"selectedItensFilterUtil.allItensSelected\"\n (change)=\"checkAllSelectedItensChange($any($event.target).checked)\"\n />\n }\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"\n availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId,\n isLoading: _loadingSource(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!hasSelectedItens\"\n (clicked)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (clicked)=\"add(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"\n selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId,\n isLoading: _loadingTarget(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!hasSelectedItens\"\n [auxiliary]=\"false\"\n (clicked)=\"remove()\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (clicked)=\"remove(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n</div>\n\n", styles: [".picklist-container{display:flex;flex-wrap:wrap;border-radius:4px solid #dedce5;width:100%;background-color:#fff;gap:20px;padding:8px}.picklist-container .picklist-item-container{display:flex;flex-direction:column;flex:1}.picklist-container .picklist-item-container .picklist-box{border:1px solid #dedce5;padding:8px;height:100%;min-width:200px}.picklist-container .picklist-item-container .picklist-box .picklist-filter{display:flex;width:100%}.picklist-container .picklist-item-container .picklist-box .picklist-filter .input-search{border:1px solid #dedce5;min-height:35px;width:100%;border-radius:3px;margin-bottom:10px;margin-top:10px;padding:0 8px;flex:1}.picklist-container .picklist-item-container .picklist-box .picklist-title-container{width:100%;display:flex;align-items:center}.picklist-container .picklist-item-container .picklist-box .picklist-title-container .picklist-title{font-family:Open Sans;font-size:14px;font-weight:700;line-height:21px;text-underline-position:from-font;text-decoration-skip-ink:none}.picklist-container .picklist-item-container .picklist-box .picklist-items{max-height:23em;overflow:auto;height:100%;min-height:100px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-content{width:100%;height:100%;padding-right:8px;border-radius:3px;margin-bottom:8px}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item{height:55px;border:3px;display:flex}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:not(.picklist-disabled){cursor:pointer}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item:hover:not(.picklist-disabled,.picklist-item-active,.picklist-item-invisible){background-color:#f1f7f8}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-active:not(.picklist-item-invisible){background-color:#d5e8ec}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-disabled{opacity:.5;background-color:#fbfafc}.picklist-container .picklist-item-container .picklist-box .picklist-items .picklist-item-invisible{display:none!important}.picklist-container .picklist-item-container .buttons-container{padding-top:10px;display:flex}.picklist-container .picklist-item-container .input-checkbox{margin:12px}\n"], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: DragDropModule }, { kind: "directive", type: i2.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2.CdkDragPreview, selector: "ng-template[cdkDragPreview]", inputs: ["data", "matchSize"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: LoadingStateModule }, { kind: "directive", type: i4.LoadingStateDirective, selector: "[sLoadingState]", inputs: ["sLoadingState"] }] });
616
616
  }
617
617
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: PicklistComponent, decorators: [{
618
618
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-picklist.mjs","sources":["../../projects/angular-components/picklist/src/lib/picklist/picklist.component.ts","../../projects/angular-components/picklist/src/lib/picklist/picklist.component.html","../../projects/angular-components/picklist/src/lib/picklist/picklist.module.ts","../../projects/angular-components/picklist/src/seniorsistemas-angular-components-picklist.ts"],"sourcesContent":["import { CdkDrag, CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n inject,\n input,\n Input,\n OnChanges,\n OnInit,\n output,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { LoadingStateIndicators, LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\nimport { debounceTime, distinctUntilChanged, pipe, Subject, switchMap, tap } from 'rxjs';\nimport { PickListItem, PicklistItemMove, PicklistLazyLoadEvent, PicklistLoader, PicklistTarget } from './types';\n\ninterface InternalPicklistItem<T = any> extends PickListItem<T> {\n invisible?: boolean;\n selected?: boolean;\n}\n\ntype CdkDragEvent<T> = { source: CdkDrag<InternalPicklistItem<T>> };\n\n/**\n * @description Componente de lista de dupla seleção (picklist) com suporte a\n * arrastar e soltar, filtro, checkboxes e template customizável para cada item.\n * Emite eventos ao mover itens entre as listas.\n *\n * @example\n * ```html\n * <s-picklist\n * [itensToSelect]=\"itensDisponiveis\"\n * [selectedItens]=\"itensSelecionados\"\n * (selectedItensChange)=\"onSelecaoMudou($event)\" />\n * ```\n *\n * @category Data\n */\n@Component({\n standalone: true,\n imports: [TranslateModule, DragDropModule, FormsModule, ButtonComponent, NgTemplateOutlet, LoadingStateModule],\n selector: 's-picklist',\n templateUrl: './picklist.component.html',\n styleUrls: ['./picklist.component.scss'],\n})\nexport class PicklistComponent<T> implements AfterViewInit, OnChanges, OnInit {\n private cdr = inject(ChangeDetectorRef);\n /** @description Lista de itens disponíveis para seleção (coluna esquerda). @default [] */\n @Input()\n public itensToSelect: PickListItem<T>[] = [];\n\n /** @description Lista de itens já selecionados (coluna direita). @default [] */\n @Input()\n public selectedItens: PickListItem<T>[] = [];\n\n /** @description Rótulo do título da lista de disponíveis. */\n @Input()\n public availableItensLabel?: string;\n\n /** @description Placeholder da busca na lista de disponíveis. */\n @Input()\n public availableItensPlaceholder?: string;\n\n /** @description Rótulo do botão de adicionar itens selecionados. */\n @Input()\n public addSelectedItensLabel?: string;\n\n /** @description Rótulo do botão de adicionar todos os itens. */\n @Input()\n public addAllItensLabel?: string;\n\n /** @description Rótulo do título da lista de selecionados. */\n @Input()\n public selectedItensLabel?: string;\n\n /** @description Placeholder da busca na lista de selecionados. */\n @Input()\n public selectedItensPlaceholder?: string;\n\n /** @description Rótulo do botão de remover itens selecionados. */\n @Input()\n public removeSelectedItemsLabel?: string;\n\n /** @description Rótulo do botão de remover todos os itens. */\n @Input()\n public removeAllItemsLabel?: string;\n\n /** @description Exibe checkbox nos itens das listas. @default false */\n @Input()\n public showCheckbox = false;\n\n /** @description Propriedade usada para filtrar os itens das listas. @default '' */\n @Input()\n public filterBy = '';\n\n /** @description Habilita o carregamento preguiçoso (lazy load) para as listas. @default false */\n lazyLoad = input<boolean>(false);\n\n /** @description Número de linhas a serem exibidas por página caso o lazyLoad esteja habilitado. @default 10 */\n rows = input<number>(10);\n\n /** @description Função loader para a lista de disponíveis (to-select). Quando fornecida, o componente gerencia internamente paginação, loading e race conditions. */\n sourceLoader = input<PicklistLoader<T>>();\n\n /** @description Função loader para a lista de selecionados (selected). Quando fornecida, o componente gerencia internamente paginação, loading e race conditions. */\n targetLoader = input<PicklistLoader<T>>();\n\n protected readonly _loadingTarget = signal<boolean>(false);\n\n protected readonly _loadingSource = signal<boolean>(false);\n\n /** @description Emitido quando um item é movido entre as listas e o lazy load está habilitado. */\n nodeMoved = output<PicklistItemMove<T>>();\n\n /** @description Emitido quando a lista de selecionados muda. */\n @Output()\n public selectedItensChange = new EventEmitter<any[]>();\n\n /** @description Emitido quando a lista de disponíveis muda. */\n @Output()\n public itensToSelectChange = new EventEmitter<any[]>();\n\n public availableItensFilter = '';\n\n public selectedItensFilter = '';\n\n public itemToSelectTemplate: TemplateRef<T> | null = null;\n\n public itemSelectedTemplate: TemplateRef<T> | null = null;\n\n protected logoIndicator = LoadingStateIndicators.Logo;\n\n protected itensToSelectFilterUtil: {\n allItensSelected: boolean;\n rawItensToSelect: InternalPicklistItem[];\n filteredItensToSelect: InternalPicklistItem[];\n } = {\n allItensSelected: false,\n rawItensToSelect: [],\n filteredItensToSelect: [],\n };\n\n protected selectedItensFilterUtil: {\n allItensSelected: boolean;\n rawSelectedItens: InternalPicklistItem[];\n filteredSelectedItens: InternalPicklistItem[];\n } = {\n allItensSelected: false,\n rawSelectedItens: [],\n filteredSelectedItens: [],\n };\n\n public selectedItensMap: Set<InternalPicklistItem> = new Set();\n public itensToSelectId = randomHash('itensToSelect');\n public selectedItensId = randomHash('selectedItens');\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly sourceFilterSubject = new Subject<string>();\n private readonly targetFilterSubject = new Subject<string>();\n private readonly sourceLoadSubject = new Subject<PicklistLazyLoadEvent>();\n private readonly targetLoadSubject = new Subject<PicklistLazyLoadEvent>();\n private _internalTotalSource = 0;\n private _internalTotalTarget = 0;\n private sourceCurrentPage = 0;\n private targetCurrentPage = 0;\n\n private _logErrorTemplate = true;\n @ContentChildren(TemplateDirective)\n private templates: QueryList<TemplateDirective> | null = null;\n\n ngAfterViewInit(): void {\n this.itemToSelectTemplate = this.templates?.find((x) => x.type === 'item-to-select')?.template ?? null;\n this.itemSelectedTemplate = this.templates?.find((x) => x.type === 'selected-item')?.template ?? null;\n if (this._logErrorTemplate) {\n if (!this.itemToSelectTemplate) {\n console.error(`Missing template for 'item-to-select' add this template using sTemplate directive.`);\n }\n if (!this.itemSelectedTemplate) {\n console.error(`Missing template for 'selected-item' add this template using sTemplate directive.`);\n }\n }\n this.cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.setupLoaderPipelines();\n this.setupLazyLoadEvents();\n this.setupFilterDebounce();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const changedItensToSelect = changes['itensToSelect'];\n const changedSelectedItens = changes['selectedItens'];\n if (changedItensToSelect && !this.lazyLoad()) {\n this.itensToSelectFilterUtil = {\n allItensSelected: this.itensToSelectFilterUtil.allItensSelected || false,\n rawItensToSelect: this.itensToSelect,\n filteredItensToSelect: this.itensToSelect,\n };\n } else if (changedItensToSelect && this.lazyLoad()) {\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...this.itensToSelect,\n ];\n if (this.itensToSelectFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n this.itensToSelectFilterUtil.allItensSelected,\n this.itensToSelectFilterUtil.rawItensToSelect,\n this.itensToSelectId,\n );\n }\n this.itensToSelectFilterUtil.filteredItensToSelect = [...this.itensToSelectFilterUtil.rawItensToSelect];\n }\n\n if (changedSelectedItens && !this.lazyLoad()) {\n this.selectedItensFilterUtil = {\n allItensSelected: this.selectedItensFilterUtil.allItensSelected || false,\n filteredSelectedItens: this.selectedItens,\n rawSelectedItens: this.selectedItens,\n };\n } else if (changedSelectedItens && this.lazyLoad()) {\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...this.selectedItens,\n ];\n if (this.selectedItensFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n this.selectedItensFilterUtil.allItensSelected,\n this.selectedItensFilterUtil.rawSelectedItens,\n this.selectedItensId,\n );\n }\n this.selectedItensFilterUtil.filteredSelectedItens = [...this.selectedItensFilterUtil.rawSelectedItens];\n }\n }\n\n toggleSelected(internalPicklistItem: InternalPicklistItem, containerListId: string) {\n if (internalPicklistItem.disabled) {\n return;\n }\n this.unselectedItensByListId(this.getOppositiveId(containerListId));\n internalPicklistItem.selected = !internalPicklistItem.selected;\n if (internalPicklistItem.selected) {\n this.selectedItensMap.add(internalPicklistItem);\n } else {\n this.selectedItensMap.delete(internalPicklistItem);\n }\n\n const containerFilterUtil =\n containerListId === this.selectedItensId ? this.selectedItensFilterUtil : this.itensToSelectFilterUtil;\n const isAllSelected = this._checkAllSelectedByList(\n containerListId === this.selectedItensId\n ? this.selectedItensFilterUtil.filteredSelectedItens\n : this.itensToSelectFilterUtil.filteredItensToSelect,\n );\n if (this.lazyLoad() && !internalPicklistItem.selected && containerFilterUtil.allItensSelected) {\n containerFilterUtil.allItensSelected = false;\n } else if (this.lazyLoad() && isAllSelected && containerFilterUtil.allItensSelected !== isAllSelected) {\n containerFilterUtil.allItensSelected = isAllSelected;\n }\n this.cdr.detectChanges();\n }\n\n remove(all = false) {\n const itens = filterEnabled<T>(all ? this.selectedItensFilterUtil.rawSelectedItens : this.selectedItensMap);\n if (!itens.length) {\n return;\n }\n const allElements = this.lazyLoad() ? [] : this.selectedItensFilterUtil.rawSelectedItens;\n const revertAction = () => {\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...itens.map((i) => {\n i.selected = false;\n return i;\n }),\n ];\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (x) => !itens.includes(x),\n );\n this.selectedItensFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n } else {\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n };\n this.nodeMoved.emit({\n direction: 'to-select',\n items: all ? allElements : parseValueEmit(Array.from(this.selectedItensMap)),\n moveAll: all,\n revertAction,\n });\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...itens.map((itemRemove) => {\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n return itemRemove;\n }),\n ];\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (x) => !itens.includes(x),\n );\n this.selectedItensFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n } else {\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n }\n\n add(all = false) {\n const itens = filterEnabled<T>(all ? this.itensToSelectFilterUtil.rawItensToSelect : this.selectedItensMap);\n if (!itens.length) {\n return;\n }\n\n const allElements = this.lazyLoad() ? [] : this.itensToSelectFilterUtil.rawItensToSelect;\n const revertAction = () => {\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...itens.map((i) => {\n i.selected = false;\n this.selectedItensMap.delete(i);\n return i;\n }),\n ];\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (x) => !itens.includes(x),\n );\n this.itensToSelectFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n } else {\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n };\n this.nodeMoved.emit({\n direction: 'selected',\n items: all ? allElements : parseValueEmit(Array.from(this.selectedItensMap)),\n moveAll: all,\n revertAction,\n });\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...itens.map((itemRemove) => {\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n return itemRemove;\n }),\n ];\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (x) => !itens.includes(x),\n );\n this.itensToSelectFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n } else {\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n }\n\n filterItensToSelect(): void {\n if (this.lazyLoad()) {\n this._loadingSource.set(true);\n this.sourceFilterSubject.next(this.availableItensFilter);\n return;\n }\n let searchTerm = this.availableItensFilter.trim();\n if (searchTerm) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (item) => compareStrings(item.data[this.filterBy], searchTerm),\n );\n } else {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n }\n this.cdr.detectChanges();\n }\n\n filterSelectedItens(): void {\n if (this.lazyLoad()) {\n this._loadingTarget.set(true);\n this.targetFilterSubject.next(this.selectedItensFilter);\n return;\n }\n let searchTerm = this.selectedItensFilter.trim();\n if (searchTerm) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (item) => compareStrings(item.data[this.filterBy], searchTerm),\n );\n } else {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n }\n }\n\n drop(event: CdkDragDrop<InternalPicklistItem[]>) {\n const isDifferentContainer = event.container !== event.previousContainer;\n if (!isDifferentContainer) {\n return;\n }\n\n const isRemovedItens = event.previousContainer.id === this.selectedItensId;\n if (isRemovedItens) {\n this.remove();\n } else {\n this.add();\n }\n this.cdr.detectChanges();\n }\n\n onDragStart(event: CdkDragEvent<T>, dragListId: string) {\n this.unselectedItensByListId(this.getOppositiveId(dragListId));\n event.source.data.selected = true;\n this.selectedItensMap.add(event.source.data);\n this.selectedItensMap.forEach((x) => (x.invisible = true));\n this.cdr.detectChanges();\n }\n\n onDragRelease() {\n this.selectedItensMap.forEach((item) => (item.invisible = false));\n }\n\n checkAllAvailableItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(\n checked,\n this.itensToSelectFilterUtil.filteredItensToSelect,\n this.itensToSelectId,\n );\n }\n\n checkAllSelectedItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(\n checked,\n this.selectedItensFilterUtil.filteredSelectedItens,\n this.selectedItensId,\n );\n }\n\n onScroll(event: Event, listId: string) {\n if (!this.lazyLoad()) {\n return;\n }\n\n const element = event.target as HTMLElement;\n const reachLimit = element.offsetHeight + element.scrollTop >= element.scrollHeight;\n if (!reachLimit) {\n return;\n }\n const target: PicklistTarget = listId === this.selectedItensId ? 'selected' : 'to-select';\n const targetReachLimit =\n target === 'selected'\n ? this.selectedItensFilterUtil.filteredSelectedItens.length >= this._internalTotalTarget\n : this.itensToSelectFilterUtil.filteredItensToSelect.length >= this._internalTotalSource;\n if (targetReachLimit) {\n return;\n }\n this.loadNextPage(target);\n }\n\n get disableSelectedItensCheckbox() {\n return filterEnabled<T>(this.selectedItensFilterUtil.filteredSelectedItens).length === 0;\n }\n\n get disableItensToSelectCheckbox() {\n return filterEnabled<T>(this.itensToSelectFilterUtil.filteredItensToSelect).length === 0;\n }\n\n get itensToSelectAllSelected() {\n return this._checkAllSelectedByList(this.itensToSelectFilterUtil.filteredItensToSelect);\n }\n\n get selectedItensAllSelected() {\n return this._checkAllSelectedByList(this.selectedItensFilterUtil.filteredSelectedItens);\n }\n\n get hasSelectedItens() {\n return this.selectedItensMap.size > 0;\n }\n\n /**\n * @description Recarrega as listas após a confirmação de uma movimentação pelo backend.\n *\n * **Por que usar?**\n * Ao mover itens, o componente atualiza a UI de forma otimista — os itens são movidos\n * imediatamente antes da confirmação do servidor. Após o backend confirmar a operação,\n * chame `resetList` para limpar e recarregar as listas afetadas do zero, garantindo que\n * o estado da UI reflita os dados reais persistidos.\n *\n * **O que espera?**\n * Recebe o objeto `PicklistItemMove<T>` emitido pelo output `(nodeMoved)`. O componente\n * utiliza `node.direction` para determinar qual lista recarregar (a lista de destino da\n * movimentação) e `node.moveAll` para verificar se a origem também deve ser recarregada\n * (por exemplo, ao mover todos os itens de uma lista para outra, ambas ficam com estado\n * alterado no backend).\n *\n * **O que faz?**\n * - Reseta o contador de página da lista de destino para `0` (primeira página).\n * - Limpa todos os itens carregados na lista de destino.\n * - Dispara imediatamente o carregamento da primeira página via `sourceLoader`/`targetLoader`.\n * - Se `node.moveAll === true`, repete o processo para a lista de origem.\n *\n * **Exemplo de uso:**\n * ```typescript\n * nodeMoved(node: PicklistItemMove<MyItem>): void {\n * this.service.moveItems(node).subscribe({\n * next: () => this.myPicklist().resetList(node),\n * error: () => node.revertAction(),\n * });\n * }\n * ```\n *\n * @param node - O objeto de movimentação emitido pelo output `(nodeMoved)`.\n */\n public resetList(node: PicklistItemMove<T>): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n this._resetListByTarget(node.direction);\n if (node.moveAll) {\n this._resetListByTarget(node.direction === 'selected' ? 'to-select' : 'selected');\n }\n }\n\n private _resetListByTarget(target: PicklistTarget): void {\n if (target === 'selected') {\n this.targetCurrentPage = -1;\n this._internalTotalTarget = 0;\n this.selectedItens = [];\n this.selectedItensFilterUtil.rawSelectedItens = [];\n this.selectedItensFilterUtil.filteredSelectedItens = [];\n } else {\n this.sourceCurrentPage = -1;\n this._internalTotalSource = 0;\n this.itensToSelect = [];\n this.itensToSelectFilterUtil.rawItensToSelect = [];\n this.itensToSelectFilterUtil.filteredItensToSelect = [];\n }\n\n this.cdr.detectChanges();\n Promise.resolve().then(() => this.loadNextPage(target));\n }\n\n private _checkAllSelectedByList(list: InternalPicklistItem[]) {\n const _listItens = filterEnabled<T>(list);\n if (!_listItens.length) {\n return false;\n } else {\n return _listItens.every((x) => x.selected);\n }\n }\n\n private setupLoaderPipelines(): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n if (!this.sourceLoader && !this.targetLoader && this._logErrorTemplate) {\n console.error(\n `Lazy load is enabled but no loader function was provided. Please provide at least one loader function using 'sourceLoader' or 'targetLoader' input.`,\n );\n }\n\n if (this.sourceLoader()) {\n this.sourceLoadSubject\n .pipe(\n switchMap((event) => {\n this._loadingSource.set(true);\n return this.sourceLoader()!(event);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ items, totalRecords }) => {\n this._internalTotalSource = totalRecords;\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...items,\n ];\n if (this.itensToSelectFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n true,\n this.itensToSelectFilterUtil.rawItensToSelect,\n this.itensToSelectId,\n );\n }\n this.itensToSelectFilterUtil.filteredItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ];\n this._loadingSource.set(false);\n this.cdr.detectChanges();\n });\n }\n\n if (this.targetLoader()) {\n this.targetLoadSubject\n .pipe(\n switchMap((event) => {\n this._loadingTarget.set(true);\n return this.targetLoader()!(event);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ items, totalRecords }) => {\n this._internalTotalTarget = totalRecords;\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...items,\n ];\n if (this.selectedItensFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n true,\n this.selectedItensFilterUtil.rawSelectedItens,\n this.selectedItensId,\n );\n }\n this.selectedItensFilterUtil.filteredSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ];\n this._loadingTarget.set(false);\n this.cdr.detectChanges();\n });\n }\n }\n\n private setupFilterDebounce(): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n this.sourceFilterSubject\n .pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => {\n this.sourceCurrentPage = -1;\n this.itensToSelect = [];\n this.itensToSelectFilterUtil.rawItensToSelect = [];\n this.itensToSelectFilterUtil.filteredItensToSelect = [];\n this.cdr.detectChanges();\n }),\n switchMap(() => {\n this.loadNextPage('to-select');\n return [];\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.targetFilterSubject\n .pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => {\n this.targetCurrentPage = -1;\n this.selectedItens = [];\n this.selectedItensFilterUtil.rawSelectedItens = [];\n this.selectedItensFilterUtil.filteredSelectedItens = [];\n this.cdr.detectChanges();\n }),\n switchMap(() => {\n this.loadNextPage('selected');\n return [];\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private setupLazyLoadEvents() {\n if (!this.lazyLoad()) {\n return;\n }\n\n Promise.resolve().then(() => {\n this.loadNextPage('to-select');\n this.loadNextPage('selected');\n });\n }\n\n private loadNextPage(target: PicklistTarget): void {\n const totalRegisters = target === 'selected' ? this._internalTotalTarget : this._internalTotalSource;\n const lastPage = Math.ceil(totalRegisters / this.rows());\n\n if (target === 'selected' && this.targetCurrentPage < lastPage) {\n this.targetCurrentPage++;\n } else if (target === 'to-select' && this.sourceCurrentPage < lastPage) {\n this.sourceCurrentPage++;\n }\n\n this.emitCurrentPage(target);\n }\n\n private emitCurrentPage(target: PicklistTarget): void {\n const filter = target === 'selected' ? this.selectedItensFilter : this.availableItensFilter;\n const page = target === 'selected' ? this.targetCurrentPage : this.sourceCurrentPage;\n\n const event: PicklistLazyLoadEvent = { target, page, filter, pageSize: this.rows() };\n\n if (target === 'selected') {\n this.targetLoadSubject.next(event);\n } else {\n this.sourceLoadSubject.next(event);\n }\n }\n\n private _checkAllSelectedItensChange(checked: boolean, list: InternalPicklistItem[], listId: string) {\n this.unselectedItensByListId(listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId);\n filterEnabled<T>(list).forEach((item) => {\n item.selected = checked;\n if (checked) {\n this.selectedItensMap.add(item);\n } else {\n this.selectedItensMap.delete(item);\n }\n });\n if (listId === this.selectedItensId) {\n this.selectedItensFilterUtil.allItensSelected = checked;\n } else {\n this.itensToSelectFilterUtil.allItensSelected = checked;\n }\n this.cdr.detectChanges();\n }\n\n private unselectedItensByListId(listId: string) {\n const clearList = this.getAllElementsByListId(listId);\n clearList.forEach((x) => {\n x.selected = false;\n this.selectedItensMap.delete(x);\n });\n this.cdr.detectChanges();\n }\n\n private getAllElementsByListId(listId: string) {\n return listId === this.selectedItensId\n ? this.selectedItensFilterUtil.rawSelectedItens\n : this.itensToSelectFilterUtil.rawItensToSelect;\n }\n\n private getOppositiveId(listId: string) {\n return listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId;\n }\n\n private emitData() {\n this.itensToSelectChange.emit(parseValueEmit(this.itensToSelect));\n this.selectedItensChange.emit(parseValueEmit(this.selectedItens));\n }\n}\n\nconst normalizeString = (str: string) => {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n};\n\n/**\n * Compares two strings by normalizing them to a case-insensitive and accent-free form,\n * and checks if the main string contains the substring.\n *\n * @param mainString - The string to be searched.\n * @param substring - The string to search for within the main string.\n * @returns A boolean indicating whether the normalized main string contains the normalized substring.\n */\n\nconst compareStrings = (mainString: string, substring: string) => {\n return normalizeString(mainString).includes(normalizeString(substring));\n};\n\nconst filterEnabled = <T>(list: PickListItem<T>[] | Set<InternalPicklistItem>): InternalPicklistItem[] => {\n const _list = list instanceof Set ? Array.from(list) : list;\n return _list.filter((x) => !x.disabled);\n};\n\nconst mapData = <T>(list: PickListItem<T>[]) => {\n return list.map((x) => x.data);\n};\n\nconst parseValueEmit = pipe(filterEnabled, mapData);\n\nexport const parseItensPickList = <T>(\n array: T[],\n disabledFn?: (item: T) => boolean,\n idKey?: keyof T,\n): PickListItem<T>[] => {\n return array.map((x) => {\n return {\n data: x,\n disabled: disabledFn ? disabledFn(x) : false,\n id: idKey ? String(x[idKey]) : crypto.randomUUID(),\n };\n });\n};\n\n","<ng-template\n #previewRender\n let-itens=\"itens\"\n let-template=\"template\"\n>\n <section class=\"picklist-items\">\n @for (item of itens; track $index) {\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n }\n </section>\n</ng-template>\n\n<ng-template\n #picklistItensRender\n let-id=\"id\"\n let-itens=\"itens\"\n let-template=\"template\"\n let-listConnectedTo=\"listConnectedTo\"\n let-isLoading=\"isLoading\"\n>\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\"\n *sLoadingState=\"{ loading: isLoading, indicator: logoIndicator }\"\n (scroll)=\"onScroll($event, id)\"\n >\n @for (item of itens; track $index) {\n <div\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\"\n >\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n />\n }\n <div class=\"picklist-content\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { item: item.data, selected: item.selected, disabled: item.disabled }\n \"\n ></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container\n *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"\n ></ng-container>\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template\n #checkboxTitleRender\n let-disabled=\"disabled\"\n let-checked=\"checked\"\n let-changeFn=\"changeFn\"\n let-id=\"id\"\n>\n @if (showCheckbox && !lazyLoad()) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === itensToSelectId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"itensToSelectFilterUtil.allItensSelected\"\n (change)=\"checkAllAvailableItensChange($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === selectedItensId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"selectedItensFilterUtil.allItensSelected\"\n (change)=\"checkAllSelectedItensChange($any($event.target).checked)\"\n />\n }\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"\n availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId,\n isLoading: _loadingSource(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!hasSelectedItens\"\n (clicked)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (clicked)=\"add(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"\n selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId,\n isLoading: _loadingTarget(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!hasSelectedItens\"\n [auxiliary]=\"false\"\n (clicked)=\"remove()\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (clicked)=\"remove(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n</div>\n\n","import { NgModule } from '@angular/core';\n\nimport { PicklistComponent } from './picklist.component';\n\n@NgModule({\n imports: [PicklistComponent],\n exports: [PicklistComponent],\n})\nexport class PicklistModule {}\n\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":"seniorsistemas-angular-components-picklist.mjs","sources":["../../projects/angular-components/picklist/src/lib/picklist/picklist.component.ts","../../projects/angular-components/picklist/src/lib/picklist/picklist.component.html","../../projects/angular-components/picklist/src/lib/picklist/picklist.module.ts","../../projects/angular-components/picklist/src/seniorsistemas-angular-components-picklist.ts"],"sourcesContent":["import { CdkDrag, CdkDragDrop, DragDropModule } from '@angular/cdk/drag-drop';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n EventEmitter,\n inject,\n input,\n Input,\n OnChanges,\n OnInit,\n output,\n Output,\n QueryList,\n signal,\n SimpleChanges,\n TemplateRef,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { ButtonComponent } from '@seniorsistemas/angular-components/button';\nimport { LoadingStateIndicators, LoadingStateModule } from '@seniorsistemas/angular-components/loading-state';\nimport { TemplateDirective } from '@seniorsistemas/angular-components/template';\nimport { randomHash } from '@seniorsistemas/angular-components/utils';\nimport { debounceTime, distinctUntilChanged, pipe, Subject, switchMap, tap } from 'rxjs';\nimport { PickListItem, PicklistItemMove, PicklistLazyLoadEvent, PicklistLoader, PicklistTarget } from './types';\n\ninterface InternalPicklistItem<T = any> extends PickListItem<T> {\n invisible?: boolean;\n selected?: boolean;\n}\n\ntype CdkDragEvent<T> = { source: CdkDrag<InternalPicklistItem<T>> };\n\n/**\n * @description Componente de lista de dupla seleção (picklist) com suporte a\n * arrastar e soltar, filtro, checkboxes e template customizável para cada item.\n * Emite eventos ao mover itens entre as listas.\n *\n * @example\n * ```html\n * <s-picklist\n * [itensToSelect]=\"itensDisponiveis\"\n * [selectedItens]=\"itensSelecionados\"\n * (selectedItensChange)=\"onSelecaoMudou($event)\" />\n * ```\n *\n * @category Data\n */\n@Component({\n standalone: true,\n imports: [TranslateModule, DragDropModule, FormsModule, ButtonComponent, NgTemplateOutlet, LoadingStateModule],\n selector: 's-picklist',\n templateUrl: './picklist.component.html',\n styleUrls: ['./picklist.component.scss'],\n})\nexport class PicklistComponent<T> implements AfterViewInit, OnChanges, OnInit {\n private cdr = inject(ChangeDetectorRef);\n /** @description Lista de itens disponíveis para seleção (coluna esquerda). @default [] */\n @Input()\n public itensToSelect: PickListItem<T>[] = [];\n\n /** @description Lista de itens já selecionados (coluna direita). @default [] */\n @Input()\n public selectedItens: PickListItem<T>[] = [];\n\n /** @description Rótulo do título da lista de disponíveis. */\n @Input()\n public availableItensLabel?: string;\n\n /** @description Placeholder da busca na lista de disponíveis. */\n @Input()\n public availableItensPlaceholder?: string;\n\n /** @description Rótulo do botão de adicionar itens selecionados. */\n @Input()\n public addSelectedItensLabel?: string;\n\n /** @description Rótulo do botão de adicionar todos os itens. */\n @Input()\n public addAllItensLabel?: string;\n\n /** @description Rótulo do título da lista de selecionados. */\n @Input()\n public selectedItensLabel?: string;\n\n /** @description Placeholder da busca na lista de selecionados. */\n @Input()\n public selectedItensPlaceholder?: string;\n\n /** @description Rótulo do botão de remover itens selecionados. */\n @Input()\n public removeSelectedItemsLabel?: string;\n\n /** @description Rótulo do botão de remover todos os itens. */\n @Input()\n public removeAllItemsLabel?: string;\n\n /** @description Exibe checkbox nos itens das listas. @default false */\n @Input()\n public showCheckbox = false;\n\n /** @description Propriedade usada para filtrar os itens das listas. @default '' */\n @Input()\n public filterBy = '';\n\n /** @description Habilita o carregamento preguiçoso (lazy load) para as listas. @default false */\n lazyLoad = input<boolean>(false);\n\n /** @description Número de linhas a serem exibidas por página caso o lazyLoad esteja habilitado. @default 10 */\n rows = input<number>(10);\n\n /** @description Função loader para a lista de disponíveis (to-select). Quando fornecida, o componente gerencia internamente paginação, loading e race conditions. */\n sourceLoader = input<PicklistLoader<T>>();\n\n /** @description Função loader para a lista de selecionados (selected). Quando fornecida, o componente gerencia internamente paginação, loading e race conditions. */\n targetLoader = input<PicklistLoader<T>>();\n\n protected readonly _loadingTarget = signal<boolean>(false);\n\n protected readonly _loadingSource = signal<boolean>(false);\n\n /** @description Emitido quando um item é movido entre as listas e o lazy load está habilitado. */\n nodeMoved = output<PicklistItemMove<T>>();\n\n /** @description Emitido quando a lista de selecionados muda. */\n @Output()\n public selectedItensChange = new EventEmitter<any[]>();\n\n /** @description Emitido quando a lista de disponíveis muda. */\n @Output()\n public itensToSelectChange = new EventEmitter<any[]>();\n\n public availableItensFilter = '';\n\n public selectedItensFilter = '';\n\n public itemToSelectTemplate: TemplateRef<T> | null = null;\n\n public itemSelectedTemplate: TemplateRef<T> | null = null;\n\n protected logoIndicator = LoadingStateIndicators.Logo;\n\n protected itensToSelectFilterUtil: {\n allItensSelected: boolean;\n rawItensToSelect: InternalPicklistItem[];\n filteredItensToSelect: InternalPicklistItem[];\n } = {\n allItensSelected: false,\n rawItensToSelect: [],\n filteredItensToSelect: [],\n };\n\n protected selectedItensFilterUtil: {\n allItensSelected: boolean;\n rawSelectedItens: InternalPicklistItem[];\n filteredSelectedItens: InternalPicklistItem[];\n } = {\n allItensSelected: false,\n rawSelectedItens: [],\n filteredSelectedItens: [],\n };\n\n public selectedItensMap: Set<InternalPicklistItem> = new Set();\n public itensToSelectId = randomHash('itensToSelect');\n public selectedItensId = randomHash('selectedItens');\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly sourceFilterSubject = new Subject<string>();\n private readonly targetFilterSubject = new Subject<string>();\n private readonly sourceLoadSubject = new Subject<PicklistLazyLoadEvent>();\n private readonly targetLoadSubject = new Subject<PicklistLazyLoadEvent>();\n private _internalTotalSource = 0;\n private _internalTotalTarget = 0;\n private sourceCurrentPage = 0;\n private targetCurrentPage = 0;\n\n private _logErrorTemplate = true;\n @ContentChildren(TemplateDirective)\n private templates: QueryList<TemplateDirective> | null = null;\n\n ngAfterViewInit(): void {\n this.itemToSelectTemplate = this.templates?.find((x) => x.type === 'item-to-select')?.template ?? null;\n this.itemSelectedTemplate = this.templates?.find((x) => x.type === 'selected-item')?.template ?? null;\n if (this._logErrorTemplate) {\n if (!this.itemToSelectTemplate) {\n console.error(`Missing template for 'item-to-select' add this template using sTemplate directive.`);\n }\n if (!this.itemSelectedTemplate) {\n console.error(`Missing template for 'selected-item' add this template using sTemplate directive.`);\n }\n }\n this.cdr.detectChanges();\n }\n\n ngOnInit(): void {\n this.setupLoaderPipelines();\n this.setupLazyLoadEvents();\n this.setupFilterDebounce();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n const changedItensToSelect = changes['itensToSelect'];\n const changedSelectedItens = changes['selectedItens'];\n if (changedItensToSelect && !this.lazyLoad()) {\n this.itensToSelectFilterUtil = {\n allItensSelected: this.itensToSelectFilterUtil.allItensSelected || false,\n rawItensToSelect: this.itensToSelect,\n filteredItensToSelect: this.itensToSelect,\n };\n } else if (changedItensToSelect && this.lazyLoad()) {\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...this.itensToSelect,\n ];\n if (this.itensToSelectFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n this.itensToSelectFilterUtil.allItensSelected,\n this.itensToSelectFilterUtil.rawItensToSelect,\n this.itensToSelectId,\n );\n }\n this.itensToSelectFilterUtil.filteredItensToSelect = [...this.itensToSelectFilterUtil.rawItensToSelect];\n }\n\n if (changedSelectedItens && !this.lazyLoad()) {\n this.selectedItensFilterUtil = {\n allItensSelected: this.selectedItensFilterUtil.allItensSelected || false,\n filteredSelectedItens: this.selectedItens,\n rawSelectedItens: this.selectedItens,\n };\n } else if (changedSelectedItens && this.lazyLoad()) {\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...this.selectedItens,\n ];\n if (this.selectedItensFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n this.selectedItensFilterUtil.allItensSelected,\n this.selectedItensFilterUtil.rawSelectedItens,\n this.selectedItensId,\n );\n }\n this.selectedItensFilterUtil.filteredSelectedItens = [...this.selectedItensFilterUtil.rawSelectedItens];\n }\n }\n\n toggleSelected(internalPicklistItem: InternalPicklistItem, containerListId: string) {\n if (internalPicklistItem.disabled) {\n return;\n }\n this.unselectedItensByListId(this.getOppositiveId(containerListId));\n internalPicklistItem.selected = !internalPicklistItem.selected;\n if (internalPicklistItem.selected) {\n this.selectedItensMap.add(internalPicklistItem);\n } else {\n this.selectedItensMap.delete(internalPicklistItem);\n }\n\n const containerFilterUtil =\n containerListId === this.selectedItensId ? this.selectedItensFilterUtil : this.itensToSelectFilterUtil;\n const isAllSelected = this._checkAllSelectedByList(\n containerListId === this.selectedItensId\n ? this.selectedItensFilterUtil.filteredSelectedItens\n : this.itensToSelectFilterUtil.filteredItensToSelect,\n );\n if (this.lazyLoad() && !internalPicklistItem.selected && containerFilterUtil.allItensSelected) {\n containerFilterUtil.allItensSelected = false;\n } else if (this.lazyLoad() && isAllSelected && containerFilterUtil.allItensSelected !== isAllSelected) {\n containerFilterUtil.allItensSelected = isAllSelected;\n }\n this.cdr.detectChanges();\n }\n\n remove(all = false) {\n const itens = filterEnabled<T>(all ? this.selectedItensFilterUtil.rawSelectedItens : this.selectedItensMap);\n if (!itens.length) {\n return;\n }\n const allElements = this.lazyLoad() ? [] : this.selectedItensFilterUtil.rawSelectedItens;\n const revertAction = () => {\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...itens.map((i) => {\n i.selected = false;\n return i;\n }),\n ];\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (x) => !itens.includes(x),\n );\n this.selectedItensFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n } else {\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n };\n this.nodeMoved.emit({\n direction: 'to-select',\n items: all ? allElements : parseValueEmit(Array.from(this.selectedItensMap)),\n moveAll: all,\n revertAction,\n });\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...itens.map((itemRemove) => {\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n return itemRemove;\n }),\n ];\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (x) => !itens.includes(x),\n );\n this.selectedItensFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n } else {\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n }\n\n add(all = false) {\n const itens = filterEnabled<T>(all ? this.itensToSelectFilterUtil.rawItensToSelect : this.selectedItensMap);\n if (!itens.length) {\n return;\n }\n\n const allElements = this.lazyLoad() ? [] : this.itensToSelectFilterUtil.rawItensToSelect;\n const revertAction = () => {\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...itens.map((i) => {\n i.selected = false;\n this.selectedItensMap.delete(i);\n return i;\n }),\n ];\n this.selectedItensFilterUtil.rawSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (x) => !itens.includes(x),\n );\n this.itensToSelectFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n } else {\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n };\n this.nodeMoved.emit({\n direction: 'selected',\n items: all ? allElements : parseValueEmit(Array.from(this.selectedItensMap)),\n moveAll: all,\n revertAction,\n });\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...itens.map((itemRemove) => {\n itemRemove.selected = false;\n this.selectedItensMap.delete(itemRemove);\n return itemRemove;\n }),\n ];\n this.itensToSelectFilterUtil.rawItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (x) => !itens.includes(x),\n );\n this.itensToSelectFilterUtil.allItensSelected = false;\n if (this.lazyLoad()) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n } else {\n this.selectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n this.itensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n this.filterSelectedItens();\n this.filterItensToSelect();\n this.emitData();\n }\n this.cdr.detectChanges();\n }\n\n filterItensToSelect(): void {\n if (this.lazyLoad()) {\n this._loadingSource.set(true);\n this.sourceFilterSubject.next(this.availableItensFilter);\n return;\n }\n let searchTerm = this.availableItensFilter.trim();\n if (searchTerm) {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect.filter(\n (item) => compareStrings(item.data[this.filterBy], searchTerm),\n );\n } else {\n this.itensToSelectFilterUtil.filteredItensToSelect = this.itensToSelectFilterUtil.rawItensToSelect;\n }\n this.cdr.detectChanges();\n }\n\n filterSelectedItens(): void {\n if (this.lazyLoad()) {\n this._loadingTarget.set(true);\n this.targetFilterSubject.next(this.selectedItensFilter);\n return;\n }\n let searchTerm = this.selectedItensFilter.trim();\n if (searchTerm) {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens.filter(\n (item) => compareStrings(item.data[this.filterBy], searchTerm),\n );\n } else {\n this.selectedItensFilterUtil.filteredSelectedItens = this.selectedItensFilterUtil.rawSelectedItens;\n }\n }\n\n drop(event: CdkDragDrop<InternalPicklistItem[]>) {\n const isDifferentContainer = event.container !== event.previousContainer;\n if (!isDifferentContainer) {\n return;\n }\n\n const isRemovedItens = event.previousContainer.id === this.selectedItensId;\n if (isRemovedItens) {\n this.remove();\n } else {\n this.add();\n }\n this.cdr.detectChanges();\n }\n\n onDragStart(event: CdkDragEvent<T>, dragListId: string) {\n this.unselectedItensByListId(this.getOppositiveId(dragListId));\n event.source.data.selected = true;\n this.selectedItensMap.add(event.source.data);\n this.selectedItensMap.forEach((x) => (x.invisible = true));\n this.cdr.detectChanges();\n }\n\n onDragRelease() {\n this.selectedItensMap.forEach((item) => (item.invisible = false));\n }\n\n checkAllAvailableItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(\n checked,\n this.itensToSelectFilterUtil.filteredItensToSelect,\n this.itensToSelectId,\n );\n }\n\n checkAllSelectedItensChange(checked: boolean) {\n this._checkAllSelectedItensChange(\n checked,\n this.selectedItensFilterUtil.filteredSelectedItens,\n this.selectedItensId,\n );\n }\n\n onScroll(event: Event, listId: string) {\n if (!this.lazyLoad()) {\n return;\n }\n\n const element = event.target as HTMLElement;\n const reachLimit = element.offsetHeight + element.scrollTop >= element.scrollHeight;\n if (!reachLimit) {\n return;\n }\n const target: PicklistTarget = listId === this.selectedItensId ? 'selected' : 'to-select';\n const targetReachLimit =\n target === 'selected'\n ? this.selectedItensFilterUtil.filteredSelectedItens.length >= this._internalTotalTarget\n : this.itensToSelectFilterUtil.filteredItensToSelect.length >= this._internalTotalSource;\n if (targetReachLimit) {\n return;\n }\n this.loadNextPage(target);\n }\n\n get disableSelectedItensCheckbox() {\n return filterEnabled<T>(this.selectedItensFilterUtil.filteredSelectedItens).length === 0;\n }\n\n get disableItensToSelectCheckbox() {\n return filterEnabled<T>(this.itensToSelectFilterUtil.filteredItensToSelect).length === 0;\n }\n\n get itensToSelectAllSelected() {\n return this._checkAllSelectedByList(this.itensToSelectFilterUtil.filteredItensToSelect);\n }\n\n get selectedItensAllSelected() {\n return this._checkAllSelectedByList(this.selectedItensFilterUtil.filteredSelectedItens);\n }\n\n get hasSelectedItens() {\n return this.selectedItensMap.size > 0;\n }\n\n /**\n * @description Recarrega as listas após a confirmação de uma movimentação pelo backend.\n *\n * **Por que usar?**\n * Ao mover itens, o componente atualiza a UI de forma otimista — os itens são movidos\n * imediatamente antes da confirmação do servidor. Após o backend confirmar a operação,\n * chame `resetList` para limpar e recarregar as listas afetadas do zero, garantindo que\n * o estado da UI reflita os dados reais persistidos.\n *\n * **O que espera?**\n * Recebe o objeto `PicklistItemMove<T>` emitido pelo output `(nodeMoved)`. O componente\n * utiliza `node.direction` para determinar qual lista recarregar (a lista de destino da\n * movimentação) e `node.moveAll` para verificar se a origem também deve ser recarregada\n * (por exemplo, ao mover todos os itens de uma lista para outra, ambas ficam com estado\n * alterado no backend).\n *\n * **O que faz?**\n * - Reseta o contador de página da lista de destino para `0` (primeira página).\n * - Limpa todos os itens carregados na lista de destino.\n * - Dispara imediatamente o carregamento da primeira página via `sourceLoader`/`targetLoader`.\n * - Se `node.moveAll === true`, repete o processo para a lista de origem.\n *\n * **Exemplo de uso:**\n * ```typescript\n * nodeMoved(node: PicklistItemMove<MyItem>): void {\n * this.service.moveItems(node).subscribe({\n * next: () => this.myPicklist().resetList(node),\n * error: () => node.revertAction(),\n * });\n * }\n * ```\n *\n * @param node - O objeto de movimentação emitido pelo output `(nodeMoved)`.\n */\n public resetList(node: PicklistItemMove<T>): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n this._resetListByTarget(node.direction);\n if (node.moveAll) {\n this._resetListByTarget(node.direction === 'selected' ? 'to-select' : 'selected');\n }\n }\n\n private _resetListByTarget(target: PicklistTarget): void {\n if (target === 'selected') {\n this.targetCurrentPage = -1;\n this._internalTotalTarget = 0;\n this.selectedItens = [];\n this.selectedItensFilterUtil.rawSelectedItens = [];\n this.selectedItensFilterUtil.filteredSelectedItens = [];\n } else {\n this.sourceCurrentPage = -1;\n this._internalTotalSource = 0;\n this.itensToSelect = [];\n this.itensToSelectFilterUtil.rawItensToSelect = [];\n this.itensToSelectFilterUtil.filteredItensToSelect = [];\n }\n\n this.cdr.detectChanges();\n Promise.resolve().then(() => this.loadNextPage(target));\n }\n\n private _checkAllSelectedByList(list: InternalPicklistItem[]) {\n const _listItens = filterEnabled<T>(list);\n if (!_listItens.length) {\n return false;\n } else {\n return _listItens.every((x) => x.selected);\n }\n }\n\n private setupLoaderPipelines(): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n if (!this.sourceLoader && !this.targetLoader && this._logErrorTemplate) {\n console.error(\n `Lazy load is enabled but no loader function was provided. Please provide at least one loader function using 'sourceLoader' or 'targetLoader' input.`,\n );\n }\n\n if (this.sourceLoader()) {\n this.sourceLoadSubject\n .pipe(\n switchMap((event) => {\n this._loadingSource.set(true);\n return this.sourceLoader()!(event);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ items, totalRecords }) => {\n this._internalTotalSource = totalRecords;\n this.itensToSelectFilterUtil.rawItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ...items,\n ];\n if (this.itensToSelectFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n true,\n this.itensToSelectFilterUtil.rawItensToSelect,\n this.itensToSelectId,\n );\n }\n this.itensToSelectFilterUtil.filteredItensToSelect = [\n ...this.itensToSelectFilterUtil.rawItensToSelect,\n ];\n this._loadingSource.set(false);\n this.cdr.detectChanges();\n });\n }\n\n if (this.targetLoader()) {\n this.targetLoadSubject\n .pipe(\n switchMap((event) => {\n this._loadingTarget.set(true);\n return this.targetLoader()!(event);\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe(({ items, totalRecords }) => {\n this._internalTotalTarget = totalRecords;\n this.selectedItensFilterUtil.rawSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ...items,\n ];\n if (this.selectedItensFilterUtil.allItensSelected) {\n this._checkAllSelectedItensChange(\n true,\n this.selectedItensFilterUtil.rawSelectedItens,\n this.selectedItensId,\n );\n }\n this.selectedItensFilterUtil.filteredSelectedItens = [\n ...this.selectedItensFilterUtil.rawSelectedItens,\n ];\n this._loadingTarget.set(false);\n this.cdr.detectChanges();\n });\n }\n }\n\n private setupFilterDebounce(): void {\n if (!this.lazyLoad()) {\n return;\n }\n\n this.sourceFilterSubject\n .pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => {\n this.sourceCurrentPage = -1;\n this.itensToSelect = [];\n this.itensToSelectFilterUtil.rawItensToSelect = [];\n this.itensToSelectFilterUtil.filteredItensToSelect = [];\n this.cdr.detectChanges();\n }),\n switchMap(() => {\n this.loadNextPage('to-select');\n return [];\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n\n this.targetFilterSubject\n .pipe(\n distinctUntilChanged(),\n debounceTime(300),\n tap(() => {\n this.targetCurrentPage = -1;\n this.selectedItens = [];\n this.selectedItensFilterUtil.rawSelectedItens = [];\n this.selectedItensFilterUtil.filteredSelectedItens = [];\n this.cdr.detectChanges();\n }),\n switchMap(() => {\n this.loadNextPage('selected');\n return [];\n }),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe();\n }\n\n private setupLazyLoadEvents() {\n if (!this.lazyLoad()) {\n return;\n }\n\n Promise.resolve().then(() => {\n this.loadNextPage('to-select');\n this.loadNextPage('selected');\n });\n }\n\n private loadNextPage(target: PicklistTarget): void {\n const totalRegisters = target === 'selected' ? this._internalTotalTarget : this._internalTotalSource;\n const lastPage = Math.ceil(totalRegisters / this.rows());\n\n if (target === 'selected' && this.targetCurrentPage < lastPage) {\n this.targetCurrentPage++;\n } else if (target === 'to-select' && this.sourceCurrentPage < lastPage) {\n this.sourceCurrentPage++;\n }\n\n this.emitCurrentPage(target);\n }\n\n private emitCurrentPage(target: PicklistTarget): void {\n const filter = target === 'selected' ? this.selectedItensFilter : this.availableItensFilter;\n const page = target === 'selected' ? this.targetCurrentPage : this.sourceCurrentPage;\n\n const event: PicklistLazyLoadEvent = { target, page, filter, pageSize: this.rows() };\n\n if (target === 'selected') {\n this.targetLoadSubject.next(event);\n } else {\n this.sourceLoadSubject.next(event);\n }\n }\n\n private _checkAllSelectedItensChange(checked: boolean, list: InternalPicklistItem[], listId: string) {\n this.unselectedItensByListId(listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId);\n filterEnabled<T>(list).forEach((item) => {\n item.selected = checked;\n if (checked) {\n this.selectedItensMap.add(item);\n } else {\n this.selectedItensMap.delete(item);\n }\n });\n if (listId === this.selectedItensId) {\n this.selectedItensFilterUtil.allItensSelected = checked;\n } else {\n this.itensToSelectFilterUtil.allItensSelected = checked;\n }\n this.cdr.detectChanges();\n }\n\n private unselectedItensByListId(listId: string) {\n const clearList = this.getAllElementsByListId(listId);\n clearList.forEach((x) => {\n x.selected = false;\n this.selectedItensMap.delete(x);\n });\n this.cdr.detectChanges();\n }\n\n private getAllElementsByListId(listId: string) {\n return listId === this.selectedItensId\n ? this.selectedItensFilterUtil.rawSelectedItens\n : this.itensToSelectFilterUtil.rawItensToSelect;\n }\n\n private getOppositiveId(listId: string) {\n return listId === this.selectedItensId ? this.itensToSelectId : this.selectedItensId;\n }\n\n private emitData() {\n this.itensToSelectChange.emit(parseValueEmit(this.itensToSelect));\n this.selectedItensChange.emit(parseValueEmit(this.selectedItens));\n }\n}\n\nconst normalizeString = (str: string) => {\n return str\n .normalize('NFD')\n .replace(/[\\u0300-\\u036f]/g, '')\n .toLowerCase();\n};\n\n/**\n * Compares two strings by normalizing them to a case-insensitive and accent-free form,\n * and checks if the main string contains the substring.\n *\n * @param mainString - The string to be searched.\n * @param substring - The string to search for within the main string.\n * @returns A boolean indicating whether the normalized main string contains the normalized substring.\n */\n\nconst compareStrings = (mainString: string, substring: string) => {\n return normalizeString(mainString).includes(normalizeString(substring));\n};\n\nconst filterEnabled = <T>(list: PickListItem<T>[] | Set<InternalPicklistItem>): InternalPicklistItem[] => {\n const _list = list instanceof Set ? Array.from(list) : list;\n return _list.filter((x) => !x.disabled);\n};\n\nconst mapData = <T>(list: PickListItem<T>[]) => {\n return list.map((x) => x.data);\n};\n\nconst parseValueEmit = pipe(filterEnabled, mapData);\n\nexport const parseItensPickList = <T>(\n array: T[],\n disabledFn?: (item: T) => boolean,\n idKey?: keyof T,\n): PickListItem<T>[] => {\n return array.map((x) => {\n return {\n data: x,\n disabled: disabledFn ? disabledFn(x) : false,\n id: idKey ? String(x[idKey]) : crypto.randomUUID(),\n };\n });\n};\n\n","<ng-template\n #previewRender\n let-itens=\"itens\"\n let-template=\"template\"\n>\n <section class=\"picklist-items\">\n @for (item of itens; track $index) {\n <ng-container *ngTemplateOutlet=\"template; context: { item: item.data }\"></ng-container>\n }\n </section>\n</ng-template>\n\n<ng-template\n #picklistItensRender\n let-id=\"id\"\n let-itens=\"itens\"\n let-template=\"template\"\n let-listConnectedTo=\"listConnectedTo\"\n let-isLoading=\"isLoading\"\n>\n <div\n class=\"picklist-items\"\n cdkDropList\n [id]=\"id\"\n [cdkDropListSortingDisabled]=\"true\"\n [cdkDropListData]=\"itens\"\n [cdkDropListConnectedTo]=\"listConnectedTo\"\n (cdkDropListDropped)=\"drop($event)\"\n *sLoadingState=\"{ loading: isLoading, indicator: logoIndicator }\"\n (scroll)=\"onScroll($event, id)\"\n >\n @for (item of itens; track $index) {\n <div\n cdkDrag\n [cdkDragDisabled]=\"item.disabled\"\n [cdkDragData]=\"item\"\n (click)=\"toggleSelected(item, id)\"\n (cdkDragStarted)=\"onDragStart($event, id)\"\n (cdkDragReleased)=\"onDragRelease()\"\n class=\"picklist-item\"\n [class.picklist-disabled]=\"item.disabled\"\n [class.picklist-item-invisible]=\"item.invisible\"\n [class.picklist-item-active]=\"item.selected\"\n >\n @if (showCheckbox) {\n <input\n type=\"checkbox\"\n class=\"input-checkbox\"\n [(ngModel)]=\"item.selected\"\n [disabled]=\"item.disabled\"\n />\n }\n <div class=\"picklist-content\">\n <ng-container\n *ngTemplateOutlet=\"\n template;\n context: { item: item.data, selected: item.selected, disabled: item.disabled }\n \"\n ></ng-container>\n </div>\n <ng-container *cdkDragPreview>\n <ng-container\n *ngTemplateOutlet=\"previewRender; context: { itens: selectedItensMap, template: template }\"\n ></ng-container>\n </ng-container>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template\n #checkboxTitleRender\n let-disabled=\"disabled\"\n let-checked=\"checked\"\n let-changeFn=\"changeFn\"\n let-id=\"id\"\n>\n @if (showCheckbox && !lazyLoad()) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"checked\"\n (change)=\"changeFn($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === itensToSelectId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"itensToSelectFilterUtil.allItensSelected\"\n (change)=\"checkAllAvailableItensChange($any($event.target).checked)\"\n />\n } @else if (showCheckbox && lazyLoad() && id === selectedItensId) {\n <input\n class=\"input-checkbox\"\n type=\"checkbox\"\n [disabled]=\"disabled\"\n [checked]=\"selectedItensFilterUtil.allItensSelected\"\n (change)=\"checkAllSelectedItensChange($any($event.target).checked)\"\n />\n }\n</ng-template>\n\n<div class=\"picklist-container\">\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ availableItensLabel || 'platform.angular_components.available-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableItensToSelectCheckbox,\n checked: itensToSelectAllSelected,\n changeFn: checkAllAvailableItensChange.bind(this),\n id: itensToSelectId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"availableItensFilter\"\n (ngModelChange)=\"filterItensToSelect()\"\n [placeholder]=\"\n availableItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: itensToSelectId,\n itens: itensToSelectFilterUtil.filteredItensToSelect,\n template: itemToSelectTemplate,\n listConnectedTo: selectedItensId,\n isLoading: _loadingSource(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"addSelectedItensLabel || 'platform.angular_components.add' | translate\"\n priority=\"primary\"\n rightIconClass=\"fa fa-fw fa-arrow-right\"\n [disabled]=\"!hasSelectedItens\"\n (clicked)=\"add()\"\n [auxiliary]=\"false\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"addAllItensLabel || 'platform.angular_components.add_all' | translate\"\n priority=\"link\"\n (clicked)=\"add(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n <div class=\"picklist-item-container\">\n <div class=\"picklist-box\">\n <div class=\"picklist-title-container\">\n @if (!filterBy && !lazyLoad()) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <span class=\"picklist-title\">\n {{ selectedItensLabel || 'platform.angular_components.selected-items' | translate }}\n </span>\n </div>\n @if (filterBy || lazyLoad()) {\n <div class=\"picklist-filter\">\n @if (showCheckbox) {\n <ng-container\n *ngTemplateOutlet=\"\n checkboxTitleRender;\n context: {\n disabled: disableSelectedItensCheckbox,\n checked: selectedItensAllSelected,\n changeFn: checkAllSelectedItensChange.bind(this),\n id: selectedItensId,\n }\n \"\n ></ng-container>\n }\n <input\n type=\"text\"\n class=\"input-search\"\n [(ngModel)]=\"selectedItensFilter\"\n (ngModelChange)=\"filterSelectedItens()\"\n [placeholder]=\"\n selectedItensPlaceholder || 'platform.angular_components.picklist-placeholder' | translate\n \"\n />\n </div>\n }\n <ng-container\n *ngTemplateOutlet=\"\n picklistItensRender;\n context: {\n id: selectedItensId,\n itens: selectedItensFilterUtil.filteredSelectedItens,\n template: itemSelectedTemplate,\n listConnectedTo: itensToSelectId,\n isLoading: _loadingTarget(),\n }\n \"\n >\n </ng-container>\n </div>\n <div class=\"buttons-container\">\n <s-button\n [label]=\"removeSelectedItemsLabel || 'platform.angular_components.remove' | translate\"\n priority=\"primary\"\n iconClass=\"fa fa-fw fa-arrow-left\"\n [disabled]=\"!hasSelectedItens\"\n [auxiliary]=\"false\"\n (clicked)=\"remove()\"\n [caret]=\"false\"\n >\n </s-button>\n <s-button\n [label]=\"removeAllItemsLabel || 'platform.angular_components.remove_all' | translate\"\n priority=\"link\"\n (clicked)=\"remove(true)\"\n [auxiliary]=\"false\"\n >\n </s-button>\n </div>\n </div>\n</div>\n\n","import { NgModule } from '@angular/core';\n\nimport { PicklistComponent } from './picklist.component';\n\n@NgModule({\n imports: [PicklistComponent],\n exports: [PicklistComponent],\n})\nexport class PicklistModule {}\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -296,7 +296,7 @@ class ProfilePicturePickerComponent {
296
296
  useExisting: forwardRef(() => ProfilePicturePickerComponent),
297
297
  multi: true,
298
298
  },
299
- ], viewQueries: [{ propertyName: "uploadPicture", first: true, predicate: ["uploadPicture"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }, { propertyName: "thumbnail", first: true, predicate: ["thumbnail"], descendants: true, read: ElementRef }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<input\n #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n class=\"file-input\"\n type=\"file\"\n (change)=\"photoSelected($event)\"\n/>\n<div\n #uploadPicture\n class=\"upload-picture\"\n [class.upload-picture--disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n>\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"imageBase64\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\"\n >\n </s-thumbnail>\n <div\n #info\n class=\"info\"\n >\n @if (image) {\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel || 'platform.angular_components.change_photo' | translate\"\n priority=\"primary\"\n [disabled]=\"disabled\"\n (clicked)=\"selectPhoto()\"\n >\n </s-button>\n <s-button\n [label]=\"removeButtonLabel || 'platform.angular_components.remove' | translate\"\n priority=\"secondary\"\n [disabled]=\"disabled\"\n (clicked)=\"removePhoto()\"\n >\n </s-button>\n </div>\n } @else {\n <p class=\"title\">\n {{ simpleTitle || 'platform.angular_components.drag_your_photo_or' | translate }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\"\n >\n {{ actionTitle || 'platform.angular_components.select_a_file' | translate }}\n </span>\n </p>\n }\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n", styles: [".file-input{display:none}.upload-picture{display:flex;flex-wrap:wrap}.upload-picture--disabled{opacity:.5;pointer-events:none}.upload-picture .info{display:flex;flex-direction:column;padding:12px 20px;align-items:flex-start}.upload-picture .info .title{font-family:Open Sans,sans-serif;font-weight:700;font-size:.875rem;line-height:150%;color:#333}.upload-picture .info .title .action-title{cursor:pointer;color:#428bca}.upload-picture .info .buttons{display:flex;gap:8px}.upload-picture .info .buttons s-button{margin:0}.upload-picture .info .subtitle{padding:6px 0;font-family:Open Sans,sans-serif;font-weight:400;font-size:.75rem;line-height:150%;color:#697882;text-align:center}.upload-picture--small .info{align-items:center}.upload-picture--small .info .title,.upload-picture--small .info .subtitle{text-align:center}.upload-picture--small .info .buttons{justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
299
+ ], viewQueries: [{ propertyName: "uploadPicture", first: true, predicate: ["uploadPicture"], descendants: true }, { propertyName: "info", first: true, predicate: ["info"], descendants: true }, { propertyName: "thumbnail", first: true, predicate: ["thumbnail"], descendants: true, read: ElementRef }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true, read: ElementRef }], ngImport: i0, template: "<input\n #fileInput\n [accept]=\"accept\"\n [disabled]=\"disabled\"\n class=\"file-input\"\n type=\"file\"\n (change)=\"photoSelected($event)\"\n/>\n<div\n #uploadPicture\n class=\"upload-picture\"\n [class.upload-picture--disabled]=\"disabled\"\n [attr.aria-disabled]=\"disabled\"\n>\n <s-thumbnail\n #thumbnail\n iconClass=\"far fa-user\"\n [imageSource]=\"imageBase64\"\n [hasAction]=\"!image\"\n (click)=\"selectPhoto()\"\n >\n </s-thumbnail>\n <div\n #info\n class=\"info\"\n >\n @if (image) {\n <div class=\"buttons\">\n <s-button\n [label]=\"changeButtonLabel || 'platform.angular_components.change_photo' | translate\"\n priority=\"primary\"\n [disabled]=\"disabled\"\n (clicked)=\"selectPhoto()\"\n >\n </s-button>\n <s-button\n [label]=\"removeButtonLabel || 'platform.angular_components.remove' | translate\"\n priority=\"secondary\"\n [disabled]=\"disabled\"\n (clicked)=\"removePhoto()\"\n >\n </s-button>\n </div>\n } @else {\n <p class=\"title\">\n {{ simpleTitle || 'platform.angular_components.drag_your_photo_or' | translate }}\n <span\n class=\"action-title\"\n (click)=\"selectPhoto()\"\n >\n {{ actionTitle || 'platform.angular_components.select_a_file' | translate }}\n </span>\n </p>\n }\n <p class=\"subtitle\">{{ subtitle }}</p>\n </div>\n</div>\n", styles: [".file-input{display:none}.upload-picture{display:flex;flex-wrap:wrap}.upload-picture--disabled{opacity:.5;pointer-events:none}.upload-picture .info{display:flex;flex-direction:column;padding:12px 20px;align-items:flex-start}.upload-picture .info .title{font-family:Open Sans,sans-serif;font-weight:700;font-size:.875rem;line-height:150%;color:#333}.upload-picture .info .title .action-title{cursor:pointer;color:#428bca}.upload-picture .info .buttons{display:flex;gap:8px}.upload-picture .info .buttons s-button{margin:0}.upload-picture .info .subtitle{padding:6px 0;font-family:Open Sans,sans-serif;font-weight:400;font-size:.75rem;line-height:150%;color:#697882;text-align:center}.upload-picture--small .info{align-items:center}.upload-picture--small .info .title,.upload-picture--small .info .subtitle{text-align:center}.upload-picture--small .info .buttons{justify-content:center;flex-wrap:wrap}\n"], dependencies: [{ kind: "component", type: ThumbnailComponent, selector: "s-thumbnail", inputs: ["id", "size", "imageSource", "imageFallback", "imageAlt", "iconClass", "hasAction", "actionIconClass", "isTile", "isBrand"] }, { kind: "component", type: ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked", "tieredMenuOpened", "tieredMenuClosed"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
300
300
  }
301
301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ProfilePicturePickerComponent, decorators: [{
302
302
  type: Component,