@cuby-ui/core 0.0.320 → 0.0.322
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/README.md +24 -24
- package/components/button/button.component.d.ts +2 -2
- package/components/notification/notification.component.d.ts +2 -2
- 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/directives/tooltip/tooltip.component.d.ts +1 -1
- package/esm2022/animations/animations.mjs +1 -1
- package/esm2022/classes/accessors.mjs +1 -1
- package/esm2022/classes/driver.mjs +1 -1
- package/esm2022/classes/index.mjs +1 -1
- package/esm2022/classes/vehicle.mjs +1 -1
- package/esm2022/components/accordion/accordion-item/accordion-item.component.mjs +3 -3
- package/esm2022/components/accordion/accordion-item/accordion-item.options.mjs +1 -1
- package/esm2022/components/accordion/accordion.component.mjs +3 -3
- package/esm2022/components/accordion/accordion.directive.mjs +1 -1
- package/esm2022/components/accordion/accordion.module.mjs +1 -1
- package/esm2022/components/accordion/index.mjs +1 -1
- package/esm2022/components/alert/alert.component.mjs +3 -3
- package/esm2022/components/alert/alert.interfaces.mjs +1 -1
- package/esm2022/components/alert/alert.module.mjs +1 -1
- package/esm2022/components/alert/alert.service.mjs +1 -1
- package/esm2022/components/alert/alert.tokens.mjs +1 -1
- package/esm2022/components/alert/alert.types.mjs +1 -1
- package/esm2022/components/alert/alerts.component.mjs +3 -3
- package/esm2022/components/alert/index.mjs +1 -1
- package/esm2022/components/badge/badge.component.mjs +3 -3
- package/esm2022/components/badge/badge.module.mjs +1 -1
- package/esm2022/components/badge/badge.options.mjs +1 -1
- package/esm2022/components/badge/index.mjs +1 -1
- package/esm2022/components/banner/banner.component.mjs +3 -3
- package/esm2022/components/banner/banner.module.mjs +1 -1
- package/esm2022/components/banner/banner.options.mjs +1 -1
- package/esm2022/components/banner/index.mjs +1 -1
- package/esm2022/components/breadcrumbs/breadcrumb/breadcrumb.component.mjs +3 -3
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
- package/esm2022/components/breadcrumbs/breadcrumbs.module.mjs +1 -1
- package/esm2022/components/breadcrumbs/index.mjs +1 -1
- package/esm2022/components/button/button.component.mjs +3 -3
- package/esm2022/components/button/button.module.mjs +1 -1
- package/esm2022/components/button/button.options.mjs +1 -1
- package/esm2022/components/button/index.mjs +1 -1
- package/esm2022/components/button-group/button-group.component.mjs +3 -3
- package/esm2022/components/button-group/button-group.module.mjs +1 -1
- package/esm2022/components/button-group/index.mjs +1 -1
- package/esm2022/components/card-wrapper/card-wrapper.component.mjs +3 -3
- package/esm2022/components/card-wrapper/index.mjs +1 -1
- package/esm2022/components/checkbox/checkbox.component.mjs +1 -1
- package/esm2022/components/checkbox/checkbox.module.mjs +1 -1
- package/esm2022/components/checkbox/index.mjs +1 -1
- package/esm2022/components/content-wrapper/content-wrapper.component.mjs +3 -3
- package/esm2022/components/content-wrapper/index.mjs +1 -1
- package/esm2022/components/context-menu/context-menu.component.mjs +3 -3
- package/esm2022/components/context-menu/context-menu.module.mjs +1 -1
- package/esm2022/components/context-menu/index.mjs +1 -1
- package/esm2022/components/dialog/dialog-actions/dialog-actions.component.mjs +3 -3
- package/esm2022/components/dialog/dialog-header/dialog-header.component.mjs +3 -3
- package/esm2022/components/dialog/dialog.component.mjs +3 -3
- package/esm2022/components/dialog/dialog.interfaces.mjs +1 -1
- package/esm2022/components/dialog/dialog.module.mjs +1 -1
- package/esm2022/components/dialog/dialog.service.mjs +1 -1
- package/esm2022/components/dialog/dialog.tokens.mjs +1 -1
- package/esm2022/components/dialog/dialogs.component.mjs +3 -3
- package/esm2022/components/dialog/index.mjs +1 -1
- package/esm2022/components/dropdown/dropdown.interfaces.mjs +1 -1
- package/esm2022/components/dropdown/index.mjs +1 -1
- package/esm2022/components/empty-state/empty-state.component.mjs +3 -3
- package/esm2022/components/empty-state/index.mjs +1 -1
- package/esm2022/components/form-field/form-field.component.mjs +3 -3
- package/esm2022/components/form-field/form-field.module.mjs +1 -1
- package/esm2022/components/form-field/index.mjs +1 -1
- package/esm2022/components/ghost-input/ghost-input.component.mjs +1 -1
- package/esm2022/components/ghost-input/index.mjs +1 -1
- package/esm2022/components/hint/hint.component.mjs +3 -3
- package/esm2022/components/hint/hint.module.mjs +1 -1
- package/esm2022/components/hint/index.mjs +1 -1
- package/esm2022/components/icon-button/icon-button.component.mjs +3 -3
- package/esm2022/components/icon-button/icon-button.module.mjs +1 -1
- package/esm2022/components/icon-button/index.mjs +1 -1
- package/esm2022/components/index.mjs +1 -1
- package/esm2022/components/input-number/index.mjs +1 -1
- package/esm2022/components/input-number/input-number.component.mjs +3 -3
- package/esm2022/components/input-number/input-number.module.mjs +1 -1
- package/esm2022/components/input-password/index.mjs +1 -1
- package/esm2022/components/input-password/input-password.component.mjs +3 -3
- package/esm2022/components/input-password/input-password.module.mjs +1 -1
- package/esm2022/components/input-text/index.mjs +1 -1
- package/esm2022/components/input-text/input-text.component.mjs +3 -3
- package/esm2022/components/input-text/input-text.module.mjs +1 -1
- package/esm2022/components/input-time/index.mjs +1 -1
- package/esm2022/components/input-time/input-time.component.mjs +3 -3
- package/esm2022/components/input-time/input-time.module.mjs +1 -1
- package/esm2022/components/input-time/input-time.options.mjs +1 -1
- package/esm2022/components/label/index.mjs +1 -1
- package/esm2022/components/label/label.component.mjs +3 -3
- package/esm2022/components/label/label.module.mjs +1 -1
- package/esm2022/components/layout/index.mjs +1 -1
- package/esm2022/components/layout/layout.component.mjs +3 -3
- package/esm2022/components/letter-box/index.mjs +1 -1
- package/esm2022/components/letter-box/letter-box.component.mjs +3 -3
- package/esm2022/components/letter-box/letter-box.interfaces.mjs +1 -1
- package/esm2022/components/notification/index.mjs +1 -1
- package/esm2022/components/notification/notification.component.mjs +3 -3
- package/esm2022/components/notification/notification.module.mjs +1 -1
- package/esm2022/components/notification/notification.options.mjs +1 -1
- package/esm2022/components/radio/index.mjs +1 -1
- package/esm2022/components/radio/radio.component.mjs +1 -1
- package/esm2022/components/radio/radio.module.mjs +1 -1
- package/esm2022/components/render-dynamic-components/index.mjs +1 -1
- package/esm2022/components/render-dynamic-components/render-dynamic-components.component.mjs +3 -3
- package/esm2022/components/render-dynamic-components/render-dynamic-components.options.mjs +1 -1
- package/esm2022/components/render-dynamic-components/render-dynamic-components.service.mjs +1 -1
- package/esm2022/components/root/index.mjs +1 -1
- package/esm2022/components/root/root.component.mjs +3 -3
- package/esm2022/components/root/root.module.mjs +1 -1
- package/esm2022/components/select/index.mjs +1 -1
- package/esm2022/components/select/select.component.mjs +3 -3
- package/esm2022/components/select/select.module.mjs +1 -1
- package/esm2022/components/sidebar/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-container/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-container/sidebar-container.component.mjs +3 -3
- package/esm2022/components/sidebar/sidebar-header/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-header/sidebar-header.component.mjs +3 -3
- package/esm2022/components/sidebar/sidebar-navigation/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-navigation/sidebar-navigation.component.mjs +3 -3
- package/esm2022/components/sidebar/sidebar-navigation-container/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-navigation-container/sidebar-navigation-container.component.mjs +3 -3
- package/esm2022/components/sidebar/sidebar-navigation-item/index.mjs +1 -1
- package/esm2022/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.mjs +3 -3
- package/esm2022/components/sidebar/sidebar.options.mjs +1 -1
- package/esm2022/components/sidebar/sidebar.service.mjs +1 -1
- package/esm2022/components/svg/index.mjs +1 -1
- package/esm2022/components/svg/svg.component.mjs +3 -3
- package/esm2022/components/svg/svg.module.mjs +1 -1
- package/esm2022/components/tabs/index.mjs +1 -1
- package/esm2022/components/tabs/tab/tab.component.mjs +3 -3
- package/esm2022/components/tabs/tabs.component.mjs +3 -3
- package/esm2022/components/tabs/tabs.module.mjs +1 -1
- package/esm2022/components/textarea/index.mjs +1 -1
- package/esm2022/components/textarea/textarea.component.mjs +1 -1
- package/esm2022/components/textarea/textarea.module.mjs +1 -1
- package/esm2022/components/toggle/index.mjs +1 -1
- package/esm2022/components/toggle/toggle.component.mjs +1 -1
- package/esm2022/components/toggle/toggle.module.mjs +1 -1
- package/esm2022/directives/index.mjs +1 -1
- package/esm2022/directives/text-field-controller/index.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-controller.module.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-controller.provider.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-icon-left.directive.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-id.directive.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-is-error.directive.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-placeholder.directive.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field-size.directive.mjs +1 -1
- package/esm2022/directives/text-field-controller/text-field.controller.mjs +1 -1
- package/esm2022/directives/tooltip/index.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-driver.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-host.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-hover.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-manual.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-options.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-overflow.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-pointer.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-position.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip-unstyled.component.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip.component.mjs +13 -13
- package/esm2022/directives/tooltip/tooltip.directive.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip.providers.mjs +1 -1
- package/esm2022/directives/tooltip/tooltip.service.mjs +1 -1
- package/esm2022/directives/tooltip/tooltips.component.mjs +3 -3
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +3 -3
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +1 -1
- package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +3 -3
- package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +3 -3
- package/esm2022/editor/components/marker-select/marker-select.component.mjs +3 -3
- package/esm2022/editor/config/custom-elements.mjs +1 -1
- package/esm2022/editor/editor.component.mjs +3 -3
- package/esm2022/editor/interfaces/angular-element.mjs +1 -1
- package/esm2022/editor/interfaces/custom-element.mjs +1 -1
- package/esm2022/editor/tools/combined-text-block.tool.mjs +1 -1
- package/esm2022/editor/tools/role-marker.tool.mjs +3 -3
- package/esm2022/editor/tools/tool-marker.tool.mjs +1 -1
- package/esm2022/editor/utils/copy-text-to-clipboard.mjs +1 -1
- package/esm2022/editor/utils/url.validator.mjs +1 -1
- package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +3 -3
- package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +3 -3
- package/esm2022/editor/widgets/editor-modal/index.mjs +1 -1
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +1 -1
- package/esm2022/editor/widgets/index.mjs +1 -1
- package/esm2022/index.mjs +1 -1
- package/esm2022/interceptors/auth.interceptor.mjs +1 -1
- package/esm2022/interceptors/error-handler.interceptor.mjs +1 -1
- package/esm2022/interceptors/x-ndjson.interceptor.mjs +1 -1
- package/esm2022/interfaces/context-menu-item.mjs +1 -1
- package/esm2022/interfaces/image.mjs +2 -0
- package/esm2022/interfaces/index.mjs +2 -1
- package/esm2022/interfaces/option.mjs +1 -1
- package/esm2022/providers/auth.options.mjs +1 -1
- package/esm2022/providers/auth.provider.mjs +1 -1
- package/esm2022/providers/index.mjs +1 -1
- package/esm2022/services/auth.service.mjs +1 -1
- package/esm2022/services/browser-auth.service.mjs +1 -1
- package/esm2022/services/index.mjs +1 -1
- package/esm2022/services/loader.options.mjs +1 -1
- package/esm2022/services/mobile-auth.service.mjs +1 -1
- package/esm2022/services/position.service.mjs +1 -1
- package/esm2022/services/theme.options.mjs +1 -1
- package/esm2022/services/theme.service.mjs +1 -1
- package/esm2022/services/token.options.mjs +1 -1
- package/esm2022/services/token.service.mjs +1 -1
- package/esm2022/services/visual-viewport.service.mjs +1 -1
- package/esm2022/tokens/animations-speed.mjs +1 -1
- package/esm2022/tokens/index.mjs +1 -1
- package/esm2022/tokens/reduced-motion.mjs +1 -1
- package/esm2022/tokens/viewport.mjs +1 -1
- package/esm2022/types/appearance.mjs +1 -1
- package/esm2022/types/hint-type.mjs +1 -1
- package/esm2022/types/index.mjs +1 -1
- package/esm2022/types/point.mjs +1 -1
- package/esm2022/types/portal-item.mjs +1 -1
- package/esm2022/types/position.mjs +1 -1
- package/esm2022/types/resizing.mjs +1 -1
- package/esm2022/types/shape.mjs +1 -1
- package/esm2022/types/size.mjs +1 -1
- package/esm2022/types/status.mjs +1 -1
- package/esm2022/utils/default-validators/create-default-validators.mjs +1 -1
- package/esm2022/utils/default-validators/create-default-validators.options.mjs +1 -1
- package/esm2022/utils/default-validators/extra-spaces.options.mjs +1 -1
- package/esm2022/utils/default-validators/extra-spaces.validators.mjs +1 -1
- package/esm2022/utils/default-validators/index.mjs +1 -1
- package/esm2022/utils/format/index.mjs +1 -1
- package/esm2022/utils/format/remove-spaces.mjs +1 -1
- package/esm2022/utils/format/replace.mjs +1 -1
- package/esm2022/utils/index.mjs +1 -1
- package/esm2022/utils/miscellaneous/index.mjs +1 -1
- package/esm2022/utils/miscellaneous/is-obscured.mjs +1 -1
- package/esm2022/utils/miscellaneous/override-options.mjs +1 -1
- package/esm2022/utils/miscellaneous/to-animation-options.mjs +1 -1
- package/esm2022/widgets/categories/components/categories-list/categories-list.component.mjs +3 -3
- package/esm2022/widgets/categories/components/category-form/category-form.component.mjs +3 -3
- package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +3 -3
- package/esm2022/widgets/categories/components/create-category-item/create-category-item.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/checklist-block.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/checklist-block.options.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list/checklist-block-list.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-card/checklist-block-list-item-action-card.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-card/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/checklist-block-list-item-action-with-verification.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-with-verification/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/checklist-block-list-item-action-without-verification.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-action-without-verification/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/checklist-block-list-item-container.options.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-container/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation/checklist-block-list-item-evaluation.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-list-item-evaluation-criteria/checklist-block-list-item-evaluation-criteria.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/checklist-block-title-control/checklist-block-title-control.component.mjs +3 -3
- package/esm2022/widgets/checklist-block/components/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/index.mjs +1 -1
- package/esm2022/widgets/checklist-block/services/checklist-block.service.mjs +1 -1
- package/esm2022/widgets/checklist-block/services/index.mjs +1 -1
- package/esm2022/widgets/criterion-info/criterion-info.component.mjs +137 -0
- package/esm2022/widgets/criterion-info/index.mjs +2 -0
- package/esm2022/widgets/criterion-info-form/criterion-info-form.component.mjs +147 -0
- package/esm2022/widgets/criterion-info-form/criterion-info-form.options.mjs +2 -0
- package/esm2022/widgets/criterion-info-form/index.mjs +2 -0
- package/esm2022/widgets/criterion-readonly-info/criterion-readonly-info.component.mjs +72 -0
- package/esm2022/widgets/criterion-readonly-info/index.mjs +2 -0
- package/esm2022/widgets/general-control-error-hint/general-control-error-hint.component.mjs +3 -3
- package/esm2022/widgets/general-control-error-hint/index.mjs +1 -1
- package/esm2022/widgets/index.mjs +2 -2
- package/esm2022/widgets/instruction-info/index.mjs +2 -0
- package/esm2022/widgets/instruction-info/instruction-info.component.mjs +147 -0
- package/esm2022/widgets/instruction-info-form/index.mjs +2 -0
- package/esm2022/widgets/instruction-info-form/instruction-info-form.component.mjs +153 -0
- package/esm2022/widgets/instruction-info-form/instruction-info-form.options.mjs +2 -0
- package/esm2022/widgets/instruction-readonly-info/index.mjs +2 -0
- package/esm2022/widgets/instruction-readonly-info/instruction-readonly-info.component.mjs +72 -0
- package/esm2022/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.mjs +40 -0
- package/esm2022/widgets/utility-modal/components/criterion-modal-create/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/index.mjs +5 -0
- package/esm2022/widgets/utility-modal/components/instruction-modal-create/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.mjs +40 -0
- package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.mjs +40 -0
- package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.mjs +40 -0
- package/esm2022/widgets/utility-modal/components/readonly-utility-modal/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.mjs +42 -0
- package/esm2022/widgets/utility-modal/components/utility-modal-create/index.mjs +2 -0
- package/esm2022/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.mjs +55 -0
- package/esm2022/widgets/utility-modal/index.mjs +4 -0
- package/esm2022/widgets/utility-modal/utility-modal.component.mjs +22 -0
- package/esm2022/widgets/utility-modal/utility-modal.options.mjs +3 -0
- package/esm2022/widgets/utility-readonly-thumbnail/index.mjs +2 -0
- package/esm2022/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.mjs +15 -0
- package/esm2022/widgets/utility-thumbnail/index.mjs +2 -0
- package/esm2022/widgets/utility-thumbnail/utility-thumbnail.component.mjs +94 -0
- package/fesm2022/cuby-ui-core.mjs +1120 -373
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/fonts/Inter-Bold.svg +25443 -25443
- package/fonts/Inter-Medium.svg +25400 -25400
- package/fonts/Inter-Regular.svg +24341 -24341
- package/fonts/Inter-SemiBold.svg +25459 -25459
- package/interfaces/image.d.ts +5 -0
- package/interfaces/index.d.ts +1 -0
- package/package.json +4 -4
- package/providers/auth.options.d.ts +1 -1
- package/styles/fonts.scss +51 -51
- package/styles/global.scss +10 -10
- package/styles/mixins/buttons.scss +13 -13
- package/styles/mixins/flex.scss +21 -21
- package/styles/mixins/headings.scss +115 -115
- package/styles/mixins/inputs.scss +91 -91
- package/styles/mixins/lists.scss +42 -42
- package/styles/mixins/paddings.scss +35 -35
- package/styles/mixins/shadows.scss +38 -38
- package/styles/mixins/texts.scss +225 -225
- package/styles/theme.scss +420 -412
- package/styles/variables/colors.scss +281 -277
- package/widgets/categories/components/category-item/category-item.component.d.ts +3 -3
- package/widgets/criterion-info/criterion-info.component.d.ts +43 -0
- package/widgets/criterion-info/index.d.ts +1 -0
- package/widgets/criterion-info-form/criterion-info-form.component.d.ts +39 -0
- package/widgets/criterion-info-form/criterion-info-form.options.d.ts +7 -0
- package/widgets/criterion-info-form/index.d.ts +2 -0
- package/widgets/criterion-readonly-info/criterion-readonly-info.component.d.ts +26 -0
- package/widgets/criterion-readonly-info/index.d.ts +1 -0
- package/widgets/index.d.ts +1 -1
- package/widgets/instruction-info/index.d.ts +1 -0
- package/widgets/instruction-info/instruction-info.component.d.ts +45 -0
- package/widgets/instruction-info-form/index.d.ts +2 -0
- package/widgets/{utility-info/utility-info.component.d.ts → instruction-info-form/instruction-info-form.component.d.ts} +12 -23
- package/widgets/{utility-info/utility-info.options.d.ts → instruction-info-form/instruction-info-form.options.d.ts} +3 -3
- package/widgets/instruction-readonly-info/index.d.ts +1 -0
- package/widgets/instruction-readonly-info/instruction-readonly-info.component.d.ts +26 -0
- package/widgets/utility-modal/components/criterion-modal-create/criterion-modal-create.component.d.ts +18 -0
- package/widgets/utility-modal/components/criterion-modal-create/index.d.ts +1 -0
- package/widgets/utility-modal/components/index.d.ts +4 -0
- package/widgets/utility-modal/components/instruction-modal-create/index.d.ts +1 -0
- package/widgets/utility-modal/components/instruction-modal-create/instruction-modal-create.component.d.ts +18 -0
- package/widgets/utility-modal/components/readonly-criterion-modal/index.d.ts +1 -0
- package/widgets/utility-modal/components/readonly-criterion-modal/readonly-criterion-modal.component.d.ts +16 -0
- package/widgets/utility-modal/components/readonly-instruction-modal/index.d.ts +1 -0
- package/widgets/utility-modal/components/readonly-instruction-modal/readonly-instruction-modal.component.d.ts +16 -0
- package/widgets/utility-modal/components/readonly-utility-modal/index.d.ts +1 -0
- package/widgets/utility-modal/components/readonly-utility-modal/readonly-utility-modal.component.d.ts +18 -0
- package/widgets/utility-modal/components/utility-modal-create/index.d.ts +1 -0
- package/widgets/utility-modal/components/utility-modal-create/utility-modal-create.component.d.ts +25 -0
- package/widgets/utility-modal/index.d.ts +3 -0
- package/widgets/utility-modal/utility-modal.component.d.ts +10 -0
- package/widgets/utility-modal/utility-modal.options.d.ts +12 -0
- package/widgets/utility-readonly-thumbnail/index.d.ts +1 -0
- package/widgets/utility-readonly-thumbnail/utility-readonly-thumbnail.component.d.ts +8 -0
- package/widgets/utility-thumbnail/index.d.ts +1 -0
- package/widgets/utility-thumbnail/utility-thumbnail.component.d.ts +21 -0
- package/esm2022/widgets/utility-info/index.mjs +0 -2
- package/esm2022/widgets/utility-info/utility-info.component.mjs +0 -249
- package/esm2022/widgets/utility-info/utility-info.options.mjs +0 -2
- package/widgets/utility-info/index.d.ts +0 -2
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, effect, inject, input, output, signal } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
4
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
5
|
+
import { debounceTime, map, pairwise, startWith } from 'rxjs';
|
|
6
|
+
import { CuiFrameApiService } from '@cuby-ui/api';
|
|
7
|
+
import { CuiIdService, takeCaptureFromVideo } from '@cuby-ui/cdk';
|
|
8
|
+
import { CuiAccordionModule, CuiButtonModule, CuiFormFieldModule, CuiHintModule, CuiInputModule, CuiLabelModule } from '../../components';
|
|
9
|
+
import { cuiCreateDefaultValidators } from '../../utils';
|
|
10
|
+
import { CuiGeneralControlErrorHintComponent } from '../general-control-error-hint';
|
|
11
|
+
import { CuiEditorBlockComponent } from '../../editor';
|
|
12
|
+
import { CuiUtilityThumbnailComponent } from '../utility-thumbnail';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "../../components/form-field/form-field.component";
|
|
15
|
+
import * as i2 from "../../components/input-text/input-text.component";
|
|
16
|
+
import * as i3 from "../../directives/text-field-controller/text-field-id.directive";
|
|
17
|
+
import * as i4 from "../../directives/text-field-controller/text-field-placeholder.directive";
|
|
18
|
+
import * as i5 from "../../directives/text-field-controller/text-field-is-error.directive";
|
|
19
|
+
import * as i6 from "../../components/label/label.component";
|
|
20
|
+
import * as i7 from "@angular/forms";
|
|
21
|
+
export class CuiCriterionInfoFormComponent {
|
|
22
|
+
get controls() {
|
|
23
|
+
return this.form.controls;
|
|
24
|
+
}
|
|
25
|
+
get isTitleError() {
|
|
26
|
+
return this.controls.title.invalid && this.controls.title.dirty;
|
|
27
|
+
}
|
|
28
|
+
constructor() {
|
|
29
|
+
this.destroy = inject(DestroyRef);
|
|
30
|
+
this.formBuilder = inject(NonNullableFormBuilder);
|
|
31
|
+
this.frameApiService = inject(CuiFrameApiService);
|
|
32
|
+
this.cuiIdService = inject(CuiIdService);
|
|
33
|
+
this.CONTROL_DELAY = 500;
|
|
34
|
+
this.titleId = this.cuiIdService.generate();
|
|
35
|
+
this.form = this.formBuilder.group({
|
|
36
|
+
title: this.formBuilder.control('', cuiCreateDefaultValidators({ asyncDelay: this.CONTROL_DELAY })),
|
|
37
|
+
});
|
|
38
|
+
this.heading = null;
|
|
39
|
+
this.isDescriptionEmpty = signal(false);
|
|
40
|
+
this.editorId = signal(null);
|
|
41
|
+
this.thumbnail = signal(null);
|
|
42
|
+
this.title = input.required();
|
|
43
|
+
this.framerId = input.required();
|
|
44
|
+
this.baseResourceUrl = input.required();
|
|
45
|
+
this.config = input.required();
|
|
46
|
+
this.formChanged = output();
|
|
47
|
+
this.isFormValidChanged = output();
|
|
48
|
+
this.initUtilityEffect();
|
|
49
|
+
}
|
|
50
|
+
onEditorEmpty(isEmpty) {
|
|
51
|
+
this.isDescriptionEmpty.set(isEmpty);
|
|
52
|
+
this.isFormValidChanged.emit(this.checkFormValidation());
|
|
53
|
+
}
|
|
54
|
+
initUtilityEffect() {
|
|
55
|
+
const effectRef = effect(() => {
|
|
56
|
+
const title = this.title();
|
|
57
|
+
if (!title) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
this.initFormSubscriptions();
|
|
61
|
+
this.initFrameFragments();
|
|
62
|
+
effectRef.destroy();
|
|
63
|
+
});
|
|
64
|
+
}
|
|
65
|
+
initFormSubscriptions() {
|
|
66
|
+
this.form.setValue({ title: this.title() }, { emitEvent: false });
|
|
67
|
+
this.form.statusChanges
|
|
68
|
+
.pipe(takeUntilDestroyed(this.destroy))
|
|
69
|
+
.subscribe(() => this.isFormValidChanged.emit(this.checkFormValidation()));
|
|
70
|
+
this.form.valueChanges
|
|
71
|
+
.pipe(takeUntilDestroyed(this.destroy), startWith(this.form.value), pairwise(), debounceTime(this.CONTROL_DELAY), map(([prev, current]) => this.compareFormValues([prev, current])))
|
|
72
|
+
.subscribe((value) => {
|
|
73
|
+
if (!Object.keys(value).length) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
this.formChanged.emit(value);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
initFrameFragments() {
|
|
80
|
+
const frameId = this.framerId();
|
|
81
|
+
if (!frameId) {
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this.frameApiService.getFrame(frameId).subscribe((frame) => {
|
|
85
|
+
frame.fragments.forEach((fragment) => {
|
|
86
|
+
if (fragment.type === "J_TEXT" /* FragmentType.jText */) {
|
|
87
|
+
this.editorId.set(fragment?.id);
|
|
88
|
+
}
|
|
89
|
+
if (fragment.type === "RESOURCE_FILE" /* FragmentType.resourceFile */) {
|
|
90
|
+
this.setResourceFile(fragment);
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
compareFormValues([prevGroup, currentGroup]) {
|
|
96
|
+
const keys = Object.keys(currentGroup);
|
|
97
|
+
const changedFields = {};
|
|
98
|
+
keys.forEach((key) => {
|
|
99
|
+
const prev = prevGroup[key];
|
|
100
|
+
const current = currentGroup[key];
|
|
101
|
+
if (prev === current || this.controls[key].invalid) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
changedFields[key] = current;
|
|
105
|
+
});
|
|
106
|
+
return changedFields;
|
|
107
|
+
}
|
|
108
|
+
setResourceFile(resource) {
|
|
109
|
+
const url = this.baseResourceUrl() + resource.fileId;
|
|
110
|
+
this.thumbnail.set(resource);
|
|
111
|
+
if (!url || resource?.name?.split('.').pop() !== 'mp4') {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.getCaptureFromVideo(url);
|
|
115
|
+
}
|
|
116
|
+
getCaptureFromVideo(url, file) {
|
|
117
|
+
takeCaptureFromVideo(url).then((capture) => {
|
|
118
|
+
this.thumbnail.update((prev) => ({
|
|
119
|
+
...prev,
|
|
120
|
+
name: (file?.name ?? prev?.name),
|
|
121
|
+
resource: capture
|
|
122
|
+
}));
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
checkFormValidation() {
|
|
126
|
+
return !this.isDescriptionEmpty() && !this.form.invalid;
|
|
127
|
+
}
|
|
128
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionInfoFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
129
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCriterionInfoFormComponent, isStandalone: true, selector: "cui-criterion-info-form", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"titleId\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.title\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-utility-thumbnail\r\n [baseResourceUrl]=\"baseResourceUrl()\"\r\n [framerId]=\"framerId()\"\r\n [(thumbnail)]=\"thumbnail\"\r\n />\r\n\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n />\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"], dependencies: [{ kind: "ngmodule", type: CuiAccordionModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiEditorBlockComponent, selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiInputModule }, { kind: "component", type: i2.CuiInputTextComponent, selector: "cui-input-text" }, { kind: "directive", type: i3.CuiTextFieldIdDirective, selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i4.CuiTextFieldPlaceholderDirective, selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i5.CuiTextFieldIsErrorDirective, selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i6.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: CuiUtilityThumbnailComponent, selector: "cui-utility-thumbnail", inputs: ["thumbnail", "framerId", "baseResourceUrl"], outputs: ["thumbnailChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
130
|
+
}
|
|
131
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionInfoFormComponent, decorators: [{
|
|
132
|
+
type: Component,
|
|
133
|
+
args: [{ selector: 'cui-criterion-info-form', imports: [
|
|
134
|
+
CuiAccordionModule,
|
|
135
|
+
CuiButtonModule,
|
|
136
|
+
CuiEditorBlockComponent,
|
|
137
|
+
CuiFormFieldModule,
|
|
138
|
+
CuiGeneralControlErrorHintComponent,
|
|
139
|
+
CuiHintModule,
|
|
140
|
+
CuiInputModule,
|
|
141
|
+
CuiLabelModule,
|
|
142
|
+
CuiUtilityThumbnailComponent,
|
|
143
|
+
ReactiveFormsModule,
|
|
144
|
+
TranslocoDirective
|
|
145
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [isRequired]=\"true\"\r\n [for]=\"titleId\"\r\n >\r\n {{ t('TITLE') }}\r\n </label>\r\n\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint\r\n [control]=\"form.controls.title\"\r\n [isVisible]=\"true\"\r\n />\r\n }\r\n </cui-form-field>\r\n\r\n <cui-utility-thumbnail\r\n [baseResourceUrl]=\"baseResourceUrl()\"\r\n [framerId]=\"framerId()\"\r\n [(thumbnail)]=\"thumbnail\"\r\n />\r\n\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n />\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}\n"] }]
|
|
146
|
+
}], ctorParameters: () => [] });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaW9uLWluZm8tZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY3JpdGVyaW9uLWluZm8tZm9ybS9jcml0ZXJpb24taW5mby1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jcml0ZXJpb24taW5mby1mb3JtL2NyaXRlcmlvbi1pbmZvLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlELE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxjQUFjLENBQUM7QUFFaEUsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVsRSxPQUFPLEVBQ0gsa0JBQWtCLEVBQ2xCLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxNQUFNLCtCQUEr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QUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgb3V0cHV0LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xyXG5pbXBvcnQgeyBOb25OdWxsYWJsZUZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIG1hcCwgcGFpcndpc2UsIHN0YXJ0V2l0aCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRnJhZ21lbnQgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlGcmFtZUFwaVNlcnZpY2UsIEZyYWdtZW50VHlwZSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBDdWlJZFNlcnZpY2UsIHRha2VDYXB0dXJlRnJvbVZpZGVvIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDdWlIaW50TW9kdWxlLFxyXG4gICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICBDdWlMYWJlbE1vZHVsZVxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vZWRpdG9yJztcclxuaW1wb3J0IHsgQ3VpRWRpdG9yQmxvY2tDb21wb25lbnQgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbGl0eS10aHVtYm5haWwnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlDcml0ZXJpb25Gb3JtR3JvdXAsIEN1aUNyaXRlcmlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuL2NyaXRlcmlvbi1pbmZvLWZvcm0ub3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLWNyaXRlcmlvbi1pbmZvLWZvcm0nLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEN1aUFjY29yZGlvbk1vZHVsZSxcclxuICAgICAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQ3VpRWRpdG9yQmxvY2tDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRm9ybUZpZWxkTW9kdWxlLFxyXG4gICAgICAgIEN1aUdlbmVyYWxDb250cm9sRXJyb3JIaW50Q29tcG9uZW50LFxyXG4gICAgICAgIEN1aUhpbnRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICAgICAgQ3VpTGFiZWxNb2R1bGUsXHJcbiAgICAgICAgQ3VpVXRpbGl0eVRodW1ibmFpbENvbXBvbmVudCxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZVxyXG4gICAgXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY3JpdGVyaW9uLWluZm8tZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY3JpdGVyaW9uLWluZm8tZm9ybS5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpQ3JpdGVyaW9uSW5mb0Zvcm1Db21wb25lbnQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZnJhbWVBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aUZyYW1lQXBpU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUlkU2VydmljZSA9IGluamVjdChDdWlJZFNlcnZpY2UpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBDT05UUk9MX0RFTEFZID0gNTAwO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB0aXRsZUlkID0gdGhpcy5jdWlJZFNlcnZpY2UuZ2VuZXJhdGUoKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBmb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cDxDdWlDcml0ZXJpb25Gb3JtR3JvdXA+KHtcclxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKCcnLCBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyh7IGFzeW5jRGVsYXk6IHRoaXMuQ09OVFJPTF9ERUxBWSB9KSksXHJcbiAgICB9KTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgaGVhZGluZzogQ3VpTnVsbGFibGU8c3RyaW5nPiA9IG51bGw7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzRGVzY3JpcHRpb25FbXB0eSA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZWRpdG9ySWQgPSBzaWduYWw8Q3VpTnVsbGFibGU8c3RyaW5nPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJuYWlsID0gc2lnbmFsPEN1aU51bGxhYmxlPFJlc291cmNlRnJhZ21lbnQ+PihudWxsKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZnJhbWVySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZVJlc291cmNlVXJsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybUNoYW5nZWQgPSBvdXRwdXQ8UGFydGlhbDxDdWlDcml0ZXJpb25Gb3JtVmFsdWVzPj4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBpc0Zvcm1WYWxpZENoYW5nZWQgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xzKCk6IEN1aUNyaXRlcmlvbkZvcm1Hcm91cCB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuZm9ybS5jb250cm9scztcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzVGl0bGVFcnJvcigpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5jb250cm9scy50aXRsZS5pbnZhbGlkICYmIHRoaXMuY29udHJvbHMudGl0bGUuZGlydHk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VXRpbGl0eUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkVkaXRvckVtcHR5KGlzRW1wdHk6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzRGVzY3JpcHRpb25FbXB0eS5zZXQoaXNFbXB0eSk7XHJcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZENoYW5nZWQuZW1pdCh0aGlzLmNoZWNrRm9ybVZhbGlkYXRpb24oKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VXRpbGl0eUVmZmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBlZmZlY3RSZWYgPSBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCB0aXRsZSA9IHRoaXMudGl0bGUoKTtcclxuXHJcbiAgICAgICAgICAgIGlmICghdGl0bGUpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5pbml0Rm9ybVN1YnNjcmlwdGlvbnMoKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0RnJhbWVGcmFnbWVudHMoKTtcclxuICAgICAgICAgICAgZWZmZWN0UmVmLmRlc3Ryb3koKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGb3JtU3Vic2NyaXB0aW9ucygpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmZvcm0uc2V0VmFsdWUoeyB0aXRsZTogdGhpcy50aXRsZSgpIH0sIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtLnN0YXR1c0NoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5pc0Zvcm1WYWxpZENoYW5nZWQuZW1pdCh0aGlzLmNoZWNrRm9ybVZhbGlkYXRpb24oKSkpO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSksXHJcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtLnZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHBhaXJ3aXNlKCksXHJcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy5DT05UUk9MX0RFTEFZKSxcclxuICAgICAgICAgICAgICAgIG1hcCgoW3ByZXYsIGN1cnJlbnRdKSA9PiB0aGlzLmNvbXBhcmVGb3JtVmFsdWVzKFtwcmV2LCBjdXJyZW50XSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmICghT2JqZWN0LmtleXModmFsdWUpLmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICB0aGlzLmZvcm1DaGFuZ2VkLmVtaXQodmFsdWUpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGcmFtZUZyYWdtZW50cygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmcmFtZUlkID0gdGhpcy5mcmFtZXJJZCgpO1xyXG5cclxuICAgICAgICBpZiAoIWZyYW1lSWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZUFwaVNlcnZpY2UuZ2V0RnJhbWUoZnJhbWVJZCkuc3Vic2NyaWJlKChmcmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBmcmFtZS5mcmFnbWVudHMuZm9yRWFjaCgoZnJhZ21lbnQpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudC50eXBlID09PSBGcmFnbWVudFR5cGUualRleHQpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmVkaXRvcklkLnNldChmcmFnbWVudD8uaWQpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChmcmFnbWVudC50eXBlID09PSBGcmFnbWVudFR5cGUucmVzb3VyY2VGaWxlKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZXRSZXNvdXJjZUZpbGUoZnJhZ21lbnQgYXMgUmVzb3VyY2VGcmFnbWVudCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY29tcGFyZUZvcm1WYWx1ZXMoW1xyXG4gICAgICAgIHByZXZHcm91cCxcclxuICAgICAgICBjdXJyZW50R3JvdXBcclxuICAgIF06IFBhcnRpYWw8Q3VpQ3JpdGVyaW9uRm9ybVZhbHVlcz5bXSk6IFBhcnRpYWw8Q3VpQ3JpdGVyaW9uRm9ybVZhbHVlcz4ge1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjdXJyZW50R3JvdXApIGFzIChrZXlvZiBDdWlDcml0ZXJpb25Gb3JtVmFsdWVzKVtdO1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XHJcblxyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2R3JvdXBba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGN1cnJlbnRHcm91cFtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKHByZXYgPT09IGN1cnJlbnQgfHwgdGhpcy5jb250cm9sc1trZXldLmludmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2hhbmdlZEZpZWxkc1trZXldID0gY3VycmVudDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZWRGaWVsZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRSZXNvdXJjZUZpbGUocmVzb3VyY2U6IFJlc291cmNlRnJhZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VSZXNvdXJjZVVybCgpICsgcmVzb3VyY2UuZmlsZUlkITtcclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWwuc2V0KHJlc291cmNlKTtcclxuXHJcbiAgICAgICAgaWYgKCF1cmwgfHwgcmVzb3VyY2U/Lm5hbWU/LnNwbGl0KCcuJykucG9wKCkgIT09ICdtcDQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmw6IHN0cmluZywgZmlsZT86IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICB0YWtlQ2FwdHVyZUZyb21WaWRlbyh1cmwpLnRoZW4oKGNhcHR1cmUpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50aHVtYm5haWwudXBkYXRlKChwcmV2KSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgLi4ucHJldiEsXHJcbiAgICAgICAgICAgICAgICBuYW1lOiAoZmlsZT8ubmFtZSA/PyBwcmV2Py5uYW1lKSEsXHJcbiAgICAgICAgICAgICAgICByZXNvdXJjZTogY2FwdHVyZVxyXG4gICAgICAgICAgICB9KSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0Zvcm1WYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2NyaXB0aW9uRW1wdHkoKSAmJiAhdGhpcy5mb3JtLmludmFsaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiY29udGVudFwiPlxyXG4gICAgICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICBjdWlMYWJlbFxyXG4gICAgICAgICAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICBbZm9yXT1cInRpdGxlSWRcIlxyXG4gICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICB7eyB0KCdUSVRMRScpIH19XHJcbiAgICAgICAgICAgIDwvbGFiZWw+XHJcblxyXG4gICAgICAgICAgICA8Y3VpLWlucHV0LXRleHRcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJZF09XCJ0aXRsZUlkXCJcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRQbGFjZWhvbGRlcl09XCJ0KCdBRERfQV9USVRMRScpXCJcclxuICAgICAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJc0Vycm9yXT1cImlzVGl0bGVFcnJvclwiXHJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy50aXRsZVwiXHJcbiAgICAgICAgICAgIC8+XHJcblxyXG4gICAgICAgICAgICBAaWYgKGlzVGl0bGVFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgPGN1aS1nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludFxyXG4gICAgICAgICAgICAgICAgICAgIFtjb250cm9sXT1cImZvcm0uY29udHJvbHMudGl0bGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1Zpc2libGVdPVwidHJ1ZVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgPC9jdWktZm9ybS1maWVsZD5cclxuXHJcbiAgICAgICAgPGN1aS11dGlsaXR5LXRodW1ibmFpbFxyXG4gICAgICAgICAgICBbYmFzZVJlc291cmNlVXJsXT1cImJhc2VSZXNvdXJjZVVybCgpXCJcclxuICAgICAgICAgICAgW2ZyYW1lcklkXT1cImZyYW1lcklkKClcIlxyXG4gICAgICAgICAgICBbKHRodW1ibmFpbCldPVwidGh1bWJuYWlsXCJcclxuICAgICAgICAvPlxyXG5cclxuICAgICAgICBAaWYgKGVkaXRvcklkKCk7IGFzIGVkaXRvcklkKSB7XHJcbiAgICAgICAgICAgIDxjdWktZWRpdG9yLWJsb2NrXHJcbiAgICAgICAgICAgICAgICBbdGl0bGVdPVwiZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSB8fCB0aXRsZSgpXCJcclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiY29uZmlnKClcIlxyXG4gICAgICAgICAgICAgICAgW2VkaXRvcklkXT1cImVkaXRvcklkXCJcclxuICAgICAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwiZWRpdG9yXCJcclxuICAgICAgICAgICAgICAgIChlZGl0b3JFbXB0eSk9XCJvbkVkaXRvckVtcHR5KCRldmVudClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaW9uLWluZm8tZm9ybS5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL2NyaXRlcmlvbi1pbmZvLWZvcm0vY3JpdGVyaW9uLWluZm8tZm9ybS5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBDdWlDcml0ZXJpb25Gb3JtR3JvdXAge1xyXG4gICAgcmVhZG9ubHkgdGl0bGU6IEZvcm1Db250cm9sPHN0cmluZz47XHJcbn1cclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgQ3VpQ3JpdGVyaW9uRm9ybVZhbHVlcyB7XHJcbiAgICByZWFkb25seSB0aXRsZTogc3RyaW5nO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCriterionInfoFormComponent } from './criterion-info-form.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY3JpdGVyaW9uLWluZm8tZm9ybS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUNyaXRlcmlvbkluZm9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jcml0ZXJpb24taW5mby1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEN1aUNyaXRlcmlvbkZvcm1Hcm91cCwgQ3VpQ3JpdGVyaW9uRm9ybVZhbHVlcyB9IGZyb20gJy4vY3JpdGVyaW9uLWluZm8tZm9ybS5vcHRpb25zJztcclxuIl19
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
3
|
+
import { CuiFrameApiService } from '@cuby-ui/api';
|
|
4
|
+
import { CuiEditorComponent } from '../../editor';
|
|
5
|
+
import { CuiUtilityReadonlyThumbnailComponent } from '../utility-readonly-thumbnail';
|
|
6
|
+
import { CuiEmptyStateComponent } from '../../components';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class CuiCriterionReadonlyInfoComponent {
|
|
9
|
+
constructor() {
|
|
10
|
+
this.hostElement = inject(ElementRef).nativeElement;
|
|
11
|
+
this.frameApiService = inject(CuiFrameApiService);
|
|
12
|
+
this.isVideo = false;
|
|
13
|
+
this.jText = signal(null);
|
|
14
|
+
this.thumbnailUrl = signal(null);
|
|
15
|
+
this.isDescriptionEmpty = computed(() => !this.jText()?.notEmpty);
|
|
16
|
+
this.framerId = input.required();
|
|
17
|
+
this.element = input(this.hostElement);
|
|
18
|
+
this.tools = input.required();
|
|
19
|
+
this.editorResourceUrl = input.required();
|
|
20
|
+
this.initConfigEffect();
|
|
21
|
+
this.initFramerIdEffect();
|
|
22
|
+
}
|
|
23
|
+
initConfigEffect() {
|
|
24
|
+
effect(() => {
|
|
25
|
+
this.editorConfig = { readOnly: true, tools: this.tools(), element: this.element() };
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
initFramerIdEffect() {
|
|
29
|
+
effect(() => {
|
|
30
|
+
const framerId = this.framerId();
|
|
31
|
+
if (!framerId) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
this.subscription?.unsubscribe();
|
|
35
|
+
this.initFrameFragments();
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
initFrameFragments() {
|
|
39
|
+
const frameId = this.framerId();
|
|
40
|
+
this.jText.set(null);
|
|
41
|
+
this.thumbnailUrl.set(null);
|
|
42
|
+
if (!frameId) {
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
const fragmentActions = {
|
|
46
|
+
["J_TEXT" /* FragmentType.jText */]: (fragment) => {
|
|
47
|
+
this.jText.set(fragment);
|
|
48
|
+
},
|
|
49
|
+
["RESOURCE_FILE" /* FragmentType.resourceFile */]: (fragment) => {
|
|
50
|
+
this.setResourceFile(fragment);
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
this.subscription = this.frameApiService.getFrame(frameId).subscribe((frame) => {
|
|
54
|
+
frame.fragments.forEach((fragment) => fragmentActions[fragment.type](fragment));
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
setResourceFile(resource) {
|
|
58
|
+
const url = `${this.editorResourceUrl()}${resource.fileId}`;
|
|
59
|
+
this.isVideo = resource?.name?.split('.').pop() === 'mp4';
|
|
60
|
+
if (!url) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
this.thumbnailUrl.set({ src: resource.fileId && url, name: resource.name || resource.type });
|
|
64
|
+
}
|
|
65
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
66
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCriterionReadonlyInfoComponent, isStandalone: true, selector: "cui-criterion-readonly-info", inputs: { framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, element: { classPropertyName: "element", publicName: "element", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (jText()) {\r\n @if (!isDescriptionEmpty()) {\r\n @if (thumbnailUrl(); as thumbnailUrl) {\r\n <cui-utility-readonly-thumbnail [thumbnailUrl]=\"thumbnailUrl\" [isVideo]=\"isVideo\" />\r\n }\r\n\r\n @if (jText()?.id; as id) {\r\n <div class=\"wrapper\">\r\n <cui-editor\r\n class=\"editor\"\r\n [editorApiId]=\"id\"\r\n [config]=\"editorConfig\"\r\n />\r\n </div>\r\n }\r\n } @else {\r\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\r\n }\r\n }\r\n</ng-container>\r\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"], dependencies: [{ kind: "component", type: CuiEditorComponent, selector: "cui-editor", inputs: ["editorApiId", "config", "requestSize"], outputs: ["editorEmpty"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: CuiUtilityReadonlyThumbnailComponent, selector: "cui-utility-readonly-thumbnail", inputs: ["thumbnailUrl", "isVideo"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
67
|
+
}
|
|
68
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCriterionReadonlyInfoComponent, decorators: [{
|
|
69
|
+
type: Component,
|
|
70
|
+
args: [{ selector: 'cui-criterion-readonly-info', imports: [CuiEditorComponent, CuiEmptyStateComponent, TranslocoDirective, CuiUtilityReadonlyThumbnailComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n @if (jText()) {\r\n @if (!isDescriptionEmpty()) {\r\n @if (thumbnailUrl(); as thumbnailUrl) {\r\n <cui-utility-readonly-thumbnail [thumbnailUrl]=\"thumbnailUrl\" [isVideo]=\"isVideo\" />\r\n }\r\n\r\n @if (jText()?.id; as id) {\r\n <div class=\"wrapper\">\r\n <cui-editor\r\n class=\"editor\"\r\n [editorApiId]=\"id\"\r\n [config]=\"editorConfig\"\r\n />\r\n </div>\r\n }\r\n } @else {\r\n <cui-empty-state [subtitle]=\"t('NO_DESCRIPTION_WAS_PROVIDED')\" />\r\n }\r\n }\r\n</ng-container>\r\n", styles: [":host{padding-top:16px;padding-right:16px;padding-left:16px;display:flex;flex-direction:column;gap:12px;height:100%;overflow:auto}.wrapper{padding:12px}.editor{display:block;height:100%;overflow:auto}\n"] }]
|
|
71
|
+
}], ctorParameters: () => [] });
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JpdGVyaW9uLXJlYWRvbmx5LWluZm8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL2NyaXRlcmlvbi1yZWFkb25seS1pbmZvL2NyaXRlcmlvbi1yZWFkb25seS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jcml0ZXJpb24tcmVhZG9ubHktaW5mby9jcml0ZXJpb24tcmVhZG9ubHktaW5mby5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBR3hELE9BQU8sRUFBRSxrQkFBa0IsRUFBZ0IsTUFBTSxjQUFjLENBQUM7QUFJaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBRWxELE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3JGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRyxNQUFNLGtCQUFrQixDQUFDOztBQVUzRCxNQUFNLE9BQU8saUNBQWlDO0lBa0IxQztRQWpCaUIsZ0JBQVcsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUMsYUFBYSxDQUFDO1FBQy9DLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFJcEQsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUdQLFVBQUssR0FBRyxNQUFNLENBQTZCLElBQUksQ0FBQyxDQUFDO1FBQ2pELGlCQUFZLEdBQUcsTUFBTSxDQUF5QixJQUFJLENBQUMsQ0FBQztRQUNwRCx1QkFBa0IsR0FB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USxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7SUFDakcsQ0FBQzsrR0E1RVEsaUNBQWlDO21HQUFqQyxpQ0FBaUMsbW5CQ3JCOUMsZ3dCQXFCQSxvUUROYyxrQkFBa0IsbUlBQUUsc0JBQXNCLDRHQUFFLGtCQUFrQixnTUFBRSxvQ0FBb0M7OzRGQU1yRyxpQ0FBaUM7a0JBUjdDLFNBQVM7K0JBQ0ksNkJBQTZCLFdBQzlCLENBQUMsa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsa0JBQWtCLEVBQUUsb0NBQW9DLENBQUMsY0FDbkcsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB0eXBlIHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB0eXBlIHsgRnJhZ21lbnQsIEpUZXh0RnJhZ21lbnQsIFJlc291cmNlRnJhZ21lbnQgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlGcmFtZUFwaVNlcnZpY2UsIEZyYWdtZW50VHlwZSB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5cclxuaW1wb3J0IHR5cGUgeyBDdWlJbWdVcmwgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzJztcclxuaW1wb3J0IHsgQ3VpRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZWRpdG9yJztcclxuaW1wb3J0IHR5cGUgeyBDdWlUb29scywgQ3VpRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vLi4vZWRpdG9yJztcclxuaW1wb3J0IHsgQ3VpVXRpbGl0eVJlYWRvbmx5VGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi4vdXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwnO1xyXG5pbXBvcnQgeyBDdWlFbXB0eVN0YXRlQ29tcG9uZW50ICB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1jcml0ZXJpb24tcmVhZG9ubHktaW5mbycsXHJcbiAgICBpbXBvcnRzOiBbQ3VpRWRpdG9yQ29tcG9uZW50LCBDdWlFbXB0eVN0YXRlQ29tcG9uZW50LCBUcmFuc2xvY29EaXJlY3RpdmUsIEN1aVV0aWxpdHlSZWFkb25seVRodW1ibmFpbENvbXBvbmVudF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NyaXRlcmlvbi1yZWFkb25seS1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9jcml0ZXJpb24tcmVhZG9ubHktaW5mby5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpQ3JpdGVyaW9uUmVhZG9ubHlJbmZvQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaG9zdEVsZW1lbnQgPSBpbmplY3QoRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZnJhbWVBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aUZyYW1lQXBpU2VydmljZSk7XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcblxyXG4gICAgcHJvdGVjdGVkIGlzVmlkZW8gPSBmYWxzZTtcclxuICAgIHByb3RlY3RlZCBlZGl0b3JDb25maWchOiBDdWlFZGl0b3JDb25maWc7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGpUZXh0ID0gc2lnbmFsPEN1aU51bGxhYmxlPEpUZXh0RnJhZ21lbnQ+PihudWxsKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSB0aHVtYm5haWxVcmwgPSBzaWduYWw8Q3VpTnVsbGFibGU8Q3VpSW1nVXJsPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNEZXNjcmlwdGlvbkVtcHR5ID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMualRleHQoKT8ubm90RW1wdHkpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBmcmFtZXJJZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBlbGVtZW50ID0gaW5wdXQ8SFRNTEVsZW1lbnQ+KHRoaXMuaG9zdEVsZW1lbnQpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xzID0gaW5wdXQucmVxdWlyZWQ8Q3VpVG9vbHM+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0Q29uZmlnRWZmZWN0KCk7XHJcbiAgICAgICAgdGhpcy5pbml0RnJhbWVySWRFZmZlY3QoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRDb25maWdFZmZlY3QoKTogdm9pZCB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb25maWcgPSB7IHJlYWRPbmx5OiB0cnVlLCB0b29sczogdGhpcy50b29scygpLCBlbGVtZW50OiB0aGlzLmVsZW1lbnQoKSB9O1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEZyYW1lcklkRWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZyYW1lcklkID0gdGhpcy5mcmFtZXJJZCgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFmcmFtZXJJZCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgdGhpcy5pbml0RnJhbWVGcmFnbWVudHMoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRGcmFtZUZyYWdtZW50cygpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmcmFtZUlkID0gdGhpcy5mcmFtZXJJZCgpO1xyXG5cclxuICAgICAgICB0aGlzLmpUZXh0LnNldChudWxsKTtcclxuICAgICAgICB0aGlzLnRodW1ibmFpbFVybC5zZXQobnVsbCk7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmcmFnbWVudEFjdGlvbnMgPSB7XHJcbiAgICAgICAgICAgIFtGcmFnbWVudFR5cGUualRleHRdOiAoZnJhZ21lbnQ6IEZyYWdtZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmpUZXh0LnNldChmcmFnbWVudCBhcyBKVGV4dEZyYWdtZW50KTtcclxuICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgW0ZyYWdtZW50VHlwZS5yZXNvdXJjZUZpbGVdOiAoZnJhZ21lbnQ6IEZyYWdtZW50KTogdm9pZCA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNldFJlc291cmNlRmlsZShmcmFnbWVudCBhcyBSZXNvdXJjZUZyYWdtZW50KTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5mcmFtZUFwaVNlcnZpY2UuZ2V0RnJhbWUoZnJhbWVJZCkuc3Vic2NyaWJlKChmcmFtZSkgPT4ge1xyXG4gICAgICAgICAgICBmcmFtZS5mcmFnbWVudHMuZm9yRWFjaCgoZnJhZ21lbnQpID0+IGZyYWdtZW50QWN0aW9uc1tmcmFnbWVudC50eXBlXShmcmFnbWVudCkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgc2V0UmVzb3VyY2VGaWxlKHJlc291cmNlOiBSZXNvdXJjZUZyYWdtZW50KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgdXJsID0gYCR7dGhpcy5lZGl0b3JSZXNvdXJjZVVybCgpfSR7cmVzb3VyY2UuZmlsZUlkfWA7XHJcblxyXG4gICAgICAgIHRoaXMuaXNWaWRlbyA9IHJlc291cmNlPy5uYW1lPy5zcGxpdCgnLicpLnBvcCgpID09PSAnbXA0JztcclxuXHJcbiAgICAgICAgaWYgKCF1cmwpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWxVcmwuc2V0KHsgc3JjOiByZXNvdXJjZS5maWxlSWQgJiYgdXJsLCBuYW1lOiByZXNvdXJjZS5uYW1lIHx8IHJlc291cmNlLnR5cGUgfSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIEBpZiAoalRleHQoKSkge1xyXG4gICAgICAgIEBpZiAoIWlzRGVzY3JpcHRpb25FbXB0eSgpKSB7XHJcbiAgICAgICAgICAgIEBpZiAodGh1bWJuYWlsVXJsKCk7IGFzIHRodW1ibmFpbFVybCkge1xyXG4gICAgICAgICAgICAgICAgPGN1aS11dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbCBbdGh1bWJuYWlsVXJsXT1cInRodW1ibmFpbFVybFwiIFtpc1ZpZGVvXT1cImlzVmlkZW9cIiAvPlxyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICBAaWYgKGpUZXh0KCk/LmlkOyBhcyBpZCkge1xyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8Y3VpLWVkaXRvclxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImVkaXRvclwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtlZGl0b3JBcGlJZF09XCJpZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnXCJcclxuICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgPGN1aS1lbXB0eS1zdGF0ZSBbc3VidGl0bGVdPVwidCgnTk9fREVTQ1JJUFRJT05fV0FTX1BST1ZJREVEJylcIiAvPlxyXG4gICAgICAgIH1cclxuICAgIH1cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCriterionReadonlyInfoComponent } from './criterion-readonly-info.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY3JpdGVyaW9uLXJlYWRvbmx5LWluZm8vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLE1BQU0scUNBQXFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlDcml0ZXJpb25SZWFkb25seUluZm9Db21wb25lbnQgfSBmcm9tICcuL2NyaXRlcmlvbi1yZWFkb25seS1pbmZvLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -12,10 +12,10 @@ export class CuiGeneralControlErrorHintComponent {
|
|
|
12
12
|
return this.isVisible() ?? (this.control().invalid && this.control().dirty);
|
|
13
13
|
}
|
|
14
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiGeneralControlErrorHintComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
15
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiGeneralControlErrorHintComponent, isStandalone: true, selector: "cui-general-control-error-hint", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "isVisible", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\n @if (isInvalid) {\n @if (control().errors; as errors) {\n <cui-hint hintType=\"error\">\n @if (errors['required']) {\n {{ t('FIELD_IS_REQUIRED') }}\n } @else if (errors['minlength']) {\n {{ t('PLEASE_KEEP_FIELD_AT_LEAST_CHARACTERS', { value: errors['minlength'].requiredLength }) }}\n } @else if (errors['maxlength']) {\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: errors['maxlength'].requiredLength }) }}\n } @else if (errors['extraSpaces']) {\n {{ t('MUST_BE_WITHOUT_EXTRA_SPACES') }}\n } @else if (errors['min']) {\n {{ t('MIN_VALUE_MUST_BE_MORE_THAN', { value: errors['min'].min }) }}\n } @else if (errors['max']) {\n {{ t('MAX_VALUE_MUST_BE_LESS_THAN', { value: errors['max'].max }) }}\n } @else if (errors['email']) {\n {{ t('INVALID_EMAIL_ADDRESS') }}\n }\n </cui-hint>\n }\n }\n</ng-container>\n", styles: [":host{display:inline-block}:host:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: i1.CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
15
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiGeneralControlErrorHintComponent, isStandalone: true, selector: "cui-general-control-error-hint", inputs: { control: { classPropertyName: "control", publicName: "control", isSignal: true, isRequired: true, transformFunction: null }, isVisible: { classPropertyName: "isVisible", publicName: "isVisible", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (isInvalid) {\r\n @if (control().errors; as errors) {\r\n <cui-hint hintType=\"error\">\r\n @if (errors['required']) {\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n } @else if (errors['minlength']) {\r\n {{ t('PLEASE_KEEP_FIELD_AT_LEAST_CHARACTERS', { value: errors['minlength'].requiredLength }) }}\r\n } @else if (errors['maxlength']) {\r\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: errors['maxlength'].requiredLength }) }}\r\n } @else if (errors['extraSpaces']) {\r\n {{ t('MUST_BE_WITHOUT_EXTRA_SPACES') }}\r\n } @else if (errors['min']) {\r\n {{ t('MIN_VALUE_MUST_BE_MORE_THAN', { value: errors['min'].min }) }}\r\n } @else if (errors['max']) {\r\n {{ t('MAX_VALUE_MUST_BE_LESS_THAN', { value: errors['max'].max }) }}\r\n } @else if (errors['email']) {\r\n {{ t('INVALID_EMAIL_ADDRESS') }}\r\n }\r\n </cui-hint>\r\n }\r\n }\r\n</ng-container>\r\n", styles: [":host{display:inline-block}:host:empty{display:none}\n"], dependencies: [{ kind: "ngmodule", type: CuiHintModule }, { kind: "component", type: i1.CuiHintComponent, selector: "cui-hint", inputs: ["hintType"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.Default }); }
|
|
16
16
|
}
|
|
17
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiGeneralControlErrorHintComponent, decorators: [{
|
|
18
18
|
type: Component,
|
|
19
|
-
args: [{ selector: 'cui-general-control-error-hint', imports: [CuiHintModule, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.Default, template: "<ng-container *transloco=\"let t\">\n @if (isInvalid) {\n @if (control().errors; as errors) {\n <cui-hint hintType=\"error\">\n @if (errors['required']) {\n {{ t('FIELD_IS_REQUIRED') }}\n } @else if (errors['minlength']) {\n {{ t('PLEASE_KEEP_FIELD_AT_LEAST_CHARACTERS', { value: errors['minlength'].requiredLength }) }}\n } @else if (errors['maxlength']) {\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: errors['maxlength'].requiredLength }) }}\n } @else if (errors['extraSpaces']) {\n {{ t('MUST_BE_WITHOUT_EXTRA_SPACES') }}\n } @else if (errors['min']) {\n {{ t('MIN_VALUE_MUST_BE_MORE_THAN', { value: errors['min'].min }) }}\n } @else if (errors['max']) {\n {{ t('MAX_VALUE_MUST_BE_LESS_THAN', { value: errors['max'].max }) }}\n } @else if (errors['email']) {\n {{ t('INVALID_EMAIL_ADDRESS') }}\n }\n </cui-hint>\n }\n }\n</ng-container>\n", styles: [":host{display:inline-block}:host:empty{display:none}\n"] }]
|
|
19
|
+
args: [{ selector: 'cui-general-control-error-hint', imports: [CuiHintModule, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.Default, template: "<ng-container *transloco=\"let t\">\r\n @if (isInvalid) {\r\n @if (control().errors; as errors) {\r\n <cui-hint hintType=\"error\">\r\n @if (errors['required']) {\r\n {{ t('FIELD_IS_REQUIRED') }}\r\n } @else if (errors['minlength']) {\r\n {{ t('PLEASE_KEEP_FIELD_AT_LEAST_CHARACTERS', { value: errors['minlength'].requiredLength }) }}\r\n } @else if (errors['maxlength']) {\r\n {{ t('PLEASE_KEEP_FIELD_UNDER_CHARACTERS', { value: errors['maxlength'].requiredLength }) }}\r\n } @else if (errors['extraSpaces']) {\r\n {{ t('MUST_BE_WITHOUT_EXTRA_SPACES') }}\r\n } @else if (errors['min']) {\r\n {{ t('MIN_VALUE_MUST_BE_MORE_THAN', { value: errors['min'].min }) }}\r\n } @else if (errors['max']) {\r\n {{ t('MAX_VALUE_MUST_BE_LESS_THAN', { value: errors['max'].max }) }}\r\n } @else if (errors['email']) {\r\n {{ t('INVALID_EMAIL_ADDRESS') }}\r\n }\r\n </cui-hint>\r\n }\r\n }\r\n</ng-container>\r\n", styles: [":host{display:inline-block}:host:empty{display:none}\n"] }]
|
|
20
20
|
}] });
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL2dlbmVyYWwtY29udHJvbC1lcnJvci1oaW50L2dlbmVyYWwtY29udHJvbC1lcnJvci1oaW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludC9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVVqRCxNQUFNLE9BQU8sbUNBQW1DO0lBUmhEO1FBU29CLFlBQU8sR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFtQixDQUFDO1FBQzVDLGNBQVMsR0FBRyxLQUFLLEVBQVcsQ0FBQztLQUtoRDtJQUhHLElBQWMsU0FBUztRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hGLENBQUM7K0dBTlEsbUNBQW1DO21HQUFuQyxtQ0FBbUMsdVdDZGhELHlxQ0F1QkEsK0dEZmMsYUFBYSw2SEFBRSxrQkFBa0I7OzRGQU1sQyxtQ0FBbUM7a0JBUi9DLFNBQVM7K0JBQ0ksZ0NBQWdDLFdBQ2pDLENBQUMsYUFBYSxFQUFFLGtCQUFrQixDQUFDLGNBQ2hDLElBQUksbUJBR0MsdUJBQXVCLENBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5cclxuaW1wb3J0IHsgQ3VpSGludE1vZHVsZSB9IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCcsXHJcbiAgICBpbXBvcnRzOiBbQ3VpSGludE1vZHVsZSwgVHJhbnNsb2NvRGlyZWN0aXZlXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2dlbmVyYWwtY29udHJvbC1lcnJvci1oaW50LmNvbXBvbmVudC5zY3NzJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuRGVmYXVsdFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQge1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbnRyb2wgPSBpbnB1dC5yZXF1aXJlZDxBYnN0cmFjdENvbnRyb2w+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNWaXNpYmxlID0gaW5wdXQ8Ym9vbGVhbj4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pc1Zpc2libGUoKSA/PyAodGhpcy5jb250cm9sKCkuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2woKS5kaXJ0eSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIEBpZiAoaXNJbnZhbGlkKSB7XHJcbiAgICAgICAgQGlmIChjb250cm9sKCkuZXJyb3JzOyBhcyBlcnJvcnMpIHtcclxuICAgICAgICAgICAgPGN1aS1oaW50IGhpbnRUeXBlPVwiZXJyb3JcIj5cclxuICAgICAgICAgICAgICAgIEBpZiAoZXJyb3JzWydyZXF1aXJlZCddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnRklFTERfSVNfUkVRVUlSRUQnKSB9fVxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZXJyb3JzWydtaW5sZW5ndGgnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1BMRUFTRV9LRUVQX0ZJRUxEX0FUX0xFQVNUX0NIQVJBQ1RFUlMnLCB7IHZhbHVlOiBlcnJvcnNbJ21pbmxlbmd0aCddLnJlcXVpcmVkTGVuZ3RoIH0pIH19XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlcnJvcnNbJ21heGxlbmd0aCddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnUExFQVNFX0tFRVBfRklFTERfVU5ERVJfQ0hBUkFDVEVSUycsIHsgdmFsdWU6IGVycm9yc1snbWF4bGVuZ3RoJ10ucmVxdWlyZWRMZW5ndGggfSkgfX1cclxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGVycm9yc1snZXh0cmFTcGFjZXMnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ01VU1RfQkVfV0lUSE9VVF9FWFRSQV9TUEFDRVMnKSB9fVxyXG4gICAgICAgICAgICAgICAgfSBAZWxzZSBpZiAoZXJyb3JzWydtaW4nXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ01JTl9WQUxVRV9NVVNUX0JFX01PUkVfVEhBTicsIHsgdmFsdWU6IGVycm9yc1snbWluJ10ubWluIH0pIH19XHJcbiAgICAgICAgICAgICAgICB9IEBlbHNlIGlmIChlcnJvcnNbJ21heCddKSB7XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnTUFYX1ZBTFVFX01VU1RfQkVfTEVTU19USEFOJywgeyB2YWx1ZTogZXJyb3JzWydtYXgnXS5tYXggfSkgfX1cclxuICAgICAgICAgICAgICAgIH0gQGVsc2UgaWYgKGVycm9yc1snZW1haWwnXSkge1xyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ0lOVkFMSURfRU1BSUxfQUREUkVTUycpIH19XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDwvY3VpLWhpbnQ+XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { CuiGeneralControlErrorHintComponent } from './general-control-error-hint.component';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlHZW5lcmFsQ29udHJvbEVycm9ySGludENvbXBvbmVudCB9IGZyb20gJy4vZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQuY29tcG9uZW50JztcclxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
export { CuiLoaderComponent } from './loader';
|
|
2
2
|
export { CuiDeleteModalComponent } from './delete-modal';
|
|
3
3
|
export { CuiCategoriesComponent, CuiSelectedCategoryService } from './categories';
|
|
4
|
-
export { CuiUtilityInfoComponent } from './utility-info';
|
|
5
4
|
export { CuiChecklistBlockComponent } from './checklist-block';
|
|
6
5
|
export { CuiGeneralControlErrorHintComponent } from './general-control-error-hint';
|
|
7
|
-
|
|
6
|
+
export * from './utility-modal';
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRixjQUFjLGlCQUFpQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkZXInO1xyXG5leHBvcnQgeyBDdWlEZWxldGVNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vZGVsZXRlLW1vZGFsJztcclxuZXhwb3J0IHsgQ3VpQ2F0ZWdvcmllc0NvbXBvbmVudCwgQ3VpU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuL2NhdGVnb3JpZXMnO1xyXG5leHBvcnQgeyBDdWlDaGVja2xpc3RCbG9ja0NvbXBvbmVudCB9IGZyb20gJy4vY2hlY2tsaXN0LWJsb2NrJztcclxuZXhwb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuL2dlbmVyYWwtY29udHJvbC1lcnJvci1oaW50JztcclxuZXhwb3J0ICogZnJvbSAnLi91dGlsaXR5LW1vZGFsJztcclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiInstructionInfoComponent } from './instruction-info.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUluc3RydWN0aW9uSW5mb0NvbXBvbmVudCB9IGZyb20gJy4vaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,147 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, DestroyRef, effect, inject, input, model, output, signal, untracked, viewChild } from '@angular/core';
|
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
3
|
+
import { TranslocoModule, TranslocoService } from '@jsverse/transloco';
|
|
4
|
+
import { finalize, forkJoin } from 'rxjs';
|
|
5
|
+
import { CuiTreeStructNavigatorApiService } from '@cuby-ui/api';
|
|
6
|
+
import { CuiIdService } from '@cuby-ui/cdk';
|
|
7
|
+
import { CuiBadgeModule, CuiButtonModule, CuiDialogModule, CuiFormFieldModule, CuiLabelModule, CuiSvgModule } from '../../components';
|
|
8
|
+
import { CuiCategoriesComponent, CuiSelectedCategoryService } from '../categories';
|
|
9
|
+
import { CuiInstructionInfoFormComponent } from '../instruction-info-form';
|
|
10
|
+
import { UTILITY_MODAL_SERVICE_TOKEN } from '../utility-modal';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "../../components/form-field/form-field.component";
|
|
13
|
+
import * as i2 from "../../components/label/label.component";
|
|
14
|
+
import * as i3 from "../../components/svg/svg.component";
|
|
15
|
+
import * as i4 from "@jsverse/transloco";
|
|
16
|
+
export class CuiInstructionInfoComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.destroyRef = inject(DestroyRef);
|
|
19
|
+
this.translocoService = inject(TranslocoService);
|
|
20
|
+
this.cuiIdService = inject(CuiIdService);
|
|
21
|
+
this.cuiCategoriesModalService = inject(CuiSelectedCategoryService);
|
|
22
|
+
this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
|
|
23
|
+
this.instructionApiService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
24
|
+
this.TYPE = "INSTRUCTION_STORAGE" /* TreeStructType.Instruction */;
|
|
25
|
+
this.skipCategoryChange = false;
|
|
26
|
+
this.categoryId = this.cuiIdService.generate();
|
|
27
|
+
this.category = this.cuiCategoriesModalService.category;
|
|
28
|
+
this.isFormValid = signal(false);
|
|
29
|
+
this.prevCategoryId = signal(null);
|
|
30
|
+
this.editorConfig = signal(null);
|
|
31
|
+
this.labelColor = computed(() => this.category()?.title ? 'var(--cui-base-900)' : 'var(--cui-base-400)');
|
|
32
|
+
this.selectTitle = computed(() => this.category()?.title || this.translocoService.translate('SELECT') + '...');
|
|
33
|
+
this.element = viewChild('scrollContent');
|
|
34
|
+
this.instruction = model();
|
|
35
|
+
this.tools = input.required();
|
|
36
|
+
this.editorResourceUrl = input.required();
|
|
37
|
+
this.validationChanged = output();
|
|
38
|
+
this.instructionCreated = output();
|
|
39
|
+
this.initConfigEffect();
|
|
40
|
+
this.initCategoryEffect();
|
|
41
|
+
}
|
|
42
|
+
ngOnInit() {
|
|
43
|
+
this.initCategory();
|
|
44
|
+
}
|
|
45
|
+
onFormChanged(values, instructionId) {
|
|
46
|
+
const actions = {
|
|
47
|
+
title: (title) => this.changeTitle(title, instructionId),
|
|
48
|
+
description: (description) => this.changeDescription(description, instructionId)
|
|
49
|
+
};
|
|
50
|
+
forkJoin(Object.keys(values).map((key) => actions[key](values[key] || '')))
|
|
51
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
52
|
+
.subscribe();
|
|
53
|
+
}
|
|
54
|
+
onFormValidationChanged(isValid) {
|
|
55
|
+
this.isFormValid.set(isValid);
|
|
56
|
+
this.validationChanged.emit(isValid);
|
|
57
|
+
}
|
|
58
|
+
initCategoryEffect() {
|
|
59
|
+
effect(() => {
|
|
60
|
+
const category = this.category();
|
|
61
|
+
const storageObjectInstruction = untracked(this.instruction);
|
|
62
|
+
if (!category || this.skipCategoryChange) {
|
|
63
|
+
this.skipCategoryChange = false;
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
if (storageObjectInstruction) {
|
|
67
|
+
this.changeCategory(category.id, storageObjectInstruction.id);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
this.createInstruction(category.id);
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
initConfigEffect() {
|
|
74
|
+
effect(() => {
|
|
75
|
+
const element = this.element()?.nativeElement;
|
|
76
|
+
if (!element) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
this.editorConfig.set({ tools: this.tools(), element });
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
initCategory() {
|
|
83
|
+
const storageObjectId = this.instruction()?.id;
|
|
84
|
+
if (!storageObjectId) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
this.treeStructNavigatorApiService
|
|
88
|
+
.getCategory(storageObjectId, "INSTRUCTION_STORAGE" /* TreeStructType.Instruction */)
|
|
89
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
90
|
+
.subscribe((category) => {
|
|
91
|
+
this.skipCategoryChange = true;
|
|
92
|
+
this.prevCategoryId.set(category.id);
|
|
93
|
+
this.cuiCategoriesModalService.setCurrentCategory(category);
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
changeCategory(categoryId, targetId) {
|
|
97
|
+
const prevCategoryId = untracked(this.prevCategoryId);
|
|
98
|
+
if (!prevCategoryId) {
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
this.subscription?.unsubscribe();
|
|
102
|
+
this.subscription = this.treeStructNavigatorApiService
|
|
103
|
+
.moveElement({
|
|
104
|
+
type: "MOVING_TARGET_TREE_STRUCT" /* MovingType.TARGET_TREE_STRUCT */,
|
|
105
|
+
movableItemId: targetId,
|
|
106
|
+
treeStructTargetItemId: categoryId,
|
|
107
|
+
treeStructMovableItemId: prevCategoryId
|
|
108
|
+
})
|
|
109
|
+
.subscribe(() => this.prevCategoryId.set(categoryId));
|
|
110
|
+
}
|
|
111
|
+
createInstruction(categoryId) {
|
|
112
|
+
this.instructionCreated.emit(categoryId);
|
|
113
|
+
this.prevCategoryId.set(categoryId);
|
|
114
|
+
}
|
|
115
|
+
changeTitle(value, instructionId) {
|
|
116
|
+
return this.instructionApiService.changeTitle(instructionId, value).pipe(finalize(() => this.instruction.update((prev) => ({
|
|
117
|
+
...prev,
|
|
118
|
+
storageElement: { ...prev.storageElement, title: value }
|
|
119
|
+
}))));
|
|
120
|
+
}
|
|
121
|
+
changeDescription(value, instructionId) {
|
|
122
|
+
if (!this.instructionApiService.changeDescription) {
|
|
123
|
+
throw new Error('Change description not implemented');
|
|
124
|
+
}
|
|
125
|
+
return this.instructionApiService.changeDescription(instructionId, value).pipe(finalize(() => this.instruction.update((prev) => ({
|
|
126
|
+
...prev,
|
|
127
|
+
storageElement: { ...prev.storageElement, shortDescription: value }
|
|
128
|
+
}))));
|
|
129
|
+
}
|
|
130
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
131
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiInstructionInfoComponent, isStandalone: true, selector: "cui-instruction-info", inputs: { instruction: { classPropertyName: "instruction", publicName: "instruction", isSignal: true, isRequired: false, transformFunction: null }, tools: { classPropertyName: "tools", publicName: "tools", isSignal: true, isRequired: true, transformFunction: null }, editorResourceUrl: { classPropertyName: "editorResourceUrl", publicName: "editorResourceUrl", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { instruction: "instructionChange", validationChanged: "validationChanged", instructionCreated: "instructionCreated" }, providers: [CuiSelectedCategoryService], viewQueries: [{ propertyName: "element", first: true, predicate: ["scrollContent"], descendants: true, isSignal: true }], ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: CuiCategoriesComponent, selector: "cui-categories", inputs: ["treeStructType", "buttonId", "disabled"] }, { kind: "ngmodule", type: CuiDialogModule }, { kind: "ngmodule", type: CuiFormFieldModule }, { kind: "component", type: i1.CuiFormFieldComponent, selector: "cui-form-field" }, { kind: "component", type: CuiInstructionInfoFormComponent, selector: "cui-instruction-info-form", inputs: ["title", "description", "framerId", "baseResourceUrl", "config"], outputs: ["formChanged", "isFormValidChanged"] }, { kind: "ngmodule", type: CuiLabelModule }, { kind: "component", type: i2.CuiLabelComponent, selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "ngmodule", type: TranslocoModule }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
132
|
+
}
|
|
133
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiInstructionInfoComponent, decorators: [{
|
|
134
|
+
type: Component,
|
|
135
|
+
args: [{ selector: 'cui-instruction-info', imports: [
|
|
136
|
+
CuiBadgeModule,
|
|
137
|
+
CuiButtonModule,
|
|
138
|
+
CuiCategoriesComponent,
|
|
139
|
+
CuiDialogModule,
|
|
140
|
+
CuiFormFieldModule,
|
|
141
|
+
CuiInstructionInfoFormComponent,
|
|
142
|
+
CuiLabelModule,
|
|
143
|
+
CuiSvgModule,
|
|
144
|
+
TranslocoModule
|
|
145
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiSelectedCategoryService], template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <div\r\n #scrollContent\r\n class=\"content content_scrollable\"\r\n >\r\n <div class=\"category\">\r\n <cui-form-field>\r\n <label\r\n cuiLabel\r\n [for]=\"categoryId\"\r\n [isRequired]=\"true\"\r\n >\r\n {{ t('SELECT_CATEGORY') }}\r\n </label>\r\n <cui-categories\r\n [buttonId]=\"categoryId\"\r\n [treeStructType]=\"TYPE\"\r\n >\r\n <div class=\"select\">\r\n <span [style.color]=\"labelColor()\">\r\n {{ selectTitle() }}\r\n </span>\r\n\r\n <cui-svg icon=\"cuiIconChevronDown\" />\r\n </div>\r\n </cui-categories>\r\n </cui-form-field>\r\n </div>\r\n\r\n @let instructionData = instruction();\r\n @let editorConfigData = editorConfig();\r\n\r\n @if (editorConfigData && instructionData) {\r\n <cui-instruction-info-form\r\n [config]=\"editorConfigData\"\r\n [baseResourceUrl]=\"editorResourceUrl()\"\r\n [title]=\"instructionData.storageElement.title\"\r\n [description]=\"instructionData.storageElement.shortDescription\"\r\n [framerId]=\"instructionData.storageElement.framerInstructionId\"\r\n class=\"utility\"\r\n (isFormValidChanged)=\"onFormValidationChanged($event)\"\r\n (formChanged)=\"onFormChanged($event, instructionData.id)\"\r\n />\r\n }\r\n </div>\r\n</div>\r\n", styles: [".wrapper{display:flex;flex-direction:column;height:100%}.content{height:calc(100vh - 109px)}.content_scrollable{overflow:auto}.category{padding-top:16px;padding-right:23px;padding-left:23px}.select{padding:7px 13px;font-weight:400;font-size:14px;line-height:20px;display:flex;justify-content:space-between;height:36px;border-radius:8px;border:1px solid var(--cui-base-200);color:var(--cui-base-900);background:var(--cui-input)}.utility{--editor-height: none}\n"] }]
|
|
146
|
+
}], ctorParameters: () => [] });
|
|
147
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5zdHJ1Y3Rpb24taW5mby5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9pbnN0cnVjdGlvbi1pbmZvL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUNILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV2RSxPQUFPLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFNUMsT0FBTyxFQUNILGNBQWMsRUFDZCxlQUFlLEVBQ2YsZUFBZSxFQUNmLGtCQUFrQixFQUNsQixjQUFjLEVBQ2QsWUFBWSxFQUNmLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25GLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRTNFLE9BQU8sRUFBRSwyQkFBMkIsRUFBdUIsTUFBTSxrQkFB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U0FBUzsrQkFDSSxzQkFBc0IsV0FDdkI7d0JBQ0wsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLHNCQUFzQjt3QkFDdEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLCtCQUErQjt3QkFDL0IsY0FBYzt3QkFDZCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCLGNBQ1csSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsMEJBQTBCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVsZW1lbnRSZWYsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIERlc3Ryb3lSZWYsXHJcbiAgICBlZmZlY3QsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG1vZGVsLFxyXG4gICAgb3V0cHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdW50cmFja2VkLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvTW9kdWxlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHR5cGUgeyBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmluYWxpemUsIGZvcmtKb2luIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB0eXBlIHsgSW5zdHJ1Y3Rpb24sIFN0b3JhZ2VPYmplY3QsIFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlUcmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSwgTW92aW5nVHlwZSwgVHJlZVN0cnVjdFR5cGUgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlCYWRnZU1vZHVsZSxcclxuICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgIEN1aUZvcm1GaWVsZE1vZHVsZSxcclxuICAgIEN1aUxhYmVsTW9kdWxlLFxyXG4gICAgQ3VpU3ZnTW9kdWxlXHJcbn0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQsIEN1aVNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi4vY2F0ZWdvcmllcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckNvbmZpZyB9IGZyb20gJy4uLy4uL2VkaXRvcic7XHJcbmltcG9ydCB0eXBlIHsgQ3VpVG9vbHMgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBDdWlJbnN0cnVjdGlvbkluZm9Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuLi9pbnN0cnVjdGlvbi1pbmZvLWZvcm0nO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlNb2RhbFNlcnZpY2UgfSBmcm9tICcuLi91dGlsaXR5LW1vZGFsJztcclxuXHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLWluc3RydWN0aW9uLWluZm8nLFxyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEN1aUJhZGdlTW9kdWxlLFxyXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDdWlDYXRlZ29yaWVzQ29tcG9uZW50LFxyXG4gICAgICAgIEN1aURpYWxvZ01vZHVsZSxcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSW5zdHJ1Y3Rpb25JbmZvRm9ybUNvbXBvbmVudCxcclxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcclxuICAgICAgICBDdWlTdmdNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsb2NvTW9kdWxlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9pbnN0cnVjdGlvbi1pbmZvLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2luc3RydWN0aW9uLWluZm8uY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gICAgcHJvdmlkZXJzOiBbQ3VpU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2VdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlJbnN0cnVjdGlvbkluZm9Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlJZFNlcnZpY2UgPSBpbmplY3QoQ3VpSWRTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZSA9IGluamVjdChDdWlTZWxlY3RlZENhdGVnb3J5U2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aVRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25BcGlTZXJ2aWNlID0gaW5qZWN0PFV0aWxpdHlNb2RhbFNlcnZpY2U8SW5zdHJ1Y3Rpb24+PihVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4pO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBUWVBFID0gVHJlZVN0cnVjdFR5cGUuSW5zdHJ1Y3Rpb247XHJcblxyXG4gICAgcHJpdmF0ZSBzdWJzY3JpcHRpb24hOiBTdWJzY3JpcHRpb247XHJcbiAgICBwcml2YXRlIHNraXBDYXRlZ29yeUNoYW5nZSA9IGZhbHNlO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYXRlZ29yeUlkID0gdGhpcy5jdWlJZFNlcnZpY2UuZ2VuZXJhdGUoKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2F0ZWdvcnkgPSB0aGlzLmN1aUNhdGVnb3JpZXNNb2RhbFNlcnZpY2UuY2F0ZWdvcnk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb3JtVmFsaWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHByZXZDYXRlZ29yeUlkID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvckNvbmZpZyA9IHNpZ25hbDxDdWlOdWxsYWJsZTxDdWlFZGl0b3JDb25maWc+PihudWxsKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBsYWJlbENvbG9yID0gY29tcHV0ZWQoKCkgPT5cclxuICAgICAgICB0aGlzLmNhdGVnb3J5KCk/LnRpdGxlID8gJ3ZhcigtLWN1aS1iYXNlLTkwMCknIDogJ3ZhcigtLWN1aS1iYXNlLTQwMCknXHJcbiAgICApO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdFRpdGxlID0gY29tcHV0ZWQoXHJcbiAgICAgICAgKCkgPT4gdGhpcy5jYXRlZ29yeSgpPy50aXRsZSB8fCB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdTRUxFQ1QnKSArICcuLi4nXHJcbiAgICApO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50ID0gdmlld0NoaWxkPEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+Pignc2Nyb2xsQ29udGVudCcpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBpbnN0cnVjdGlvbiA9IG1vZGVsPFN0b3JhZ2VPYmplY3Q8SW5zdHJ1Y3Rpb24+PigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHRvb2xzID0gaW5wdXQucmVxdWlyZWQ8Q3VpVG9vbHM+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZWRpdG9yUmVzb3VyY2VVcmwgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHZhbGlkYXRpb25DaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaW5zdHJ1Y3Rpb25DcmVhdGVkID0gb3V0cHV0PHN0cmluZz4oKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcigpIHtcclxuICAgICAgICB0aGlzLmluaXRDb25maWdFZmZlY3QoKTtcclxuICAgICAgICB0aGlzLmluaXRDYXRlZ29yeUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmluaXRDYXRlZ29yeSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkZvcm1DaGFuZ2VkKHZhbHVlczogUGFydGlhbDxDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXM+LCBpbnN0cnVjdGlvbklkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBhY3Rpb25zOiBSZWNvcmQ8a2V5b2YgQ3VpSW5zdHJ1Y3Rpb25Gb3JtVmFsdWVzLCAodmFsdWU6IHN0cmluZykgPT4gT2JzZXJ2YWJsZTx2b2lkPj4gPSB7XHJcbiAgICAgICAgICAgIHRpdGxlOiAodGl0bGU6IHN0cmluZykgPT4gdGhpcy5jaGFuZ2VUaXRsZSh0aXRsZSwgaW5zdHJ1Y3Rpb25JZCksXHJcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOiAoZGVzY3JpcHRpb246IHN0cmluZykgPT4gdGhpcy5jaGFuZ2VEZXNjcmlwdGlvbihkZXNjcmlwdGlvbiwgaW5zdHJ1Y3Rpb25JZClcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICBmb3JrSm9pbihcclxuICAgICAgICAgICAgT2JqZWN0LmtleXModmFsdWVzKS5tYXAoKGtleSkgPT5cclxuICAgICAgICAgICAgICAgIGFjdGlvbnNba2V5IGFzIGtleW9mIEN1aUluc3RydWN0aW9uRm9ybVZhbHVlc10odmFsdWVzW2tleSBhcyBrZXlvZiBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXNdIHx8ICcnKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZChpc1ZhbGlkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0Zvcm1WYWxpZC5zZXQoaXNWYWxpZCk7XHJcbiAgICAgICAgdGhpcy52YWxpZGF0aW9uQ2hhbmdlZC5lbWl0KGlzVmFsaWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENhdGVnb3J5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGNhdGVnb3J5ID0gdGhpcy5jYXRlZ29yeSgpO1xyXG4gICAgICAgICAgICBjb25zdCBzdG9yYWdlT2JqZWN0SW5zdHJ1Y3Rpb24gPSB1bnRyYWNrZWQodGhpcy5pbnN0cnVjdGlvbik7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNhdGVnb3J5IHx8IHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNraXBDYXRlZ29yeUNoYW5nZSA9IGZhbHNlO1xyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHN0b3JhZ2VPYmplY3RJbnN0cnVjdGlvbikge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5jaGFuZ2VDYXRlZ29yeShjYXRlZ29yeS5pZCwgc3RvcmFnZU9iamVjdEluc3RydWN0aW9uLmlkKTtcclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIHRoaXMuY3JlYXRlSW5zdHJ1Y3Rpb24oY2F0ZWdvcnkuaWQpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdENvbmZpZ0VmZmVjdCgpOiB2b2lkIHtcclxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50KCk/Lm5hdGl2ZUVsZW1lbnQ7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgdGhpcy5lZGl0b3JDb25maWcuc2V0KHsgdG9vbHM6IHRoaXMudG9vbHMoKSwgZWxlbWVudCB9KTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBzdG9yYWdlT2JqZWN0SWQgPSB0aGlzLmluc3RydWN0aW9uKCk/LmlkO1xyXG5cclxuICAgICAgICBpZiAoIXN0b3JhZ2VPYmplY3RJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLnRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5nZXRDYXRlZ29yeShzdG9yYWdlT2JqZWN0SWQsIFRyZWVTdHJ1Y3RUeXBlLkluc3RydWN0aW9uKVxyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoY2F0ZWdvcnkpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2tpcENhdGVnb3J5Q2hhbmdlID0gdHJ1ZTtcclxuICAgICAgICAgICAgICAgIHRoaXMucHJldkNhdGVnb3J5SWQuc2V0KGNhdGVnb3J5LmlkKTtcclxuICAgICAgICAgICAgICAgIHRoaXMuY3VpQ2F0ZWdvcmllc01vZGFsU2VydmljZS5zZXRDdXJyZW50Q2F0ZWdvcnkoY2F0ZWdvcnkgYXMgVHJlZVN0cnVjdCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY2hhbmdlQ2F0ZWdvcnkoY2F0ZWdvcnlJZDogc3RyaW5nLCB0YXJnZXRJZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgcHJldkNhdGVnb3J5SWQgPSB1bnRyYWNrZWQodGhpcy5wcmV2Q2F0ZWdvcnlJZCk7XHJcblxyXG4gICAgICAgIGlmICghcHJldkNhdGVnb3J5SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSB0aGlzLnRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlXHJcbiAgICAgICAgICAgIC5tb3ZlRWxlbWVudCh7XHJcbiAgICAgICAgICAgICAgICB0eXBlOiBNb3ZpbmdUeXBlLlRBUkdFVF9UUkVFX1NUUlVDVCxcclxuICAgICAgICAgICAgICAgIG1vdmFibGVJdGVtSWQ6IHRhcmdldElkLFxyXG4gICAgICAgICAgICAgICAgdHJlZVN0cnVjdFRhcmdldEl0ZW1JZDogY2F0ZWdvcnlJZCxcclxuICAgICAgICAgICAgICAgIHRyZWVTdHJ1Y3RNb3ZhYmxlSXRlbUlkOiBwcmV2Q2F0ZWdvcnlJZFxyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMucHJldkNhdGVnb3J5SWQuc2V0KGNhdGVnb3J5SWQpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNyZWF0ZUluc3RydWN0aW9uKGNhdGVnb3J5SWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5zdHJ1Y3Rpb25DcmVhdGVkLmVtaXQoY2F0ZWdvcnlJZCk7XHJcbiAgICAgICAgdGhpcy5wcmV2Q2F0ZWdvcnlJZC5zZXQoY2F0ZWdvcnlJZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGFuZ2VUaXRsZSh2YWx1ZTogc3RyaW5nLCBpbnN0cnVjdGlvbklkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlVGl0bGUoaW5zdHJ1Y3Rpb25JZCwgdmFsdWUpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RydWN0aW9uLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRWxlbWVudDogeyAuLi5wcmV2IS5zdG9yYWdlRWxlbWVudCwgdGl0bGU6IHZhbHVlIH1cclxuICAgICAgICAgICAgICAgIH0pKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGNoYW5nZURlc2NyaXB0aW9uKHZhbHVlOiBzdHJpbmcsIGluc3RydWN0aW9uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xyXG4gICAgICAgIGlmICghdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlRGVzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdDaGFuZ2UgZGVzY3JpcHRpb24gbm90IGltcGxlbWVudGVkJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5pbnN0cnVjdGlvbkFwaVNlcnZpY2UuY2hhbmdlRGVzY3JpcHRpb24oaW5zdHJ1Y3Rpb25JZCwgdmFsdWUpLnBpcGUoXHJcbiAgICAgICAgICAgIGZpbmFsaXplKCgpID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmluc3RydWN0aW9uLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBzdG9yYWdlRWxlbWVudDogeyAuLi5wcmV2IS5zdG9yYWdlRWxlbWVudCwgc2hvcnREZXNjcmlwdGlvbjogdmFsdWUgfVxyXG4gICAgICAgICAgICAgICAgfSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAgIGNsYXNzPVwid3JhcHBlclwiXHJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4+XHJcbiAgICA8ZGl2XHJcbiAgICAgICAgI3Njcm9sbENvbnRlbnRcclxuICAgICAgICBjbGFzcz1cImNvbnRlbnQgY29udGVudF9zY3JvbGxhYmxlXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2F0ZWdvcnlcIj5cclxuICAgICAgICAgICAgPGN1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgY3VpTGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBbZm9yXT1cImNhdGVnb3J5SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc1JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1NFTEVDVF9DQVRFR09SWScpIH19XHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGN1aS1jYXRlZ29yaWVzXHJcbiAgICAgICAgICAgICAgICAgICAgW2J1dHRvbklkXT1cImNhdGVnb3J5SWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt0cmVlU3RydWN0VHlwZV09XCJUWVBFXCJcclxuICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtzdHlsZS5jb2xvcl09XCJsYWJlbENvbG9yKClcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IHNlbGVjdFRpdGxlKCkgfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGN1aS1zdmcgaWNvbj1cImN1aUljb25DaGV2cm9uRG93blwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2N1aS1jYXRlZ29yaWVzPlxyXG4gICAgICAgICAgICA8L2N1aS1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICBAbGV0IGluc3RydWN0aW9uRGF0YSA9IGluc3RydWN0aW9uKCk7XHJcbiAgICAgICAgQGxldCBlZGl0b3JDb25maWdEYXRhID0gZWRpdG9yQ29uZmlnKCk7XHJcblxyXG4gICAgICAgIEBpZiAoZWRpdG9yQ29uZmlnRGF0YSAmJiBpbnN0cnVjdGlvbkRhdGEpIHtcclxuICAgICAgICAgICAgPGN1aS1pbnN0cnVjdGlvbi1pbmZvLWZvcm1cclxuICAgICAgICAgICAgICAgIFtjb25maWddPVwiZWRpdG9yQ29uZmlnRGF0YVwiXHJcbiAgICAgICAgICAgICAgICBbYmFzZVJlc291cmNlVXJsXT1cImVkaXRvclJlc291cmNlVXJsKClcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImluc3RydWN0aW9uRGF0YS5zdG9yYWdlRWxlbWVudC50aXRsZVwiXHJcbiAgICAgICAgICAgICAgICBbZGVzY3JpcHRpb25dPVwiaW5zdHJ1Y3Rpb25EYXRhLnN0b3JhZ2VFbGVtZW50LnNob3J0RGVzY3JpcHRpb25cIlxyXG4gICAgICAgICAgICAgICAgW2ZyYW1lcklkXT1cImluc3RydWN0aW9uRGF0YS5zdG9yYWdlRWxlbWVudC5mcmFtZXJJbnN0cnVjdGlvbklkXCJcclxuICAgICAgICAgICAgICAgIGNsYXNzPVwidXRpbGl0eVwiXHJcbiAgICAgICAgICAgICAgICAoaXNGb3JtVmFsaWRDaGFuZ2VkKT1cIm9uRm9ybVZhbGlkYXRpb25DaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGZvcm1DaGFuZ2VkKT1cIm9uRm9ybUNoYW5nZWQoJGV2ZW50LCBpbnN0cnVjdGlvbkRhdGEuaWQpXCJcclxuICAgICAgICAgICAgLz5cclxuICAgICAgICB9XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiInstructionInfoFormComponent } from './instruction-info-form.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvaW5zdHJ1Y3Rpb24taW5mby1mb3JtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpSW5zdHJ1Y3Rpb25JbmZvRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vaW5zdHJ1Y3Rpb24taW5mby1mb3JtLmNvbXBvbmVudCc7XHJcbmV4cG9ydCB7IEN1aUluc3RydWN0aW9uRm9ybUdyb3VwLCBDdWlJbnN0cnVjdGlvbkZvcm1WYWx1ZXMgfSBmcm9tICcuL2luc3RydWN0aW9uLWluZm8tZm9ybS5vcHRpb25zJztcclxuIl19
|