@ptsecurity/mosaic 15.6.0 → 15.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_theming.scss +140 -4
- package/_visual.scss +2 -0
- package/autocomplete/autocomplete-trigger.directive.d.ts +5 -15
- package/checkbox/_checkbox-theme.scss +4 -0
- package/checkbox/checkbox.scss +4 -7
- package/core/formatters/index.d.ts +1 -1
- package/core/formatters/number/formatter.d.ts +25 -0
- package/core/forms/_forms-theme.scss +112 -0
- package/core/locales/en-US.d.ts +1 -2
- package/core/locales/es-LA.d.ts +9 -0
- package/core/locales/fa-IR.d.ts +9 -0
- package/core/locales/index.d.ts +0 -2
- package/core/locales/locale-service.d.ts +39 -5
- package/core/locales/pt-BR.d.ts +9 -0
- package/core/locales/ru-RU.d.ts +1 -2
- package/core/locales/zh-CN.d.ts +9 -0
- package/core/option/option.d.ts +36 -7
- package/core/overlay/overlay-position-map.d.ts +7 -1
- package/core/pop-up/pop-up.d.ts +3 -0
- package/core/selection/pseudo-checkbox/pseudo-checkbox.scss +3 -5
- package/core/styles/_core.scss +0 -1
- package/core/styles/_variables.scss +1 -0
- package/core/styles/theming/_scrollbars.scss +9 -3
- package/core/styles/theming/_theming.scss +1 -0
- package/datepicker/calendar-header.component.d.ts +8 -2
- package/datepicker/calendar.component.d.ts +3 -4
- package/datepicker/month-view.component.d.ts +3 -4
- package/esm2020/autocomplete/autocomplete-trigger.directive.mjs +27 -24
- package/esm2020/button/button.component.mjs +6 -3
- package/esm2020/checkbox/checkbox.mjs +2 -2
- package/esm2020/code-block/actionbar.component.mjs +1 -1
- package/esm2020/core/formatters/index.mjs +9 -4
- package/esm2020/core/formatters/number/formatter.mjs +90 -1
- package/esm2020/core/locales/en-US.mjs +3 -4
- package/esm2020/core/locales/es-LA.mjs +11 -2
- package/esm2020/core/locales/fa-IR.mjs +11 -2
- package/esm2020/core/locales/index.mjs +1 -3
- package/esm2020/core/locales/locale-service.mjs +4 -4
- package/esm2020/core/locales/pt-BR.mjs +11 -2
- package/esm2020/core/locales/ru-RU.mjs +3 -4
- package/esm2020/core/locales/zh-CN.mjs +11 -2
- package/esm2020/core/option/option.mjs +43 -7
- package/esm2020/core/overlay/overlay-position-map.mjs +7 -1
- package/esm2020/core/pop-up/pop-up.mjs +1 -1
- package/esm2020/core/selection/pseudo-checkbox/pseudo-checkbox.mjs +2 -2
- package/esm2020/core/version.mjs +2 -2
- package/esm2020/datepicker/calendar-header.component.mjs +8 -7
- package/esm2020/datepicker/calendar.component.mjs +5 -14
- package/esm2020/datepicker/datepicker-input.directive.mjs +7 -6
- package/esm2020/datepicker/month-view.component.mjs +6 -15
- package/esm2020/dropdown/dropdown-trigger.directive.mjs +3 -2
- package/esm2020/file-upload/file-drop.mjs +40 -3
- package/esm2020/file-upload/file-upload.mjs +1 -1
- package/esm2020/file-upload/multiple-file-upload.component.mjs +11 -7
- package/esm2020/file-upload/single-file-upload.component.mjs +10 -6
- package/esm2020/form-field/form-field.mjs +2 -2
- package/esm2020/form-field/validate.directive.mjs +9 -3
- package/esm2020/loader-overlay/loader-overlay.component.mjs +2 -2
- package/esm2020/modal/modal.component.mjs +7 -11
- package/esm2020/modal/modal.module.mjs +8 -4
- package/esm2020/navbar/navbar.component.mjs +20 -10
- package/esm2020/navbar/vertical-navbar.animation.mjs +2 -2
- package/esm2020/navbar/vertical-navbar.component.mjs +11 -7
- package/esm2020/popover/popover.component.mjs +2 -2
- package/esm2020/select/select-option.directive.mjs +15 -3
- package/esm2020/select/select.component.mjs +49 -22
- package/esm2020/tabs/tab-group.component.mjs +1 -1
- package/esm2020/tabs/tab.component.mjs +13 -4
- package/esm2020/tags/tag-list.component.mjs +5 -4
- package/esm2020/timezone/timezone-select.component.mjs +3 -3
- package/esm2020/title/title.directive.mjs +2 -2
- package/esm2020/toast/toast-animations.mjs +2 -1
- package/esm2020/toast/toast-container.component.mjs +21 -7
- package/esm2020/toast/toast.component.mjs +7 -2
- package/esm2020/toast/toast.module.mjs +10 -4
- package/esm2020/toast/toast.service.mjs +2 -1
- package/esm2020/toggle/toggle.component.mjs +3 -3
- package/esm2020/tooltip/tooltip.component.mjs +16 -4
- package/esm2020/tree/control/base-tree-control.mjs +1 -1
- package/esm2020/tree/control/flat-tree-control.filters.mjs +46 -0
- package/esm2020/tree/control/flat-tree-control.mjs +26 -44
- package/esm2020/tree/control/tree-control.mjs +1 -1
- package/esm2020/tree/padding.directive.mjs +2 -2
- package/esm2020/tree/public-api.mjs +2 -1
- package/esm2020/tree/toggle.mjs +2 -4
- package/esm2020/tree/tree-option.component.mjs +6 -3
- package/esm2020/tree/tree-selection.component.mjs +6 -5
- package/esm2020/tree-select/tree-select.component.mjs +28 -12
- package/esm2020/tree-select/tree-select.module.mjs +6 -6
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs +30 -24
- package/fesm2015/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-button.mjs +5 -2
- package/fesm2015/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-code-block.mjs +1 -1
- package/fesm2015/ptsecurity-mosaic-code-block.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs +196 -31
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +20 -36
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs +2 -1
- package/fesm2015/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-file-upload.mjs +57 -11
- package/fesm2015/ptsecurity-mosaic-file-upload.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-form-field.mjs +10 -3
- package/fesm2015/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-modal.mjs +12 -12
- package/fesm2015/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-navbar.mjs +28 -18
- package/fesm2015/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs +1 -1
- package/fesm2015/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-select.mjs +64 -24
- package/fesm2015/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tabs.mjs +13 -4
- package/fesm2015/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tags.mjs +4 -3
- package/fesm2015/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-timezone.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-timezone.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-title.mjs +1 -1
- package/fesm2015/ptsecurity-mosaic-title.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toast.mjs +35 -10
- package/fesm2015/ptsecurity-mosaic-toast.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-toggle.mjs +2 -2
- package/fesm2015/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs +15 -3
- package/fesm2015/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +33 -16
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree.mjs +85 -54
- package/fesm2015/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs +27 -24
- package/fesm2020/ptsecurity-mosaic-autocomplete.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-button.mjs +5 -2
- package/fesm2020/ptsecurity-mosaic-button.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-checkbox.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-code-block.mjs +1 -1
- package/fesm2020/ptsecurity-mosaic-code-block.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +196 -30
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +20 -36
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs +2 -1
- package/fesm2020/ptsecurity-mosaic-dropdown.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-file-upload.mjs +56 -11
- package/fesm2020/ptsecurity-mosaic-file-upload.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-form-field.mjs +10 -4
- package/fesm2020/ptsecurity-mosaic-form-field.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-loader-overlay.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-modal.mjs +11 -11
- package/fesm2020/ptsecurity-mosaic-modal.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-navbar.mjs +28 -18
- package/fesm2020/ptsecurity-mosaic-navbar.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs +1 -1
- package/fesm2020/ptsecurity-mosaic-popover.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-select.mjs +62 -23
- package/fesm2020/ptsecurity-mosaic-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tabs.mjs +13 -4
- package/fesm2020/ptsecurity-mosaic-tabs.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tags.mjs +4 -3
- package/fesm2020/ptsecurity-mosaic-tags.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-timezone.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-timezone.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-title.mjs +1 -1
- package/fesm2020/ptsecurity-mosaic-title.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toast.mjs +33 -10
- package/fesm2020/ptsecurity-mosaic-toast.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-toggle.mjs +2 -2
- package/fesm2020/ptsecurity-mosaic-toggle.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs +15 -3
- package/fesm2020/ptsecurity-mosaic-tooltip.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +32 -16
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree.mjs +84 -54
- package/fesm2020/ptsecurity-mosaic-tree.mjs.map +1 -1
- package/file-upload/file-drop.d.ts +2 -1
- package/file-upload/file-upload.d.ts +4 -1
- package/file-upload/multiple-file-upload.component.d.ts +6 -5
- package/file-upload/single-file-upload.component.d.ts +6 -5
- package/form-field/_form-field-theme.scss +4 -0
- package/form-field/form-field.scss +0 -2
- package/loader-overlay/loader-overlay.scss +3 -0
- package/modal/modal.module.d.ts +2 -1
- package/modal/modal.scss +14 -2
- package/navbar/navbar.component.d.ts +5 -2
- package/navbar/vertical-navbar.component.d.ts +4 -2
- package/package.json +4 -7
- package/prebuilt-themes/dark-theme.css +1 -1
- package/prebuilt-themes/default-theme.css +1 -1
- package/prebuilt-visual/default-visual.css +1 -1
- package/radio/_radio-theme.scss +4 -0
- package/select/select-option.directive.d.ts +2 -0
- package/select/select.component.d.ts +15 -11
- package/select/select.scss +5 -1
- package/tags/tag-list.scss +4 -0
- package/toast/toast-animations.d.ts +1 -0
- package/toast/toast-container.component.d.ts +7 -3
- package/toast/toast.component.d.ts +2 -0
- package/toast/toast.service.d.ts +2 -0
- package/toggle/_toggle-theme.scss +13 -1
- package/toggle/toggle.scss +6 -2
- package/tooltip/tooltip.component.d.ts +4 -1
- package/tree/control/base-tree-control.d.ts +1 -1
- package/tree/control/flat-tree-control.d.ts +5 -3
- package/tree/control/flat-tree-control.filters.d.ts +26 -0
- package/tree/control/tree-control.d.ts +1 -1
- package/tree/public-api.d.ts +1 -0
- package/tree/tree-option.scss +4 -2
- package/tree-select/tree-select.component.d.ts +9 -3
- package/tree-select/tree-select.module.d.ts +1 -1
- package/core/forms/_forms.scss +0 -109
@@ -9,8 +9,8 @@ import * as i1$1 from 'rxjs/internal/scheduler/AsyncScheduler';
|
|
9
9
|
import { AsyncScheduler } from 'rxjs/internal/scheduler/AsyncScheduler';
|
10
10
|
import * as i3 from '@angular/cdk/bidi';
|
11
11
|
import { coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
12
|
-
import { TreeSizePaddingLeft } from '@mosaic-design/tokens-fe-2022/web';
|
13
|
-
import { takeUntil,
|
12
|
+
import { TreeSizePaddingLeft } from '@mosaic-design/tokens-fe-2022/web/index.js';
|
13
|
+
import { takeUntil, take, delay, map } from 'rxjs/operators';
|
14
14
|
import { TAB, hasModifierKey, SPACE, LEFT_ARROW, RIGHT_ARROW, isVerticalMovement, isSelectAll, isCopy, DOWN_ARROW, UP_ARROW, ENTER, HOME, END, PAGE_UP, PAGE_DOWN } from '@ptsecurity/cdk/keycodes';
|
15
15
|
import { McDropdownTrigger } from '@ptsecurity/mosaic/dropdown';
|
16
16
|
import { McTooltipTrigger } from '@ptsecurity/mosaic/tooltip';
|
@@ -346,8 +346,7 @@ class McTreeNodeToggleBaseDirective extends McTreeNodeToggleMixinBase {
|
|
346
346
|
this.treeNode = treeNode;
|
347
347
|
this._recursive = false;
|
348
348
|
this.tree.treeControl.filterValue
|
349
|
-
.
|
350
|
-
.subscribe((state) => this.disabled = state);
|
349
|
+
.subscribe((value) => this.disabled = !!value);
|
351
350
|
}
|
352
351
|
get recursive() {
|
353
352
|
return this._recursive;
|
@@ -536,6 +535,9 @@ class McTreeOption extends McTreeNode {
|
|
536
535
|
else {
|
537
536
|
this.tree.selectionModel.deselect(this.data);
|
538
537
|
}
|
538
|
+
if (this.showCheckbox) {
|
539
|
+
this.updateCheckboxState();
|
540
|
+
}
|
539
541
|
this.markForCheck();
|
540
542
|
}
|
541
543
|
focus(focusOrigin) {
|
@@ -637,7 +639,7 @@ class McTreeOption extends McTreeNode {
|
|
637
639
|
{ provide: McTreeNode, useExisting: McTreeOption },
|
638
640
|
{ provide: MC_TITLE_TEXT_REF, useExisting: McTreeOption },
|
639
641
|
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McTreeOption }
|
640
|
-
], queries: [{ propertyName: "toggleElementDirective", first: true, predicate: McTreeNodeToggleDirective, descendants: true }, { propertyName: "toggleElementComponent", first: true, predicate: McTreeNodeToggleComponent, descendants: true }, { propertyName: "pseudoCheckbox", first: true, predicate: McPseudoCheckbox, descendants: true }, { propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "parentTextElement", first: true, predicate: ["mcTitleContainer"], descendants: true }, { propertyName: "toggleWrapper", first: true, predicate: ["toggleWrapper"], descendants: true }], exportAs: ["mcTreeOption"], usesInheritance: true, ngImport: i0, template: "<div class=\"toggle-wrapper\" #toggleWrapper>\n <ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\n</div>\n\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\n\n <ng-container *ngSwitchCase=\"false\">\n <mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"checkboxState\"\n [disabled]=\"disabled\">\n </mc-pseudo-checkbox>\n </ng-container>\n</ng-container>\n\n<ng-content select=\"mc-checkbox\"></ng-content>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<ng-content select=\"mc-progress-spinner\"></ng-content>\n\n<span class=\"mc-option-text\" #mcTitleContainer><ng-content></ng-content></span>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-tree-option{box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon,.mc-tree-option>.toggle-wrapper>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox
|
642
|
+
], queries: [{ propertyName: "toggleElementDirective", first: true, predicate: McTreeNodeToggleDirective, descendants: true }, { propertyName: "toggleElementComponent", first: true, predicate: McTreeNodeToggleComponent, descendants: true }, { propertyName: "pseudoCheckbox", first: true, predicate: McPseudoCheckbox, descendants: true }, { propertyName: "actionButton", first: true, predicate: McOptionActionComponent, descendants: true }, { propertyName: "tooltipTrigger", first: true, predicate: McTooltipTrigger, descendants: true }, { propertyName: "dropdownTrigger", first: true, predicate: McDropdownTrigger, descendants: true }], viewQueries: [{ propertyName: "parentTextElement", first: true, predicate: ["mcTitleContainer"], descendants: true }, { propertyName: "toggleWrapper", first: true, predicate: ["toggleWrapper"], descendants: true }], exportAs: ["mcTreeOption"], usesInheritance: true, ngImport: i0, template: "<div class=\"toggle-wrapper\" #toggleWrapper>\n <ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\n</div>\n\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\n\n <ng-container *ngSwitchCase=\"false\">\n <mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"checkboxState\"\n [disabled]=\"disabled\">\n </mc-pseudo-checkbox>\n </ng-container>\n</ng-container>\n\n<ng-content select=\"mc-checkbox\"></ng-content>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<ng-content select=\"mc-progress-spinner\"></ng-content>\n\n<span class=\"mc-option-text\" #mcTitleContainer><ng-content></ng-content></span>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-tree-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon,.mc-tree-option>.toggle-wrapper>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox{margin-right:var(--mc-tree-size-icon-padding, 8px)}.mc-tree-option .mc-option-action{display:none}.mc-tree-option:not([disabled]):hover .mc-option-action,.mc-tree-option:not([disabled]).mc-focused .mc-option-action,.mc-tree-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "component", type: i2.McPseudoCheckbox, selector: "mc-pseudo-checkbox", inputs: ["color", "state", "disabled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
641
643
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McTreeOption, decorators: [{
|
642
644
|
type: Component,
|
643
645
|
args: [{ selector: 'mc-tree-option', exportAs: 'mcTreeOption', host: {
|
@@ -656,7 +658,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
656
658
|
{ provide: McTreeNode, useExisting: McTreeOption },
|
657
659
|
{ provide: MC_TITLE_TEXT_REF, useExisting: McTreeOption },
|
658
660
|
{ provide: MC_OPTION_ACTION_PARENT, useExisting: McTreeOption }
|
659
|
-
], template: "<div class=\"toggle-wrapper\" #toggleWrapper>\n <ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\n</div>\n\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\n\n <ng-container *ngSwitchCase=\"false\">\n <mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"checkboxState\"\n [disabled]=\"disabled\">\n </mc-pseudo-checkbox>\n </ng-container>\n</ng-container>\n\n<ng-content select=\"mc-checkbox\"></ng-content>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<ng-content select=\"mc-progress-spinner\"></ng-content>\n\n<span class=\"mc-option-text\" #mcTitleContainer><ng-content></ng-content></span>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-tree-option{box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon,.mc-tree-option>.toggle-wrapper>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox
|
661
|
+
], template: "<div class=\"toggle-wrapper\" #toggleWrapper>\n <ng-content select=\"mc-tree-node-toggle, [mc-tree-node-toggle], [mcTreeNodeToggle]\"></ng-content>\n</div>\n\n<ng-container [ngSwitch]=\"externalPseudoCheckbox\">\n <ng-content *ngSwitchCase=\"true\" select=\"mc-pseudo-checkbox\"></ng-content>\n\n <ng-container *ngSwitchCase=\"false\">\n <mc-pseudo-checkbox\n *ngIf=\"showCheckbox\"\n [state]=\"checkboxState\"\n [disabled]=\"disabled\">\n </mc-pseudo-checkbox>\n </ng-container>\n</ng-container>\n\n<ng-content select=\"mc-checkbox\"></ng-content>\n\n<ng-content select=\"[mc-icon]\"></ng-content>\n\n<ng-content select=\"mc-progress-spinner\"></ng-content>\n\n<span class=\"mc-option-text\" #mcTitleContainer><ng-content></ng-content></span>\n\n<ng-content select=\"mc-option-action\"></ng-content>\n\n<div class=\"mc-option-overlay\"></div>\n", styles: [".mc-no-select{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none}.mc-tree-option{-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;box-sizing:border-box;display:flex;align-items:center;height:var(--mc-tree-size-node-height, 32px);word-wrap:break-word;border:2px solid transparent}.mc-tree-option .mc-option-text{display:inline-block;flex-grow:1;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;margin-right:var(--mc-tree-size-padding-right, 16px)}.mc-tree-option>.mc-icon,.mc-tree-option>.toggle-wrapper>.mc-icon{margin-right:var(--mc-tree-size-icon-padding, 8px);cursor:pointer}.mc-tree-option>.mc-progress-spinner{margin-right:8px}.mc-tree-option:focus{outline:none}.mc-tree-option:not([disabled]){cursor:pointer}.mc-tree-option>.mc-pseudo-checkbox{margin-right:var(--mc-tree-size-icon-padding, 8px)}.mc-tree-option .mc-option-action{display:none}.mc-tree-option:not([disabled]):hover .mc-option-action,.mc-tree-option:not([disabled]).mc-focused .mc-option-action,.mc-tree-option:not([disabled]).mc-action-button-focused .mc-option-action{display:flex}\n"] }]
|
660
662
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: undefined, decorators: [{
|
661
663
|
type: Inject,
|
662
664
|
args: [MC_TREE_OPTION_PARENT_COMPONENT]
|
@@ -864,6 +866,52 @@ class BaseTreeControl {
|
|
864
866
|
}
|
865
867
|
}
|
866
868
|
|
869
|
+
class FilterByViewValue {
|
870
|
+
constructor(control) {
|
871
|
+
this.control = control;
|
872
|
+
}
|
873
|
+
handle(value) {
|
874
|
+
this.result = this.control.dataNodes
|
875
|
+
.filter((node) => this.control.compareViewValues(this.control.getViewValue(node), value));
|
876
|
+
return this.result;
|
877
|
+
}
|
878
|
+
}
|
879
|
+
class FilterParentsForNodes {
|
880
|
+
constructor(control) {
|
881
|
+
this.control = control;
|
882
|
+
}
|
883
|
+
handle(_, prevFilter) {
|
884
|
+
const result = new Set();
|
885
|
+
this.control.dataNodes
|
886
|
+
.filter((node) => prevFilter?.result.includes(node))
|
887
|
+
.forEach((node) => {
|
888
|
+
this.control.getParents(node, [])
|
889
|
+
.forEach((parent) => result.add(parent));
|
890
|
+
result.add(node);
|
891
|
+
});
|
892
|
+
this.result = Array.from(result);
|
893
|
+
return this.result;
|
894
|
+
}
|
895
|
+
}
|
896
|
+
class FilterByValues {
|
897
|
+
constructor(control) {
|
898
|
+
this.control = control;
|
899
|
+
this.values = [];
|
900
|
+
this.setValues = (values) => {
|
901
|
+
this.values = values;
|
902
|
+
};
|
903
|
+
}
|
904
|
+
handle(_, prevFilter) {
|
905
|
+
const found = this.control.dataNodes
|
906
|
+
.filter((node) => this.values.includes(this.control.getValue(node)));
|
907
|
+
this.result = Array.from(new Set([...(prevFilter?.result || []), ...found]));
|
908
|
+
return this.result;
|
909
|
+
}
|
910
|
+
getValues() {
|
911
|
+
return this.values;
|
912
|
+
}
|
913
|
+
}
|
914
|
+
|
867
915
|
function defaultCompareValues(firstValue, secondValue) {
|
868
916
|
return firstValue === secondValue;
|
869
917
|
}
|
@@ -892,6 +940,7 @@ class FlatTreeControl extends BaseTreeControl {
|
|
892
940
|
this.compareValues = compareValues;
|
893
941
|
this.compareViewValues = compareViewValues;
|
894
942
|
this.isDisabled = isDisabled;
|
943
|
+
this.setFilters(new FilterByViewValue(this), new FilterParentsForNodes(this));
|
895
944
|
}
|
896
945
|
/**
|
897
946
|
* Gets a list of the data node's subtree of descendent data nodes.
|
@@ -934,62 +983,42 @@ class FlatTreeControl extends BaseTreeControl {
|
|
934
983
|
hasValue(value) {
|
935
984
|
return this.dataNodes.find((node) => this.compareValues(this.getValue(node), value));
|
936
985
|
}
|
937
|
-
filterNodes(value) {
|
986
|
+
filterNodes(value = null) {
|
938
987
|
this.saveExpansionState();
|
939
|
-
|
940
|
-
this.
|
941
|
-
|
942
|
-
|
943
|
-
|
944
|
-
filteredNodes.forEach((filteredNode) => {
|
945
|
-
this.getParents(filteredNode, [])
|
946
|
-
.forEach((node) => {
|
947
|
-
filteredNodesWithTheirParents.add(node);
|
948
|
-
this.expandDataNode(node);
|
949
|
-
});
|
950
|
-
filteredNodesWithTheirParents.add(filteredNode);
|
951
|
-
this.expandDataNode(filteredNode);
|
952
|
-
if (this.isExpandable(filteredNode)) {
|
953
|
-
const childNodeLevel = this.getLevel(filteredNode) + 1;
|
954
|
-
this.getDescendants(filteredNode)
|
955
|
-
.filter((childNode) => this.getLevel(childNode) === childNodeLevel)
|
956
|
-
.filter((childNode) => !this.isExpandable(childNode) || !this.hasFilteredDescendant(childNode, filteredNodes))
|
957
|
-
.forEach((childNode) => {
|
958
|
-
filteredNodesWithTheirParents.add(childNode);
|
959
|
-
this.expandDataNode(childNode);
|
960
|
-
});
|
961
|
-
}
|
988
|
+
let result = [];
|
989
|
+
this.filters
|
990
|
+
.forEach((filter, index, filters) => {
|
991
|
+
const prevFilter = filters[index - 1] || null;
|
992
|
+
result = filter.handle(value, prevFilter);
|
962
993
|
});
|
963
|
-
this.filterModel.
|
994
|
+
this.filterModel.clear();
|
995
|
+
this.filterModel.select(...result);
|
996
|
+
// set current expansion state according to filtered tree
|
997
|
+
this.expansionModel.setSelection(...result.filter((node) => this.isExpandable(node)));
|
964
998
|
this.updateFilterValue(value);
|
965
|
-
|
999
|
+
Promise.resolve()
|
1000
|
+
.then(() => this.restoreExpansionState());
|
966
1001
|
}
|
967
|
-
|
968
|
-
|
1002
|
+
getFilters() {
|
1003
|
+
return this.filters;
|
969
1004
|
}
|
970
|
-
|
971
|
-
|
972
|
-
|
973
|
-
|
1005
|
+
setFilters(...filters) {
|
1006
|
+
this.filters = filters;
|
1007
|
+
}
|
1008
|
+
updateFilterValue(value) {
|
1009
|
+
Promise.resolve()
|
1010
|
+
.then(() => this.filterValue.next(value));
|
974
1011
|
}
|
975
1012
|
saveExpansionState() {
|
976
|
-
if (this.filterValue.value
|
1013
|
+
if (!this.filterValue.value) {
|
977
1014
|
this.expandedItemsBeforeFiltration = this.expansionModel.selected;
|
978
1015
|
}
|
979
1016
|
}
|
980
1017
|
restoreExpansionState() {
|
981
|
-
if (this.filterValue.value
|
982
|
-
this.expansionModel.
|
983
|
-
this.expansionModel.select(...this.expandedItemsBeforeFiltration);
|
1018
|
+
if (!this.filterValue.value) {
|
1019
|
+
this.expansionModel.setSelection(...this.expandedItemsBeforeFiltration);
|
984
1020
|
}
|
985
1021
|
}
|
986
|
-
hasFilteredDescendant(dataNode, filteredNodes) {
|
987
|
-
const filteredViewValues = filteredNodes
|
988
|
-
.map((node) => this.getViewValue(node));
|
989
|
-
return this.getDescendants(dataNode)
|
990
|
-
.filter((node) => filteredViewValues.includes(this.getViewValue(node)))
|
991
|
-
.length > 0;
|
992
|
-
}
|
993
1022
|
}
|
994
1023
|
|
995
1024
|
/* tslint:disable:no-empty */
|
@@ -1282,8 +1311,9 @@ class McTreeSelection extends McTreeBase {
|
|
1282
1311
|
const options = this.renderedOptions.toArray();
|
1283
1312
|
let fromIndex = this.keyManager.previousActiveItemIndex;
|
1284
1313
|
let toIndex = this.keyManager.previousActiveItemIndex = this.keyManager.activeItemIndex;
|
1285
|
-
const selectedOptionState = options[fromIndex]
|
1286
|
-
if (toIndex === fromIndex) {
|
1314
|
+
const selectedOptionState = options[fromIndex]?.selected;
|
1315
|
+
if (toIndex === fromIndex || fromIndex === -1) {
|
1316
|
+
options[toIndex].toggle();
|
1287
1317
|
return;
|
1288
1318
|
}
|
1289
1319
|
if (fromIndex > toIndex) {
|
@@ -1323,8 +1353,8 @@ class McTreeSelection extends McTreeBase {
|
|
1323
1353
|
selectAllOptions() {
|
1324
1354
|
const optionsToSelect = this.renderedOptions
|
1325
1355
|
.filter((option) => !option.disabled);
|
1326
|
-
optionsToSelect
|
1327
|
-
|
1356
|
+
const hasDeselectedOptions = optionsToSelect.some((option) => !option.selected);
|
1357
|
+
optionsToSelect.forEach((option) => option.setSelected(hasDeselectedOptions));
|
1328
1358
|
this.onSelectAll.emit(new McTreeSelectAllEvent(this, optionsToSelect));
|
1329
1359
|
}
|
1330
1360
|
copyActiveOption() {
|
@@ -1799,5 +1829,5 @@ class McTreeNestedDataSource extends DataSource {
|
|
1799
1829
|
* Generated bundle index. Do not edit.
|
1800
1830
|
*/
|
1801
1831
|
|
1802
|
-
export { BaseTreeControl, FlatTreeControl, MC_SELECTION_TREE_VALUE_ACCESSOR, MC_TREE_OPTION_PARENT_COMPONENT, McTree, McTreeBase, McTreeCopyEvent, McTreeFlatDataSource, McTreeFlattener, McTreeModule, McTreeNavigationChange, McTreeNestedDataSource, McTreeNode, McTreeNodeDef, McTreeNodeOutlet, McTreeNodeOutletContext, McTreeNodePadding, McTreeNodeToggleBase, McTreeNodeToggleBaseDirective, McTreeNodeToggleComponent, McTreeNodeToggleDirective, McTreeNodeToggleMixinBase, McTreeOption, McTreeOptionChange, McTreeSelectAllEvent, McTreeSelection, McTreeSelectionChange, NestedTreeControl, defaultCompareValues, defaultCompareViewValues };
|
1832
|
+
export { BaseTreeControl, FilterByValues, FilterByViewValue, FilterParentsForNodes, FlatTreeControl, MC_SELECTION_TREE_VALUE_ACCESSOR, MC_TREE_OPTION_PARENT_COMPONENT, McTree, McTreeBase, McTreeCopyEvent, McTreeFlatDataSource, McTreeFlattener, McTreeModule, McTreeNavigationChange, McTreeNestedDataSource, McTreeNode, McTreeNodeDef, McTreeNodeOutlet, McTreeNodeOutletContext, McTreeNodePadding, McTreeNodeToggleBase, McTreeNodeToggleBaseDirective, McTreeNodeToggleComponent, McTreeNodeToggleDirective, McTreeNodeToggleMixinBase, McTreeOption, McTreeOptionChange, McTreeSelectAllEvent, McTreeSelection, McTreeSelectionChange, NestedTreeControl, defaultCompareValues, defaultCompareViewValues };
|
1803
1833
|
//# sourceMappingURL=ptsecurity-mosaic-tree.mjs.map
|