{"version":3,"file":"mosaic-design-infosec-components-components-asset-filter-select.mjs","sources":["../../../libs/components/asset-filter-select/src/lib/components/asset-filter-select/asset-filter-select.component.ts","../../../libs/components/asset-filter-select/src/lib/components/asset-filter-select/asset-filter-select.component.html","../../../libs/components/asset-filter-select/src/lib/asset-filter-select.module.ts","../../../libs/components/asset-filter-select/src/lib/constants/i18n.ts","../../../libs/components/asset-filter-select/mosaic-design-infosec-components-components-asset-filter-select.ts"],"sourcesContent":["import {\n    AfterViewInit,\n    ChangeDetectionStrategy,\n    ChangeDetectorRef,\n    Component,\n    forwardRef,\n    Injector,\n    Input,\n    QueryList,\n    ViewChild,\n    ViewChildren\n} from '@angular/core';\nimport { FormControl, FormGroup, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { KbqTreeSelection } from '@koobiq/components/tree';\nimport { KbqTreeSelect } from '@koobiq/components/tree-select';\nimport { filter, takeUntil } from 'rxjs';\n\nimport {\n    Tree,\n    TreeBase,\n    ValidatableByParentTreeSelect\n} from '@mosaic-design/infosec-components/core-components/design-system';\nimport { isEqualByHash } from '@mosaic-design/infosec-components/external/object-hash/utils';\nimport { DestroyService } from '@mosaic-design/infosec-components/services';\nimport { IcTranslocoScopeAlias, TreeFlatNode, TreeNode } from '@mosaic-design/infosec-components/types';\nimport { isNonNullable } from '@mosaic-design/infosec-components/utils';\n\nimport { AssetFilterSelectParentValue, AssetFilterSelectValue } from '../../types';\n\ninterface Form {\n    selectedFiltersId: FormControl<AssetFilterSelectValue>;\n    search: FormControl<string>;\n}\n\n@Component({\n    selector: 'ic-asset-filter-select',\n    templateUrl: './asset-filter-select.component.html',\n    styleUrls: ['./asset-filter-select.component.scss'],\n    changeDetection: ChangeDetectionStrategy.OnPush,\n    providers: [\n        DestroyService,\n        {\n            provide: NG_VALUE_ACCESSOR,\n            useExisting: forwardRef(() => AssetFilterSelectComponent),\n            multi: true\n        }\n    ],\n    host: {\n        class: 'kbq-form-field'\n    }\n})\nexport class AssetFilterSelectComponent\n    extends ValidatableByParentTreeSelect<TreeNode, TreeFlatNode, AssetFilterSelectParentValue, AssetFilterSelectValue>\n    implements AfterViewInit\n{\n    protected readonly IcTranslocoScopeAlias = IcTranslocoScopeAlias;\n\n    @ViewChild(KbqTreeSelection) readonly treeSelection: KbqTreeSelection | undefined;\n    @ViewChild(KbqTreeSelect) readonly select: KbqTreeSelect | undefined;\n    @ViewChildren(KbqTreeSelect) readonly selects: QueryList<KbqTreeSelect> | undefined;\n\n    @Input() set nodes(value: TreeNode[] | undefined) {\n        this.setNodes(value);\n    }\n\n    readonly tree: TreeBase;\n    readonly form: FormGroup<Form>;\n\n    #lastEmittedValue: AssetFilterSelectValue | undefined;\n\n    constructor(injector: Injector, changeDetectorRef: ChangeDetectorRef, destroyed$: DestroyService) {\n        super(injector, changeDetectorRef, destroyed$);\n\n        this.tree = new Tree();\n        this.form = this.createForm();\n        this.setValidatableControl(this.form.controls.selectedFiltersId);\n        this.createFormSubscriptions();\n    }\n\n    ngAfterViewInit(): void {\n        this.createTagsForcedStateUpdatingSubscription(this.form.controls.selectedFiltersId.statusChanges);\n    }\n\n    protected setTreeFormControlEmptyValue(): void {\n        const emptyValue: AssetFilterSelectValue = this.isMultiple ? [] : '';\n        this.form.controls.selectedFiltersId.setValue(emptyValue);\n    }\n\n    protected setTreeFormControlValue(value: NonNullable<AssetFilterSelectParentValue>): void {\n        this.form.patchValue({\n            selectedFiltersId: value\n        });\n    }\n\n    private createForm(): FormGroup<Form> {\n        return new FormGroup<Form>({\n            selectedFiltersId: new FormControl<AssetFilterSelectValue>([], { nonNullable: true }),\n            search: new FormControl<string>('', { nonNullable: true })\n        });\n    }\n\n    private createFormSubscriptions(): void {\n        this.form.controls.search.valueChanges.pipe(takeUntil(this.destroyed$)).subscribe((value) => {\n            this.tree.treeControl.filterNodes(value);\n        });\n\n        this.form.controls.selectedFiltersId.valueChanges\n            .pipe(\n                filter(() => !this.isEmitPrevent),\n                takeUntil(this.destroyed$)\n            )\n            .subscribe((value) => {\n                const normalizedValue = this.normalizeValue(value);\n                if (!isEqualByHash(this.#lastEmittedValue, normalizedValue)) {\n                    this.#lastEmittedValue = normalizedValue;\n                    this.onChange(normalizedValue);\n                }\n            });\n    }\n\n    protected override toggleParents(parent: TreeFlatNode | undefined): void {\n        const { select } = this;\n\n        if (isNonNullable(parent) && isNonNullable(select)) {\n            const descendants = this.tree.treeControl.getDescendants(parent);\n            const isParentSelected = select.selectionModel.selected.includes(parent);\n\n            if (!isParentSelected && descendants.every((item) => select.selectionModel.selected.includes(item))) {\n                this.toggleParents(parent.parent);\n            } else if (isParentSelected) {\n                select.selectionModel.deselect(parent);\n                this.toggleParents(parent.parent);\n            }\n        }\n    }\n}\n","<!--kbq-tree-select не умеет на ходу менять multiple и при попытке проделать это бросает ошибку\n        \"Cannot change `multiple` mode of select after initialization.\"\n        Поэтому нужно перерисовывать его с помощью *icRedrawWhenChanged-->\n<kbq-form-field [formGroup]=\"form\" *icRedrawWhenChanged=\"isMultiple\">\n    <kbq-tree-select\n        [multiple]=\"isMultiple\"\n        [formControl]=\"form.controls.selectedFiltersId\"\n        (selectionChange)=\"onSelectionChange($event)\"\n    >\n        <kbq-form-field kbqFormFieldWithoutBorders kbqSelectSearch>\n            <i kbqPrefix kbq-icon=\"kbq-magnifying-glass_16\"></i>\n            <input kbqInput [formControl]=\"form.controls.search\" type=\"text\" />\n            <kbq-cleaner></kbq-cleaner>\n        </kbq-form-field>\n\n        <div kbq-select-search-empty-result>\n            <ic-coalesce-content\n                [items]=\"[\n                    { alias: IcTranslocoScopeAlias.AssetFilterSelect, key: 'AssetsFilterSelect.Select.Search.NotFound' }\n                ]\"\n            >\n            </ic-coalesce-content>\n        </div>\n\n        <kbq-tree-selection [dataSource]=\"tree.dataSource\" [treeControl]=\"tree.treeControl\">\n            <kbq-tree-option *kbqTreeNodeDef=\"let node\" [checkboxThirdState]=\"true\" kbqTreeNodePadding>\n                <span\n                    [innerHTML]=\"tree.treeControl.getViewValue(node) | mcHighlight: tree.treeControl.filterValue.value\"\n                ></span>\n            </kbq-tree-option>\n\n            <kbq-tree-option\n                [disabled]=\"true\"\n                *kbqTreeNodeDef=\"let node; when: tree.hasChild\"\n                [checkboxThirdState]=\"true\"\n                kbqTreeNodePadding\n            >\n                <i\n                    kbq-icon=\"kbq-chevron-down-s_16\"\n                    [style.transform]=\"tree.treeControl.isExpanded(node) ? '' : 'rotate(-90deg)'\"\n                    kbqTreeNodeToggle\n                ></i>\n\n                <span\n                    [innerHTML]=\"tree.treeControl.getViewValue(node) | mcHighlight: tree.treeControl.filterValue.value\"\n                ></span>\n            </kbq-tree-option>\n        </kbq-tree-selection>\n    </kbq-tree-select>\n</kbq-form-field>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { KbqHighlightModule } from '@koobiq/components/core';\nimport { KbqFormFieldModule } from '@koobiq/components/form-field';\nimport { KbqIconModule } from '@koobiq/components/icon';\nimport { KbqInputModule } from '@koobiq/components/input';\nimport { KbqSelectModule } from '@koobiq/components/select';\nimport { KbqTreeModule } from '@koobiq/components/tree';\nimport { KbqTreeSelectModule } from '@koobiq/components/tree-select';\n\nimport { IcCoalesceContentModule } from '@mosaic-design/infosec-components/components/coalesce-content';\nimport { IcRedrawWhenChangedDirective } from '@mosaic-design/infosec-components/directives';\n\nimport { AssetFilterSelectComponent } from './components';\n\n/**\n * @deprecated Будет удален в 19 версии. Компоненты будут standalone\n */\n@NgModule({\n    imports: [\n        CommonModule,\n        ReactiveFormsModule,\n\n        KbqIconModule,\n        KbqFormFieldModule,\n        KbqTreeModule,\n        KbqTreeSelectModule,\n        KbqInputModule,\n        KbqSelectModule,\n        KbqHighlightModule,\n\n        IcRedrawWhenChangedDirective,\n        IcCoalesceContentModule\n    ],\n    declarations: [AssetFilterSelectComponent],\n    exports: [AssetFilterSelectComponent]\n})\nexport class IcAssetFilterSelectModule {}\n","import { assetFilterSelectTranslates } from '@mosaic-design/infosec-components/i18n-resources';\nimport { LocalizationScopeConfig, IcTranslocoScopeAlias } from '@mosaic-design/infosec-components/types';\n\nexport const scopeConfig: LocalizationScopeConfig = {\n    alias: IcTranslocoScopeAlias.AssetFilterSelect,\n    localTranslates: assetFilterSelectTranslates\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}