@cuby-ui/core 0.0.446 → 0.0.447
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/components/alert-hint/alert-hint.component.d.ts +11 -0
- package/components/alert-hint/error-status.d.ts +1 -0
- package/components/alert-hint/index.d.ts +2 -0
- package/components/card-wrapper/card-wrapper.component.d.ts +2 -1
- package/components/content-header/content-header.component.d.ts +8 -0
- package/components/content-header/index.d.ts +1 -0
- package/components/index.d.ts +5 -0
- package/components/inserted/index.d.ts +1 -0
- package/components/inserted/inserted.component.d.ts +5 -0
- package/components/options-button/index.d.ts +1 -0
- package/components/options-button/options-button.component.d.ts +8 -0
- package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
- package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
- package/editor/utils/open-file-in-browser.d.ts +1 -1
- package/editor/utils/set-loading.d.ts +1 -1
- package/esm2022/components/alert-hint/alert-hint.component.mjs +28 -0
- package/esm2022/components/alert-hint/error-status.mjs +2 -0
- package/esm2022/components/alert-hint/index.mjs +2 -0
- package/esm2022/components/card-wrapper/card-wrapper.component.mjs +6 -4
- package/esm2022/components/content-header/content-header.component.mjs +19 -0
- package/esm2022/components/content-header/index.mjs +2 -0
- package/esm2022/components/index.mjs +6 -1
- package/esm2022/components/inserted/index.mjs +2 -0
- package/esm2022/components/inserted/inserted.component.mjs +15 -0
- package/esm2022/components/options-button/index.mjs +2 -0
- package/esm2022/components/options-button/options-button.component.mjs +20 -0
- package/esm2022/editor/editor.component.mjs +1 -1
- package/esm2022/editor/index.mjs +1 -1
- package/esm2022/editor/utils/open-file-in-browser.mjs +1 -1
- package/esm2022/editor/utils/set-loading.mjs +3 -3
- package/esm2022/index.mjs +1 -2
- package/esm2022/widgets/ui/inserted/index.mjs +2 -0
- package/esm2022/widgets/ui/inserted/inserted.component.mjs +17 -0
- package/esm2022/widgets/ui/modal-header/index.mjs +2 -0
- package/esm2022/widgets/ui/modal-header/modal-header.component.mjs +31 -0
- package/fesm2022/cuby-ui-core.mjs +6174 -8834
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/package.json +4 -4
- package/styles/direcive/flex-container.scss +3 -0
- package/widgets/ui/inserted/index.d.ts +1 -0
- package/widgets/ui/inserted/inserted.component.d.ts +5 -0
- package/widgets/ui/modal-header/index.d.ts +1 -0
- package/widgets/ui/modal-header/modal-header.component.d.ts +12 -0
- package/esm2022/widgets/categories/categories.component.mjs +0 -76
- package/esm2022/widgets/categories/components/categories-list/categories-list.component.mjs +0 -17
- package/esm2022/widgets/categories/components/categories-list/index.mjs +0 -2
- package/esm2022/widgets/categories/components/category-form/category-form.component.mjs +0 -79
- package/esm2022/widgets/categories/components/category-form/index.mjs +0 -2
- package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +0 -125
- package/esm2022/widgets/categories/components/category-item/index.mjs +0 -2
- package/esm2022/widgets/categories/components/create-category-item/create-category-item.component.mjs +0 -25
- package/esm2022/widgets/categories/components/create-category-item/index.mjs +0 -2
- package/esm2022/widgets/categories/components/index.mjs +0 -3
- package/esm2022/widgets/categories/index.mjs +0 -3
- package/esm2022/widgets/categories/services/index.mjs +0 -2
- package/esm2022/widgets/categories/services/selected-category.service.mjs +0 -38
- package/esm2022/widgets/checklist-block/checklist-block.component.mjs +0 -75
- package/esm2022/widgets/checklist-block/checklist-block.options.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list/checklist-block-list.component.mjs +0 -85
- package/esm2022/widgets/checklist-block/components/checklist-block-list/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-card/checklist-block-list-item-action-card.component.mjs +0 -133
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-card/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/checklist-block-list-item-action-with-verification.component.mjs +0 -45
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/checklist-block-list-item-action-without-verification.component.mjs +0 -35
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.mjs +0 -152
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.mjs +0 -282
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.options.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.mjs +0 -117
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.options.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/checklist-block-title-control/checklist-block-title-control.component.mjs +0 -39
- package/esm2022/widgets/checklist-block/components/checklist-block-title-control/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/components/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/index.mjs +0 -2
- package/esm2022/widgets/checklist-block/services/checklist-block.service.mjs +0 -50
- package/esm2022/widgets/checklist-block/services/index.mjs +0 -2
- package/esm2022/widgets/criterion-info/criterion-info.component.mjs +0 -137
- package/esm2022/widgets/criterion-info/index.mjs +0 -2
- package/esm2022/widgets/criterion-info-form/criterion-info-form.component.mjs +0 -147
- package/esm2022/widgets/criterion-info-form/criterion-info-form.options.mjs +0 -2
- package/esm2022/widgets/criterion-info-form/index.mjs +0 -2
- package/esm2022/widgets/criterion-readonly-info/criterion-readonly-info.component.mjs +0 -72
- package/esm2022/widgets/criterion-readonly-info/index.mjs +0 -2
- package/esm2022/widgets/delete-modal/delete-modal.component.mjs +0 -39
- package/esm2022/widgets/delete-modal/delete-modal.options.mjs +0 -2
- package/esm2022/widgets/delete-modal/index.mjs +0 -2
- package/esm2022/widgets/framer-preview/framer-preview.component.mjs +0 -77
- package/esm2022/widgets/framer-preview/framer-preview.options.mjs +0 -2
- package/esm2022/widgets/framer-preview/index.mjs +0 -2
- package/esm2022/widgets/general-control-error-hint/general-control-error-hint.component.mjs +0 -21
- package/esm2022/widgets/general-control-error-hint/index.mjs +0 -2
- package/esm2022/widgets/index.mjs +0 -15
- package/esm2022/widgets/instruction-info/index.mjs +0 -2
- package/esm2022/widgets/instruction-info/instruction-info.component.mjs +0 -147
- package/esm2022/widgets/instruction-info-form/index.mjs +0 -2
- package/esm2022/widgets/instruction-info-form/instruction-info-form.component.mjs +0 -153
- package/esm2022/widgets/instruction-info-form/instruction-info-form.options.mjs +0 -2
- package/esm2022/widgets/instruction-readonly-info/index.mjs +0 -2
- package/esm2022/widgets/instruction-readonly-info/instruction-readonly-info.component.mjs +0 -72
- package/esm2022/widgets/loader/index.mjs +0 -2
- package/esm2022/widgets/loader/loader.component.mjs +0 -36
- package/esm2022/widgets/select-modal/components/index.mjs +0 -3
- package/esm2022/widgets/select-modal/components/select-modal-folder/index.mjs +0 -2
- package/esm2022/widgets/select-modal/components/select-modal-folder/select-modal-folder.component.mjs +0 -21
- package/esm2022/widgets/select-modal/components/select-modal-search/index.mjs +0 -2
- package/esm2022/widgets/select-modal/components/select-modal-search/select-modal-search.component.mjs +0 -32
- package/esm2022/widgets/select-modal/index.mjs +0 -4
- package/esm2022/widgets/select-modal/select-modal.component.mjs +0 -35
- package/esm2022/widgets/select-modal/select-modal.interfaces.mjs +0 -2
- package/esm2022/widgets/select-modal/select-modal.service.mjs +0 -23
- package/esm2022/widgets/storage-list/components/index.mjs +0 -2
- package/esm2022/widgets/storage-list/components/storage-list-item/index.mjs +0 -2
- package/esm2022/widgets/storage-list/components/storage-list-item/storage-list-item.component.mjs +0 -87
- package/esm2022/widgets/storage-list/index.mjs +0 -3
- package/esm2022/widgets/storage-list/storage-list.component.mjs +0 -17
- package/esm2022/widgets/storage-list/storage-list.options.mjs +0 -3
- package/esm2022/widgets/user-action-context-menu/activity-item/activity-item.component.mjs +0 -61
- package/esm2022/widgets/user-action-context-menu/activity-item/index.mjs +0 -2
- package/esm2022/widgets/user-action-context-menu/company-item/company-item.component.mjs +0 -68
- package/esm2022/widgets/user-action-context-menu/company-item/index.mjs +0 -2
- package/esm2022/widgets/user-action-context-menu/constants/index.mjs +0 -2
- package/esm2022/widgets/user-action-context-menu/constants/translations.mjs +0 -5
- package/esm2022/widgets/user-action-context-menu/i18n/en.json +0 -12
- package/esm2022/widgets/user-action-context-menu/i18n/ru.json +0 -12
- package/esm2022/widgets/user-action-context-menu/index.mjs +0 -5
- package/esm2022/widgets/user-action-context-menu/services/activity-base.service.mjs +0 -32
- package/esm2022/widgets/user-action-context-menu/services/activity.service.mjs +0 -35
- package/esm2022/widgets/user-action-context-menu/services/index.mjs +0 -3
- package/esm2022/widgets/user-action-context-menu/user-action-context-menu.component.mjs +0 -83
- package/esm2022/widgets/user-action-context-menu/user-action-context.option.mjs +0 -3
- package/esm2022/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +0 -41
- package/esm2022/widgets/utility-modal/components/criterion-modal-create/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/index.mjs +0 -5
- package/esm2022/widgets/utility-modal/components/instruction-modal-create/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +0 -41
- package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.mjs +0 -40
- package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +0 -40
- package/esm2022/widgets/utility-modal/components/readonly-utility-modal/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +0 -43
- package/esm2022/widgets/utility-modal/components/utility-modal-create/index.mjs +0 -2
- package/esm2022/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +0 -55
- package/esm2022/widgets/utility-modal/index.mjs +0 -4
- package/esm2022/widgets/utility-modal/utility-modal.component.mjs +0 -22
- package/esm2022/widgets/utility-modal/utility-modal.options.mjs +0 -3
- package/esm2022/widgets/utility-readonly-thumbnail/index.mjs +0 -2
- package/esm2022/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.mjs +0 -15
- package/esm2022/widgets/utility-thumbnail/index.mjs +0 -2
- package/esm2022/widgets/utility-thumbnail/utility-thumbnail.component.mjs +0 -94
- package/fesm2022/cuby-ui-core-en-D0un3--2.mjs +0 -25
- package/fesm2022/cuby-ui-core-en-D0un3--2.mjs.map +0 -1
- package/fesm2022/cuby-ui-core-ru-CMm--FpA.mjs +0 -25
- package/fesm2022/cuby-ui-core-ru-CMm--FpA.mjs.map +0 -1
- package/widgets/categories/categories.component.d.ts +0 -25
- package/widgets/categories/components/categories-list/categories-list.component.d.ts +0 -8
- package/widgets/categories/components/categories-list/index.d.ts +0 -1
- package/widgets/categories/components/category-form/category-form.component.d.ts +0 -28
- package/widgets/categories/components/category-form/index.d.ts +0 -1
- package/widgets/categories/components/category-item/category-item.component.d.ts +0 -42
- package/widgets/categories/components/category-item/index.d.ts +0 -1
- package/widgets/categories/components/create-category-item/create-category-item.component.d.ts +0 -10
- package/widgets/categories/components/create-category-item/index.d.ts +0 -1
- package/widgets/categories/components/index.d.ts +0 -2
- package/widgets/categories/index.d.ts +0 -2
- package/widgets/categories/services/index.d.ts +0 -1
- package/widgets/categories/services/selected-category.service.d.ts +0 -18
- package/widgets/checklist-block/checklist-block.component.d.ts +0 -21
- package/widgets/checklist-block/checklist-block.options.d.ts +0 -12
- package/widgets/checklist-block/components/checklist-block-list/checklist-block-list.component.d.ts +0 -27
- package/widgets/checklist-block/components/checklist-block-list/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-list-item-action-card/checklist-block-list-item-action-card.component.d.ts +0 -30
- package/widgets/checklist-block/components/checklist-block-list-item-action-card/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/checklist-block-list-item-action-with-verification.component.d.ts +0 -11
- package/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/checklist-block-list-item-action-without-verification.component.d.ts +0 -10
- package/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.d.ts +0 -41
- package/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.d.ts +0 -5
- package/widgets/checklist-block/components/checklist-block-list-item-container/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.d.ts +0 -51
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.options.d.ts +0 -14
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation/index.d.ts +0 -2
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.d.ts +0 -33
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.options.d.ts +0 -4
- package/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/index.d.ts +0 -1
- package/widgets/checklist-block/components/checklist-block-title-control/checklist-block-title-control.component.d.ts +0 -8
- package/widgets/checklist-block/components/checklist-block-title-control/index.d.ts +0 -1
- package/widgets/checklist-block/components/index.d.ts +0 -1
- package/widgets/checklist-block/index.d.ts +0 -1
- package/widgets/checklist-block/services/checklist-block.service.d.ts +0 -19
- package/widgets/checklist-block/services/index.d.ts +0 -1
- package/widgets/criterion-info/criterion-info.component.d.ts +0 -43
- package/widgets/criterion-info/index.d.ts +0 -1
- package/widgets/criterion-info-form/criterion-info-form.component.d.ts +0 -39
- package/widgets/criterion-info-form/criterion-info-form.options.d.ts +0 -7
- package/widgets/criterion-info-form/index.d.ts +0 -2
- package/widgets/criterion-readonly-info/criterion-readonly-info.component.d.ts +0 -26
- package/widgets/criterion-readonly-info/index.d.ts +0 -1
- package/widgets/delete-modal/delete-modal.component.d.ts +0 -13
- package/widgets/delete-modal/delete-modal.options.d.ts +0 -7
- package/widgets/delete-modal/index.d.ts +0 -2
- package/widgets/framer-preview/framer-preview.component.d.ts +0 -26
- package/widgets/framer-preview/framer-preview.options.d.ts +0 -5
- package/widgets/framer-preview/index.d.ts +0 -2
- package/widgets/general-control-error-hint/general-control-error-hint.component.d.ts +0 -9
- package/widgets/general-control-error-hint/index.d.ts +0 -1
- package/widgets/index.d.ts +0 -14
- package/widgets/instruction-info/index.d.ts +0 -1
- package/widgets/instruction-info/instruction-info.component.d.ts +0 -45
- package/widgets/instruction-info-form/index.d.ts +0 -2
- package/widgets/instruction-info-form/instruction-info-form.component.d.ts +0 -43
- package/widgets/instruction-info-form/instruction-info-form.options.d.ts +0 -9
- package/widgets/instruction-readonly-info/index.d.ts +0 -1
- package/widgets/instruction-readonly-info/instruction-readonly-info.component.d.ts +0 -26
- package/widgets/loader/index.d.ts +0 -1
- package/widgets/loader/loader.component.d.ts +0 -20
- package/widgets/select-modal/components/index.d.ts +0 -2
- package/widgets/select-modal/components/select-modal-folder/index.d.ts +0 -1
- package/widgets/select-modal/components/select-modal-folder/select-modal-folder.component.d.ts +0 -10
- package/widgets/select-modal/components/select-modal-search/index.d.ts +0 -1
- package/widgets/select-modal/components/select-modal-search/select-modal-search.component.d.ts +0 -12
- package/widgets/select-modal/index.d.ts +0 -3
- package/widgets/select-modal/select-modal.component.d.ts +0 -13
- package/widgets/select-modal/select-modal.interfaces.d.ts +0 -15
- package/widgets/select-modal/select-modal.service.d.ts +0 -13
- package/widgets/storage-list/components/index.d.ts +0 -1
- package/widgets/storage-list/components/storage-list-item/index.d.ts +0 -1
- package/widgets/storage-list/components/storage-list-item/storage-list-item.component.d.ts +0 -24
- package/widgets/storage-list/index.d.ts +0 -2
- package/widgets/storage-list/storage-list.component.d.ts +0 -10
- package/widgets/storage-list/storage-list.options.d.ts +0 -16
- package/widgets/user-action-context-menu/activity-item/activity-item.component.d.ts +0 -17
- package/widgets/user-action-context-menu/activity-item/index.d.ts +0 -1
- package/widgets/user-action-context-menu/company-item/company-item.component.d.ts +0 -22
- package/widgets/user-action-context-menu/company-item/index.d.ts +0 -1
- package/widgets/user-action-context-menu/constants/index.d.ts +0 -1
- package/widgets/user-action-context-menu/constants/translations.d.ts +0 -2
- package/widgets/user-action-context-menu/index.d.ts +0 -4
- package/widgets/user-action-context-menu/services/activity-base.service.d.ts +0 -14
- package/widgets/user-action-context-menu/services/activity.service.d.ts +0 -14
- package/widgets/user-action-context-menu/services/index.d.ts +0 -2
- package/widgets/user-action-context-menu/user-action-context-menu.component.d.ts +0 -29
- package/widgets/user-action-context-menu/user-action-context.option.d.ts +0 -15
- package/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.d.ts +0 -18
- package/widgets/utility-modal/components/criterion-modal-create/index.d.ts +0 -1
- package/widgets/utility-modal/components/index.d.ts +0 -4
- package/widgets/utility-modal/components/instruction-modal-create/index.d.ts +0 -1
- package/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.d.ts +0 -18
- package/widgets/utility-modal/components/readonly-criterion-modal/index.d.ts +0 -1
- package/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.d.ts +0 -16
- package/widgets/utility-modal/components/readonly-instruction-modal/index.d.ts +0 -1
- package/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.d.ts +0 -16
- package/widgets/utility-modal/components/readonly-utility-modal/index.d.ts +0 -1
- package/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.d.ts +0 -18
- package/widgets/utility-modal/components/utility-modal-create/index.d.ts +0 -1
- package/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.d.ts +0 -25
- package/widgets/utility-modal/index.d.ts +0 -3
- package/widgets/utility-modal/utility-modal.component.d.ts +0 -10
- package/widgets/utility-modal/utility-modal.options.d.ts +0 -12
- package/widgets/utility-readonly-thumbnail/index.d.ts +0 -1
- package/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.d.ts +0 -8
- package/widgets/utility-thumbnail/index.d.ts +0 -1
- package/widgets/utility-thumbnail/utility-thumbnail.component.d.ts +0 -21
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, computed, inject, input, signal } from '@angular/core';
|
|
2
|
-
import { NonNullableFormBuilder, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
3
|
-
import { CuiDragDropDirective, CuiDragListDirective } from '@cuby-ui/cdk';
|
|
4
|
-
import { TranslocoDirective } from '@jsverse/transloco';
|
|
5
|
-
import { finalize, of, Subject, switchMap, takeUntil } from 'rxjs';
|
|
6
|
-
import { CuiNodeChecklistApiService } from '@cuby-ui/api';
|
|
7
|
-
import { CuiCheckListBlockListItemEvaluationCriteriaComponent } from '../checklist-block-list-item-evaluation-criteria';
|
|
8
|
-
import { CuiButtonModule, CuiCheckboxModule, CuiContextMenuModule, CuiDialogService, CuiHintModule, CuiInputModule, CuiLabelModule, CuiTextareaModule, CuiToggleModule, CuiEmptyStateComponent } from '../../../../components';
|
|
9
|
-
import { CuiDeleteModalComponent } from '../../../../widgets';
|
|
10
|
-
import { CuiTextFieldControllerModule } from '../../../../directives';
|
|
11
|
-
import { cuiCreateDefaultValidators } from '../../../../utils';
|
|
12
|
-
import { CuiCheckListBlockService } from '../../services';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "../../../../components/button/button.component";
|
|
15
|
-
import * as i2 from "../../../../components/checkbox/checkbox.component";
|
|
16
|
-
import * as i3 from "../../../../components/label/label.component";
|
|
17
|
-
import * as i4 from "../../../../components/toggle/toggle.component";
|
|
18
|
-
import * as i5 from "@angular/forms";
|
|
19
|
-
export class CuiCheckListBlockListItemEvaluationComponent {
|
|
20
|
-
constructor() {
|
|
21
|
-
this.nonNullableFormBuilder = inject(NonNullableFormBuilder);
|
|
22
|
-
this.nodeCheckListApiService = inject(CuiNodeChecklistApiService);
|
|
23
|
-
this.checkListBlockService = inject(CuiCheckListBlockService);
|
|
24
|
-
this.cdRef = inject(ChangeDetectorRef);
|
|
25
|
-
this.cuiDialogService = inject(CuiDialogService);
|
|
26
|
-
this.isAvailableObserver = new Subject();
|
|
27
|
-
this.photoFormGroup = this.nonNullableFormBuilder.group({
|
|
28
|
-
isEnable: false,
|
|
29
|
-
isRequired: {
|
|
30
|
-
value: false,
|
|
31
|
-
disabled: true
|
|
32
|
-
}
|
|
33
|
-
});
|
|
34
|
-
this.commentFormGroup = this.nonNullableFormBuilder.group({
|
|
35
|
-
isEnable: false,
|
|
36
|
-
isRequired: {
|
|
37
|
-
value: false,
|
|
38
|
-
disabled: true
|
|
39
|
-
}
|
|
40
|
-
});
|
|
41
|
-
this.evaluationCriteriaFormArray = this.nonNullableFormBuilder.array([]);
|
|
42
|
-
this.loadingIds = signal({});
|
|
43
|
-
this.isAddButtonDisabled = signal(false);
|
|
44
|
-
this.assignee = computed(() => this.checkListItem().content.actionsAssignee[0]);
|
|
45
|
-
this.attachmentPhotoAction = computed(() => this.assignee().actions.find((contentAction) => contentAction.contentActionType === 'ATTACHMENT_PHOTO'));
|
|
46
|
-
this.textAreaAction = computed(() => this.assignee().actions.find((contentAction) => contentAction.contentActionType === 'TEXT_AREA'));
|
|
47
|
-
this.checkListItem = input.required();
|
|
48
|
-
}
|
|
49
|
-
getPointer(currentIndex) {
|
|
50
|
-
return currentIndex === 0
|
|
51
|
-
? "BEFORE" /* NodeCheckListItemSwitchContentPointer.BEFORE */
|
|
52
|
-
: "AFTER" /* NodeCheckListItemSwitchContentPointer.AFTER */;
|
|
53
|
-
}
|
|
54
|
-
getTargetIndex(currentIndex) {
|
|
55
|
-
return currentIndex === 0 ? 1 : currentIndex - 1;
|
|
56
|
-
}
|
|
57
|
-
onDrop(event) {
|
|
58
|
-
const { prevIndex, index } = event;
|
|
59
|
-
if (prevIndex === index) {
|
|
60
|
-
return;
|
|
61
|
-
}
|
|
62
|
-
this.moveItemInArray(this.evaluationCriteriaFormArray.controls, prevIndex, index);
|
|
63
|
-
const movingElementId = this.evaluationCriteriaFormArray.at(index).value.id;
|
|
64
|
-
const targetItemId = this.evaluationCriteriaFormArray.at(this.getTargetIndex(index)).value.id;
|
|
65
|
-
const pointer = this.getPointer(index);
|
|
66
|
-
const requestBody = {
|
|
67
|
-
nodeCheckListId: this.checkListItem().id,
|
|
68
|
-
listEvaluationId: this.assignee().id,
|
|
69
|
-
movingElementId,
|
|
70
|
-
targetItemId,
|
|
71
|
-
pointer
|
|
72
|
-
};
|
|
73
|
-
this.nodeCheckListApiService.updateNodeCheckListItemSwitchContent(requestBody).subscribe({
|
|
74
|
-
error: () => {
|
|
75
|
-
this.moveItemInArray(this.evaluationCriteriaFormArray.controls, index, prevIndex);
|
|
76
|
-
this.cdRef.markForCheck();
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
}
|
|
80
|
-
onAddEvaluationCriteriaItem() {
|
|
81
|
-
const evaluationItemControl = this.createEvaluationFormGroup();
|
|
82
|
-
this.isAddButtonDisabled.set(true);
|
|
83
|
-
this.evaluationCriteriaFormArray.push(evaluationItemControl);
|
|
84
|
-
}
|
|
85
|
-
onSaveEvaluationCriteria(group) {
|
|
86
|
-
const isNew = group.isNew.value;
|
|
87
|
-
if (isNew) {
|
|
88
|
-
this.addEvaluationCriteria(group);
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
this.updateEvaluationCriteria(group);
|
|
92
|
-
}
|
|
93
|
-
onCancelNewEvaluationCriteria() {
|
|
94
|
-
const lastIndex = this.evaluationCriteriaFormArray.length - 1;
|
|
95
|
-
this.isAddButtonDisabled.set(false);
|
|
96
|
-
this.evaluationCriteriaFormArray.removeAt(lastIndex);
|
|
97
|
-
}
|
|
98
|
-
openModalDeleteEvaluationCriteria(id) {
|
|
99
|
-
const content = ['DELETE_EVALUATION_CHECKLIST_ITEM_CONFIRMATION_TEXT'];
|
|
100
|
-
const criteria = this.findExistingEvaluationCriteria(id);
|
|
101
|
-
if (!criteria?.id) {
|
|
102
|
-
return;
|
|
103
|
-
}
|
|
104
|
-
this.loadingIds.update((ids) => ({ ...ids, [criteria.id]: true }));
|
|
105
|
-
this.cuiDialogService
|
|
106
|
-
.open(CuiDeleteModalComponent, {
|
|
107
|
-
data: {
|
|
108
|
-
title: 'DELETE_EVALUATION_CHECKLIST_ITEM',
|
|
109
|
-
content,
|
|
110
|
-
delete: () => this.nodeCheckListApiService
|
|
111
|
-
.deleteEvaluationCriteriaItem(this.checkListItem().id, this.assignee().id, criteria.id)
|
|
112
|
-
.pipe(switchMap((checkListItem) => {
|
|
113
|
-
const index = this.evaluationCriteriaFormArray.controls.findIndex((control) => control.value.id === id);
|
|
114
|
-
this.checkListBlockService.updateCheckListItem(checkListItem);
|
|
115
|
-
this.evaluationCriteriaFormArray.removeAt(index);
|
|
116
|
-
return of(null);
|
|
117
|
-
}))
|
|
118
|
-
}
|
|
119
|
-
})
|
|
120
|
-
.subscribe(() => this.completeEvaluationCriteriaDeletion(criteria));
|
|
121
|
-
}
|
|
122
|
-
completeEvaluationCriteriaDeletion(criteria) {
|
|
123
|
-
this.loadingIds.update((ids) => {
|
|
124
|
-
delete ids[criteria.id];
|
|
125
|
-
return { ...ids };
|
|
126
|
-
});
|
|
127
|
-
}
|
|
128
|
-
onCheckListActionChanged(actionId, actionContent) {
|
|
129
|
-
const requestData = {
|
|
130
|
-
nodeCheckListId: this.checkListItem().id,
|
|
131
|
-
assigneeActionType: 'ASSIGN',
|
|
132
|
-
actionId,
|
|
133
|
-
contentId: actionContent.id,
|
|
134
|
-
isEnable: actionContent.isEnable,
|
|
135
|
-
isRequired: actionContent.isRequired
|
|
136
|
-
};
|
|
137
|
-
this.nodeCheckListApiService.updateNodeCheckListItemActionContent(requestData).subscribe((checkListItem) => {
|
|
138
|
-
this.checkListBlockService.updateCheckListItem(checkListItem);
|
|
139
|
-
});
|
|
140
|
-
}
|
|
141
|
-
ngOnInit() {
|
|
142
|
-
this.initEvaluationFormValues();
|
|
143
|
-
}
|
|
144
|
-
initEvaluationFormValues() {
|
|
145
|
-
this.evaluationCriteriaFormArray.clear();
|
|
146
|
-
this.photoFormGroup.patchValue({
|
|
147
|
-
isEnable: this.attachmentPhotoAction().isEnable,
|
|
148
|
-
isRequired: this.attachmentPhotoAction().isRequired
|
|
149
|
-
});
|
|
150
|
-
this.commentFormGroup.patchValue({
|
|
151
|
-
isEnable: this.textAreaAction().isEnable,
|
|
152
|
-
isRequired: this.textAreaAction().isRequired
|
|
153
|
-
});
|
|
154
|
-
if (this.attachmentPhotoAction().isEnable) {
|
|
155
|
-
this.photoFormGroup.controls.isRequired.enable();
|
|
156
|
-
}
|
|
157
|
-
if (this.textAreaAction().isEnable) {
|
|
158
|
-
this.commentFormGroup.controls.isRequired.enable();
|
|
159
|
-
}
|
|
160
|
-
this.initActionFormSegmentsSubscriptions();
|
|
161
|
-
this.assignee().acceptanceCriteriaEvaluations.forEach((evaluationCriteria) => {
|
|
162
|
-
const evaluationItemControl = this.createEvaluationFormGroup({
|
|
163
|
-
isNew: false,
|
|
164
|
-
criteria: evaluationCriteria.criteria,
|
|
165
|
-
evaluation: evaluationCriteria.evaluation,
|
|
166
|
-
id: evaluationCriteria.id
|
|
167
|
-
});
|
|
168
|
-
this.evaluationCriteriaFormArray.push(evaluationItemControl);
|
|
169
|
-
});
|
|
170
|
-
}
|
|
171
|
-
initActionFormSegmentsSubscriptions() {
|
|
172
|
-
this.initPhotoGroupSubscription();
|
|
173
|
-
this.initCommentGroupSubscription();
|
|
174
|
-
}
|
|
175
|
-
initPhotoGroupSubscription() {
|
|
176
|
-
this.photoFormGroup.valueChanges.pipe(takeUntil(this.isAvailableObserver)).subscribe((value) => {
|
|
177
|
-
if (!value.isEnable) {
|
|
178
|
-
this.photoFormGroup.get('isRequired')?.setValue(false, { emitEvent: false });
|
|
179
|
-
this.photoFormGroup.get('isRequired')?.disable({ emitEvent: false });
|
|
180
|
-
this.onCheckListActionChanged(this.assignee().id, {
|
|
181
|
-
id: this.attachmentPhotoAction().id,
|
|
182
|
-
contentActionType: this.attachmentPhotoAction().contentActionType,
|
|
183
|
-
...this.photoFormGroup.getRawValue()
|
|
184
|
-
});
|
|
185
|
-
return;
|
|
186
|
-
}
|
|
187
|
-
this.photoFormGroup.get('isRequired')?.enable({ emitEvent: false });
|
|
188
|
-
this.onCheckListActionChanged(this.assignee().id, {
|
|
189
|
-
id: this.attachmentPhotoAction().id,
|
|
190
|
-
contentActionType: this.attachmentPhotoAction().contentActionType,
|
|
191
|
-
...this.photoFormGroup.getRawValue()
|
|
192
|
-
});
|
|
193
|
-
});
|
|
194
|
-
}
|
|
195
|
-
initCommentGroupSubscription() {
|
|
196
|
-
this.commentFormGroup.valueChanges.pipe(takeUntil(this.isAvailableObserver)).subscribe((value) => {
|
|
197
|
-
if (!value.isEnable) {
|
|
198
|
-
this.commentFormGroup.get('isRequired')?.setValue(false, { emitEvent: false });
|
|
199
|
-
this.commentFormGroup.get('isRequired')?.disable({ emitEvent: false });
|
|
200
|
-
this.onCheckListActionChanged(this.assignee().id, {
|
|
201
|
-
id: this.textAreaAction().id,
|
|
202
|
-
contentActionType: this.textAreaAction().contentActionType,
|
|
203
|
-
...this.commentFormGroup.getRawValue()
|
|
204
|
-
});
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
this.commentFormGroup.get('isRequired')?.enable({ emitEvent: false });
|
|
208
|
-
this.onCheckListActionChanged(this.assignee().id, {
|
|
209
|
-
id: this.textAreaAction().id,
|
|
210
|
-
contentActionType: this.textAreaAction().contentActionType,
|
|
211
|
-
...this.commentFormGroup.getRawValue()
|
|
212
|
-
});
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
updateEvaluationCriteria(group) {
|
|
216
|
-
const evaluation = group.evaluation.value;
|
|
217
|
-
const criteria = group.criteria.value;
|
|
218
|
-
const id = group.id.value;
|
|
219
|
-
this.nodeCheckListApiService
|
|
220
|
-
.updateEvaluationCriteriaItem(this.checkListItem().id, this.assignee().id, id, criteria, evaluation)
|
|
221
|
-
.subscribe((checkListItem) => this.checkListBlockService.updateCheckListItem(checkListItem));
|
|
222
|
-
}
|
|
223
|
-
addEvaluationCriteria(group) {
|
|
224
|
-
const evaluation = group.evaluation.value;
|
|
225
|
-
const criteria = group.criteria.value;
|
|
226
|
-
this.nodeCheckListApiService
|
|
227
|
-
.addEvaluationCriteriaItem(this.checkListItem().id, this.assignee().id, criteria, evaluation)
|
|
228
|
-
.pipe(finalize(() => this.isAddButtonDisabled.set(false)))
|
|
229
|
-
.subscribe((checkListItem) => this.updateCreatedEvaluationCriteria(checkListItem));
|
|
230
|
-
}
|
|
231
|
-
updateCreatedEvaluationCriteria(checkListItem) {
|
|
232
|
-
const acceptanceCriteriaEvaluations = checkListItem.content.actionsAssignee[0].acceptanceCriteriaEvaluations;
|
|
233
|
-
const id = acceptanceCriteriaEvaluations.at(-1)?.id;
|
|
234
|
-
const control = this.evaluationCriteriaFormArray.controls.at(-1)?.getRawValue();
|
|
235
|
-
const createdControl = this.createEvaluationFormGroup({ ...control, id, isNew: false });
|
|
236
|
-
this.evaluationCriteriaFormArray.removeAt(-1);
|
|
237
|
-
this.evaluationCriteriaFormArray.push(createdControl);
|
|
238
|
-
this.checkListBlockService.updateCheckListItem(checkListItem);
|
|
239
|
-
}
|
|
240
|
-
createEvaluationFormGroup({ id, criteria = '', evaluation = null, isNew = true } = {}) {
|
|
241
|
-
return this.nonNullableFormBuilder.group({
|
|
242
|
-
id: [id],
|
|
243
|
-
criteria: [criteria, cuiCreateDefaultValidators({ maxLength: 500 })],
|
|
244
|
-
evaluation: [evaluation, [Validators.required]],
|
|
245
|
-
isNew: [isNew]
|
|
246
|
-
});
|
|
247
|
-
}
|
|
248
|
-
findExistingEvaluationCriteria(id) {
|
|
249
|
-
return (this.assignee().acceptanceCriteriaEvaluations.find((evaluationCriteria) => evaluationCriteria.id === id) || null);
|
|
250
|
-
}
|
|
251
|
-
moveItemInArray(array, fromIndex, toIndex) {
|
|
252
|
-
if (fromIndex === toIndex) {
|
|
253
|
-
return;
|
|
254
|
-
}
|
|
255
|
-
const item = array[fromIndex];
|
|
256
|
-
array.splice(fromIndex, 1);
|
|
257
|
-
array.splice(toIndex, 0, item);
|
|
258
|
-
}
|
|
259
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
260
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationComponent, isStandalone: true, selector: "cui-checklist-block-list-item-evaluation", inputs: { checkListItem: { classPropertyName: "checkListItem", publicName: "checkListItem", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n <div class=\"action\">\n <div class=\"action__inputs-container\">\n <div\n class=\"action__input\"\n [formGroup]=\"photoFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"action__input\"\n [formGroup]=\"commentFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n <div class=\"action__criteria-title-container\">\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"evaluationCriteria\"\n >\n {{ t('EVALUATION_CRITERIA') }}\n </label>\n <p class=\"action__criteria-subtitle\">{{ t('EACH_EVALUATION_CRITERION_SHOULD_BE') }}</p>\n </div>\n <ul\n cuiDragList\n class=\"list\"\n >\n @for (control of evaluationCriteriaFormArray.controls; track control.controls['id']; let index = $index) {\n <li\n cuiChecklistBlockListItemEvaluationCriteria\n [index]=\"index + 1\"\n cuiDragDrop\n [disabled]=\"isAddButtonDisabled()\"\n (elementDragged)=\"onDrop($event)\"\n [criteriaGroup]=\"control\"\n [evaluationCriteriaFormArray]=\"evaluationCriteriaFormArray\"\n [loadingIds]=\"loadingIds()\"\n (saveClicked)=\"onSaveEvaluationCriteria($event)\"\n (cancelClicked)=\"onCancelNewEvaluationCriteria()\"\n (deleteClicked)=\"openModalDeleteEvaluationCriteria($event)\"\n ></li>\n } @empty {\n <li\n cuiEmptyState\n [subtitle]=\"t('NO_EVALUATION_CRITERIA_TO_VIEW')\"\n ></li>\n }\n </ul>\n <div class=\"action__footer\">\n <button\n cuiButton\n size=\"xxs\"\n appearance=\"flat\"\n icon=\"cuiIconPlus\"\n type=\"button\"\n [disabled]=\"isAddButtonDisabled()\"\n (click)=\"onAddEvaluationCriteriaItem()\"\n >\n {{ t('NEW_OPTION') }}\n </button>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;border-radius:inherit}.action{padding:15px;display:flex;flex-direction:column;border-radius:0 0 8px 8px;gap:16px;background:var(--cui-base-10)}.action__criteria-title-container{display:flex;flex-direction:column;gap:4px}.action__criteria-subtitle{font-weight:400;font-size:14px;line-height:20px;color:var(--cui-base-500)}.action__inputs-container{display:flex;flex-direction:column;gap:8px;background:var(--cui-base-0)}.action__input{padding-right:11px;padding-left:11px;display:flex;height:48px;flex-direction:row;justify-content:space-between;border:1px solid var(--cui-base-200);border-radius:8px}.action__criteria{display:flex;flex-direction:row;align-items:center;gap:12px}.action__criteria-index{padding:8px;font-weight:500;font-size:14px;line-height:20px;display:flex;width:44px;flex-direction:row;justify-content:center;align-items:center;border-radius:8px;background-color:var(--cui-base-0)}.action__criteria-input{flex:1;background:var(--cui-base-0)}.list{display:flex;flex-direction:column;gap:8px}\n"], dependencies: [{ kind: "component", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: ["loadingIds", "index", "criteriaGroup", "evaluationCriteriaFormArray"], outputs: ["saveClicked", "deleteClicked", "cancelClicked"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiCheckboxModule }, { kind: "component", type: i2.CuiCheckboxComponent, selector: "input[type=\"checkbox\"][cuiCheckbox]" }, { kind: "ngmodule", type: CuiContextMenuModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i3.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "ngmodule", type: CuiTextFieldControllerModule }, { kind: "ngmodule", type: CuiToggleModule }, { kind: "component", type: i4.CuiToggleComponent, selector: "input[type=\"checkbox\"][cuiToggle]" }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i5.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "directive", type: CuiDragDropDirective, selector: "[cuiDragDrop]", inputs: ["disabled"], outputs: ["elementDragged"] }, { kind: "directive", type: CuiDragListDirective, selector: "[cuiDragList]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
261
|
-
}
|
|
262
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationComponent, decorators: [{
|
|
263
|
-
type: Component,
|
|
264
|
-
args: [{ selector: 'cui-checklist-block-list-item-evaluation', imports: [
|
|
265
|
-
CuiCheckListBlockListItemEvaluationCriteriaComponent,
|
|
266
|
-
CuiButtonModule,
|
|
267
|
-
CuiCheckboxModule,
|
|
268
|
-
CuiContextMenuModule,
|
|
269
|
-
CuiHintModule,
|
|
270
|
-
CuiInputModule,
|
|
271
|
-
CuiLabelModule,
|
|
272
|
-
CuiTextareaModule,
|
|
273
|
-
CuiTextFieldControllerModule,
|
|
274
|
-
CuiToggleModule,
|
|
275
|
-
CuiEmptyStateComponent,
|
|
276
|
-
ReactiveFormsModule,
|
|
277
|
-
TranslocoDirective,
|
|
278
|
-
CuiDragDropDirective,
|
|
279
|
-
CuiDragListDirective
|
|
280
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\n <div class=\"action\">\n <div class=\"action__inputs-container\">\n <div\n class=\"action__input\"\n [formGroup]=\"photoFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('PHOTO') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n <div\n class=\"action__input\"\n [formGroup]=\"commentFormGroup\"\n >\n <label cuiLabel>\n <input\n cuiCheckbox\n type=\"checkbox\"\n formControlName=\"isEnable\"\n />\n {{ t('COMMENT') }}\n </label>\n <label cuiLabel>\n <input\n cuiToggle\n type=\"checkbox\"\n formControlName=\"isRequired\"\n />\n {{ t('REQUIRED') }}\n </label>\n </div>\n </div>\n <div class=\"action__criteria-title-container\">\n <label\n cuiLabel\n [isRequired]=\"true\"\n for=\"evaluationCriteria\"\n >\n {{ t('EVALUATION_CRITERIA') }}\n </label>\n <p class=\"action__criteria-subtitle\">{{ t('EACH_EVALUATION_CRITERION_SHOULD_BE') }}</p>\n </div>\n <ul\n cuiDragList\n class=\"list\"\n >\n @for (control of evaluationCriteriaFormArray.controls; track control.controls['id']; let index = $index) {\n <li\n cuiChecklistBlockListItemEvaluationCriteria\n [index]=\"index + 1\"\n cuiDragDrop\n [disabled]=\"isAddButtonDisabled()\"\n (elementDragged)=\"onDrop($event)\"\n [criteriaGroup]=\"control\"\n [evaluationCriteriaFormArray]=\"evaluationCriteriaFormArray\"\n [loadingIds]=\"loadingIds()\"\n (saveClicked)=\"onSaveEvaluationCriteria($event)\"\n (cancelClicked)=\"onCancelNewEvaluationCriteria()\"\n (deleteClicked)=\"openModalDeleteEvaluationCriteria($event)\"\n ></li>\n } @empty {\n <li\n cuiEmptyState\n [subtitle]=\"t('NO_EVALUATION_CRITERIA_TO_VIEW')\"\n ></li>\n }\n </ul>\n <div class=\"action__footer\">\n <button\n cuiButton\n size=\"xxs\"\n appearance=\"flat\"\n icon=\"cuiIconPlus\"\n type=\"button\"\n [disabled]=\"isAddButtonDisabled()\"\n (click)=\"onAddEvaluationCriteriaItem()\"\n >\n {{ t('NEW_OPTION') }}\n </button>\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:flex;flex-direction:column;border-radius:inherit}.action{padding:15px;display:flex;flex-direction:column;border-radius:0 0 8px 8px;gap:16px;background:var(--cui-base-10)}.action__criteria-title-container{display:flex;flex-direction:column;gap:4px}.action__criteria-subtitle{font-weight:400;font-size:14px;line-height:20px;color:var(--cui-base-500)}.action__inputs-container{display:flex;flex-direction:column;gap:8px;background:var(--cui-base-0)}.action__input{padding-right:11px;padding-left:11px;display:flex;height:48px;flex-direction:row;justify-content:space-between;border:1px solid var(--cui-base-200);border-radius:8px}.action__criteria{display:flex;flex-direction:row;align-items:center;gap:12px}.action__criteria-index{padding:8px;font-weight:500;font-size:14px;line-height:20px;display:flex;width:44px;flex-direction:row;justify-content:center;align-items:center;border-radius:8px;background-color:var(--cui-base-0)}.action__criteria-input{flex:1;background:var(--cui-base-0)}.list{display:flex;flex-direction:column;gap:8px}\n"] }]
|
|
281
|
-
}] });
|
|
282
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY29tcG9uZW50cy9jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY29tcG9uZW50cy9jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxtQkFBbUIsRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RixPQUFPLEVBQWdDLG9CQUFvQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3hHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ25FLE9BQU8sRUFDSCwwQkFBMEIsRUFPN0IsTUFBTSxjQUFjLENBQUM7QUFFdEIsT0FBTyxFQUFFLG9EQUFvRCxFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEgsT0FBTyxFQUNI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Q3JFLElBQUksU0FBUyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3hCLE9BQU87UUFDWCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTlCLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzNCLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDOytHQXZUUSw0Q0FBNEM7bUdBQTVDLDRDQUE0QywrUENoRXpELDA4R0FnR0Esc2xDRHJEUSxvREFBb0Qsd09BQ3BELGVBQWUsbU9BQ2YsaUJBQWlCLHVJQUNqQixvQkFBb0IsOEJBQ3BCLGFBQWEsOEJBQ2IsY0FBYyw4QkFDZCxjQUFjLHNJQUNkLGlCQUFpQiw4QkFDakIsNEJBQTRCLDhCQUM1QixlQUFlLG9JQUNmLHNCQUFzQiwyR0FDdEIsbUJBQW1CLHF3QkFDbkIsa0JBQWtCLGdNQUNsQixvQkFBb0IsNkdBQ3BCLG9CQUFvQjs7NEZBT2YsNENBQTRDO2tCQXhCeEQsU0FBUzsrQkFDSSwwQ0FBMEMsV0FDM0M7d0JBQ0wsb0RBQW9EO3dCQUNwRCxlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsb0JBQW9CO3dCQUNwQixhQUFhO3dCQUNiLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxpQkFBaUI7d0JBQ2pCLDRCQUE0Qjt3QkFDNUIsZUFBZTt3QkFDZixzQkFBc0I7d0JBQ3RCLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixvQkFBb0I7d0JBQ3BCLG9CQUFvQjtxQkFDdkIsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTm9uTnVsbGFibGVGb3JtQnVpbGRlciwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEN1aU51bGxhYmxlLCBDdWlEcmFnRHJvcERhdGEsIEN1aURyYWdEcm9wRGlyZWN0aXZlLCBDdWlEcmFnTGlzdERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuaW1wb3J0IHsgZmluYWxpemUsIG9mLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgICBDdWlOb2RlQ2hlY2tsaXN0QXBpU2VydmljZSxcbiAgICBOb2RlQ2hlY2tMaXN0RXZhbHVhdGlvbkNyaXRlcmlhLFxuICAgIE5vZGVDaGVja0xpc3RFdmFsdWF0aW9uSXRlbUNvbnRlbnQsXG4gICAgTm9kZUNoZWNrTGlzdEl0ZW0sXG4gICAgTm9kZUNoZWNrTGlzdEl0ZW1Db250ZW50QWN0aW9uLFxuICAgIE5vZGVDaGVja0xpc3RJdGVtU3dpdGNoQ29udGVudFBvaW50ZXIsXG4gICAgTm9kZUNoZWNrTGlzdEl0ZW1Td2l0Y2hDb250ZW50UmVxdWVzdFBhcmFtc1xufSBmcm9tICdAY3VieS11aS9hcGknO1xuXG5pbXBvcnQgeyBDdWlDaGVja0xpc3RCbG9ja0xpc3RJdGVtRXZhbHVhdGlvbkNyaXRlcmlhQ29tcG9uZW50IH0gZnJvbSAnLi4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhJztcbmltcG9ydCB7XG4gICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgIEN1aUNoZWNrYm94TW9kdWxlLFxuICAgIEN1aUNvbnRleHRNZW51TW9kdWxlLFxuICAgIEN1aURpYWxvZ1NlcnZpY2UsXG4gICAgQ3VpSGludE1vZHVsZSxcbiAgICBDdWlJbnB1dE1vZHVsZSxcbiAgICBDdWlMYWJlbE1vZHVsZSxcbiAgICBDdWlUZXh0YXJlYU1vZHVsZSxcbiAgICBDdWlUb2dnbGVNb2R1bGUsXG4gICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudFxufSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEN1aURlbGV0ZU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vd2lkZ2V0cyc7XG5pbXBvcnQgeyBDdWlUZXh0RmllbGRDb250cm9sbGVyTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcblxuaW1wb3J0IHR5cGUge1xuICAgIEN1aUV2YWx1YXRpb25Dcml0ZXJpYUVsZW1lbnREYXRhLFxuICAgIEN1aUV2YWx1YXRpb25Dcml0ZXJpYUdyb3VwXG59IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLm9wdGlvbnMnO1xuaW1wb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2N1aS1jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24nLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgQ3VpQ2hlY2tMaXN0QmxvY2tMaXN0SXRlbUV2YWx1YXRpb25Dcml0ZXJpYUNvbXBvbmVudCxcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxuICAgICAgICBDdWlDaGVja2JveE1vZHVsZSxcbiAgICAgICAgQ3VpQ29udGV4dE1lbnVNb2R1bGUsXG4gICAgICAgIEN1aUhpbnRNb2R1bGUsXG4gICAgICAgIEN1aUlucHV0TW9kdWxlLFxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcbiAgICAgICAgQ3VpVGV4dGFyZWFNb2R1bGUsXG4gICAgICAgIEN1aVRleHRGaWVsZENvbnRyb2xsZXJNb2R1bGUsXG4gICAgICAgIEN1aVRvZ2dsZU1vZHVsZSxcbiAgICAgICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlLFxuICAgICAgICBDdWlEcmFnRHJvcERpcmVjdGl2ZSxcbiAgICAgICAgQ3VpRHJhZ0xpc3REaXJlY3RpdmVcbiAgICBdLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmw6ICcuL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi5jb21wb25lbnQuc2NzcycsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgQ3VpQ2hlY2tMaXN0QmxvY2tMaXN0SXRlbUV2YWx1YXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbm9uTnVsbGFibGVGb3JtQnVpbGRlciA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IG5vZGVDaGVja0xpc3RBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aU5vZGVDaGVja2xpc3RBcGlTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoZWNrTGlzdEJsb2NrU2VydmljZSA9IGluamVjdChDdWlDaGVja0xpc3RCbG9ja1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY2RSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nU2VydmljZSA9IGluamVjdChDdWlEaWFsb2dTZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNBdmFpbGFibGVPYnNlcnZlciA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGhvdG9Gb3JtR3JvdXAgPSB0aGlzLm5vbk51bGxhYmxlRm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICBpc0VuYWJsZTogZmFsc2UsXG4gICAgICAgIGlzUmVxdWlyZWQ6IHtcbiAgICAgICAgICAgIHZhbHVlOiBmYWxzZSxcbiAgICAgICAgICAgIGRpc2FibGVkOiB0cnVlXG4gICAgICAgIH1cbiAgICB9KTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tbWVudEZvcm1Hcm91cCA9IHRoaXMubm9uTnVsbGFibGVGb3JtQnVpbGRlci5ncm91cCh7XG4gICAgICAgIGlzRW5hYmxlOiBmYWxzZSxcbiAgICAgICAgaXNSZXF1aXJlZDoge1xuICAgICAgICAgICAgdmFsdWU6IGZhbHNlLFxuICAgICAgICAgICAgZGlzYWJsZWQ6IHRydWVcbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkgPSB0aGlzLm5vbk51bGxhYmxlRm9ybUJ1aWxkZXIuYXJyYXk8Rm9ybUdyb3VwPihbXSk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbG9hZGluZ0lkcyA9IHNpZ25hbDxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oe30pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0FkZEJ1dHRvbkRpc2FibGVkID0gc2lnbmFsKGZhbHNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXNzaWduZWUgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNoZWNrTGlzdEl0ZW0oKS5jb250ZW50LmFjdGlvbnNBc3NpZ25lZSFbMF0pO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBhdHRhY2htZW50UGhvdG9BY3Rpb24gPSBjb21wdXRlZDxOb2RlQ2hlY2tMaXN0SXRlbUNvbnRlbnRBY3Rpb24+KFxuICAgICAgICAoKSA9PiB0aGlzLmFzc2lnbmVlKCkuYWN0aW9ucy5maW5kKChjb250ZW50QWN0aW9uKSA9PiBjb250ZW50QWN0aW9uLmNvbnRlbnRBY3Rpb25UeXBlID09PSAnQVRUQUNITUVOVF9QSE9UTycpIVxuICAgICk7XG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRleHRBcmVhQWN0aW9uID0gY29tcHV0ZWQ8Tm9kZUNoZWNrTGlzdEl0ZW1Db250ZW50QWN0aW9uPihcbiAgICAgICAgKCkgPT4gdGhpcy5hc3NpZ25lZSgpLmFjdGlvbnMuZmluZCgoY29udGVudEFjdGlvbikgPT4gY29udGVudEFjdGlvbi5jb250ZW50QWN0aW9uVHlwZSA9PT0gJ1RFWFRfQVJFQScpIVxuICAgICk7XG5cbiAgICBwdWJsaWMgcmVhZG9ubHkgY2hlY2tMaXN0SXRlbSA9IGlucHV0LnJlcXVpcmVkPE5vZGVDaGVja0xpc3RJdGVtPE5vZGVDaGVja0xpc3RFdmFsdWF0aW9uSXRlbUNvbnRlbnQ+PigpO1xuXG4gICAgcHJvdGVjdGVkIGdldFBvaW50ZXIoY3VycmVudEluZGV4OiBudW1iZXIpOiBOb2RlQ2hlY2tMaXN0SXRlbVN3aXRjaENvbnRlbnRQb2ludGVyIHtcbiAgICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleCA9PT0gMFxuICAgICAgICAgICAgPyBOb2RlQ2hlY2tMaXN0SXRlbVN3aXRjaENvbnRlbnRQb2ludGVyLkJFRk9SRVxuICAgICAgICAgICAgOiBOb2RlQ2hlY2tMaXN0SXRlbVN3aXRjaENvbnRlbnRQb2ludGVyLkFGVEVSO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRUYXJnZXRJbmRleChjdXJyZW50SW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBjdXJyZW50SW5kZXggPT09IDAgPyAxIDogY3VycmVudEluZGV4IC0gMTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25Ecm9wKGV2ZW50OiBDdWlEcmFnRHJvcERhdGEpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgeyBwcmV2SW5kZXgsIGluZGV4IH0gPSBldmVudDtcblxuICAgICAgICBpZiAocHJldkluZGV4ID09PSBpbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tb3ZlSXRlbUluQXJyYXkodGhpcy5ldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkuY29udHJvbHMsIHByZXZJbmRleCwgaW5kZXgpO1xuICAgICAgICBjb25zdCBtb3ZpbmdFbGVtZW50SWQ6IHN0cmluZyA9IHRoaXMuZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5LmF0KGluZGV4KS52YWx1ZS5pZDtcbiAgICAgICAgY29uc3QgdGFyZ2V0SXRlbUlkOiBzdHJpbmcgPSB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5hdCh0aGlzLmdldFRhcmdldEluZGV4KGluZGV4KSkudmFsdWUuaWQ7XG4gICAgICAgIGNvbnN0IHBvaW50ZXI6IE5vZGVDaGVja0xpc3RJdGVtU3dpdGNoQ29udGVudFBvaW50ZXIgPSB0aGlzLmdldFBvaW50ZXIoaW5kZXgpO1xuXG4gICAgICAgIGNvbnN0IHJlcXVlc3RCb2R5OiBOb2RlQ2hlY2tMaXN0SXRlbVN3aXRjaENvbnRlbnRSZXF1ZXN0UGFyYW1zID0ge1xuICAgICAgICAgICAgbm9kZUNoZWNrTGlzdElkOiB0aGlzLmNoZWNrTGlzdEl0ZW0oKS5pZCxcbiAgICAgICAgICAgIGxpc3RFdmFsdWF0aW9uSWQ6IHRoaXMuYXNzaWduZWUoKS5pZCxcbiAgICAgICAgICAgIG1vdmluZ0VsZW1lbnRJZCxcbiAgICAgICAgICAgIHRhcmdldEl0ZW1JZCxcbiAgICAgICAgICAgIHBvaW50ZXJcbiAgICAgICAgfTtcblxuICAgICAgICB0aGlzLm5vZGVDaGVja0xpc3RBcGlTZXJ2aWNlLnVwZGF0ZU5vZGVDaGVja0xpc3RJdGVtU3dpdGNoQ29udGVudChyZXF1ZXN0Qm9keSkuc3Vic2NyaWJlKHtcbiAgICAgICAgICAgIGVycm9yOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb3ZlSXRlbUluQXJyYXkodGhpcy5ldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkuY29udHJvbHMsIGluZGV4LCBwcmV2SW5kZXgpO1xuICAgICAgICAgICAgICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkFkZEV2YWx1YXRpb25Dcml0ZXJpYUl0ZW0oKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb25JdGVtQ29udHJvbCA9IHRoaXMuY3JlYXRlRXZhbHVhdGlvbkZvcm1Hcm91cCgpO1xuXG4gICAgICAgIHRoaXMuaXNBZGRCdXR0b25EaXNhYmxlZC5zZXQodHJ1ZSk7XG4gICAgICAgIHRoaXMuZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5LnB1c2goZXZhbHVhdGlvbkl0ZW1Db250cm9sKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TYXZlRXZhbHVhdGlvbkNyaXRlcmlhKGdyb3VwOiBDdWlFdmFsdWF0aW9uQ3JpdGVyaWFHcm91cCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc05ldyA9IGdyb3VwLmlzTmV3LnZhbHVlO1xuXG4gICAgICAgIGlmIChpc05ldykge1xuICAgICAgICAgICAgdGhpcy5hZGRFdmFsdWF0aW9uQ3JpdGVyaWEoZ3JvdXApO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZUV2YWx1YXRpb25Dcml0ZXJpYShncm91cCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uQ2FuY2VsTmV3RXZhbHVhdGlvbkNyaXRlcmlhKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBsYXN0SW5kZXggPSB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5sZW5ndGggLSAxO1xuXG4gICAgICAgIHRoaXMuaXNBZGRCdXR0b25EaXNhYmxlZC5zZXQoZmFsc2UpO1xuICAgICAgICB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5yZW1vdmVBdChsYXN0SW5kZXgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvcGVuTW9kYWxEZWxldGVFdmFsdWF0aW9uQ3JpdGVyaWEoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb250ZW50ID0gWydERUxFVEVfRVZBTFVBVElPTl9DSEVDS0xJU1RfSVRFTV9DT05GSVJNQVRJT05fVEVYVCddO1xuICAgICAgICBjb25zdCBjcml0ZXJpYSA9IHRoaXMuZmluZEV4aXN0aW5nRXZhbHVhdGlvbkNyaXRlcmlhKGlkKTtcblxuICAgICAgICBpZiAoIWNyaXRlcmlhPy5pZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkaW5nSWRzLnVwZGF0ZSgoaWRzKSA9PiAoeyAuLi5pZHMsIFtjcml0ZXJpYS5pZF06IHRydWUgfSkpO1xuICAgICAgICB0aGlzLmN1aURpYWxvZ1NlcnZpY2VcbiAgICAgICAgICAgIC5vcGVuKEN1aURlbGV0ZU1vZGFsQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgICAgICB0aXRsZTogJ0RFTEVURV9FVkFMVUFUSU9OX0NIRUNLTElTVF9JVEVNJyxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudCxcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlOiAoKSA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5kZWxldGVFdmFsdWF0aW9uQ3JpdGVyaWFJdGVtKHRoaXMuY2hlY2tMaXN0SXRlbSgpLmlkLCB0aGlzLmFzc2lnbmVlKCkuaWQsIGNyaXRlcmlhLmlkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKGNoZWNrTGlzdEl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGluZGV4ID0gdGhpcy5ldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkuY29udHJvbHMuZmluZEluZGV4KFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChjb250cm9sKSA9PiBjb250cm9sLnZhbHVlLmlkID09PSBpZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UudXBkYXRlQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5LnJlbW92ZUF0KGluZGV4KTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNvbXBsZXRlRXZhbHVhdGlvbkNyaXRlcmlhRGVsZXRpb24oY3JpdGVyaWEpKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgY29tcGxldGVFdmFsdWF0aW9uQ3JpdGVyaWFEZWxldGlvbihjcml0ZXJpYTogTm9kZUNoZWNrTGlzdEV2YWx1YXRpb25Dcml0ZXJpYSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvYWRpbmdJZHMudXBkYXRlKChpZHMpID0+IHtcbiAgICAgICAgICAgIGRlbGV0ZSBpZHNbY3JpdGVyaWEuaWRdO1xuXG4gICAgICAgICAgICByZXR1cm4geyAuLi5pZHMgfTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoZWNrTGlzdEFjdGlvbkNoYW5nZWQoYWN0aW9uSWQ6IHN0cmluZywgYWN0aW9uQ29udGVudDogTm9kZUNoZWNrTGlzdEl0ZW1Db250ZW50QWN0aW9uKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3REYXRhID0ge1xuICAgICAgICAgICAgbm9kZUNoZWNrTGlzdElkOiB0aGlzLmNoZWNrTGlzdEl0ZW0oKS5pZCxcbiAgICAgICAgICAgIGFzc2lnbmVlQWN0aW9uVHlwZTogJ0FTU0lHTicsXG4gICAgICAgICAgICBhY3Rpb25JZCxcbiAgICAgICAgICAgIGNvbnRlbnRJZDogYWN0aW9uQ29udGVudC5pZCxcbiAgICAgICAgICAgIGlzRW5hYmxlOiBhY3Rpb25Db250ZW50LmlzRW5hYmxlLFxuICAgICAgICAgICAgaXNSZXF1aXJlZDogYWN0aW9uQ29udGVudC5pc1JlcXVpcmVkXG4gICAgICAgIH07XG5cbiAgICAgICAgdGhpcy5ub2RlQ2hlY2tMaXN0QXBpU2VydmljZS51cGRhdGVOb2RlQ2hlY2tMaXN0SXRlbUFjdGlvbkNvbnRlbnQocmVxdWVzdERhdGEpLnN1YnNjcmliZSgoY2hlY2tMaXN0SXRlbSkgPT4ge1xuICAgICAgICAgICAgdGhpcy5jaGVja0xpc3RCbG9ja1NlcnZpY2UudXBkYXRlQ2hlY2tMaXN0SXRlbShjaGVja0xpc3RJdGVtKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRFdmFsdWF0aW9uRm9ybVZhbHVlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdEV2YWx1YXRpb25Gb3JtVmFsdWVzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5jbGVhcigpO1xuICAgICAgICB0aGlzLnBob3RvRm9ybUdyb3VwLnBhdGNoVmFsdWUoe1xuICAgICAgICAgICAgaXNFbmFibGU6IHRoaXMuYXR0YWNobWVudFBob3RvQWN0aW9uKCkuaXNFbmFibGUsXG4gICAgICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLmF0dGFjaG1lbnRQaG90b0FjdGlvbigpLmlzUmVxdWlyZWRcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29tbWVudEZvcm1Hcm91cC5wYXRjaFZhbHVlKHtcbiAgICAgICAgICAgIGlzRW5hYmxlOiB0aGlzLnRleHRBcmVhQWN0aW9uKCkuaXNFbmFibGUsXG4gICAgICAgICAgICBpc1JlcXVpcmVkOiB0aGlzLnRleHRBcmVhQWN0aW9uKCkuaXNSZXF1aXJlZFxuICAgICAgICB9KTtcblxuICAgICAgICBpZiAodGhpcy5hdHRhY2htZW50UGhvdG9BY3Rpb24oKS5pc0VuYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5waG90b0Zvcm1Hcm91cC5jb250cm9scy5pc1JlcXVpcmVkLmVuYWJsZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMudGV4dEFyZWFBY3Rpb24oKS5pc0VuYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLmNvbnRyb2xzLmlzUmVxdWlyZWQuZW5hYmxlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluaXRBY3Rpb25Gb3JtU2VnbWVudHNTdWJzY3JpcHRpb25zKCk7XG5cbiAgICAgICAgdGhpcy5hc3NpZ25lZSgpLmFjY2VwdGFuY2VDcml0ZXJpYUV2YWx1YXRpb25zLmZvckVhY2goKGV2YWx1YXRpb25Dcml0ZXJpYTogTm9kZUNoZWNrTGlzdEV2YWx1YXRpb25Dcml0ZXJpYSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZXZhbHVhdGlvbkl0ZW1Db250cm9sID0gdGhpcy5jcmVhdGVFdmFsdWF0aW9uRm9ybUdyb3VwKHtcbiAgICAgICAgICAgICAgICBpc05ldzogZmFsc2UsXG4gICAgICAgICAgICAgICAgY3JpdGVyaWE6IGV2YWx1YXRpb25Dcml0ZXJpYS5jcml0ZXJpYSxcbiAgICAgICAgICAgICAgICBldmFsdWF0aW9uOiBldmFsdWF0aW9uQ3JpdGVyaWEuZXZhbHVhdGlvbixcbiAgICAgICAgICAgICAgICBpZDogZXZhbHVhdGlvbkNyaXRlcmlhLmlkXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5ldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkucHVzaChldmFsdWF0aW9uSXRlbUNvbnRyb2wpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGluaXRBY3Rpb25Gb3JtU2VnbWVudHNTdWJzY3JpcHRpb25zKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmluaXRQaG90b0dyb3VwU3Vic2NyaXB0aW9uKCk7XG4gICAgICAgIHRoaXMuaW5pdENvbW1lbnRHcm91cFN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaW5pdFBob3RvR3JvdXBTdWJzY3JpcHRpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMucGhvdG9Gb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuaXNBdmFpbGFibGVPYnNlcnZlcikpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUuaXNFbmFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnBob3RvRm9ybUdyb3VwLmdldCgnaXNSZXF1aXJlZCcpPy5zZXRWYWx1ZShmYWxzZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMucGhvdG9Gb3JtR3JvdXAuZ2V0KCdpc1JlcXVpcmVkJyk/LmRpc2FibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgICAgIHRoaXMub25DaGVja0xpc3RBY3Rpb25DaGFuZ2VkKHRoaXMuYXNzaWduZWUoKS5pZCwge1xuICAgICAgICAgICAgICAgICAgICBpZDogdGhpcy5hdHRhY2htZW50UGhvdG9BY3Rpb24oKS5pZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudEFjdGlvblR5cGU6IHRoaXMuYXR0YWNobWVudFBob3RvQWN0aW9uKCkuY29udGVudEFjdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucGhvdG9Gb3JtR3JvdXAuZ2V0UmF3VmFsdWUoKVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLnBob3RvRm9ybUdyb3VwLmdldCgnaXNSZXF1aXJlZCcpPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkNoZWNrTGlzdEFjdGlvbkNoYW5nZWQodGhpcy5hc3NpZ25lZSgpLmlkLCB7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMuYXR0YWNobWVudFBob3RvQWN0aW9uKCkuaWQsXG4gICAgICAgICAgICAgICAgY29udGVudEFjdGlvblR5cGU6IHRoaXMuYXR0YWNobWVudFBob3RvQWN0aW9uKCkuY29udGVudEFjdGlvblR5cGUsXG4gICAgICAgICAgICAgICAgLi4udGhpcy5waG90b0Zvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0Q29tbWVudEdyb3VwU3Vic2NyaXB0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuaXNBdmFpbGFibGVPYnNlcnZlcikpLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmICghdmFsdWUuaXNFbmFibGUpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbW1lbnRGb3JtR3JvdXAuZ2V0KCdpc1JlcXVpcmVkJyk/LnNldFZhbHVlKGZhbHNlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldCgnaXNSZXF1aXJlZCcpPy5kaXNhYmxlKHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLm9uQ2hlY2tMaXN0QWN0aW9uQ2hhbmdlZCh0aGlzLmFzc2lnbmVlKCkuaWQsIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IHRoaXMudGV4dEFyZWFBY3Rpb24oKS5pZCxcbiAgICAgICAgICAgICAgICAgICAgY29udGVudEFjdGlvblR5cGU6IHRoaXMudGV4dEFyZWFBY3Rpb24oKS5jb250ZW50QWN0aW9uVHlwZSxcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldFJhd1ZhbHVlKClcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5jb21tZW50Rm9ybUdyb3VwLmdldCgnaXNSZXF1aXJlZCcpPy5lbmFibGUoeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICAgICAgdGhpcy5vbkNoZWNrTGlzdEFjdGlvbkNoYW5nZWQodGhpcy5hc3NpZ25lZSgpLmlkLCB7XG4gICAgICAgICAgICAgICAgaWQ6IHRoaXMudGV4dEFyZWFBY3Rpb24oKS5pZCxcbiAgICAgICAgICAgICAgICBjb250ZW50QWN0aW9uVHlwZTogdGhpcy50ZXh0QXJlYUFjdGlvbigpLmNvbnRlbnRBY3Rpb25UeXBlLFxuICAgICAgICAgICAgICAgIC4uLnRoaXMuY29tbWVudEZvcm1Hcm91cC5nZXRSYXdWYWx1ZSgpXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVFdmFsdWF0aW9uQ3JpdGVyaWEoZ3JvdXA6IEN1aUV2YWx1YXRpb25Dcml0ZXJpYUdyb3VwKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGV2YWx1YXRpb24gPSBncm91cC5ldmFsdWF0aW9uLnZhbHVlO1xuICAgICAgICBjb25zdCBjcml0ZXJpYSA9IGdyb3VwLmNyaXRlcmlhLnZhbHVlO1xuICAgICAgICBjb25zdCBpZCA9IGdyb3VwLmlkLnZhbHVlO1xuXG4gICAgICAgIHRoaXMubm9kZUNoZWNrTGlzdEFwaVNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVFdmFsdWF0aW9uQ3JpdGVyaWFJdGVtKHRoaXMuY2hlY2tMaXN0SXRlbSgpLmlkLCB0aGlzLmFzc2lnbmVlKCkuaWQsIGlkLCBjcml0ZXJpYSwgZXZhbHVhdGlvbilcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoZWNrTGlzdEl0ZW0pID0+IHRoaXMuY2hlY2tMaXN0QmxvY2tTZXJ2aWNlLnVwZGF0ZUNoZWNrTGlzdEl0ZW0oY2hlY2tMaXN0SXRlbSkpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYWRkRXZhbHVhdGlvbkNyaXRlcmlhKGdyb3VwOiBDdWlFdmFsdWF0aW9uQ3JpdGVyaWFHcm91cCk6IHZvaWQge1xuICAgICAgICBjb25zdCBldmFsdWF0aW9uID0gZ3JvdXAuZXZhbHVhdGlvbi52YWx1ZTtcbiAgICAgICAgY29uc3QgY3JpdGVyaWEgPSBncm91cC5jcml0ZXJpYS52YWx1ZTtcblxuICAgICAgICB0aGlzLm5vZGVDaGVja0xpc3RBcGlTZXJ2aWNlXG4gICAgICAgICAgICAuYWRkRXZhbHVhdGlvbkNyaXRlcmlhSXRlbSh0aGlzLmNoZWNrTGlzdEl0ZW0oKS5pZCwgdGhpcy5hc3NpZ25lZSgpLmlkLCBjcml0ZXJpYSwgZXZhbHVhdGlvbilcbiAgICAgICAgICAgIC5waXBlKGZpbmFsaXplKCgpID0+IHRoaXMuaXNBZGRCdXR0b25EaXNhYmxlZC5zZXQoZmFsc2UpKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGNoZWNrTGlzdEl0ZW0pID0+IHRoaXMudXBkYXRlQ3JlYXRlZEV2YWx1YXRpb25Dcml0ZXJpYShjaGVja0xpc3RJdGVtKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVDcmVhdGVkRXZhbHVhdGlvbkNyaXRlcmlhKFxuICAgICAgICBjaGVja0xpc3RJdGVtOiBOb2RlQ2hlY2tMaXN0SXRlbTxOb2RlQ2hlY2tMaXN0RXZhbHVhdGlvbkl0ZW1Db250ZW50PlxuICAgICk6IHZvaWQge1xuICAgICAgICBjb25zdCBhY2NlcHRhbmNlQ3JpdGVyaWFFdmFsdWF0aW9ucyA9IGNoZWNrTGlzdEl0ZW0uY29udGVudC5hY3Rpb25zQXNzaWduZWUhWzBdLmFjY2VwdGFuY2VDcml0ZXJpYUV2YWx1YXRpb25zO1xuICAgICAgICBjb25zdCBpZCA9IGFjY2VwdGFuY2VDcml0ZXJpYUV2YWx1YXRpb25zLmF0KC0xKT8uaWQ7XG4gICAgICAgIGNvbnN0IGNvbnRyb2wgPSB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5jb250cm9scy5hdCgtMSk/LmdldFJhd1ZhbHVlKCk7XG4gICAgICAgIGNvbnN0IGNyZWF0ZWRDb250cm9sID0gdGhpcy5jcmVhdGVFdmFsdWF0aW9uRm9ybUdyb3VwKHsgLi4uY29udHJvbCwgaWQsIGlzTmV3OiBmYWxzZSB9KTtcblxuICAgICAgICB0aGlzLmV2YWx1YXRpb25Dcml0ZXJpYUZvcm1BcnJheS5yZW1vdmVBdCgtMSk7XG4gICAgICAgIHRoaXMuZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5LnB1c2goY3JlYXRlZENvbnRyb2wpO1xuICAgICAgICB0aGlzLmNoZWNrTGlzdEJsb2NrU2VydmljZS51cGRhdGVDaGVja0xpc3RJdGVtKGNoZWNrTGlzdEl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRXZhbHVhdGlvbkZvcm1Hcm91cCh7XG4gICAgICAgIGlkLFxuICAgICAgICBjcml0ZXJpYSA9ICcnLFxuICAgICAgICBldmFsdWF0aW9uID0gbnVsbCxcbiAgICAgICAgaXNOZXcgPSB0cnVlXG4gICAgfTogQ3VpRXZhbHVhdGlvbkNyaXRlcmlhRWxlbWVudERhdGEgPSB7fSk6IEZvcm1Hcm91cCB7XG4gICAgICAgIHJldHVybiB0aGlzLm5vbk51bGxhYmxlRm9ybUJ1aWxkZXIuZ3JvdXAoe1xuICAgICAgICAgICAgaWQ6IFtpZF0sXG4gICAgICAgICAgICBjcml0ZXJpYTogW2NyaXRlcmlhLCBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyh7IG1heExlbmd0aDogNTAwIH0pXSxcbiAgICAgICAgICAgIGV2YWx1YXRpb246IFtldmFsdWF0aW9uLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgICAgICAgaXNOZXc6IFtpc05ld11cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBmaW5kRXhpc3RpbmdFdmFsdWF0aW9uQ3JpdGVyaWEoaWQ6IHN0cmluZyk6IEN1aU51bGxhYmxlPE5vZGVDaGVja0xpc3RFdmFsdWF0aW9uQ3JpdGVyaWE+IHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIHRoaXMuYXNzaWduZWUoKS5hY2NlcHRhbmNlQ3JpdGVyaWFFdmFsdWF0aW9ucy5maW5kKFxuICAgICAgICAgICAgICAgIChldmFsdWF0aW9uQ3JpdGVyaWE6IE5vZGVDaGVja0xpc3RFdmFsdWF0aW9uQ3JpdGVyaWEpID0+IGV2YWx1YXRpb25Dcml0ZXJpYS5pZCA9PT0gaWRcbiAgICAgICAgICAgICkgfHwgbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgbW92ZUl0ZW1JbkFycmF5PFQ+KGFycmF5OiBUW10sIGZyb21JbmRleDogbnVtYmVyLCB0b0luZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgaWYgKGZyb21JbmRleCA9PT0gdG9JbmRleCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaXRlbSA9IGFycmF5W2Zyb21JbmRleF07XG5cbiAgICAgICAgYXJyYXkuc3BsaWNlKGZyb21JbmRleCwgMSk7XG4gICAgICAgIGFycmF5LnNwbGljZSh0b0luZGV4LCAwLCBpdGVtKTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdFwiPlxuICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFjdGlvbl9faW5wdXRzLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYWN0aW9uX19pbnB1dFwiXG4gICAgICAgICAgICAgICAgW2Zvcm1Hcm91cF09XCJwaG90b0Zvcm1Hcm91cFwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPGxhYmVsIGN1aUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgICAgIGN1aUNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNFbmFibGVcIlxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdQSE9UTycpIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY3VpTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1JFUVVJUkVEJykgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJhY3Rpb25fX2lucHV0XCJcbiAgICAgICAgICAgICAgICBbZm9ybUdyb3VwXT1cImNvbW1lbnRGb3JtR3JvdXBcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBjdWlMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzRW5hYmxlXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAge3sgdCgnQ09NTUVOVCcpIH19XG4gICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY3VpTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpVG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNSZXF1aXJlZFwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1JFUVVJUkVEJykgfX1cbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uX19jcml0ZXJpYS10aXRsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxsYWJlbFxuICAgICAgICAgICAgICAgIGN1aUxhYmVsXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgZm9yPVwiZXZhbHVhdGlvbkNyaXRlcmlhXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7eyB0KCdFVkFMVUFUSU9OX0NSSVRFUklBJykgfX1cbiAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICA8cCBjbGFzcz1cImFjdGlvbl9fY3JpdGVyaWEtc3VidGl0bGVcIj57eyB0KCdFQUNIX0VWQUxVQVRJT05fQ1JJVEVSSU9OX1NIT1VMRF9CRScpIH19PC9wPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPHVsXG4gICAgICAgICAgICBjdWlEcmFnTGlzdFxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0XCJcbiAgICAgICAgPlxuICAgICAgICAgICAgQGZvciAoY29udHJvbCBvZiBldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkuY29udHJvbHM7IHRyYWNrIGNvbnRyb2wuY29udHJvbHNbJ2lkJ107IGxldCBpbmRleCA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgICBjdWlDaGVja2xpc3RCbG9ja0xpc3RJdGVtRXZhbHVhdGlvbkNyaXRlcmlhXG4gICAgICAgICAgICAgICAgICAgIFtpbmRleF09XCJpbmRleCArIDFcIlxuICAgICAgICAgICAgICAgICAgICBjdWlEcmFnRHJvcFxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNBZGRCdXR0b25EaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgKGVsZW1lbnREcmFnZ2VkKT1cIm9uRHJvcCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2NyaXRlcmlhR3JvdXBdPVwiY29udHJvbFwiXG4gICAgICAgICAgICAgICAgICAgIFtldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXldPVwiZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5XCJcbiAgICAgICAgICAgICAgICAgICAgW2xvYWRpbmdJZHNdPVwibG9hZGluZ0lkcygpXCJcbiAgICAgICAgICAgICAgICAgICAgKHNhdmVDbGlja2VkKT1cIm9uU2F2ZUV2YWx1YXRpb25Dcml0ZXJpYSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgKGNhbmNlbENsaWNrZWQpPVwib25DYW5jZWxOZXdFdmFsdWF0aW9uQ3JpdGVyaWEoKVwiXG4gICAgICAgICAgICAgICAgICAgIChkZWxldGVDbGlja2VkKT1cIm9wZW5Nb2RhbERlbGV0ZUV2YWx1YXRpb25Dcml0ZXJpYSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+PC9saT5cbiAgICAgICAgICAgIH0gQGVtcHR5IHtcbiAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgY3VpRW1wdHlTdGF0ZVxuICAgICAgICAgICAgICAgICAgICBbc3VidGl0bGVdPVwidCgnTk9fRVZBTFVBVElPTl9DUklURVJJQV9UT19WSUVXJylcIlxuICAgICAgICAgICAgICAgID48L2xpPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L3VsPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uX19mb290ZXJcIj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICBzaXplPVwieHhzXCJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZmxhdFwiXG4gICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25QbHVzXCJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNBZGRCdXR0b25EaXNhYmxlZCgpXCJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25BZGRFdmFsdWF0aW9uQ3JpdGVyaWFJdGVtKClcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IHQoJ05FV19PUFRJT04nKSB9fVxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2hlY2tsaXN0LWJsb2NrL2NvbXBvbmVudHMvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpRXZhbHVhdGlvbkNyaXRlcmlhR3JvdXAge1xyXG4gICAgaWQ6IEZvcm1Db250cm9sPHN0cmluZz47XHJcbiAgICBjcml0ZXJpYTogRm9ybUNvbnRyb2w8c3RyaW5nPjtcclxuICAgIGV2YWx1YXRpb246IEZvcm1Db250cm9sPG51bWJlcj47XHJcbiAgICBpc05ldzogRm9ybUNvbnRyb2w8Ym9vbGVhbj47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpRXZhbHVhdGlvbkNyaXRlcmlhRWxlbWVudERhdGEge1xyXG4gICAgaWQ/OiBzdHJpbmc7XHJcbiAgICBjcml0ZXJpYT86IHN0cmluZztcclxuICAgIGV2YWx1YXRpb24/OiBDdWlOdWxsYWJsZTxudW1iZXI+O1xyXG4gICAgaXNOZXc/OiBib29sZWFuO1xyXG59XHJcbiJdfQ==
|
package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/index.mjs
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { CuiCheckListBlockListItemEvaluationComponent } from './checklist-block-list-item-evaluation.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2hlY2tsaXN0LWJsb2NrL2NvbXBvbmVudHMvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw0Q0FBNEMsRUFBRSxNQUFNLGtEQUFrRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tMaXN0SXRlbUV2YWx1YXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgdHlwZSB7IEN1aUV2YWx1YXRpb25Dcml0ZXJpYUdyb3VwIH0gZnJvbSAnLi9jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24ub3B0aW9ucyc7XHJcbiJdfQ==
|
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import { ChangeDetectionStrategy, Component, computed, effect, inject, input, output, signal } from '@angular/core';
|
|
2
|
-
import { ReactiveFormsModule } from '@angular/forms';
|
|
3
|
-
import { CuiLetDirective } from '@cuby-ui/cdk';
|
|
4
|
-
import { CuiAlertService, CuiButtonModule, CuiIconButtonModule, CuiInputModule, CuiInputNumberModule, CuiSvgModule, CuiTextareaModule } from '../../../../components';
|
|
5
|
-
import { TranslocoDirective, TranslocoService } from '@jsverse/transloco';
|
|
6
|
-
import { CuiDragPointerDirective } from '@cuby-ui/cdk';
|
|
7
|
-
import { CuiGeneralControlErrorHintComponent } from '../../../general-control-error-hint';
|
|
8
|
-
import * as i0 from "@angular/core";
|
|
9
|
-
import * as i1 from "../../../../components/button/button.component";
|
|
10
|
-
import * as i2 from "../../../../components/icon-button/icon-button.component";
|
|
11
|
-
import * as i3 from "../../../../directives/text-field-controller/text-field-placeholder.directive";
|
|
12
|
-
import * as i4 from "../../../../directives/text-field-controller/text-field-is-error.directive";
|
|
13
|
-
import * as i5 from "../../../../components/svg/svg.component";
|
|
14
|
-
import * as i6 from "../../../../components/textarea/textarea.component";
|
|
15
|
-
import * as i7 from "@angular/forms";
|
|
16
|
-
import * as i8 from "../../../../components/input-number/input-number.component";
|
|
17
|
-
export class CuiCheckListBlockListItemEvaluationCriteriaComponent {
|
|
18
|
-
get isEvaluationInvalid() {
|
|
19
|
-
return this.criteriaGroup().controls.evaluation.invalid && this.isEditMode();
|
|
20
|
-
}
|
|
21
|
-
get isCriteriaInvalid() {
|
|
22
|
-
return this.criteriaGroup().controls.criteria.invalid && this.isEditMode();
|
|
23
|
-
}
|
|
24
|
-
constructor() {
|
|
25
|
-
this.cuiAlertService = inject(CuiAlertService);
|
|
26
|
-
this.translocoService = inject(TranslocoService);
|
|
27
|
-
this.EVALUATION_ALREADY_EXIST = `EVALUATION_ALREADY_EXIST`;
|
|
28
|
-
this.previousData = null;
|
|
29
|
-
this.isEditMode = signal(false);
|
|
30
|
-
this.isNew = computed(() => this.criteriaGroup().controls.isNew.value);
|
|
31
|
-
this.gap = computed(() => (this.isEditMode() ? 8 : 0));
|
|
32
|
-
this.isLoading = computed(() => this.loadingIds()[this.criteriaGroup().controls.id.value]);
|
|
33
|
-
this.isDragEnabled = computed(() => !this.isEditMode() && !this.isLoading());
|
|
34
|
-
this.loadingIds = input.required();
|
|
35
|
-
this.index = input.required();
|
|
36
|
-
this.criteriaGroup = input.required();
|
|
37
|
-
this.evaluationCriteriaFormArray = input.required();
|
|
38
|
-
this.saveClicked = output();
|
|
39
|
-
this.deleteClicked = output();
|
|
40
|
-
this.cancelClicked = output();
|
|
41
|
-
this.initNewEvaluationCriteriaEffect();
|
|
42
|
-
this.initEditModeEffect();
|
|
43
|
-
}
|
|
44
|
-
onSave() {
|
|
45
|
-
if (this.criteriaGroup().invalid) {
|
|
46
|
-
return;
|
|
47
|
-
}
|
|
48
|
-
const evaluation = `${this.criteriaGroup().controls.evaluation.value}`;
|
|
49
|
-
if (this.checkIsEvaluationCriteriaExist(evaluation)) {
|
|
50
|
-
this.cuiAlertService
|
|
51
|
-
.open(this.translocoService.translate(this.EVALUATION_ALREADY_EXIST, { evaluation }), {
|
|
52
|
-
status: 'error'
|
|
53
|
-
})
|
|
54
|
-
.subscribe();
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
|
-
this.isEditMode.update((prev) => !prev);
|
|
58
|
-
this.saveClicked.emit(this.criteriaGroup().controls);
|
|
59
|
-
}
|
|
60
|
-
onDelete() {
|
|
61
|
-
const id = this.criteriaGroup().controls.id.value;
|
|
62
|
-
this.deleteClicked.emit(id);
|
|
63
|
-
}
|
|
64
|
-
onCancel() {
|
|
65
|
-
if (this.isNew()) {
|
|
66
|
-
this.cancelClicked.emit();
|
|
67
|
-
}
|
|
68
|
-
this.isEditMode.update((prev) => !prev);
|
|
69
|
-
if (!this.previousData) {
|
|
70
|
-
return;
|
|
71
|
-
}
|
|
72
|
-
this.criteriaGroup().setValue({
|
|
73
|
-
...this.criteriaGroup().getRawValue(),
|
|
74
|
-
...this.previousData
|
|
75
|
-
});
|
|
76
|
-
}
|
|
77
|
-
onToggleEditMode() {
|
|
78
|
-
const { criteria, evaluation } = this.criteriaGroup().getRawValue();
|
|
79
|
-
this.previousData = { criteria, evaluation };
|
|
80
|
-
this.isEditMode.update((prev) => !prev);
|
|
81
|
-
}
|
|
82
|
-
// TODO: Компонент должен был быть построен исключительно на реактивных формах
|
|
83
|
-
initEditModeEffect() {
|
|
84
|
-
effect(() => this.criteriaGroup()[this.isEditMode() ? 'enable' : 'disable']());
|
|
85
|
-
}
|
|
86
|
-
initNewEvaluationCriteriaEffect() {
|
|
87
|
-
effect(() => this.isEditMode.set(this.isNew()), { allowSignalWrites: true });
|
|
88
|
-
}
|
|
89
|
-
checkIsEvaluationCriteriaExist(evaluation) {
|
|
90
|
-
const controls = this.evaluationCriteriaFormArray().controls;
|
|
91
|
-
return controls.some((control) => {
|
|
92
|
-
if (control.controls.id.value === this.criteriaGroup().controls.id.value) {
|
|
93
|
-
return false;
|
|
94
|
-
}
|
|
95
|
-
return `${control.get('evaluation')?.value}` === evaluation;
|
|
96
|
-
});
|
|
97
|
-
}
|
|
98
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationCriteriaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: CuiCheckListBlockListItemEvaluationCriteriaComponent, isStandalone: true, selector: "li[cuiChecklistBlockListItemEvaluationCriteria]", inputs: { loadingIds: { classPropertyName: "loadingIds", publicName: "loadingIds", isSignal: true, isRequired: true, transformFunction: null }, index: { classPropertyName: "index", publicName: "index", isSignal: true, isRequired: true, transformFunction: null }, criteriaGroup: { classPropertyName: "criteriaGroup", publicName: "criteriaGroup", isSignal: true, isRequired: true, transformFunction: null }, evaluationCriteriaFormArray: { classPropertyName: "evaluationCriteriaFormArray", publicName: "evaluationCriteriaFormArray", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { saveClicked: "saveClicked", deleteClicked: "deleteClicked", cancelClicked: "cancelClicked" }, ngImport: i0, template: "<div *transloco=\"let t\">\n <form\n *cuiLet=\"criteriaGroup() as form\"\n [formGroup]=\"form\"\n [class.form_edit]=\"isEditMode()\"\n clas=\"form\"\n >\n <div class=\"content\">\n <span class=\"index\">{{ index() }}.</span>\n @if (!isEditMode()) {\n <cui-svg\n cuiDragPointer\n icon=\"cuiIconDragHandleDots\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n }\n <div\n style.gap=\"{{ gap() }}px\"\n class=\"wrapper\"\n >\n <cui-input-number\n formControlName=\"evaluation\"\n cuiTextFieldPlaceholder=\"0\"\n [cuiTextFieldIsError]=\"isEvaluationInvalid\"\n [min]=\"1\"\n [max]=\"99\"\n class=\"input-number\"\n />\n <textarea\n cuiTextarea\n formControlName=\"criteria\"\n [rows]=\"1\"\n [cuiTextFieldIsError]=\"isCriteriaInvalid\"\n placeholder=\"{{ t('ADD_A_DESCRIPTION') }}...\"\n class=\"textarea\"\n ></textarea>\n </div>\n @if (isEditMode()) {\n <button\n type=\"submit\"\n cuiIconButton\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"form.invalid\"\n class=\"button\"\n (click)=\"onSave()\"\n ></button>\n <button\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n class=\"button\"\n (click)=\"onCancel()\"\n ></button>\n } @else {\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n [disabled]=\"isLoading()\"\n (click)=\"onToggleEditMode()\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconTrash\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDelete()\"\n ></button>\n }\n </div>\n <cui-general-control-error-hint\n [control]=\"form.controls.criteria\"\n class=\"error-hint\"\n />\n </form>\n</div>\n", styles: [".form{display:flex;flex-direction:column;gap:8px}.form_edit{padding:12px;border-radius:8px;border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}.content{display:flex;gap:8px;align-items:center}.index{font-weight:500;font-size:14px;line-height:20px;width:22px}.icon{cursor:grab}.icon:active{cursor:grabbing}.wrapper{display:flex;flex-grow:1}.input-number{padding-right:9px;padding-left:9px;flex-shrink:0;width:44px;background:inherit}.input-number._disabled{cursor:initial;opacity:1;border-right-width:0;border-radius:8px 0 0 8px}.input-number ::ng-deep .c-input{text-align:center}.input-number ::ng-deep .c-input:disabled{cursor:text}.textarea{background:var(--cui-base-0)}.textarea:disabled{cursor:initial;opacity:1;background:var(--cui-base-0);border-left-width:0;border-radius:0 8px 8px 0}.button:disabled{cursor:not-allowed;opacity:.5}.error-hint{margin-left:82px}.cui-drag-drop-placeholder{height:44px;border:1px dashed var(--cui-base-200);border-radius:8px;background:var(--cui-base-0)}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "theme", "size"] }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: i2.CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "ngmodule", type: CuiInputModule }, { kind: "directive", type: i3.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i4.CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i5.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: CuiTextareaModule }, { kind: "component", type: i6.CuiTextareaComponent, selector: "textarea[cuiTextarea]", inputs: ["rows", "noBordersAndPaddings"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i7.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: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i7.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i7.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "ngmodule", type: CuiInputNumberModule }, { kind: "component", type: i8.CuiInputNumberComponent, selector: "cui-input-number", inputs: ["precision", "min", "max"] }, { kind: "directive", type: CuiDragPointerDirective, selector: "[cuiDragPointer]" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
100
|
-
}
|
|
101
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: CuiCheckListBlockListItemEvaluationCriteriaComponent, decorators: [{
|
|
102
|
-
type: Component,
|
|
103
|
-
args: [{ selector: 'li[cuiChecklistBlockListItemEvaluationCriteria]', imports: [
|
|
104
|
-
CuiButtonModule,
|
|
105
|
-
CuiIconButtonModule,
|
|
106
|
-
CuiInputModule,
|
|
107
|
-
CuiLetDirective,
|
|
108
|
-
CuiSvgModule,
|
|
109
|
-
CuiTextareaModule,
|
|
110
|
-
ReactiveFormsModule,
|
|
111
|
-
TranslocoDirective,
|
|
112
|
-
CuiInputNumberModule,
|
|
113
|
-
CuiDragPointerDirective,
|
|
114
|
-
CuiGeneralControlErrorHintComponent
|
|
115
|
-
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div *transloco=\"let t\">\n <form\n *cuiLet=\"criteriaGroup() as form\"\n [formGroup]=\"form\"\n [class.form_edit]=\"isEditMode()\"\n clas=\"form\"\n >\n <div class=\"content\">\n <span class=\"index\">{{ index() }}.</span>\n @if (!isEditMode()) {\n <cui-svg\n cuiDragPointer\n icon=\"cuiIconDragHandleDots\"\n color=\"var(--cui-base-500)\"\n class=\"icon\"\n />\n }\n <div\n style.gap=\"{{ gap() }}px\"\n class=\"wrapper\"\n >\n <cui-input-number\n formControlName=\"evaluation\"\n cuiTextFieldPlaceholder=\"0\"\n [cuiTextFieldIsError]=\"isEvaluationInvalid\"\n [min]=\"1\"\n [max]=\"99\"\n class=\"input-number\"\n />\n <textarea\n cuiTextarea\n formControlName=\"criteria\"\n [rows]=\"1\"\n [cuiTextFieldIsError]=\"isCriteriaInvalid\"\n placeholder=\"{{ t('ADD_A_DESCRIPTION') }}...\"\n class=\"textarea\"\n ></textarea>\n </div>\n @if (isEditMode()) {\n <button\n type=\"submit\"\n cuiIconButton\n icon=\"cuiIconCheck\"\n color=\"var(--cui-success)\"\n [disabled]=\"form.invalid\"\n class=\"button\"\n (click)=\"onSave()\"\n ></button>\n <button\n type=\"button\"\n cuiIconButton\n icon=\"cuiIconXCircle\"\n color=\"var(--cui-danger)\"\n class=\"button\"\n (click)=\"onCancel()\"\n ></button>\n } @else {\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconEdit\"\n [disabled]=\"isLoading()\"\n (click)=\"onToggleEditMode()\"\n ></button>\n <button\n cuiButton\n type=\"button\"\n appearance=\"ghost\"\n size=\"xxs\"\n icon=\"cuiIconTrash\"\n [isLoaderShown]=\"isLoading()\"\n (click)=\"onDelete()\"\n ></button>\n }\n </div>\n <cui-general-control-error-hint\n [control]=\"form.controls.criteria\"\n class=\"error-hint\"\n />\n </form>\n</div>\n", styles: [".form{display:flex;flex-direction:column;gap:8px}.form_edit{padding:12px;border-radius:8px;border:1px solid var(--cui-base-200);background-color:var(--cui-base-0)}.content{display:flex;gap:8px;align-items:center}.index{font-weight:500;font-size:14px;line-height:20px;width:22px}.icon{cursor:grab}.icon:active{cursor:grabbing}.wrapper{display:flex;flex-grow:1}.input-number{padding-right:9px;padding-left:9px;flex-shrink:0;width:44px;background:inherit}.input-number._disabled{cursor:initial;opacity:1;border-right-width:0;border-radius:8px 0 0 8px}.input-number ::ng-deep .c-input{text-align:center}.input-number ::ng-deep .c-input:disabled{cursor:text}.textarea{background:var(--cui-base-0)}.textarea:disabled{cursor:initial;opacity:1;background:var(--cui-base-0);border-left-width:0;border-radius:0 8px 8px 0}.button:disabled{cursor:not-allowed;opacity:.5}.error-hint{margin-left:82px}.cui-drag-drop-placeholder{height:44px;border:1px dashed var(--cui-base-200);border-radius:8px;background:var(--cui-base-0)}\n"] }]
|
|
116
|
-
}], ctorParameters: () => [] });
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY29tcG9uZW50cy9jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24tY3JpdGVyaWEvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jaGVja2xpc3QtYmxvY2svY29tcG9uZW50cy9jaGVja2xpc3QtYmxvY2stbGlzdC1pdGVtLWV2YWx1YXRpb24tY3JpdGVyaWEvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEgsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFckQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMvQyxPQUFPLEVBQ0gsZUFBZSxFQUNmLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsY0FBYyxFQUNkLG9CQUFvQixFQUNwQixZQUFZLEVBQ1osaUJBQWlCLEVBQ3BCLE1BQU0sd0JBQXdCLENBQUM7QUFDaEMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJMUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sY0FBYyxDQUFDO0FB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QkFDTCxlQUFlO3dCQUNmLG1CQUFtQjt3QkFDbkIsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLFlBQVk7d0JBQ1osaUJBQWlCO3dCQUNqQixtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLG1DQUFtQztxQkFDdEMsY0FDVyxJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgZWZmZWN0LCBpbmplY3QsIGlucHV0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcbmltcG9ydCB7IEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XG5pbXBvcnQge1xuICAgIEN1aUFsZXJ0U2VydmljZSxcbiAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgQ3VpSWNvbkJ1dHRvbk1vZHVsZSxcbiAgICBDdWlJbnB1dE1vZHVsZSxcbiAgICBDdWlJbnB1dE51bWJlck1vZHVsZSxcbiAgICBDdWlTdmdNb2R1bGUsXG4gICAgQ3VpVGV4dGFyZWFNb2R1bGVcbn0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xuXG5pbXBvcnQgdHlwZSB7IEN1aUV2YWx1YXRpb25Dcml0ZXJpYUdyb3VwIH0gZnJvbSAnLi4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uJztcblxuaW1wb3J0IHsgQ3VpRHJhZ1BvaW50ZXJEaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xuaW1wb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XG5pbXBvcnQgdHlwZSB7IEN1aUV2YWx1YXRpb25Dcml0ZXJpYURhdGEgfSBmcm9tICcuL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi1jcml0ZXJpYS5vcHRpb25zJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsaVtjdWlDaGVja2xpc3RCbG9ja0xpc3RJdGVtRXZhbHVhdGlvbkNyaXRlcmlhXScsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUljb25CdXR0b25Nb2R1bGUsXG4gICAgICAgIEN1aUlucHV0TW9kdWxlLFxuICAgICAgICBDdWlMZXREaXJlY3RpdmUsXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcbiAgICAgICAgQ3VpVGV4dGFyZWFNb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcbiAgICAgICAgQ3VpSW5wdXROdW1iZXJNb2R1bGUsXG4gICAgICAgIEN1aURyYWdQb2ludGVyRGlyZWN0aXZlLFxuICAgICAgICBDdWlHZW5lcmFsQ29udHJvbEVycm9ySGludENvbXBvbmVudFxuICAgIF0sXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybDogJy4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudC5zY3NzJyxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBDdWlDaGVja0xpc3RCbG9ja0xpc3RJdGVtRXZhbHVhdGlvbkNyaXRlcmlhQ29tcG9uZW50IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFsZXJ0U2VydmljZSA9IGluamVjdChDdWlBbGVydFNlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgRVZBTFVBVElPTl9BTFJFQURZX0VYSVNUID0gYEVWQUxVQVRJT05fQUxSRUFEWV9FWElTVGA7XG5cbiAgICBwcml2YXRlIHByZXZpb3VzRGF0YTogQ3VpTnVsbGFibGU8Q3VpRXZhbHVhdGlvbkNyaXRlcmlhRGF0YT4gPSBudWxsO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRWRpdE1vZGUgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpc05ldyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuY3JpdGVyaWFHcm91cCgpLmNvbnRyb2xzLmlzTmV3LnZhbHVlKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZ2FwID0gY29tcHV0ZWQoKCkgPT4gKHRoaXMuaXNFZGl0TW9kZSgpID8gOCA6IDApKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNMb2FkaW5nID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sb2FkaW5nSWRzKClbdGhpcy5jcml0ZXJpYUdyb3VwKCkuY29udHJvbHMuaWQudmFsdWVdKTtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEcmFnRW5hYmxlZCA9IGNvbXB1dGVkKCgpID0+ICF0aGlzLmlzRWRpdE1vZGUoKSAmJiAhdGhpcy5pc0xvYWRpbmcoKSk7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IGlzRXZhbHVhdGlvbkludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNyaXRlcmlhR3JvdXAoKS5jb250cm9scy5ldmFsdWF0aW9uLmludmFsaWQgJiYgdGhpcy5pc0VkaXRNb2RlKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBpc0NyaXRlcmlhSW52YWxpZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY3JpdGVyaWFHcm91cCgpLmNvbnRyb2xzLmNyaXRlcmlhLmludmFsaWQgJiYgdGhpcy5pc0VkaXRNb2RlKCk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlYWRvbmx5IGxvYWRpbmdJZHMgPSBpbnB1dC5yZXF1aXJlZDxSZWNvcmQ8c3RyaW5nLCBib29sZWFuPj4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5kZXggPSBpbnB1dC5yZXF1aXJlZDxudW1iZXI+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNyaXRlcmlhR3JvdXAgPSBpbnB1dC5yZXF1aXJlZDxGb3JtR3JvdXA8Q3VpRXZhbHVhdGlvbkNyaXRlcmlhR3JvdXA+PigpO1xuICAgIHB1YmxpYyByZWFkb25seSBldmFsdWF0aW9uQ3JpdGVyaWFGb3JtQXJyYXkgPSBpbnB1dC5yZXF1aXJlZDxGb3JtQXJyYXk8Rm9ybUdyb3VwPj4oKTtcblxuICAgIHB1YmxpYyByZWFkb25seSBzYXZlQ2xpY2tlZCA9IG91dHB1dDxDdWlFdmFsdWF0aW9uQ3JpdGVyaWFHcm91cD4oKTtcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVsZXRlQ2xpY2tlZCA9IG91dHB1dDxzdHJpbmc+KCk7XG4gICAgcHVibGljIHJlYWRvbmx5IGNhbmNlbENsaWNrZWQgPSBvdXRwdXQoKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmluaXROZXdFdmFsdWF0aW9uQ3JpdGVyaWFFZmZlY3QoKTtcbiAgICAgICAgdGhpcy5pbml0RWRpdE1vZGVFZmZlY3QoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25TYXZlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jcml0ZXJpYUdyb3VwKCkuaW52YWxpZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgZXZhbHVhdGlvbiA9IGAke3RoaXMuY3JpdGVyaWFHcm91cCgpLmNvbnRyb2xzLmV2YWx1YXRpb24udmFsdWV9YDtcblxuICAgICAgICBpZiAodGhpcy5jaGVja0lzRXZhbHVhdGlvbkNyaXRlcmlhRXhpc3QoZXZhbHVhdGlvbikpIHtcbiAgICAgICAgICAgIHRoaXMuY3VpQWxlcnRTZXJ2aWNlXG4gICAgICAgICAgICAgICAgLm9wZW4odGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSh0aGlzLkVWQUxVQVRJT05fQUxSRUFEWV9FWElTVCwgeyBldmFsdWF0aW9uIH0pLCB7XG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogJ2Vycm9yJ1xuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzRWRpdE1vZGUudXBkYXRlKChwcmV2KSA9PiAhcHJldik7XG4gICAgICAgIHRoaXMuc2F2ZUNsaWNrZWQuZW1pdCh0aGlzLmNyaXRlcmlhR3JvdXAoKS5jb250cm9scyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRGVsZXRlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuY3JpdGVyaWFHcm91cCgpLmNvbnRyb2xzLmlkLnZhbHVlO1xuXG4gICAgICAgIHRoaXMuZGVsZXRlQ2xpY2tlZC5lbWl0KGlkKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DYW5jZWwoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlzTmV3KCkpIHtcbiAgICAgICAgICAgIHRoaXMuY2FuY2VsQ2xpY2tlZC5lbWl0KCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmlzRWRpdE1vZGUudXBkYXRlKChwcmV2KSA9PiAhcHJldik7XG5cbiAgICAgICAgaWYgKCF0aGlzLnByZXZpb3VzRGF0YSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jcml0ZXJpYUdyb3VwKCkuc2V0VmFsdWUoe1xuICAgICAgICAgICAgLi4udGhpcy5jcml0ZXJpYUdyb3VwKCkuZ2V0UmF3VmFsdWUoKSxcbiAgICAgICAgICAgIC4uLnRoaXMucHJldmlvdXNEYXRhXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvblRvZ2dsZUVkaXRNb2RlKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB7IGNyaXRlcmlhLCBldmFsdWF0aW9uIH0gPSB0aGlzLmNyaXRlcmlhR3JvdXAoKS5nZXRSYXdWYWx1ZSgpO1xuXG4gICAgICAgIHRoaXMucHJldmlvdXNEYXRhID0geyBjcml0ZXJpYSwgZXZhbHVhdGlvbiB9O1xuICAgICAgICB0aGlzLmlzRWRpdE1vZGUudXBkYXRlKChwcmV2KSA9PiAhcHJldik7XG4gICAgfVxuXG4gICAgLy8gVE9ETzog0JrQvtC80L/QvtC90LXQvdGCINC00L7Qu9C20LXQvSDQsdGL0Lsg0LHRi9GC0Ywg0L/QvtGB0YLRgNC+0LXQvSDQuNGB0LrQu9GO0YfQuNGC0LXQu9GM0L3QviDQvdCwINGA0LXQsNC60YLQuNCy0L3Ri9GFINGE0L7RgNC80LDRhVxuICAgIHByaXZhdGUgaW5pdEVkaXRNb2RlRWZmZWN0KCk6IHZvaWQge1xuICAgICAgICBlZmZlY3QoKCkgPT4gdGhpcy5jcml0ZXJpYUdyb3VwKClbdGhpcy5pc0VkaXRNb2RlKCkgPyAnZW5hYmxlJyA6ICdkaXNhYmxlJ10oKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBpbml0TmV3RXZhbHVhdGlvbkNyaXRlcmlhRWZmZWN0KCk6IHZvaWQge1xuICAgICAgICBlZmZlY3QoKCkgPT4gdGhpcy5pc0VkaXRNb2RlLnNldCh0aGlzLmlzTmV3KCkpLCB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY2hlY2tJc0V2YWx1YXRpb25Dcml0ZXJpYUV4aXN0KGV2YWx1YXRpb246IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBjb250cm9scyA9IHRoaXMuZXZhbHVhdGlvbkNyaXRlcmlhRm9ybUFycmF5KCkuY29udHJvbHM7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRyb2xzLnNvbWUoKGNvbnRyb2w6IEZvcm1Hcm91cDxDdWlFdmFsdWF0aW9uQ3JpdGVyaWFHcm91cD4pID0+IHtcbiAgICAgICAgICAgIGlmIChjb250cm9sLmNvbnRyb2xzLmlkLnZhbHVlID09PSB0aGlzLmNyaXRlcmlhR3JvdXAoKS5jb250cm9scy5pZC52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIGAke2NvbnRyb2wuZ2V0KCdldmFsdWF0aW9uJyk/LnZhbHVlfWAgPT09IGV2YWx1YXRpb247XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxkaXYgKnRyYW5zbG9jbz1cImxldCB0XCI+XG4gICAgPGZvcm1cbiAgICAgICAgKmN1aUxldD1cImNyaXRlcmlhR3JvdXAoKSBhcyBmb3JtXCJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcbiAgICAgICAgW2NsYXNzLmZvcm1fZWRpdF09XCJpc0VkaXRNb2RlKClcIlxuICAgICAgICBjbGFzPVwiZm9ybVwiXG4gICAgPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpbmRleFwiPnt7IGluZGV4KCkgfX0uPC9zcGFuPlxuICAgICAgICAgICAgQGlmICghaXNFZGl0TW9kZSgpKSB7XG4gICAgICAgICAgICAgICAgPGN1aS1zdmdcbiAgICAgICAgICAgICAgICAgICAgY3VpRHJhZ1BvaW50ZXJcbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25EcmFnSGFuZGxlRG90c1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWJhc2UtNTAwKVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBzdHlsZS5nYXA9XCJ7eyBnYXAoKSB9fXB4XCJcbiAgICAgICAgICAgICAgICBjbGFzcz1cIndyYXBwZXJcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxjdWktaW5wdXQtbnVtYmVyXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImV2YWx1YXRpb25cIlxuICAgICAgICAgICAgICAgICAgICBjdWlUZXh0RmllbGRQbGFjZWhvbGRlcj1cIjBcIlxuICAgICAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0V2YWx1YXRpb25JbnZhbGlkXCJcbiAgICAgICAgICAgICAgICAgICAgW21pbl09XCIxXCJcbiAgICAgICAgICAgICAgICAgICAgW21heF09XCI5OVwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiaW5wdXQtbnVtYmVyXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDx0ZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICBjdWlUZXh0YXJlYVxuICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjcml0ZXJpYVwiXG4gICAgICAgICAgICAgICAgICAgIFtyb3dzXT1cIjFcIlxuICAgICAgICAgICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0NyaXRlcmlhSW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgdCgnQUREX0FfREVTQ1JJUFRJT04nKSB9fS4uLlwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGV4dGFyZWFcIlxuICAgICAgICAgICAgICAgID48L3RleHRhcmVhPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGlzRWRpdE1vZGUoKSkge1xuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgIGN1aUljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgaWNvbj1cImN1aUljb25DaGVja1wiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLXN1Y2Nlc3MpXCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2F2ZSgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY3VpSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblhDaXJjbGVcIlxuICAgICAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1kYW5nZXIpXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvbkVkaXRcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25Ub2dnbGVFZGl0TW9kZSgpXCJcbiAgICAgICAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxuICAgICAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblRyYXNoXCJcbiAgICAgICAgICAgICAgICAgICAgW2lzTG9hZGVyU2hvd25dPVwiaXNMb2FkaW5nKClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25EZWxldGUoKVwiXG4gICAgICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGN1aS1nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludFxuICAgICAgICAgICAgW2NvbnRyb2xdPVwiZm9ybS5jb250cm9scy5jcml0ZXJpYVwiXG4gICAgICAgICAgICBjbGFzcz1cImVycm9yLWhpbnRcIlxuICAgICAgICAvPlxuICAgIDwvZm9ybT5cbjwvZGl2PlxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLm9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2hlY2tsaXN0LWJsb2NrL2NvbXBvbmVudHMvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhL2NoZWNrbGlzdC1ibG9jay1saXN0LWl0ZW0tZXZhbHVhdGlvbi1jcml0ZXJpYS5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEN1aUV2YWx1YXRpb25Dcml0ZXJpYURhdGEge1xyXG4gICAgcmVhZG9ubHkgY3JpdGVyaWE6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IGV2YWx1YXRpb246IG51bWJlcjtcclxufVxyXG4iXX0=
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { CuiCheckListBlockListItemEvaluationCriteriaComponent } from './checklist-block-list-item-evaluation-criteria.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2hlY2tsaXN0LWJsb2NrL2NvbXBvbmVudHMvY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvREFBb0QsRUFBRSxNQUFNLDJEQUEyRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQ2hlY2tMaXN0QmxvY2tMaXN0SXRlbUV2YWx1YXRpb25Dcml0ZXJpYUNvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrLWxpc3QtaXRlbS1ldmFsdWF0aW9uLWNyaXRlcmlhLmNvbXBvbmVudCc7XHJcbiJdfQ==
|