mapa-library-ui 0.60.0 → 0.61.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/esm2020/lib/core/elements/element-base.mjs +3 -2
  2. package/esm2020/src/lib/components/capability/lib/core/elements/element-base.mjs +3 -2
  3. package/esm2020/src/lib/components/chart/lib/core/elements/element-base.mjs +3 -2
  4. package/esm2020/src/lib/components/dropdown/lib/components/dropdown-tree/src/dropdown.component.mjs +14 -14
  5. package/esm2020/src/lib/components/dropdown/lib/core/elements/element-base.mjs +3 -2
  6. package/esm2020/src/lib/components/dropdown-tree/lib/components/dropdown-tree/src/dropdown.component.mjs +14 -14
  7. package/esm2020/src/lib/components/dropdown-tree/lib/core/elements/element-base.mjs +3 -2
  8. package/esm2020/src/lib/components/form/lib/core/elements/element-base.mjs +3 -2
  9. package/esm2020/src/lib/components/group-report/lib/core/elements/element-base.mjs +3 -2
  10. package/esm2020/src/lib/components/radio-button/lib/core/elements/element-base.mjs +3 -2
  11. package/esm2020/src/lib/components/scale/lib/core/elements/element-base.mjs +3 -2
  12. package/esm2020/src/lib/components/scale-parameterization/lib/core/elements/element-base.mjs +3 -2
  13. package/esm2020/src/lib/components/slide-toggle/lib/core/elements/element-base.mjs +3 -2
  14. package/esm2020/src/lib/components/textarea/lib/core/elements/element-base.mjs +3 -2
  15. package/fesm2015/mapa-library-ui-src-lib-components-dropdown-tree.mjs +15 -14
  16. package/fesm2015/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  17. package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs +15 -14
  18. package/fesm2015/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  19. package/fesm2015/mapa-library-ui.mjs +2 -1
  20. package/fesm2015/mapa-library-ui.mjs.map +1 -1
  21. package/fesm2020/mapa-library-ui-src-lib-components-dropdown-tree.mjs +15 -14
  22. package/fesm2020/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  23. package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs +15 -14
  24. package/fesm2020/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  25. package/fesm2020/mapa-library-ui.mjs +2 -1
  26. package/fesm2020/mapa-library-ui.mjs.map +1 -1
  27. package/lib/core/elements/element-base.d.ts +2 -0
  28. package/mapa-library-ui-0.61.0.tgz +0 -0
  29. package/package.json +1 -1
  30. package/src/lib/components/capability/lib/core/elements/element-base.d.ts +2 -0
  31. package/src/lib/components/chart/lib/core/elements/element-base.d.ts +2 -0
  32. package/src/lib/components/dropdown/lib/core/elements/element-base.d.ts +2 -0
  33. package/src/lib/components/dropdown-tree/lib/core/elements/element-base.d.ts +2 -0
  34. package/src/lib/components/form/lib/core/elements/element-base.d.ts +2 -0
  35. package/src/lib/components/group-report/lib/core/elements/element-base.d.ts +2 -0
  36. package/src/lib/components/radio-button/lib/core/elements/element-base.d.ts +2 -0
  37. package/src/lib/components/scale/lib/core/elements/element-base.d.ts +2 -0
  38. package/src/lib/components/scale-parameterization/lib/core/elements/element-base.d.ts +2 -0
  39. package/src/lib/components/slide-toggle/lib/core/elements/element-base.d.ts +2 -0
  40. package/src/lib/components/textarea/lib/core/elements/element-base.d.ts +2 -0
  41. package/mapa-library-ui-0.60.0.tgz +0 -0
@@ -61,7 +61,8 @@ class ElementBase {
61
61
  this.clearValue =
62
62
  options.clearValue !== undefined ? options.clearValue : true;
63
63
  this.status = options.status || undefined;
64
- this.checkParent = this.checkParent || false;
64
+ this.checkParent = options.checkParent || false;
65
+ this.checkChildren = options.checkChildren || false;
65
66
  }
66
67
  }
67
68
 
@@ -449,7 +450,7 @@ class MapaDropdownTreeComponent {
449
450
  const allValuesKeys = value.map((item) => item.key);
450
451
  this.treeControl.dataNodes.map((node) => {
451
452
  if (allValuesKeys.includes(node.key)) {
452
- if (node.level === 0) {
453
+ if (this.element.multiple && node.level === 0) {
453
454
  this.todoItemSelectionToggle(node);
454
455
  }
455
456
  else {
@@ -520,20 +521,20 @@ class MapaDropdownTreeComponent {
520
521
  /** Toggle the to-do item selection. Select/deselect all the descendants node */
521
522
  todoItemSelectionToggle(node) {
522
523
  this.checklistSelection.toggle(node);
523
- const descendants = this.treeControl.getDescendants(node);
524
- this.checklistSelection.isSelected(node)
525
- ? this.checklistSelection.select(...descendants)
526
- : this.checklistSelection.deselect(...descendants);
527
- // Force update for the parent
528
- descendants.every((child) => this.checklistSelection.isSelected(child));
529
- this.checkAllParentsSelection(node);
524
+ if (this.element.checkChildren) {
525
+ const descendants = this.treeControl.getDescendants(node);
526
+ this.checklistSelection.isSelected(node)
527
+ ? this.checklistSelection.select(...descendants)
528
+ : this.checklistSelection.deselect(...descendants);
529
+ // Force update for the parent
530
+ descendants.every((child) => this.checklistSelection.isSelected(child));
531
+ this.checkAllParentsSelection(node);
532
+ }
530
533
  }
531
534
  /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */
532
535
  todoLeafItemSelectionToggle(node) {
533
536
  this.checklistSelection.toggle(node);
534
- if (this.element.checkParent) {
535
- this.checkAllParentsSelection(node);
536
- }
537
+ this.checkAllParentsSelection(node);
537
538
  }
538
539
  /* Checks all the parents when a leaf node is selected/unselected */
539
540
  checkAllParentsSelection(node) {
@@ -610,10 +611,10 @@ class MapaDropdownTreeComponent {
610
611
  }
611
612
  }
612
613
  MapaDropdownTreeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownTreeComponent, deps: [{ token: ChecklistDatabase }], target: i0.ɵɵFactoryTarget.Component });
613
- MapaDropdownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownTreeComponent, selector: "mapa-dropdown-tree", inputs: { formGroup: "formGroup", element: "element" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["auto"], descendants: true }, { propertyName: "tree", first: true, predicate: ["tree"], descendants: true }, { propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "toggleAllCheckbox", first: true, predicate: ["toggleAllCheckbox"], descendants: true }], ngImport: i0, template: "<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n", styles: [".mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important}.mapa-dropdown-tree .mat-select{font-family:Inter,sans-serif!important}.mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}.mapa-dropdown-tree__label,.mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}.mapa-dropdown-tree__label div,.mapa-dropdown-tree__checkbox div{width:100%}.mapa-dropdown-tree__label--checked,.mapa-dropdown-tree__checkbox--checked{background:rgba(0,0,0,.12)}.mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}.mapa-dropdown-tree__label{padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}.mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:24px}.mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:Inter,sans-serif!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}.mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:Inter,sans-serif;font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}.mapa-dropdown-tree__button .mat-button-wrapper{color:#ea561d!important;padding:4px 8px}.mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}.mapa-dropdown-tree__search .mat-input-element{padding:4px 0}.mapa-dropdown-tree__search .mat-form-field{width:94%}.mapa-dropdown-tree__search .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree__search .mat-form-field-outline{background:white;border-radius:8px}.mapa-dropdown-tree__search .mat-form-field-appearance-outline .mat-form-field-infix{border-top:unset!important;padding:.7em 0 .5em}.mapa-dropdown-tree__clean{background:white;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}.mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}.mapa-dropdown-tree--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown-tree--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown-tree .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown-tree .mat-form-field-infix{border-top:unset!important;padding:unset!important;position:relative}.mapa-dropdown-tree .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown-tree .mat-select-value-text{display:block;width:90%}.mapa-dropdown-tree .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown-tree .mat-select-arrow{border:unset}.mapa-dropdown-tree .mat-select-arrow:before,.mapa-dropdown-tree .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown-tree .mat-checkbox-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}.mapa-overlay-dropdown-tree .mat-menu-panel{width:100%;max-width:none!important;overflow:hidden}.mapa-overlay-dropdown-tree .mat-input-element{font-family:Inter,sans-serif;font-size:14px}.mapa-overlay-dropdown-tree .mat-menu-content{padding-bottom:unset!important;padding-top:unset!important}.mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}.mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}.mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}.mapa-overlay-dropdown-tree .tree-toggle,.mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:rgba(0,0,0,.04)}.mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}.mapa-overlay-dropdown-tree .mat-autocomplete-panel .mat-option{padding:unset!important}.mapa-overlay-dropdown-tree .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown-tree .mat-select-panel .mat-option,.mapa-overlay-dropdown-tree .mat-select-panel .mat-option-text{font-family:Inter,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i8$1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "component", type: i8$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i8$1.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None });
614
+ MapaDropdownTreeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: MapaDropdownTreeComponent, selector: "mapa-dropdown-tree", inputs: { formGroup: "formGroup", element: "element" }, viewQueries: [{ propertyName: "autocomplete", first: true, predicate: ["auto"], descendants: true }, { propertyName: "tree", first: true, predicate: ["tree"], descendants: true }, { propertyName: "trigger", first: true, predicate: MatMenuTrigger, descendants: true }, { propertyName: "toggleAllCheckbox", first: true, predicate: ["toggleAllCheckbox"], descendants: true }], ngImport: i0, template: "<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <!-- LEAF CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <!-- PARENT CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n", styles: [".mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important}.mapa-dropdown-tree .mat-select{font-family:Inter,sans-serif!important}.mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}.mapa-dropdown-tree__label,.mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}.mapa-dropdown-tree__label div,.mapa-dropdown-tree__checkbox div{width:100%}.mapa-dropdown-tree__label--checked,.mapa-dropdown-tree__checkbox--checked{background:rgba(0,0,0,.12)}.mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}.mapa-dropdown-tree__label{padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}.mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:24px}.mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:Inter,sans-serif!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}.mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:Inter,sans-serif;font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}.mapa-dropdown-tree__button .mat-button-wrapper{color:#ea561d!important;padding:4px 8px}.mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}.mapa-dropdown-tree__search .mat-input-element{padding:4px 0}.mapa-dropdown-tree__search .mat-form-field{width:94%}.mapa-dropdown-tree__search .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree__search .mat-form-field-outline{background:white;border-radius:8px}.mapa-dropdown-tree__search .mat-form-field-appearance-outline .mat-form-field-infix{border-top:unset!important;padding:.7em 0 .5em}.mapa-dropdown-tree__clean{background:white;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}.mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}.mapa-dropdown-tree--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown-tree--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown-tree .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown-tree .mat-form-field-infix{border-top:unset!important;padding:unset!important;position:relative}.mapa-dropdown-tree .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown-tree .mat-select-value-text{display:block;width:90%}.mapa-dropdown-tree .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown-tree .mat-select-arrow{border:unset}.mapa-dropdown-tree .mat-select-arrow:before,.mapa-dropdown-tree .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown-tree .mat-checkbox-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}.mapa-overlay-dropdown-tree .mat-menu-panel{width:100%;max-width:none!important;overflow:hidden}.mapa-overlay-dropdown-tree .mat-input-element{font-family:Inter,sans-serif;font-size:14px}.mapa-overlay-dropdown-tree .mat-menu-content{padding-bottom:unset!important;padding-top:unset!important}.mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}.mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}.mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}.mapa-overlay-dropdown-tree .tree-toggle,.mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:rgba(0,0,0,.04)}.mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}.mapa-overlay-dropdown-tree .mat-autocomplete-panel .mat-option{padding:unset!important}.mapa-overlay-dropdown-tree .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown-tree .mat-select-panel .mat-option,.mapa-overlay-dropdown-tree .mat-select-panel .mat-option-text{font-family:Inter,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mat-checkbox-frame{border-color:#c3c4c7!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i4$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "directive", type: i8$1.MatTreeNodeDef, selector: "[matTreeNodeDef]", inputs: ["matTreeNodeDefWhen", "matTreeNode"] }, { kind: "directive", type: i8$1.MatTreeNodePadding, selector: "[matTreeNodePadding]", inputs: ["matTreeNodePadding", "matTreeNodePaddingIndent"] }, { kind: "component", type: i8$1.MatTree, selector: "mat-tree", exportAs: ["matTree"] }, { kind: "directive", type: i8$1.MatTreeNode, selector: "mat-tree-node", inputs: ["role", "disabled", "tabIndex"], exportAs: ["matTreeNode"] }, { kind: "component", type: i9.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i10.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i10.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }], encapsulation: i0.ViewEncapsulation.None });
614
615
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MapaDropdownTreeComponent, decorators: [{
615
616
  type: Component,
616
- args: [{ selector: "mapa-dropdown-tree", encapsulation: ViewEncapsulation.None, template: "<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n", styles: [".mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important}.mapa-dropdown-tree .mat-select{font-family:Inter,sans-serif!important}.mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}.mapa-dropdown-tree__label,.mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}.mapa-dropdown-tree__label div,.mapa-dropdown-tree__checkbox div{width:100%}.mapa-dropdown-tree__label--checked,.mapa-dropdown-tree__checkbox--checked{background:rgba(0,0,0,.12)}.mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}.mapa-dropdown-tree__label{padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}.mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:24px}.mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:Inter,sans-serif!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}.mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:Inter,sans-serif;font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}.mapa-dropdown-tree__button .mat-button-wrapper{color:#ea561d!important;padding:4px 8px}.mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}.mapa-dropdown-tree__search .mat-input-element{padding:4px 0}.mapa-dropdown-tree__search .mat-form-field{width:94%}.mapa-dropdown-tree__search .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree__search .mat-form-field-outline{background:white;border-radius:8px}.mapa-dropdown-tree__search .mat-form-field-appearance-outline .mat-form-field-infix{border-top:unset!important;padding:.7em 0 .5em}.mapa-dropdown-tree__clean{background:white;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}.mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}.mapa-dropdown-tree--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown-tree--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown-tree .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown-tree .mat-form-field-infix{border-top:unset!important;padding:unset!important;position:relative}.mapa-dropdown-tree .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown-tree .mat-select-value-text{display:block;width:90%}.mapa-dropdown-tree .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown-tree .mat-select-arrow{border:unset}.mapa-dropdown-tree .mat-select-arrow:before,.mapa-dropdown-tree .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown-tree .mat-checkbox-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}.mapa-overlay-dropdown-tree .mat-menu-panel{width:100%;max-width:none!important;overflow:hidden}.mapa-overlay-dropdown-tree .mat-input-element{font-family:Inter,sans-serif;font-size:14px}.mapa-overlay-dropdown-tree .mat-menu-content{padding-bottom:unset!important;padding-top:unset!important}.mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}.mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}.mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}.mapa-overlay-dropdown-tree .tree-toggle,.mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:rgba(0,0,0,.04)}.mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}.mapa-overlay-dropdown-tree .mat-autocomplete-panel .mat-option{padding:unset!important}.mapa-overlay-dropdown-tree .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown-tree .mat-select-panel .mat-option,.mapa-overlay-dropdown-tree .mat-select-panel .mat-option-text{font-family:Inter,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mat-checkbox-frame{border-color:#c3c4c7!important}\n"] }]
617
+ args: [{ selector: "mapa-dropdown-tree", encapsulation: ViewEncapsulation.None, template: "<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <!-- LEAF CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <!-- PARENT CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n", styles: [".mapa-dropdown-tree{min-width:235px;max-width:none;width:100%!important}.mapa-dropdown-tree .mat-select{font-family:Inter,sans-serif!important}.mapa-dropdown-tree__toggle-all .checklist-leaf-node{padding:16px 0}.mapa-dropdown-tree__label,.mapa-dropdown-tree__checkbox{display:block;font-style:normal;font-weight:400;line-height:16px;width:100%;padding:0 16px}.mapa-dropdown-tree__label div,.mapa-dropdown-tree__checkbox div{width:100%}.mapa-dropdown-tree__label--checked,.mapa-dropdown-tree__checkbox--checked{background:rgba(0,0,0,.12)}.mapa-dropdown-tree__checkbox{font-size:16px;padding:0 16px}.mapa-dropdown-tree__label{padding:0!important;font-size:12px!important;font-weight:600!important;margin-bottom:16px;text-transform:uppercase}.mapa-dropdown-tree__dropdown{display:flex;align-items:center;justify-content:flex-start;background-color:#fff;width:100%;border:2px solid #a7aaad;border-radius:8px;padding:10px 12px;margin-bottom:24px}.mapa-dropdown-tree__dropdown--value{flex-grow:1;font-family:Inter,sans-serif!important;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap;width:300px}.mapa-dropdown-tree__button{background:#fff;border-top:1px solid #dcdcde!important;color:#ea561d;font-family:Inter,sans-serif;font-size:16px;font-style:normal;font-weight:500;line-height:28px;padding:9px;text-align:left!important;width:100%}.mapa-dropdown-tree__button .mat-button-wrapper{color:#ea561d!important;padding:4px 8px}.mapa-dropdown-tree__search{display:flex;align-items:center;justify-content:flex-start;background:#f6f7f7;width:100%;padding:10px 0 16px 16px!important}.mapa-dropdown-tree__search .mat-input-element{padding:4px 0}.mapa-dropdown-tree__search .mat-form-field{width:94%}.mapa-dropdown-tree__search .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree__search .mat-form-field-outline{background:white;border-radius:8px}.mapa-dropdown-tree__search .mat-form-field-appearance-outline .mat-form-field-infix{border-top:unset!important;padding:.7em 0 .5em}.mapa-dropdown-tree__clean{background:white;border-top:1px solid #dcdcde;bottom:0%;height:36px;position:absolute;width:100%;z-index:9999}.mapa-dropdown-tree__clean button{text-align:left;height:36px;width:100%}.mapa-dropdown-tree--highlight .mat-form-field-outline{border-radius:16px!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-width:2px!important;border-color:#eedb2a!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--highlight .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--soft-border .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important}.mapa-dropdown-tree--tag .mat-form-field-outline{border-radius:16px!important;height:42px!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-width:1px!important;border-color:#cdcdcd}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-start{display:none!important}.mapa-dropdown-tree--tag .mat-form-field-outline .mat-form-field-outline-end{border-radius:16px!important;border-left-style:solid!important}.mapa-dropdown-tree .mat-form-field-outline{background-color:#fff;border-radius:8px}.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-start,.mapa-dropdown-tree .mat-form-field-outline .mat-form-field-outline-end{border-width:2px}.mapa-dropdown-tree .mat-form-field-wrapper{padding-bottom:unset!important}.mapa-dropdown-tree .mat-form-field-flex{display:flex;align-items:center;height:48px}.mapa-dropdown-tree .mat-form-field-infix{border-top:unset!important;padding:unset!important;position:relative}.mapa-dropdown-tree .mat-select-trigger{min-width:50px;padding-top:.3em;height:unset!important}.mapa-dropdown-tree .mat-select-value-text{display:block;width:90%}.mapa-dropdown-tree .mat-select-arrow-wrapper{transform:none!important}.mapa-dropdown-tree .mat-select-arrow{border:unset}.mapa-dropdown-tree .mat-select-arrow:before,.mapa-dropdown-tree .mat-select-arrow:after{content:\"\";display:block;margin-top:-4px;position:absolute;right:10px;top:50%;width:0;border:solid black;border-width:0 2px 2px 0;padding:3px;transform:rotate(45deg);-webkit-transform:rotate(45deg)}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow{margin:6px 0 0}.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:before,.mapa-dropdown-tree [aria-expanded=true] .mat-select-arrow:after{transform:rotate(-135deg)!important;-webkit-transform:rotate(-135deg)!important}.mapa-overlay-dropdown-tree .mat-checkbox-label{color:#77838f!important;font-size:16px!important;font-style:normal;font-weight:400}.mapa-overlay-dropdown-tree .mat-menu-panel{width:100%;max-width:none!important;overflow:hidden}.mapa-overlay-dropdown-tree .mat-input-element{font-family:Inter,sans-serif;font-size:14px}.mapa-overlay-dropdown-tree .mat-menu-content{padding-bottom:unset!important;padding-top:unset!important}.mapa-overlay-dropdown-tree .mat-tree{display:flex;gap:8px;flex-direction:column;max-height:260px;padding-bottom:24px;overflow-y:auto}.mapa-overlay-dropdown-tree .mat-tree-node{color:#50575e!important}.mapa-overlay-dropdown-tree ul{padding-inline-start:20px!important;margin-block-start:0px!important;margin-block-end:0px!important;gap:8px}.mapa-overlay-dropdown-tree .tree-toggle,.mapa-overlay-dropdown-tree .mat-tree .mat-focus-indicator{display:none}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node{min-height:28px!important;padding:4px 0;flex:unset!important}.mapa-overlay-dropdown-tree .mat-tree .mat-tree-node:hover{background:rgba(0,0,0,.04)}.mapa-overlay-dropdown-tree .mat-select-tree-hide{display:block!important}.mapa-overlay-dropdown-tree .mat-autocomplete-panel .mat-option{padding:unset!important}.mapa-overlay-dropdown-tree .mat-select-panel{border-radius:8px;min-width:calc(100% + 24px)!important}.mapa-overlay-dropdown-tree .mat-select-panel .mat-option,.mapa-overlay-dropdown-tree .mat-select-panel .mat-option-text{font-family:Inter,sans-serif!important;font-size:16px;font-style:normal;font-weight:400;line-height:2em;height:2em;color:#50575e}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option{display:flex;padding:16px 8px!important;flex-direction:column;justify-content:center;align-items:center;gap:10px;align-self:stretch;background:#f6f7f7;height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inside-mat-option{height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-clear{top:-3px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-inner{top:8px;border:2px solid #a7aaad;border-radius:8px!important;width:100%!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-toggle-all-checkbox{padding-left:8px!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input{padding:8px 8px 8px 6px!important;height:unset!important;line-height:unset!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search.mat-option .mat-select-search-input::placeholder{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mapa-dropdown__search .mat-option-text{width:100%}.mapa-overlay-dropdown-tree .mat-pseudo-checkbox{color:#c3c4c7!important}.mapa-overlay-dropdown-tree .mat-checkbox-frame{border-color:#c3c4c7!important}\n"] }]
617
618
  }], ctorParameters: function () { return [{ type: ChecklistDatabase }]; }, propDecorators: { formGroup: [{
618
619
  type: Input
619
620
  }], element: [{
@@ -1 +1 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-components-dropdown.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/elements/element-base.ts","../../../projects/mapa-library-ui/src/lib/core/elements/dropdown.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/button/src/button.module.ts","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.module.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/checklist-database.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.module.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/public-api.ts","../../../projects/mapa-library-ui/src/dropdown.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-dropdown.ts"],"sourcesContent":["import { ElementGroup } from \"../interfaces/element-group.interface\";\nimport { ElementOption } from \"../interfaces/element-option.interface\";\nimport { ActionButton } from \"./action-button\";\nimport { ElementSearch } from \"./element-search\";\nimport { Errors } from \"./errors\";\nexport interface Status {\n label: string;\n}\n\nexport class ElementBase {\n value: string;\n key: string;\n label: string;\n required: boolean;\n order: number;\n controlType: string;\n type: string;\n placeholder?: string;\n hint?: string;\n prefix?: string;\n suffix?: string;\n autosize?: boolean;\n autosizeMinWidth?: string;\n autosizeMaxWidth?: string;\n autosizeMinRow?: number;\n autosizeMaxRow?: number;\n options: ElementOption[] | ElementGroup[];\n tree: any[];\n multiple?: boolean;\n search?: ElementSearch;\n maxLength!: string | number | null;\n errors?: Errors;\n actionButton?: ActionButton;\n mask?: string;\n autocomplete?: string;\n clearValue?: boolean;\n status?: Status[];\n checkParent?: boolean;\n\n constructor(\n options: {\n value?: string;\n key?: string;\n label?: string;\n required?: boolean;\n order?: number;\n controlType?: string;\n type?: string;\n placeholder?: string;\n hint?: string;\n prefix?: string;\n suffix?: string;\n autosize?: boolean;\n autosizeMinWidth?: string;\n autosizeMaxWidth?: string;\n autosizeMinRow?: number;\n autosizeMaxRow?: number;\n options?: ElementOption[] | ElementGroup[];\n tree?: any[];\n multiple?: boolean;\n search?: ElementSearch;\n maxLength?: string | number | null;\n errors?: Errors;\n actionButton?: ActionButton;\n mask?: string;\n autocomplete?: string;\n clearValue?: boolean;\n status?: Status[];\n checkParent?: boolean;\n } = {}\n ) {\n this.value = options.value || \"\";\n this.key = options.key || \"\";\n this.label = options.label || \"\";\n this.required = !!options.required;\n this.order = options.order === undefined ? 1 : options.order;\n this.controlType = options.controlType || \"\";\n this.type = options.type || \"\";\n this.placeholder = options.placeholder || \"\";\n this.hint = options.hint || \"\";\n this.prefix = options.prefix || \"\";\n this.suffix = options.suffix || \"\";\n this.autosize = options.autosize || false;\n this.autosizeMinWidth = options.autosizeMinWidth || \"212px\";\n this.autosizeMaxWidth = options.autosizeMaxWidth || \"400px\";\n this.autosizeMinRow = options.autosizeMinRow || 2;\n this.autosizeMaxRow = options.autosizeMaxRow || 5;\n this.options = options.options || [];\n this.tree = options.tree || [];\n this.multiple = options.multiple || false;\n this.search = options.search || undefined;\n this.maxLength = options.maxLength || null;\n this.errors = options.errors || undefined;\n this.actionButton = options.actionButton || undefined;\n this.mask = options.mask || undefined;\n this.autocomplete = options.autocomplete || \"\";\n this.clearValue =\n options.clearValue !== undefined ? options.clearValue : true;\n this.status = options.status || undefined;\n this.checkParent = this.checkParent || false;\n }\n}\n","import { ElementBase } from './element-base';\n\nexport class Dropdown extends ElementBase {\n override controlType = 'dropdown';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button> ","import {\n AfterViewInit,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { MatSelect } from \"@angular/material/select\";\n\nimport { ReplaySubject } from \"rxjs/internal/ReplaySubject\";\nimport { Subject } from \"rxjs/internal/Subject\";\n//import { take, takeUntil } from \"rxjs/operators\";\n\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\n\n@Component({\n selector: \"mapa-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapaDropdownComponent implements OnInit, OnDestroy, OnChanges {\n @Input() formControl!: FormControl;\n @Input() formControlSearch!: FormControl;\n @Input() element!: Dropdown;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n\n @ViewChild(\"dropdown\", { static: true }) dropdown!: MatSelect;\n\n public filteredOptions: ReplaySubject<ElementOption[]> = new ReplaySubject<\n ElementOption[]\n >(1);\n public filteredGroups: ReplaySubject<ElementGroup[]> = new ReplaySubject<\n ElementGroup[]\n >(1);\n protected filteredOptionsCache: ElementOption[] = [];\n protected filteredGroupCache: ElementGroup[] = [];\n protected _onDestroy = new Subject<void>();\n\n isIndeterminate = false;\n isChecked = false;\n isOptionsGroup = false;\n\n get selectedOptions() {\n const value = this.formControl?.value || [];\n return Array.isArray(value)? value: [value];\n }\n\n constructor() {}\n\n ngOnInit() {\n this.setOptions();\n\n if (this.element.search) {\n this.element.search.formControl?.valueChanges\n //.pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterOptions();\n this.setToggleAllCheckboxState();\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes[\"element\"].previousValue?.controlType === \"dropdown\" &&\n changes[\"element\"].previousValue?.options !== changes[\"element\"].currentValue?.options\n ) {\n this.element.options = changes[\"element\"].currentValue.options;\n this.setOptions();\n }\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n setOptions(): void {\n this.isOptionsGroup = this.isElementGroup(this.element.options[0]);\n\n if (this.isOptionsGroup) {\n this.filteredGroupCache = (this.element\n .options as ElementGroup[]).slice();\n this.filteredGroups.next(this.filteredGroupCache);\n } else {\n this.filteredOptionsCache = (this.element\n .options as ElementOption[]).slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n }\n\n protected filterOptionsFromGroup(\n group: ElementGroup,\n value: string\n ): ElementOption[] {\n const filterValue = value.toLocaleLowerCase();\n\n return group.label.toLocaleLowerCase().includes(filterValue)\n ? group.options\n : group.options.filter((item) =>\n item.value.toLocaleLowerCase().includes(filterValue)\n );\n }\n\n protected filterOptions() {\n if (!this.element.options) {\n return;\n }\n // get the search keyword\n let search = this.element.search?.formControl?.value.toLowerCase();\n\n if (this.isOptionsGroup) {\n const groups = this.element.options as ElementGroup[];\n this.filteredGroupCache = groups\n .map((group: ElementGroup) => ({\n label: group.label,\n options: this.filterOptionsFromGroup(group, search),\n }))\n .filter((group) => group.options.length > 0);\n this.filteredGroups.next(this.filteredGroupCache);\n } else {\n const options = this.element.options as ElementOption[];\n if (!search) {\n this.filteredOptionsCache = options.slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n return;\n }\n // filter the options\n this.filteredOptionsCache = options.filter(\n (option: ElementOption) =>\n option.value.toLowerCase().indexOf(search) > -1\n );\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n }\n\n protected setToggleAllCheckboxState() {\n let filteredLength = 0;\n let search = this.element.search?.formControl?.value;\n\n if (search && search.value) {\n this.filteredOptionsCache.forEach((el) => {\n if (search.value.toLowerCase().indexOf(el) > -1) {\n filteredLength++;\n }\n });\n this.isIndeterminate =\n filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;\n this.isChecked =\n filteredLength > 0 &&\n filteredLength === this.filteredOptionsCache.length;\n }\n }\n\n toggleSelectAll(selectAllValue: boolean) {\n this.filteredOptions.subscribe((options: ElementOption[]) => {\n if (selectAllValue) {\n this.formControl?.patchValue(options);\n } else {\n this.formControl?.patchValue([]);\n }\n });\n this.filteredGroups.subscribe((groups: ElementGroup[]) => {\n if (selectAllValue) {\n this.formControl?.patchValue(\n groups.map((group: ElementGroup) => group.options)\n );\n } else {\n this.formControl?.patchValue([]);\n }\n });\n }\n\n isElementGroup(object: ElementGroup | ElementOption): object is ElementGroup {\n try {\n return (\n (object as ElementGroup).label !== undefined &&\n (object as ElementGroup).options !== undefined\n );\n } catch (e) {\n return false;\n }\n }\n\n compareFn(c1: any, c2: any): boolean {\n return c1 && c2 ? c1.key === c2.key : c1 === c2;\n }\n \n hasValue(): boolean {\n return !!this.formControl.value;\n }\n\n clearValue(event: any): void {\n event.stopPropagation();\n this.formControl.setValue(null);\n }\n}\n","<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n \n <mat-option\n *ngFor=\"let option of selectedOptions\"\n hidden\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n <mat-icon\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class MapaButtonModule {}\n","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\nexport * from './src/button.module';\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { MapaDropdownComponent } from \"./dropdown.component\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from \"@angular/material/form-field\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MapaButtonModule } from \"../../button/public-api\";\n\n@NgModule({\n declarations: [MapaDropdownComponent],\n exports: [MapaDropdownComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MapaButtonModule,\n MatListModule,\n MatIconModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ],\n providers: [\n {\n provide: MAT_SELECT_CONFIG,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n ],\n})\nexport class MapaDropdownModule {}\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\nexport * from './src/dropdown.module';\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DataNode } from \"./dropdown.component\";\n\n@Injectable({ providedIn: \"root\" })\nexport class ChecklistDatabase {\n dataChange = new BehaviorSubject<DataNode[]>([]);\n treeData!: any[];\n\n get data(): DataNode[] {\n return this.dataChange.value;\n }\n\n constructor() {}\n\n initialize(treeData: DataNode[]) {\n this.treeData = treeData;\n // Build the tree nodes from Json object. The result is a list of `TodoItemNode` with nested\n // file node as children.\n const data = treeData;\n\n // Notify the change.\n this.dataChange.next(data);\n }\n\n public filter(filterText: string) {\n let filteredTreeData;\n if (filterText) {\n // Filter the tree\n function filter(array: any[], text: string) {\n const getChildren = (\n result: any[],\n object: { value: string; children: any[] }\n ) => {\n if (\n object.value?.toLowerCase().includes(text?.toLowerCase()) ||\n object.children?.some((child) =>\n child.value?.toLowerCase().includes(text?.toLowerCase())\n )\n ) {\n result.push(object);\n return result;\n }\n if (Array.isArray(object.children) && object.children.length > 0) {\n const children = object.children.reduce(getChildren, []);\n if (children.length) result.push({ ...object, children });\n }\n return result;\n };\n\n return array.reduce(getChildren, []);\n }\n\n filteredTreeData = filter(this.treeData, filterText);\n } else {\n // Return the initial tree\n filteredTreeData = this.treeData;\n }\n\n // Build the tree nodes from Json object. The result is a list of `TodoItemNode` with nested\n // file node as children.\n const data = filteredTreeData;\n // Notify the change.\n this.dataChange.next(data);\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { DropdownTree } from \"../../../core/elements/dropdown-tree\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { FlatTreeControl } from \"@angular/cdk/tree\";\nimport {\n MatTreeFlattener,\n MatTreeFlatDataSource,\n MatTree,\n} from \"@angular/material/tree\";\nimport { Observable } from \"rxjs\";\nimport { ChecklistDatabase } from \"./checklist-database\";\nimport { MatAutocomplete } from \"@angular/material/autocomplete\";\nimport { MatCheckbox, MatCheckboxChange } from \"@angular/material/checkbox\";\nimport { MatMenu, MatMenuTrigger } from \"@angular/material/menu\";\n\nexport class DataNode {\n key!: string;\n value!: string;\n children?: DataNode[];\n isLeaf?: boolean;\n\n constructor() {}\n}\n\n/** Flat to-do item node with expandable and level information */\nexport class DataFlatNode {\n key!: string;\n value!: string;\n level!: number;\n expandable!: boolean;\n\n constructor() {}\n}\n\n@Component({\n selector: \"mapa-dropdown-tree\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapaDropdownTreeComponent implements OnInit, AfterViewInit {\n @Input() formGroup!: FormGroup;\n @Input() element!: DropdownTree;\n @ViewChild(\"auto\") autocomplete!: MatAutocomplete;\n @ViewChild(\"tree\") tree!: MatTree<DataNode>;\n @ViewChild(MatMenuTrigger) trigger!: MatMenuTrigger;\n @ViewChild(\"toggleAllCheckbox\") toggleAllCheckbox!: MatCheckbox;\n\n isMenuExpanded: boolean = false;\n\n /** Map from flat node to nested node. This helps us finding the nested node to be modified */\n flatNodeMap = new Map<DataFlatNode, DataNode>();\n\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\n nestedNodeMap = new Map<DataNode, DataFlatNode>();\n\n /** A selected parent node to be inserted */\n selectedParent: DataFlatNode | null = null;\n\n /** The new item's name */\n newItemName = \"\";\n\n treeControl!: FlatTreeControl<DataFlatNode>;\n\n treeFlattener!: MatTreeFlattener<DataNode, DataFlatNode>;\n\n dataSource!: MatTreeFlatDataSource<DataNode, DataFlatNode>;\n\n /** The selection for checklist */\n checklistSelection = new SelectionModel<DataFlatNode>(true);\n\n /// Filtering\n myControl = new FormControl();\n options: string[] = [];\n filteredOptions!: Observable<string[]>;\n\n constructor(private _database: ChecklistDatabase) {}\n\n ngOnInit(): void {\n this._database.initialize(this.element.tree);\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren\n );\n this.treeControl = new FlatTreeControl<DataFlatNode>(\n this.getLevel,\n this.isExpandable\n );\n this.dataSource = new MatTreeFlatDataSource(\n this.treeControl,\n this.treeFlattener\n );\n\n this._database.dataChange.subscribe((data) => {\n this.dataSource.data = data;\n this.treeControl.expandAll();\n });\n\n this.checklistSelection.changed.subscribe((selection) => {\n this.formGroup.get(this.element.key)?.patchValue(\n selection.source.selected.map((checked) => {\n return { value: checked.value, key: checked.key };\n }),\n { emitEvent: false }\n );\n });\n\n this.formGroup.get(this.element.key)?.valueChanges.subscribe((value) => {\n const allValuesKeys = value.map((item: any) => item.key);\n this.treeControl.dataNodes.map((node) => {\n if (allValuesKeys.includes(node.key)) {\n if (node.level === 0) {\n this.todoItemSelectionToggle(node);\n } else {\n this.todoLeafItemSelectionToggle(node);\n }\n }\n });\n });\n }\n\n ngAfterViewInit() {\n this.treeControl.expandAll();\n }\n\n toggleAll(event: MatCheckboxChange) {\n const checked = event.checked;\n\n this.treeControl.dataNodes.map((node) => {\n if (checked) {\n this.checklistSelection.deselect(node);\n } else {\n this.checklistSelection.select(node);\n }\n\n this.checklistSelection.toggle(node);\n const descendants = this.treeControl.getDescendants(node);\n this.checklistSelection.select(...descendants);\n\n if (checked) {\n descendants.every((child) => this.checklistSelection.deselect(child));\n } else {\n descendants.every((child) => this.checklistSelection.select(child));\n }\n });\n }\n\n clearAll() {\n this.checklistSelection.clear();\n this.formGroup.get(this.element.key)?.patchValue([]);\n this.toggleAllCheckbox.checked = false;\n }\n\n onPanelChange() {\n this.isMenuExpanded = !this.isMenuExpanded;\n }\n\n filter(array: any[], text: string) {\n const getNodes = (\n result: any[],\n object: { name: string; children: any[] }\n ) => {\n if (object.name?.toLowerCase().includes(text)) {\n result.push(object);\n return result;\n }\n if (Array.isArray(object.children)) {\n const children = object.children.reduce(getNodes, []);\n if (children.length) result.push({ ...object, children });\n }\n return result;\n };\n\n this.element.tree = array.reduce(getNodes, []);\n }\n\n getLevel = (node: DataFlatNode) => node.level;\n\n isExpandable = (node: DataFlatNode) => node.expandable;\n\n getChildren = (node: DataNode): DataNode[] => node.children!;\n\n hasChild = (_: number, _nodeData: DataFlatNode) => _nodeData.expandable;\n\n hasNoContent = (_: number, _nodeData: DataFlatNode) => _nodeData.value === \"\";\n\n /**\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\n */\n transformer = (node: DataNode, level: number) => {\n const existingNode = this.nestedNodeMap.get(node);\n const flatNode =\n existingNode && existingNode.value === node.value\n ? existingNode\n : new DataFlatNode();\n flatNode.key = node.key;\n flatNode.value = node.value;\n flatNode.level = level;\n flatNode.expandable = !!node.children;\n this.flatNodeMap.set(flatNode, node);\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n\n /** Whether all the descendants of the node are selected. */\n descendantsAllSelected(node: DataFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every((child) =>\n this.checklistSelection.isSelected(child)\n );\n return descAllSelected;\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: DataFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some((child) =>\n this.checklistSelection.isSelected(child)\n );\n return result && !this.descendantsAllSelected(node);\n }\n\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\n todoItemSelectionToggle(node: DataFlatNode): void {\n this.checklistSelection.toggle(node);\n const descendants = this.treeControl.getDescendants(node);\n this.checklistSelection.isSelected(node)\n ? this.checklistSelection.select(...descendants)\n : this.checklistSelection.deselect(...descendants);\n\n // Force update for the parent\n descendants.every((child) => this.checklistSelection.isSelected(child));\n this.checkAllParentsSelection(node);\n }\n\n /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */\n todoLeafItemSelectionToggle(node: DataFlatNode): void {\n this.checklistSelection.toggle(node);\n if (this.element.checkParent) {\n this.checkAllParentsSelection(node);\n }\n }\n\n /* Checks all the parents when a leaf node is selected/unselected */\n checkAllParentsSelection(node: DataFlatNode): void {\n let parent: DataFlatNode | null = this.getParentNode(node);\n while (parent) {\n this.checkRootNodeSelection(parent);\n parent = this.getParentNode(parent);\n }\n }\n\n /** Check root node checked state and change it accordingly */\n checkRootNodeSelection(node: DataFlatNode): void {\n const nodeSelected = this.checklistSelection.isSelected(node);\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every((child) =>\n this.checklistSelection.isSelected(child)\n );\n if (nodeSelected && !descAllSelected) {\n this.checklistSelection.deselect(node);\n } else if (!nodeSelected && descAllSelected) {\n this.checklistSelection.select(node);\n }\n }\n\n /* Get the parent node of a node */\n getParentNode(node: DataFlatNode): DataFlatNode | null {\n const currentLevel = this.getLevel(node);\n\n if (currentLevel < 1) {\n return null;\n }\n\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentNode = this.treeControl.dataNodes[i];\n\n if (this.getLevel(currentNode) < currentLevel) {\n return currentNode;\n }\n }\n return null;\n }\n\n getSelectedItems(): string {\n if (!this.checklistSelection.selected.length)\n return this.element.placeholder || \"\";\n return this.checklistSelection.selected\n .map((s) => s.value)\n .join(\",\")\n .toString()\n .replace(/\\,/g, \", \");\n }\n\n filterChanged(event: any): void {\n const filterText = event.target?.value;\n\n // ChecklistDatabase.filter method which actually filters the tree and gives back a tree structure\n this._database.filter(filterText);\n }\n\n clearSearchValue(): void {\n this.element.search?.formControl?.setValue(\"\");\n this._database.filter(\"\");\n }\n\n selectSingleItem(node: DataFlatNode): void {\n this.checklistSelection.clear();\n this.checklistSelection.select(node);\n this.formGroup\n .get(this.element.key)\n ?.patchValue({ value: node.value, key: node.key });\n this.trigger.closeMenu();\n }\n\n hasValue(): boolean {\n return !!this.formGroup.get(this.element.key)?.value;\n }\n\n clearValue(event: any): void {\n event.stopPropagation();\n this.formGroup.get(this.element.key)?.patchValue(null);\n this.checklistSelection.clear();\n }\n\n isAllNodeSelected(): boolean {\n return !!(\n this.treeControl.dataNodes.length ===\n this.checklistSelection.selected.length\n );\n }\n}\n","<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { MapaDropdownTreeComponent } from \"./dropdown.component\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from \"@angular/material/form-field\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MapaButtonModule } from \"../../button/public-api\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatTreeModule } from \"@angular/material/tree\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MAT_MENU_DEFAULT_OPTIONS, MatMenuModule } from \"@angular/material/menu\";\n\n@NgModule({\n declarations: [MapaDropdownTreeComponent],\n exports: [MapaDropdownTreeComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MapaButtonModule,\n MatListModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n MatTreeModule,\n MatCheckboxModule,\n MatAutocompleteModule,\n MatMenuModule,\n ],\n providers: [\n {\n provide: MAT_MENU_DEFAULT_OPTIONS,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown-tree\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n ],\n})\nexport class MapaDropdownTreeModule {}\n","/*\n * Public API Surface of mapa-library-ui dropdown-tree\n */\n\nexport * from './src/dropdown.component';\nexport * from './src/dropdown.module';\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './lib/core/elements/element-search';\nexport * from './lib/core/elements/element-base';\nexport * from './lib/core/elements/dropdown';\n\nexport * from './lib/components/dropdown/public-api';\nexport * from './lib/components/dropdown-tree/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './dropdown';\n"],"names":["i2","i3.ButtonComponent","i1.ChecklistDatabase","i4","i5","i6","i7","i8"],"mappings":"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"}
1
+ {"version":3,"file":"mapa-library-ui-src-lib-components-dropdown.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/elements/element-base.ts","../../../projects/mapa-library-ui/src/lib/core/elements/dropdown.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/button/src/button.module.ts","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.module.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/checklist-database.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/src/dropdown.module.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown-tree/public-api.ts","../../../projects/mapa-library-ui/src/dropdown.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-dropdown.ts"],"sourcesContent":["import { ElementGroup } from \"../interfaces/element-group.interface\";\nimport { ElementOption } from \"../interfaces/element-option.interface\";\nimport { ActionButton } from \"./action-button\";\nimport { ElementSearch } from \"./element-search\";\nimport { Errors } from \"./errors\";\nexport interface Status {\n label: string;\n}\n\nexport class ElementBase {\n value: string;\n key: string;\n label: string;\n required: boolean;\n order: number;\n controlType: string;\n type: string;\n placeholder?: string;\n hint?: string;\n prefix?: string;\n suffix?: string;\n autosize?: boolean;\n autosizeMinWidth?: string;\n autosizeMaxWidth?: string;\n autosizeMinRow?: number;\n autosizeMaxRow?: number;\n options: ElementOption[] | ElementGroup[];\n tree: any[];\n multiple?: boolean;\n search?: ElementSearch;\n maxLength!: string | number | null;\n errors?: Errors;\n actionButton?: ActionButton;\n mask?: string;\n autocomplete?: string;\n clearValue?: boolean;\n status?: Status[];\n checkParent?: boolean;\n checkChildren?: boolean;\n\n constructor(\n options: {\n value?: string;\n key?: string;\n label?: string;\n required?: boolean;\n order?: number;\n controlType?: string;\n type?: string;\n placeholder?: string;\n hint?: string;\n prefix?: string;\n suffix?: string;\n autosize?: boolean;\n autosizeMinWidth?: string;\n autosizeMaxWidth?: string;\n autosizeMinRow?: number;\n autosizeMaxRow?: number;\n options?: ElementOption[] | ElementGroup[];\n tree?: any[];\n multiple?: boolean;\n search?: ElementSearch;\n maxLength?: string | number | null;\n errors?: Errors;\n actionButton?: ActionButton;\n mask?: string;\n autocomplete?: string;\n clearValue?: boolean;\n status?: Status[];\n checkParent?: boolean;\n checkChildren?: boolean;\n } = {}\n ) {\n this.value = options.value || \"\";\n this.key = options.key || \"\";\n this.label = options.label || \"\";\n this.required = !!options.required;\n this.order = options.order === undefined ? 1 : options.order;\n this.controlType = options.controlType || \"\";\n this.type = options.type || \"\";\n this.placeholder = options.placeholder || \"\";\n this.hint = options.hint || \"\";\n this.prefix = options.prefix || \"\";\n this.suffix = options.suffix || \"\";\n this.autosize = options.autosize || false;\n this.autosizeMinWidth = options.autosizeMinWidth || \"212px\";\n this.autosizeMaxWidth = options.autosizeMaxWidth || \"400px\";\n this.autosizeMinRow = options.autosizeMinRow || 2;\n this.autosizeMaxRow = options.autosizeMaxRow || 5;\n this.options = options.options || [];\n this.tree = options.tree || [];\n this.multiple = options.multiple || false;\n this.search = options.search || undefined;\n this.maxLength = options.maxLength || null;\n this.errors = options.errors || undefined;\n this.actionButton = options.actionButton || undefined;\n this.mask = options.mask || undefined;\n this.autocomplete = options.autocomplete || \"\";\n this.clearValue =\n options.clearValue !== undefined ? options.clearValue : true;\n this.status = options.status || undefined;\n this.checkParent = options.checkParent || false;\n this.checkChildren = options.checkChildren || false;\n }\n}\n","import { ElementBase } from './element-base';\n\nexport class Dropdown extends ElementBase {\n override controlType = 'dropdown';\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrls: ['./button.component.scss']\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button> ","import {\n AfterViewInit,\n Component,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl } from \"@angular/forms\";\n\nimport { MatSelect } from \"@angular/material/select\";\n\nimport { ReplaySubject } from \"rxjs/internal/ReplaySubject\";\nimport { Subject } from \"rxjs/internal/Subject\";\n//import { take, takeUntil } from \"rxjs/operators\";\n\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\n\n@Component({\n selector: \"mapa-dropdown\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapaDropdownComponent implements OnInit, OnDestroy, OnChanges {\n @Input() formControl!: FormControl;\n @Input() formControlSearch!: FormControl;\n @Input() element!: Dropdown;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n\n @ViewChild(\"dropdown\", { static: true }) dropdown!: MatSelect;\n\n public filteredOptions: ReplaySubject<ElementOption[]> = new ReplaySubject<\n ElementOption[]\n >(1);\n public filteredGroups: ReplaySubject<ElementGroup[]> = new ReplaySubject<\n ElementGroup[]\n >(1);\n protected filteredOptionsCache: ElementOption[] = [];\n protected filteredGroupCache: ElementGroup[] = [];\n protected _onDestroy = new Subject<void>();\n\n isIndeterminate = false;\n isChecked = false;\n isOptionsGroup = false;\n\n get selectedOptions() {\n const value = this.formControl?.value || [];\n return Array.isArray(value)? value: [value];\n }\n\n constructor() {}\n\n ngOnInit() {\n this.setOptions();\n\n if (this.element.search) {\n this.element.search.formControl?.valueChanges\n //.pipe(takeUntil(this._onDestroy))\n .subscribe(() => {\n this.filterOptions();\n this.setToggleAllCheckboxState();\n });\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (\n changes[\"element\"].previousValue?.controlType === \"dropdown\" &&\n changes[\"element\"].previousValue?.options !== changes[\"element\"].currentValue?.options\n ) {\n this.element.options = changes[\"element\"].currentValue.options;\n this.setOptions();\n }\n }\n\n ngOnDestroy() {\n this._onDestroy.next();\n this._onDestroy.complete();\n }\n\n setOptions(): void {\n this.isOptionsGroup = this.isElementGroup(this.element.options[0]);\n\n if (this.isOptionsGroup) {\n this.filteredGroupCache = (this.element\n .options as ElementGroup[]).slice();\n this.filteredGroups.next(this.filteredGroupCache);\n } else {\n this.filteredOptionsCache = (this.element\n .options as ElementOption[]).slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n }\n\n protected filterOptionsFromGroup(\n group: ElementGroup,\n value: string\n ): ElementOption[] {\n const filterValue = value.toLocaleLowerCase();\n\n return group.label.toLocaleLowerCase().includes(filterValue)\n ? group.options\n : group.options.filter((item) =>\n item.value.toLocaleLowerCase().includes(filterValue)\n );\n }\n\n protected filterOptions() {\n if (!this.element.options) {\n return;\n }\n // get the search keyword\n let search = this.element.search?.formControl?.value.toLowerCase();\n\n if (this.isOptionsGroup) {\n const groups = this.element.options as ElementGroup[];\n this.filteredGroupCache = groups\n .map((group: ElementGroup) => ({\n label: group.label,\n options: this.filterOptionsFromGroup(group, search),\n }))\n .filter((group) => group.options.length > 0);\n this.filteredGroups.next(this.filteredGroupCache);\n } else {\n const options = this.element.options as ElementOption[];\n if (!search) {\n this.filteredOptionsCache = options.slice();\n this.filteredOptions.next(this.filteredOptionsCache);\n return;\n }\n // filter the options\n this.filteredOptionsCache = options.filter(\n (option: ElementOption) =>\n option.value.toLowerCase().indexOf(search) > -1\n );\n this.filteredOptions.next(this.filteredOptionsCache);\n }\n }\n\n protected setToggleAllCheckboxState() {\n let filteredLength = 0;\n let search = this.element.search?.formControl?.value;\n\n if (search && search.value) {\n this.filteredOptionsCache.forEach((el) => {\n if (search.value.toLowerCase().indexOf(el) > -1) {\n filteredLength++;\n }\n });\n this.isIndeterminate =\n filteredLength > 0 && filteredLength < this.filteredOptionsCache.length;\n this.isChecked =\n filteredLength > 0 &&\n filteredLength === this.filteredOptionsCache.length;\n }\n }\n\n toggleSelectAll(selectAllValue: boolean) {\n this.filteredOptions.subscribe((options: ElementOption[]) => {\n if (selectAllValue) {\n this.formControl?.patchValue(options);\n } else {\n this.formControl?.patchValue([]);\n }\n });\n this.filteredGroups.subscribe((groups: ElementGroup[]) => {\n if (selectAllValue) {\n this.formControl?.patchValue(\n groups.map((group: ElementGroup) => group.options)\n );\n } else {\n this.formControl?.patchValue([]);\n }\n });\n }\n\n isElementGroup(object: ElementGroup | ElementOption): object is ElementGroup {\n try {\n return (\n (object as ElementGroup).label !== undefined &&\n (object as ElementGroup).options !== undefined\n );\n } catch (e) {\n return false;\n }\n }\n\n compareFn(c1: any, c2: any): boolean {\n return c1 && c2 ? c1.key === c2.key : c1 === c2;\n }\n \n hasValue(): boolean {\n return !!this.formControl.value;\n }\n\n clearValue(event: any): void {\n event.stopPropagation();\n this.formControl.setValue(null);\n }\n}\n","<div *ngIf=\"element\">\n <label *ngIf=\"element.label\" class=\"mapa-dropdown__label\">\n {{ element.label }}\n </label>\n <div class=\"mapa-form--inline\">\n <mat-form-field\n appearance=\"outline\"\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n [class.mapa-dropdown--labeled]=\"!!element.label\"\n >\n <mat-select\n #dropdown\n ngDefaultControl\n [formControl]=\"formControl\"\n [multiple]=\"element.multiple\"\n [placeholder]=\"element.placeholder || ''\"\n [compareWith]=\"compareFn\"\n >\n <mat-option *ngIf=\"element.search\" class=\"mapa-dropdown__search\">\n <ngx-mat-select-search\n *ngIf=\"element.search.formControl\"\n [showToggleAllCheckbox]=\"element.search.toggleAllCheckbox!\"\n [formControl]=\"element.search.formControl\"\n [placeholderLabel]=\"element.search.placeholder || ''\"\n i18n-placeholderLabel\n [noEntriesFoundLabel]=\"element.search.noEntriesFoundLabel || ''\"\n [toggleAllCheckboxIndeterminate]=\"isIndeterminate\"\n [toggleAllCheckboxChecked]=\"isChecked\"\n (toggleAll)=\"toggleSelectAll($event)\"\n ></ngx-mat-select-search>\n </mat-option>\n\n <ng-container *ngIf=\"isOptionsGroup; else isElementOptions\">\n <mat-optgroup\n *ngFor=\"let group of filteredGroups | async\"\n [label]=\"group.label\"\n >\n <mat-option *ngFor=\"let option of group.options\" [value]=\"option\">\n {{ option.value }}\n </mat-option>\n </mat-optgroup>\n </ng-container>\n <ng-template #isElementOptions>\n <mat-option\n *ngFor=\"let option of filteredOptions | async\"\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </ng-template>\n \n <mat-option\n *ngFor=\"let option of selectedOptions\"\n hidden\n [value]=\"option\"\n >\n {{ option.value }}\n </mat-option>\n </mat-select>\n <mat-error *ngIf=\"formControl?.hasError('required')\">\n {{ element.errors?.required }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minlength')\">\n {{ element.errors?.minlength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cpf')\">\n {{ element.errors?.cpf }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('cnpj')\">\n {{ element.errors?.cnpj }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('email')\">\n {{ element.errors?.email }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('pattern')\">\n {{ element.errors?.pattern }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('min')\">\n {{ element.errors?.min }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('max')\">\n {{ element.errors?.max }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('minLength')\">\n {{ element.errors?.minLength }}\n </mat-error>\n <mat-error *ngIf=\"formControl?.hasError('maxLength')\">\n {{ element.errors?.maxLength }}\n </mat-error>\n <mat-icon\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n (click)=\"clearValue($event)\"\n class=\"mapa-input--close\"\n >close</mat-icon\n >\n </mat-form-field>\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (click)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { ButtonComponent } from './button.component';\n\n@NgModule({\n declarations: [ButtonComponent],\n exports: [ButtonComponent],\n imports: [CommonModule, MatButtonModule],\n})\nexport class MapaButtonModule {}\n","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\nexport * from './src/button.module';\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { MapaDropdownComponent } from \"./dropdown.component\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { NgxMatSelectSearchModule } from \"ngx-mat-select-search\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from \"@angular/material/form-field\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MapaButtonModule } from \"../../button/public-api\";\n\n@NgModule({\n declarations: [MapaDropdownComponent],\n exports: [MapaDropdownComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MapaButtonModule,\n MatListModule,\n MatIconModule,\n MatSelectModule,\n NgxMatSelectSearchModule,\n ],\n providers: [\n {\n provide: MAT_SELECT_CONFIG,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n ],\n})\nexport class MapaDropdownModule {}\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\nexport * from './src/dropdown.module';\n","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { DataNode } from \"./dropdown.component\";\n\n@Injectable({ providedIn: \"root\" })\nexport class ChecklistDatabase {\n dataChange = new BehaviorSubject<DataNode[]>([]);\n treeData!: any[];\n\n get data(): DataNode[] {\n return this.dataChange.value;\n }\n\n constructor() {}\n\n initialize(treeData: DataNode[]) {\n this.treeData = treeData;\n // Build the tree nodes from Json object. The result is a list of `TodoItemNode` with nested\n // file node as children.\n const data = treeData;\n\n // Notify the change.\n this.dataChange.next(data);\n }\n\n public filter(filterText: string) {\n let filteredTreeData;\n if (filterText) {\n // Filter the tree\n function filter(array: any[], text: string) {\n const getChildren = (\n result: any[],\n object: { value: string; children: any[] }\n ) => {\n if (\n object.value?.toLowerCase().includes(text?.toLowerCase()) ||\n object.children?.some((child) =>\n child.value?.toLowerCase().includes(text?.toLowerCase())\n )\n ) {\n result.push(object);\n return result;\n }\n if (Array.isArray(object.children) && object.children.length > 0) {\n const children = object.children.reduce(getChildren, []);\n if (children.length) result.push({ ...object, children });\n }\n return result;\n };\n\n return array.reduce(getChildren, []);\n }\n\n filteredTreeData = filter(this.treeData, filterText);\n } else {\n // Return the initial tree\n filteredTreeData = this.treeData;\n }\n\n // Build the tree nodes from Json object. The result is a list of `TodoItemNode` with nested\n // file node as children.\n const data = filteredTreeData;\n // Notify the change.\n this.dataChange.next(data);\n }\n}\n","import {\n AfterViewInit,\n Component,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation,\n} from \"@angular/core\";\nimport { FormControl, FormGroup } from \"@angular/forms\";\nimport { DropdownTree } from \"../../../core/elements/dropdown-tree\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { FlatTreeControl } from \"@angular/cdk/tree\";\nimport {\n MatTreeFlattener,\n MatTreeFlatDataSource,\n MatTree,\n} from \"@angular/material/tree\";\nimport { Observable } from \"rxjs\";\nimport { ChecklistDatabase } from \"./checklist-database\";\nimport { MatAutocomplete } from \"@angular/material/autocomplete\";\nimport { MatCheckbox, MatCheckboxChange } from \"@angular/material/checkbox\";\nimport { MatMenu, MatMenuTrigger } from \"@angular/material/menu\";\n\nexport class DataNode {\n key!: string;\n value!: string;\n children?: DataNode[];\n isLeaf?: boolean;\n\n constructor() {}\n}\n\n/** Flat to-do item node with expandable and level information */\nexport class DataFlatNode {\n key!: string;\n value!: string;\n level!: number;\n expandable!: boolean;\n\n constructor() {}\n}\n\n@Component({\n selector: \"mapa-dropdown-tree\",\n templateUrl: \"./dropdown.component.html\",\n styleUrls: [\"./dropdown.component.scss\"],\n encapsulation: ViewEncapsulation.None,\n})\nexport class MapaDropdownTreeComponent implements OnInit, AfterViewInit {\n @Input() formGroup!: FormGroup;\n @Input() element!: DropdownTree;\n @ViewChild(\"auto\") autocomplete!: MatAutocomplete;\n @ViewChild(\"tree\") tree!: MatTree<DataNode>;\n @ViewChild(MatMenuTrigger) trigger!: MatMenuTrigger;\n @ViewChild(\"toggleAllCheckbox\") toggleAllCheckbox!: MatCheckbox;\n\n isMenuExpanded: boolean = false;\n\n /** Map from flat node to nested node. This helps us finding the nested node to be modified */\n flatNodeMap = new Map<DataFlatNode, DataNode>();\n\n /** Map from nested node to flattened node. This helps us to keep the same object for selection */\n nestedNodeMap = new Map<DataNode, DataFlatNode>();\n\n /** A selected parent node to be inserted */\n selectedParent: DataFlatNode | null = null;\n\n /** The new item's name */\n newItemName = \"\";\n\n treeControl!: FlatTreeControl<DataFlatNode>;\n\n treeFlattener!: MatTreeFlattener<DataNode, DataFlatNode>;\n\n dataSource!: MatTreeFlatDataSource<DataNode, DataFlatNode>;\n\n /** The selection for checklist */\n checklistSelection = new SelectionModel<DataFlatNode>(true);\n\n /// Filtering\n myControl = new FormControl();\n options: string[] = [];\n filteredOptions!: Observable<string[]>;\n\n constructor(private _database: ChecklistDatabase) {}\n\n ngOnInit(): void {\n this._database.initialize(this.element.tree);\n this.treeFlattener = new MatTreeFlattener(\n this.transformer,\n this.getLevel,\n this.isExpandable,\n this.getChildren\n );\n this.treeControl = new FlatTreeControl<DataFlatNode>(\n this.getLevel,\n this.isExpandable\n );\n this.dataSource = new MatTreeFlatDataSource(\n this.treeControl,\n this.treeFlattener\n );\n\n this._database.dataChange.subscribe((data) => {\n this.dataSource.data = data;\n this.treeControl.expandAll();\n });\n\n this.checklistSelection.changed.subscribe((selection) => {\n this.formGroup.get(this.element.key)?.patchValue(\n selection.source.selected.map((checked) => {\n return { value: checked.value, key: checked.key };\n }),\n { emitEvent: false }\n );\n });\n\n this.formGroup.get(this.element.key)?.valueChanges.subscribe((value) => {\n const allValuesKeys = value.map((item: any) => item.key);\n this.treeControl.dataNodes.map((node) => {\n if (allValuesKeys.includes(node.key)) {\n if (this.element.multiple && node.level === 0) {\n this.todoItemSelectionToggle(node);\n } else {\n this.todoLeafItemSelectionToggle(node);\n }\n }\n });\n });\n }\n\n ngAfterViewInit() {\n this.treeControl.expandAll();\n }\n\n toggleAll(event: MatCheckboxChange) {\n const checked = event.checked;\n\n this.treeControl.dataNodes.map((node) => {\n if (checked) {\n this.checklistSelection.deselect(node);\n } else {\n this.checklistSelection.select(node);\n }\n\n this.checklistSelection.toggle(node);\n const descendants = this.treeControl.getDescendants(node);\n this.checklistSelection.select(...descendants);\n\n if (checked) {\n descendants.every((child) => this.checklistSelection.deselect(child));\n } else {\n descendants.every((child) => this.checklistSelection.select(child));\n }\n });\n }\n\n clearAll() {\n this.checklistSelection.clear();\n this.formGroup.get(this.element.key)?.patchValue([]);\n this.toggleAllCheckbox.checked = false;\n }\n\n onPanelChange() {\n this.isMenuExpanded = !this.isMenuExpanded;\n }\n\n filter(array: any[], text: string) {\n const getNodes = (\n result: any[],\n object: { name: string; children: any[] }\n ) => {\n if (object.name?.toLowerCase().includes(text)) {\n result.push(object);\n return result;\n }\n if (Array.isArray(object.children)) {\n const children = object.children.reduce(getNodes, []);\n if (children.length) result.push({ ...object, children });\n }\n return result;\n };\n\n this.element.tree = array.reduce(getNodes, []);\n }\n\n getLevel = (node: DataFlatNode) => node.level;\n\n isExpandable = (node: DataFlatNode) => node.expandable;\n\n getChildren = (node: DataNode): DataNode[] => node.children!;\n\n hasChild = (_: number, _nodeData: DataFlatNode) => _nodeData.expandable;\n\n hasNoContent = (_: number, _nodeData: DataFlatNode) => _nodeData.value === \"\";\n\n /**\n * Transformer to convert nested node to flat node. Record the nodes in maps for later use.\n */\n transformer = (node: DataNode, level: number) => {\n const existingNode = this.nestedNodeMap.get(node);\n const flatNode =\n existingNode && existingNode.value === node.value\n ? existingNode\n : new DataFlatNode();\n flatNode.key = node.key;\n flatNode.value = node.value;\n flatNode.level = level;\n flatNode.expandable = !!node.children;\n this.flatNodeMap.set(flatNode, node);\n this.nestedNodeMap.set(node, flatNode);\n return flatNode;\n };\n\n /** Whether all the descendants of the node are selected. */\n descendantsAllSelected(node: DataFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every((child) =>\n this.checklistSelection.isSelected(child)\n );\n return descAllSelected;\n }\n\n /** Whether part of the descendants are selected */\n descendantsPartiallySelected(node: DataFlatNode): boolean {\n const descendants = this.treeControl.getDescendants(node);\n const result = descendants.some((child) =>\n this.checklistSelection.isSelected(child)\n );\n return result && !this.descendantsAllSelected(node);\n }\n\n /** Toggle the to-do item selection. Select/deselect all the descendants node */\n todoItemSelectionToggle(node: DataFlatNode): void {\n this.checklistSelection.toggle(node);\n\n if (this.element.checkChildren) {\n const descendants = this.treeControl.getDescendants(node);\n this.checklistSelection.isSelected(node)\n ? this.checklistSelection.select(...descendants)\n : this.checklistSelection.deselect(...descendants);\n\n // Force update for the parent\n descendants.every((child) => this.checklistSelection.isSelected(child));\n this.checkAllParentsSelection(node);\n }\n }\n\n /** Toggle a leaf to-do item selection. Check all the parents to see if they changed */\n todoLeafItemSelectionToggle(node: DataFlatNode): void {\n this.checklistSelection.toggle(node);\n\n this.checkAllParentsSelection(node);\n }\n\n /* Checks all the parents when a leaf node is selected/unselected */\n checkAllParentsSelection(node: DataFlatNode): void {\n let parent: DataFlatNode | null = this.getParentNode(node);\n while (parent) {\n this.checkRootNodeSelection(parent);\n parent = this.getParentNode(parent);\n }\n }\n\n /** Check root node checked state and change it accordingly */\n checkRootNodeSelection(node: DataFlatNode): void {\n const nodeSelected = this.checklistSelection.isSelected(node);\n const descendants = this.treeControl.getDescendants(node);\n const descAllSelected = descendants.every((child) =>\n this.checklistSelection.isSelected(child)\n );\n\n if (nodeSelected && !descAllSelected) {\n this.checklistSelection.deselect(node);\n } else if (!nodeSelected && descAllSelected) {\n this.checklistSelection.select(node);\n }\n }\n\n /* Get the parent node of a node */\n getParentNode(node: DataFlatNode): DataFlatNode | null {\n const currentLevel = this.getLevel(node);\n\n if (currentLevel < 1) {\n return null;\n }\n\n const startIndex = this.treeControl.dataNodes.indexOf(node) - 1;\n\n for (let i = startIndex; i >= 0; i--) {\n const currentNode = this.treeControl.dataNodes[i];\n\n if (this.getLevel(currentNode) < currentLevel) {\n return currentNode;\n }\n }\n return null;\n }\n\n getSelectedItems(): string {\n if (!this.checklistSelection.selected.length)\n return this.element.placeholder || \"\";\n return this.checklistSelection.selected\n .map((s) => s.value)\n .join(\",\")\n .toString()\n .replace(/\\,/g, \", \");\n }\n\n filterChanged(event: any): void {\n const filterText = event.target?.value;\n\n // ChecklistDatabase.filter method which actually filters the tree and gives back a tree structure\n this._database.filter(filterText);\n }\n\n clearSearchValue(): void {\n this.element.search?.formControl?.setValue(\"\");\n this._database.filter(\"\");\n }\n\n selectSingleItem(node: DataFlatNode): void {\n this.checklistSelection.clear();\n this.checklistSelection.select(node);\n this.formGroup\n .get(this.element.key)\n ?.patchValue({ value: node.value, key: node.key });\n this.trigger.closeMenu();\n }\n\n hasValue(): boolean {\n return !!this.formGroup.get(this.element.key)?.value;\n }\n\n clearValue(event: any): void {\n event.stopPropagation();\n this.formGroup.get(this.element.key)?.patchValue(null);\n this.checklistSelection.clear();\n }\n\n isAllNodeSelected(): boolean {\n return !!(\n this.treeControl.dataNodes.length ===\n this.checklistSelection.selected.length\n );\n }\n}\n","<form\n [formGroup]=\"formGroup\"\n *ngIf=\"formGroup && element\"\n class=\"mapa-dropdown-tree\"\n>\n <label *ngIf=\"element.label\" class=\"mapa-dropdown-tree__label\">\n {{ element.label }}\n </label>\n <button\n class=\"mapa-dropdown-tree__dropdown\"\n #menuOption=\"matMenuTrigger\"\n [matMenuTriggerFor]=\"menu\"\n >\n <div class=\"mapa-dropdown-tree__dropdown--value\">\n {{ getSelectedItems() }}\n </div>\n\n <mat-icon *ngIf=\"hasValue()\" (click)=\"clearValue($event)\" matSuffix\n >close</mat-icon\n >\n <mat-icon>\n {{ menuOption.menuOpen ? 'keyboard_arrow_up' : 'keyboard_arrow_down' }}\n </mat-icon>\n </button>\n <mat-menu #menu=\"matMenu\">\n <div (click)=\"$event.stopPropagation()\">\n <div class=\"mapa-dropdown-tree__search\" *ngIf=\"element.search\">\n <mat-form-field appearance=\"outline\">\n <input\n matInput\n #searchInput\n [formControl]=\"element.search?.formControl!\"\n [placeholder]=\"element.search?.placeholder || ''\"\n (keydown)=\"$event.stopPropagation()\"\n (keyup)=\"filterChanged($event)\"\n />\n <mat-icon\n *ngIf=\"!!element.search?.formControl?.value && !element.search?.formControl?.disabled\"\n (click)=\"clearSearchValue()\"\n matSuffix\n >close</mat-icon\n >\n </mat-form-field>\n </div>\n <section [formGroup]=\"formGroup\">\n <label\n *ngIf=\"element.multiple === true\"\n class=\"mapa-dropdown-tree__toggle-all mapa-dropdown-tree__checkbox\"\n >\n <mat-checkbox\n #toggleAllCheckbox\n class=\"checklist-leaf-node\"\n (change)=\"toggleAll($event)\"\n [checked]=\"isAllNodeSelected()\"\n [indeterminate]=\"!isAllNodeSelected() && checklistSelection.hasValue()\"\n color=\"accent\"\n >Selecionar todos</mat-checkbox\n >\n </label>\n\n <mat-tree [dataSource]=\"dataSource\" [treeControl]=\"treeControl\">\n <mat-tree-node\n *matTreeNodeDef=\"let node\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <button mat-icon-button disabled></button>\n <!-- LEAF CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n class=\"checklist-leaf-node\"\n [checked]=\"checklistSelection.isSelected(node)\"\n (change)=\"todoLeafItemSelectionToggle(node)\"\n color=\"accent\"\n >{{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n\n <mat-tree-node\n *matTreeNodeDef=\"let node; when: hasChild\"\n matTreeNodePadding\n matTreeNodePaddingIndent=\"13\"\n [class.mapa-dropdown-tree__checkbox--checked]=\"checklistSelection.isSelected(node)\"\n >\n <label class=\"mapa-dropdown-tree__checkbox\">\n <!-- <button\n mat-icon-button\n matTreeNodeToggle\n [attr.aria-label]=\"'toggle ' + node.filename\"\n >\n <mat-icon class=\"mat-icon-rtl-mirror\">\n {{treeControl.isExpanded(node) ? 'expand_more' :\n 'chevron_right'}}\n </mat-icon>\n </button> -->\n <!-- [checked]=\"descendantsAllSelected(node)\" -->\n <!-- PARENT CHECKBOX -->\n <mat-checkbox\n *ngIf=\"element.multiple === true; else noCheckbox\"\n [checked]=\"checklistSelection.isSelected(node)\"\n [indeterminate]=\"descendantsPartiallySelected(node)\"\n (change)=\"todoItemSelectionToggle(node)\"\n color=\"accent\"\n >\n {{node.value}}</mat-checkbox\n >\n <ng-template #noCheckbox>\n <div (click)=\"selectSingleItem(node)\">\n {{node.value}}\n </div>\n </ng-template>\n </label>\n </mat-tree-node>\n </mat-tree>\n </section>\n <button\n *ngIf=\"element.multiple === true\"\n mat-button\n class=\"mapa-dropdown-tree__button\"\n color=\"primary\"\n (click)=\"clearAll()\"\n >\n Limpar todos\n </button>\n </div>\n </mat-menu>\n</form>\n","import { NgModule } from \"@angular/core\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\n\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatIconModule } from \"@angular/material/icon\";\n\nimport { MapaDropdownTreeComponent } from \"./dropdown.component\";\nimport { MAT_SELECT_CONFIG, MatSelectModule } from \"@angular/material/select\";\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from \"@angular/material/form-field\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MapaButtonModule } from \"../../button/public-api\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatTreeModule } from \"@angular/material/tree\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MAT_MENU_DEFAULT_OPTIONS, MatMenuModule } from \"@angular/material/menu\";\n\n@NgModule({\n declarations: [MapaDropdownTreeComponent],\n exports: [MapaDropdownTreeComponent],\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n MatButtonModule,\n MapaButtonModule,\n MatListModule,\n MatIconModule,\n MatInputModule,\n MatSelectModule,\n MatTreeModule,\n MatCheckboxModule,\n MatAutocompleteModule,\n MatMenuModule,\n ],\n providers: [\n {\n provide: MAT_MENU_DEFAULT_OPTIONS,\n useValue: { overlayPanelClass: \"mapa-overlay-dropdown-tree\" },\n },\n {\n provide: MAT_FORM_FIELD_DEFAULT_OPTIONS,\n useValue: { appearance: \"outline\" },\n },\n ],\n})\nexport class MapaDropdownTreeModule {}\n","/*\n * Public API Surface of mapa-library-ui dropdown-tree\n */\n\nexport * from './src/dropdown.component';\nexport * from './src/dropdown.module';\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './lib/core/elements/element-search';\nexport * from './lib/core/elements/element-base';\nexport * from './lib/core/elements/dropdown';\n\nexport * from './lib/components/dropdown/public-api';\nexport * from './lib/components/dropdown-tree/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './dropdown';\n"],"names":["i2","i3.ButtonComponent","i1.ChecklistDatabase","i4","i5","i6","i7","i8"],"mappings":"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"}
@@ -34,7 +34,8 @@ class ElementBase {
34
34
  this.clearValue =
35
35
  options.clearValue !== undefined ? options.clearValue : true;
36
36
  this.status = options.status || undefined;
37
- this.checkParent = this.checkParent || false;
37
+ this.checkParent = options.checkParent || false;
38
+ this.checkChildren = options.checkChildren || false;
38
39
  }
39
40
  }
40
41