@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,42 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, DestroyRef, inject, input, output, signal } from '@angular/core';
|
|
3
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
4
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
5
|
+
import { finalize } from 'rxjs';
|
|
6
|
+
import { CUI_DIALOG_CONTEXT, CuiBadgeModule, CuiButtonModule, CuiSvgModule } from '../../../../components';
|
|
7
|
+
import { UTILITY_MODAL_SERVICE_TOKEN } from '../../utility-modal.options';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../../components/badge/badge.component";
|
|
10
|
+
import * as i2 from "../../../../components/button/button.component";
|
|
11
|
+
import * as i3 from "../../../../components/svg/svg.component";
|
|
12
|
+
export class CuiReadonlyUtilityModalComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.destroyRef = inject(DestroyRef);
|
|
15
|
+
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
16
|
+
this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
17
|
+
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
18
|
+
this.tools = this.cuiDialogContext.data.tools;
|
|
19
|
+
this.header = this.cuiDialogContext.data.header;
|
|
20
|
+
this.isLoading = signal(false);
|
|
21
|
+
this.utility = input.required();
|
|
22
|
+
this.utilityUnbinded = output();
|
|
23
|
+
}
|
|
24
|
+
onClose() {
|
|
25
|
+
this.cuiDialogContext.completeWith();
|
|
26
|
+
}
|
|
27
|
+
onUnbind() {
|
|
28
|
+
this.isLoading.set(true);
|
|
29
|
+
this.utilityModalService.unbindUtility(this.utility().id)
|
|
30
|
+
.pipe(takeUntilDestroyed(this.destroyRef), finalize(() => this.isLoading.set(false)))
|
|
31
|
+
.subscribe((utility) => {
|
|
32
|
+
this.utilityUnbinded.emit(utility);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyUtilityModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
36
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiReadonlyUtilityModalComponent, isStandalone: true, selector: "cui-readonly-utility-modal", inputs: { utility: { classPropertyName: "utility", publicName: "utility", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { utilityUnbinded: "utilityUnbinded" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <header class=\"header\">\r\n <ng-container [ngTemplateOutlet]=\"header\" />\r\n\r\n <cui-badge\r\n color=\"violet\"\r\n class=\"badge\"\r\n >\r\n <cui-svg\r\n class=\"icon\"\r\n icon=\"cuiIconVariant\"\r\n color=\"var(--cui-violet-400)\"\r\n />\r\n {{ t('INSERTED') }}\r\n </cui-badge>\r\n\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"ghost\"\r\n icon=\"cuiIconX\"\r\n class=\"button\"\r\n (click)=\"onClose()\"\r\n ></button>\r\n </header>\r\n\r\n <ng-content />\r\n\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n #button\r\n cuiButton\r\n size=\"sm\"\r\n icon=\"cuiIconLinkBroken\"\r\n appearance=\"action-violet\"\r\n [isLoaderShown]=\"isLoading()\"\r\n (click)=\"onUnbind()\"\r\n >\r\n {{ t('UNBIND') }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;gap:8px;align-items:center;padding:16px 24px}.header__title{font-weight:500;font-size:16px;line-height:24px}.button{margin-left:auto}.actions{padding:16px;border-top:1px solid var(--cui-base-200)}.badge{display:flex;gap:4px;align-items:center;font-weight:500;font-size:14px;line-height:20px}\n"], dependencies: [{ kind: "ngmodule", type: CuiBadgeModule }, { kind: "component", type: i1.CuiBadgeComponent, selector: "cui-badge", inputs: ["color", "size", "isWithDot"] }, { kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i2.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i3.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
37
|
+
}
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiReadonlyUtilityModalComponent, decorators: [{
|
|
39
|
+
type: Component,
|
|
40
|
+
args: [{ selector: 'cui-readonly-utility-modal', imports: [CuiBadgeModule, CuiButtonModule, CuiSvgModule, NgTemplateOutlet, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <header class=\"header\">\r\n <ng-container [ngTemplateOutlet]=\"header\" />\r\n\r\n <cui-badge\r\n color=\"violet\"\r\n class=\"badge\"\r\n >\r\n <cui-svg\r\n class=\"icon\"\r\n icon=\"cuiIconVariant\"\r\n color=\"var(--cui-violet-400)\"\r\n />\r\n {{ t('INSERTED') }}\r\n </cui-badge>\r\n\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"ghost\"\r\n icon=\"cuiIconX\"\r\n class=\"button\"\r\n (click)=\"onClose()\"\r\n ></button>\r\n </header>\r\n\r\n <ng-content />\r\n\r\n <div class=\"actions\">\r\n <button\r\n type=\"button\"\r\n #button\r\n cuiButton\r\n size=\"sm\"\r\n icon=\"cuiIconLinkBroken\"\r\n appearance=\"action-violet\"\r\n [isLoaderShown]=\"isLoading()\"\r\n (click)=\"onUnbind()\"\r\n >\r\n {{ t('UNBIND') }}\r\n </button>\r\n </div>\r\n</ng-container>\r\n", styles: [".header{display:flex;gap:8px;align-items:center;padding:16px 24px}.header__title{font-weight:500;font-size:16px;line-height:24px}.button{margin-left:auto}.actions{padding:16px;border-top:1px solid var(--cui-base-200)}.badge{display:flex;gap:4px;align-items:center;font-weight:500;font-size:14px;line-height:20px}\n"] }]
|
|
41
|
+
}] });
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LXV0aWxpdHktbW9kYWwvcmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3JlYWRvbmx5LXV0aWxpdHktbW9kYWwvcmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUdoQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRyxPQUFPLEVBQUUsMkJBQTJCLEVBQXVDLE1BQU0sNkJBQTZCLENBQUM7Ozs7O0FBVS9HLE1BQU0sT0FBTyxnQ0FBZ0M7SUFSN0M7UUFTcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxxQkFBZ0IsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5Qyx3QkFBbUIsR0FBRyxNQUFNLENBQXNDLDJCQUEyQixDQUFDLENBQUM7UUFFN0Ysc0JBQWlCLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNqRSxVQUFLLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDekMsV0FBTSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDO1FBRTNDLGNBQVMsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0IsWUFBTyxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWlDLENBQUM7UUFFMUQsb0JBQWUsR0FBRyxNQUFNLEVBQWlDLENBQUM7S0FpQjdFO0lBZmEsT0FBTztRQUNiLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6QyxDQUFDO0lBRVMsUUFBUTtRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNwRCxJQUFJLENBQ0Qsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUNuQyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDNUM7YUFDQSxTQUFTLENBQUMsQ0FBQyxPQUFzQyxFQUFFLEVBQUU7WUFDbEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDOytHQTdCUSxnQ0FBZ0M7bUdBQWhDLGdDQUFnQyxnUkNsQjdDLHdwQ0EyQ0EsbVhEL0JjLGNBQWMsZ0pBQUUsZUFBZSwwTkFBRSxZQUFZLHdLQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQU1wRixnQ0FBZ0M7a0JBUjVDLFNBQVM7K0JBQ0ksNEJBQTRCLFdBQzdCLENBQUMsY0FBYyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLENBQUMsY0FDbEYsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgaW5wdXQsIG91dHB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZmluYWxpemUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgU3RvcmFnZU9iamVjdCB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcblxyXG5pbXBvcnQgeyBDVUlfRElBTE9HX0NPTlRFWFQsIEN1aUJhZGdlTW9kdWxlLCBDdWlCdXR0b25Nb2R1bGUsIEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlFbGVtZW50LCBVdGlsaXR5TW9kYWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vdXRpbGl0eS1tb2RhbC5vcHRpb25zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktcmVhZG9ubHktdXRpbGl0eS1tb2RhbCcsXHJcbiAgICBpbXBvcnRzOiBbQ3VpQmFkZ2VNb2R1bGUsIEN1aUJ1dHRvbk1vZHVsZSwgQ3VpU3ZnTW9kdWxlLCBOZ1RlbXBsYXRlT3V0bGV0LCBUcmFuc2xvY29EaXJlY3RpdmVdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAncmVhZG9ubHktdXRpbGl0eS1tb2RhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJ3JlYWRvbmx5LXV0aWxpdHktbW9kYWwuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aVJlYWRvbmx5VXRpbGl0eU1vZGFsQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1dGlsaXR5TW9kYWxTZXJ2aWNlID0gaW5qZWN0PFV0aWxpdHlNb2RhbFNlcnZpY2U8VXRpbGl0eUVsZW1lbnQ+PihVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4pO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBlZGl0b3JSZXNvdXJjZVVybCA9IHRoaXMuY3VpRGlhbG9nQ29udGV4dC5kYXRhLmVkaXRvclJlc291cmNlVXJsO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRvb2xzID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEudG9vbHM7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaGVhZGVyID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuaGVhZGVyO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0xvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB1dGlsaXR5ID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxVdGlsaXR5RWxlbWVudD4+KCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHV0aWxpdHlVbmJpbmRlZCA9IG91dHB1dDxTdG9yYWdlT2JqZWN0PFV0aWxpdHlFbGVtZW50Pj4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DbG9zZSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmN1aURpYWxvZ0NvbnRleHQuY29tcGxldGVXaXRoKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uVW5iaW5kKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNMb2FkaW5nLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLnV0aWxpdHlNb2RhbFNlcnZpY2UudW5iaW5kVXRpbGl0eSh0aGlzLnV0aWxpdHkoKS5pZClcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSxcclxuICAgICAgICAgICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuaXNMb2FkaW5nLnNldChmYWxzZSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgodXRpbGl0eTogU3RvcmFnZU9iamVjdDxVdGlsaXR5RWxlbWVudD4pID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMudXRpbGl0eVVuYmluZGVkLmVtaXQodXRpbGl0eSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKnRyYW5zbG9jbz1cImxldCB0XCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwiaGVhZGVyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWFkZXJcIiAvPlxyXG5cclxuICAgICAgICA8Y3VpLWJhZGdlXHJcbiAgICAgICAgICAgIGNvbG9yPVwidmlvbGV0XCJcclxuICAgICAgICAgICAgY2xhc3M9XCJiYWRnZVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICA8Y3VpLXN2Z1xyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpY29uXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uVmFyaWFudFwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS12aW9sZXQtNDAwKVwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIHt7IHQoJ0lOU0VSVEVEJykgfX1cclxuICAgICAgICA8L2N1aS1iYWRnZT5cclxuXHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXHJcbiAgICAgICAgICAgIGljb249XCJjdWlJY29uWFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uQ2xvc2UoKVwiXHJcbiAgICAgICAgPjwvYnV0dG9uPlxyXG4gICAgPC9oZWFkZXI+XHJcblxyXG4gICAgPG5nLWNvbnRlbnQgLz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICNidXR0b25cclxuICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgIGljb249XCJjdWlJY29uTGlua0Jyb2tlblwiXHJcbiAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb24tdmlvbGV0XCJcclxuICAgICAgICAgICAgW2lzTG9hZGVyU2hvd25dPVwiaXNMb2FkaW5nKClcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwib25VbmJpbmQoKVwiXHJcbiAgICAgICAgPlxyXG4gICAgICAgICAgICB7eyB0KCdVTkJJTkQnKSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvbmctY29udGFpbmVyPlxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiUtilityModalCreateComponent } from './utility-modal-create.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3V0aWxpdHktbW9kYWwtY3JlYXRlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpVXRpbGl0eU1vZGFsQ3JlYXRlQ29tcG9uZW50IH0gZnJvbSAnLi91dGlsaXR5LW1vZGFsLWNyZWF0ZS5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input, signal } from '@angular/core';
|
|
3
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
4
|
+
import { CUI_WINDOW } from '@cuby-ui/cdk';
|
|
5
|
+
import { CUI_DIALOG_CONTEXT, CuiButtonModule, CuiSvgModule } from '../../../../components';
|
|
6
|
+
import { CuiLoaderComponent } from '../../../loader';
|
|
7
|
+
import { UTILITY_MODAL_SERVICE_TOKEN } from "../../utility-modal.options";
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "../../../../components/button/button.component";
|
|
10
|
+
export class CuiUtilityModalCreateComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.window = inject(CUI_WINDOW);
|
|
13
|
+
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
14
|
+
this.utilityModalService = inject(UTILITY_MODAL_SERVICE_TOKEN);
|
|
15
|
+
this.prevUtility = this.cuiDialogContext.data.utility;
|
|
16
|
+
this.editorResourceUrl = this.cuiDialogContext.data.editorResourceUrl;
|
|
17
|
+
this.tools = this.cuiDialogContext.data.tools;
|
|
18
|
+
this.header = this.cuiDialogContext.data.header;
|
|
19
|
+
this._utility = computed(() => signal(this.initialUtility()));
|
|
20
|
+
this.isFormValid = signal(false);
|
|
21
|
+
this.utility = computed(() => this._utility()());
|
|
22
|
+
this.initialUtility = input.required();
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.initWindowUnloadEvent();
|
|
26
|
+
}
|
|
27
|
+
ngOnDestroy() {
|
|
28
|
+
this.window.onbeforeunload = null;
|
|
29
|
+
}
|
|
30
|
+
onSave() {
|
|
31
|
+
this.cuiDialogContext.completeWith(this.initialUtility() ? { prevId: this.prevUtility.id, ...this.utility() } : this.utility());
|
|
32
|
+
}
|
|
33
|
+
onCancel() {
|
|
34
|
+
this.destroyUtility();
|
|
35
|
+
const returnedValue = this.initialUtility() ? this.utility() : null;
|
|
36
|
+
this.cuiDialogContext.completeWith(returnedValue);
|
|
37
|
+
}
|
|
38
|
+
initWindowUnloadEvent() {
|
|
39
|
+
this.window.onbeforeunload = () => this.destroyUtility();
|
|
40
|
+
}
|
|
41
|
+
destroyUtility() {
|
|
42
|
+
const utility = this.utility();
|
|
43
|
+
if (!utility || this.initialUtility()) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
this.utilityModalService.deleteUtility(utility).subscribe();
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalCreateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityModalCreateComponent, isStandalone: true, selector: "cui-utility-modal-create", inputs: { initialUtility: { classPropertyName: "initialUtility", publicName: "initialUtility", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <header class=\"header\">\r\n <ng-container [ngTemplateOutlet]=\"header\" />\r\n\r\n <div class=\"header__content\">\r\n <cui-loader />\r\n\r\n <div class=\"actions\">\r\n @if (!initialUtility()) {\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"secondary\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ t('CANCEL') }}\r\n </button>\r\n }\r\n\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n [disabled]=\"!isFormValid()\"\r\n appearance=\"action-violet\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ t('DONE') }}\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n\r\n <ng-content />\r\n</div>\r\n", styles: [".header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header__content{display:flex;gap:8px}.actions{display:flex;gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CuiButtonModule }, { kind: "component", type: i1.CuiButtonComponent, selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "component", type: CuiLoaderComponent, selector: "cui-loader" }, { kind: "ngmodule", type: CuiSvgModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
50
|
+
}
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalCreateComponent, decorators: [{
|
|
52
|
+
type: Component,
|
|
53
|
+
args: [{ selector: 'cui-utility-modal-create', imports: [CuiButtonModule, CuiLoaderComponent, CuiSvgModule, NgTemplateOutlet, TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"wrapper\"\r\n *transloco=\"let t\"\r\n>\r\n <header class=\"header\">\r\n <ng-container [ngTemplateOutlet]=\"header\" />\r\n\r\n <div class=\"header__content\">\r\n <cui-loader />\r\n\r\n <div class=\"actions\">\r\n @if (!initialUtility()) {\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"secondary\"\r\n (click)=\"onCancel()\"\r\n >\r\n {{ t('CANCEL') }}\r\n </button>\r\n }\r\n\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n [disabled]=\"!isFormValid()\"\r\n appearance=\"action-violet\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ t('DONE') }}\r\n </button>\r\n </div>\r\n </div>\r\n </header>\r\n\r\n <ng-content />\r\n</div>\r\n", styles: [".header{display:flex;align-items:center;justify-content:space-between;padding:16px 24px}.header__content{display:flex;gap:8px}.actions{display:flex;gap:16px}\n"] }]
|
|
54
|
+
}] });
|
|
55
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC1jcmVhdGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktbW9kYWwvY29tcG9uZW50cy91dGlsaXR5LW1vZGFsLWNyZWF0ZS91dGlsaXR5LW1vZGFsLWNyZWF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9jb21wb25lbnRzL3V0aWxpdHktbW9kYWwtY3JlYXRlL3V0aWxpdHktbW9kYWwtY3JlYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRW5ELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXhELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFMUMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsMkJBQTJCLEVBQWtCLE1BQU0sNkJBQTZCLENBQUM7OztBQVUxRixNQUFNLE9BQU8sOEJBQThCO0lBUjNDO1FBU3FCLFdBQU0sR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsd0JBQW1CLEdBQUcsTUFBTSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFFMUQsZ0JBQVcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUUvQyxzQkFBaUIsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pFLFVBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUN6QyxXQUFNLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7UUFFN0MsYUFBUSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUV2RCxnQkFBVyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixZQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFL0MsbUJBQWMsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFpQyxDQUFDO0tBcUNwRjtJQW5DVSxRQUFRO1FBQ1gsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVNLFdBQVc7UUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUM7SUFDdEMsQ0FBQztJQUVTLE1BQU07UUFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUM5QixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxFQUFFLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FDOUYsQ0FBQztJQUNOLENBQUM7SUFFUyxRQUFRO1FBQ2QsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXRCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFFcEUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8scUJBQXFCO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxHQUFHLEdBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUNuRSxDQUFDO0lBRU8sY0FBYztRQUNsQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFL0IsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQztZQUNwQyxPQUFPO1FBQ1gsQ0FBQztRQUVELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDaEUsQ0FBQzsrR0FwRFEsOEJBQThCO21HQUE5Qiw4QkFBOEIsa1BDbkIzQyx1a0NBcUNBLHdORHhCYyxlQUFlLDJOQUFFLGtCQUFrQixzREFBRSxZQUFZLCtCQUFFLGdCQUFnQixvSkFBRSxrQkFBa0I7OzRGQU14Riw4QkFBOEI7a0JBUjFDLFNBQVM7K0JBQ0ksMEJBQTBCLFdBQzNCLENBQUMsZUFBZSxFQUFFLGtCQUFrQixFQUFFLFlBQVksRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxjQUN0RixJQUFJLG1CQUdDLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHR5cGUgeyBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBjb21wdXRlZCwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcbmltcG9ydCB0eXBlIHsgU3RvcmFnZU9iamVjdCB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcbmltcG9ydCB7IENVSV9XSU5ET1cgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5cclxuaW1wb3J0IHsgQ1VJX0RJQUxPR19DT05URVhULCBDdWlCdXR0b25Nb2R1bGUsIEN1aVN2Z01vZHVsZSB9IGZyb20gJy4uLy4uLy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDdWlMb2FkZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9sb2FkZXInO1xyXG5pbXBvcnQgeyBVVElMSVRZX01PREFMX1NFUlZJQ0VfVE9LRU4sIFV0aWxpdHlFbGVtZW50IH0gZnJvbSBcIi4uLy4uL3V0aWxpdHktbW9kYWwub3B0aW9uc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LW1vZGFsLWNyZWF0ZScsXHJcbiAgICBpbXBvcnRzOiBbQ3VpQnV0dG9uTW9kdWxlLCBDdWlMb2FkZXJDb21wb25lbnQsIEN1aVN2Z01vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCwgVHJhbnNsb2NvRGlyZWN0aXZlXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vdXRpbGl0eS1tb2RhbC1jcmVhdGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3V0aWxpdHktbW9kYWwtY3JlYXRlLmNvbXBvbmVudC5zY3NzJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlVdGlsaXR5TW9kYWxDcmVhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHdpbmRvdyA9IGluamVjdChDVUlfV0lORE9XKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpRGlhbG9nQ29udGV4dCA9IGluamVjdChDVUlfRElBTE9HX0NPTlRFWFQpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB1dGlsaXR5TW9kYWxTZXJ2aWNlID0gaW5qZWN0KFVUSUxJVFlfTU9EQUxfU0VSVklDRV9UT0tFTik7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBwcmV2VXRpbGl0eSA9IHRoaXMuY3VpRGlhbG9nQ29udGV4dC5kYXRhLnV0aWxpdHk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvclJlc291cmNlVXJsID0gdGhpcy5jdWlEaWFsb2dDb250ZXh0LmRhdGEuZWRpdG9yUmVzb3VyY2VVcmw7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdG9vbHMgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS50b29scztcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBoZWFkZXIgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5oZWFkZXI7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBfdXRpbGl0eSA9IGNvbXB1dGVkKCgpID0+IHNpZ25hbCh0aGlzLmluaXRpYWxVdGlsaXR5KCkpKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNGb3JtVmFsaWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHV0aWxpdHkgPSBjb21wdXRlZCgoKSA9PiB0aGlzLl91dGlsaXR5KCkoKSk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGluaXRpYWxVdGlsaXR5ID0gaW5wdXQucmVxdWlyZWQ8U3RvcmFnZU9iamVjdDxVdGlsaXR5RWxlbWVudD4+KCk7XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdFdpbmRvd1VubG9hZEV2ZW50KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMud2luZG93Lm9uYmVmb3JldW5sb2FkID0gbnVsbDtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25TYXZlKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3VpRGlhbG9nQ29udGV4dC5jb21wbGV0ZVdpdGgoXHJcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbFV0aWxpdHkoKSA/IHsgcHJldklkOiB0aGlzLnByZXZVdGlsaXR5LmlkLCAuLi50aGlzLnV0aWxpdHkoKSB9IDogdGhpcy51dGlsaXR5KClcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkNhbmNlbCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3lVdGlsaXR5KCk7XHJcblxyXG4gICAgICAgIGNvbnN0IHJldHVybmVkVmFsdWUgPSB0aGlzLmluaXRpYWxVdGlsaXR5KCkgPyB0aGlzLnV0aWxpdHkoKSA6IG51bGw7XHJcblxyXG4gICAgICAgIHRoaXMuY3VpRGlhbG9nQ29udGV4dC5jb21wbGV0ZVdpdGgocmV0dXJuZWRWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0V2luZG93VW5sb2FkRXZlbnQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy53aW5kb3cub25iZWZvcmV1bmxvYWQgPSAoKTogdm9pZCA9PiB0aGlzLmRlc3Ryb3lVdGlsaXR5KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBkZXN0cm95VXRpbGl0eSgpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB1dGlsaXR5ID0gdGhpcy51dGlsaXR5KCk7XHJcblxyXG4gICAgICAgIGlmICghdXRpbGl0eSB8fCB0aGlzLmluaXRpYWxVdGlsaXR5KCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51dGlsaXR5TW9kYWxTZXJ2aWNlLmRlbGV0ZVV0aWxpdHkodXRpbGl0eSkuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gICAgY2xhc3M9XCJ3cmFwcGVyXCJcclxuICAgICp0cmFuc2xvY289XCJsZXQgdFwiXHJcbj5cclxuICAgIDxoZWFkZXIgY2xhc3M9XCJoZWFkZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImhlYWRlclwiIC8+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbnRlbnRcIj5cclxuICAgICAgICAgICAgPGN1aS1sb2FkZXIgLz5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICBAaWYgKCFpbml0aWFsVXRpbGl0eSgpKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJzZWNvbmRhcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25DYW5jZWwoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyB0KCdDQU5DRUwnKSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiIWlzRm9ybVZhbGlkKClcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJhY3Rpb24tdmlvbGV0XCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TYXZlKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ0RPTkUnKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9oZWFkZXI+XHJcblxyXG4gICAgPG5nLWNvbnRlbnQgLz5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './components';
|
|
2
|
+
export { CuiUtilityModalComponent } from './utility-modal.component';
|
|
3
|
+
export * from './utility-modal.options';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGNBQWMsQ0FBQztBQUM3QixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxjQUFjLHlCQUF5QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9jb21wb25lbnRzJztcclxuZXhwb3J0IHsgQ3VpVXRpbGl0eU1vZGFsQ29tcG9uZW50IH0gZnJvbSAnLi91dGlsaXR5LW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vdXRpbGl0eS1tb2RhbC5vcHRpb25zJztcclxuIl19
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, inject } from '@angular/core';
|
|
2
|
+
import { CUI_DIALOG_CONTEXT, CuiRenderDynamicComponentsComponent, CuiRenderDynamicComponentsService } from '../../components';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class CuiUtilityModalComponent {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.cuiDialogContext = inject(CUI_DIALOG_CONTEXT);
|
|
7
|
+
this.cuiRenderDynamicComponentsService = inject(CuiRenderDynamicComponentsService);
|
|
8
|
+
this.utility = this.cuiDialogContext.data.utility;
|
|
9
|
+
this.initialComponent = this.cuiDialogContext.data.initialComponent;
|
|
10
|
+
this.cuiRenderDynamicComponentsService.open({
|
|
11
|
+
component: this.initialComponent,
|
|
12
|
+
inputs: { initialUtility: this.utility }
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
16
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: CuiUtilityModalComponent, isStandalone: true, selector: "cui-utility-modal", providers: [CuiRenderDynamicComponentsService], ngImport: i0, template: "<cui-render-dynamic-components />\r\n", styles: [".host{display:block;height:calc(100vh - 40px)}\n"], dependencies: [{ kind: "component", type: CuiRenderDynamicComponentsComponent, selector: "cui-render-dynamic-components" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
17
|
+
}
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityModalComponent, decorators: [{
|
|
19
|
+
type: Component,
|
|
20
|
+
args: [{ selector: 'cui-utility-modal', imports: [CuiRenderDynamicComponentsComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, providers: [CuiRenderDynamicComponentsService], template: "<cui-render-dynamic-components />\r\n", styles: [".host{display:block;height:calc(100vh - 40px)}\n"] }]
|
|
21
|
+
}], ctorParameters: () => [] });
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1tb2RhbC91dGlsaXR5LW1vZGFsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LW1vZGFsL3V0aWxpdHktbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSx1QkFBdUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUNILGtCQUFrQixFQUNsQixtQ0FBbUMsRUFDbkMsaUNBQWlDLEVBQ3BDLE1BQU0sa0JBQWtCLENBQUM7O0FBVzFCLE1BQU0sT0FBTyx3QkFBd0I7SUFPakM7UUFOaUIscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDOUMsc0NBQWlDLEdBQUcsTUFBTSxDQUFDLGlDQUFpQyxDQUFDLENBQUM7UUFFNUUsWUFBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQzdDLHFCQUFnQixHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7UUFHOUUsSUFBSSxDQUFDLGlDQUFpQyxDQUFDLElBQUksQ0FBQztZQUN4QyxTQUFTLEVBQUUsSUFBSSxDQUFDLGdCQUFnQjtZQUNoQyxNQUFNLEVBQUUsRUFBRSxjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRTtTQUMzQyxDQUFDLENBQUM7SUFDUCxDQUFDOytHQVpRLHdCQUF3QjttR0FBeEIsd0JBQXdCLGdFQUZ0QixDQUFDLGlDQUFpQyxDQUFDLDBCQ2ZsRCx1Q0FDQSwwR0RTYyxtQ0FBbUM7OzRGQU9wQyx3QkFBd0I7a0JBVHBDLFNBQVM7K0JBQ0ksbUJBQW1CLFdBQ3BCLENBQUMsbUNBQW1DLENBQUMsY0FDbEMsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsaUNBQWlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDVUlfRElBTE9HX0NPTlRFWFQsXHJcbiAgICBDdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c0NvbXBvbmVudCxcclxuICAgIEN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZVxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LW1vZGFsJyxcclxuICAgIGltcG9ydHM6IFtDdWlSZW5kZXJEeW5hbWljQ29tcG9uZW50c0NvbXBvbmVudF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICd1dGlsaXR5LW1vZGFsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAndXRpbGl0eS1tb2RhbC5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICAgIHByb3ZpZGVyczogW0N1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aVV0aWxpdHlNb2RhbENvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aURpYWxvZ0NvbnRleHQgPSBpbmplY3QoQ1VJX0RJQUxPR19DT05URVhUKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlID0gaW5qZWN0KEN1aVJlbmRlckR5bmFtaWNDb21wb25lbnRzU2VydmljZSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHV0aWxpdHkgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS51dGlsaXR5O1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGluaXRpYWxDb21wb25lbnQgPSB0aGlzLmN1aURpYWxvZ0NvbnRleHQuZGF0YS5pbml0aWFsQ29tcG9uZW50O1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuY3VpUmVuZGVyRHluYW1pY0NvbXBvbmVudHNTZXJ2aWNlLm9wZW4oe1xyXG4gICAgICAgICAgICBjb21wb25lbnQ6IHRoaXMuaW5pdGlhbENvbXBvbmVudCxcclxuICAgICAgICAgICAgaW5wdXRzOiB7IGluaXRpYWxVdGlsaXR5OiB0aGlzLnV0aWxpdHkgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxjdWktcmVuZGVyLWR5bmFtaWMtY29tcG9uZW50cyAvPlxyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { InjectionToken } from "@angular/core";
|
|
2
|
+
export const UTILITY_MODAL_SERVICE_TOKEN = new InjectionToken('UTILITY_MODAL_SERVICE_TOKEN');
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1tb2RhbC5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktbW9kYWwvdXRpbGl0eS1tb2RhbC5vcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJL0MsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQUcsSUFBSSxjQUFjLENBQXNDLDZCQUE2QixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgdHlwZSB7IEluc3RydWN0aW9uLCBTdG9yYWdlT2JqZWN0LCBDcml0ZXJpb24gfSBmcm9tIFwiQGN1YnktdWkvYXBpXCI7XHJcblxyXG5leHBvcnQgY29uc3QgVVRJTElUWV9NT0RBTF9TRVJWSUNFX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPFV0aWxpdHlNb2RhbFNlcnZpY2U8VXRpbGl0eUVsZW1lbnQ+PignVVRJTElUWV9NT0RBTF9TRVJWSUNFX1RPS0VOJyk7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIFV0aWxpdHlNb2RhbFNlcnZpY2U8VCBleHRlbmRzIFV0aWxpdHlFbGVtZW50PiB7XHJcbiAgICBjcmVhdGVVdGlsaXR5KGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFN0b3JhZ2VPYmplY3Q8VD4+O1xyXG4gICAgY2hhbmdlVGl0bGUodXRpbGl0eUlkOiBzdHJpbmcsIHRpdGxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgY2hhbmdlRGVzY3JpcHRpb24/KHV0aWxpdHlJZDogc3RyaW5nLCBzaG9ydERlc2NyaXB0aW9uOiBzdHJpbmcpOiBPYnNlcnZhYmxlPHZvaWQ+O1xyXG4gICAgdW5iaW5kVXRpbGl0eShpZDogc3RyaW5nKTogT2JzZXJ2YWJsZTxTdG9yYWdlT2JqZWN0PFQ+PjtcclxuICAgIGRlbGV0ZVV0aWxpdHkodXRpbGl0eTogU3RvcmFnZU9iamVjdDxUPik6IE9ic2VydmFibGU8dm9pZD47XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIFV0aWxpdHlFbGVtZW50ID0gSW5zdHJ1Y3Rpb24gfCBDcml0ZXJpb247XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiUtilityReadonlyThumbnailComponent } from './utility-readonly-thumbnail.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG9DQUFvQyxFQUFFLE1BQU0sd0NBQXdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlVdGlsaXR5UmVhZG9ubHlUaHVtYm5haWxDb21wb25lbnQgfSBmcm9tICcuL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsLmNvbXBvbmVudCc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CuiUtilityReadonlyThumbnailComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.thumbnailUrl = input.required();
|
|
6
|
+
this.isVideo = input(false);
|
|
7
|
+
}
|
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityReadonlyThumbnailComponent, isStandalone: true, selector: "cui-utility-readonly-thumbnail", inputs: { thumbnailUrl: { classPropertyName: "thumbnailUrl", publicName: "thumbnailUrl", isSignal: true, isRequired: true, transformFunction: null }, isVideo: { classPropertyName: "isVideo", publicName: "isVideo", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@let url = thumbnailUrl();\r\n\r\n@if (url?.src; as src) {\r\n @if (isVideo()) {\r\n <video\r\n class=\"thumbnail\"\r\n [src]=\"src\"\r\n controls\r\n ></video>\r\n } @else {\r\n <img\r\n class=\"thumbnail\"\r\n [src]=\"src\"\r\n [alt]=\"url?.name\"\r\n />\r\n }\r\n}\r\n", styles: [".thumbnail{width:100%;max-height:271px;object-fit:contain}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityReadonlyThumbnailComponent, decorators: [{
|
|
12
|
+
type: Component,
|
|
13
|
+
args: [{ selector: 'cui-utility-readonly-thumbnail', imports: [], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@let url = thumbnailUrl();\r\n\r\n@if (url?.src; as src) {\r\n @if (isVideo()) {\r\n <video\r\n class=\"thumbnail\"\r\n [src]=\"src\"\r\n controls\r\n ></video>\r\n } @else {\r\n <img\r\n class=\"thumbnail\"\r\n [src]=\"src\"\r\n [alt]=\"url?.name\"\r\n />\r\n }\r\n}\r\n", styles: [".thumbnail{width:100%;max-height:271px;object-fit:contain}\n"] }]
|
|
14
|
+
}] });
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsL3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC91dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFXeEUsTUFBTSxPQUFPLG9DQUFvQztJQVJqRDtRQVNvQixpQkFBWSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWEsQ0FBQztRQUMzQyxZQUFPLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO0tBQzFDOytHQUhZLG9DQUFvQzttR0FBcEMsb0NBQW9DLGdYQ1hqRCx3WEFpQkE7OzRGRE5hLG9DQUFvQztrQkFSaEQsU0FBUzsrQkFDSSxnQ0FBZ0MsV0FDakMsRUFBRSxjQUNDLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IEN1aUltZ1VybCB9IGZyb20gJy4uLy4uL2ludGVyZmFjZXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS11dGlsaXR5LXJlYWRvbmx5LXRodW1ibmFpbCcsXHJcbiAgICBpbXBvcnRzOiBbXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJ3V0aWxpdHktcmVhZG9ubHktdGh1bWJuYWlsLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAndXRpbGl0eS1yZWFkb25seS10aHVtYm5haWwuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aVV0aWxpdHlSZWFkb25seVRodW1ibmFpbENvbXBvbmVudCB7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGh1bWJuYWlsVXJsID0gaW5wdXQucmVxdWlyZWQ8Q3VpSW1nVXJsPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGlzVmlkZW8gPSBpbnB1dChmYWxzZSk7XHJcbn1cclxuIiwiQGxldCB1cmwgPSB0aHVtYm5haWxVcmwoKTtcclxuXHJcbkBpZiAodXJsPy5zcmM7IGFzIHNyYykge1xyXG4gICAgQGlmIChpc1ZpZGVvKCkpIHtcclxuICAgICAgICA8dmlkZW9cclxuICAgICAgICAgICAgY2xhc3M9XCJ0aHVtYm5haWxcIlxyXG4gICAgICAgICAgICBbc3JjXT1cInNyY1wiXHJcbiAgICAgICAgICAgIGNvbnRyb2xzXHJcbiAgICAgICAgPjwvdmlkZW8+XHJcbiAgICB9IEBlbHNlIHtcclxuICAgICAgICA8aW1nXHJcbiAgICAgICAgICAgIGNsYXNzPVwidGh1bWJuYWlsXCJcclxuICAgICAgICAgICAgW3NyY109XCJzcmNcIlxyXG4gICAgICAgICAgICBbYWx0XT1cInVybD8ubmFtZVwiXHJcbiAgICAgICAgLz5cclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiUtilityThumbnailComponent } from './utility-thumbnail.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvdXRpbGl0eS10aHVtYm5haWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0sK0JBQStCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlVdGlsaXR5VGh1bWJuYWlsQ29tcG9uZW50IH0gZnJvbSAnLi91dGlsaXR5LXRodW1ibmFpbC5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, inject, input, model } from '@angular/core';
|
|
2
|
+
import { TranslocoDirective, TranslocoService } from '@jsverse/transloco';
|
|
3
|
+
import { CuiFrameApiService } from '@cuby-ui/api';
|
|
4
|
+
import { FilesUploader, takeCaptureFromVideo } from '@cuby-ui/cdk';
|
|
5
|
+
import { CuiAlertService } from '../../components';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
export class CuiUtilityThumbnailComponent {
|
|
8
|
+
constructor() {
|
|
9
|
+
this.cuiAlertService = inject(CuiAlertService);
|
|
10
|
+
this.translocoService = inject(TranslocoService);
|
|
11
|
+
this.frameApiService = inject(CuiFrameApiService);
|
|
12
|
+
this.MAX_FILE_SIZE = 20971520;
|
|
13
|
+
this.thumbnailUrl = computed(() => {
|
|
14
|
+
const thumbnail = this.thumbnail();
|
|
15
|
+
if (thumbnail?.resource) {
|
|
16
|
+
return thumbnail.resource;
|
|
17
|
+
}
|
|
18
|
+
return this.baseResourceUrl() + thumbnail.fileId;
|
|
19
|
+
});
|
|
20
|
+
this.uploadButtonName = computed(() => {
|
|
21
|
+
const thumbnail = this.thumbnail();
|
|
22
|
+
if (thumbnail?.name) {
|
|
23
|
+
return this.translocoService.translate('REPLACE_FILE');
|
|
24
|
+
}
|
|
25
|
+
return this.translocoService.translate('UPLOAD_FILE');
|
|
26
|
+
});
|
|
27
|
+
this.thumbnail = model.required();
|
|
28
|
+
this.framerId = input.required();
|
|
29
|
+
this.baseResourceUrl = input.required();
|
|
30
|
+
}
|
|
31
|
+
onSelectFile() {
|
|
32
|
+
const types = 'image/jpg, image/jpeg, image/png, video/mp4';
|
|
33
|
+
FilesUploader.uploadFile(types).then((files) => this.getFile(files));
|
|
34
|
+
}
|
|
35
|
+
onRemoveThumbnail() {
|
|
36
|
+
const frameId = this.framerId();
|
|
37
|
+
const fragmentId = this.thumbnail()?.id;
|
|
38
|
+
if (!frameId || !fragmentId) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.frameApiService.deleteResource(frameId, fragmentId).subscribe(() => {
|
|
42
|
+
this.thumbnail.update((prev) => ({ ...prev, fileId: null, name: null, resource: null }));
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
getFile(files) {
|
|
46
|
+
const file = files.item(0);
|
|
47
|
+
if (!file) {
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (file.size > this.MAX_FILE_SIZE) {
|
|
51
|
+
this.cuiAlertService
|
|
52
|
+
.open(this.translocoService.translate('INVALID_FILE_SIZE'), {
|
|
53
|
+
status: 'error'
|
|
54
|
+
})
|
|
55
|
+
.subscribe();
|
|
56
|
+
return;
|
|
57
|
+
}
|
|
58
|
+
const isVideo = file.name.split('.').at(-1) === 'mp4';
|
|
59
|
+
const url = URL.createObjectURL(file);
|
|
60
|
+
if (isVideo) {
|
|
61
|
+
this.getCaptureFromVideo(url, file);
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
this.thumbnail.update((prev) => ({ ...prev, name: file.name, resource: url }));
|
|
65
|
+
}
|
|
66
|
+
this.uploadFile(file);
|
|
67
|
+
}
|
|
68
|
+
uploadFile(file) {
|
|
69
|
+
const frameId = this.framerId();
|
|
70
|
+
const fragmentId = this.thumbnail()?.id;
|
|
71
|
+
if (!frameId || !fragmentId) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
const formData = new FormData();
|
|
75
|
+
formData.append('resource', file);
|
|
76
|
+
this.frameApiService.uploadResource(formData, frameId, fragmentId).subscribe();
|
|
77
|
+
}
|
|
78
|
+
getCaptureFromVideo(url, file) {
|
|
79
|
+
takeCaptureFromVideo(url).then((capture) => {
|
|
80
|
+
this.thumbnail.update((prev) => ({
|
|
81
|
+
...prev,
|
|
82
|
+
name: (file?.name || prev?.name),
|
|
83
|
+
resource: capture
|
|
84
|
+
}));
|
|
85
|
+
});
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityThumbnailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityThumbnailComponent, isStandalone: true, selector: "cui-utility-thumbnail", inputs: { thumbnail: { classPropertyName: "thumbnail", publicName: "thumbnail", 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 } }, outputs: { thumbnail: "thumbnailChange" }, ngImport: i0, template: "<section\r\n *transloco=\"let t\"\r\n class=\"file\"\r\n>\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"upload\">\r\n <div class=\"upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img\r\n class=\"image__view\"\r\n [src]=\"thumbnailUrl()\"\r\n height=\"120\"\r\n width=\"184\"\r\n alt=\"Thumbnail\"\r\n />\r\n </div>\r\n }\r\n <div class=\"info\">\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"outlined-gray\"\r\n size=\"xxs\"\r\n icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\"\r\n >\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button\r\n class=\"remove-button\"\r\n cuiButton\r\n appearance=\"link\"\r\n size=\"sm\"\r\n type=\"button\"\r\n (click)=\"onRemoveThumbnail()\"\r\n >\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"accepted\">{{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB</span>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".file{display:flex;flex-direction:column;gap:4px}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.upload-file{display:flex;align-items:center;gap:8px}.upload-file input[type=file]{display:none}.info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.accepted{color:var(--cui-base-500)}.remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}\n"], dependencies: [{ kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityThumbnailComponent, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'cui-utility-thumbnail', imports: [TranslocoDirective], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<section\r\n *transloco=\"let t\"\r\n class=\"file\"\r\n>\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"upload\">\r\n <div class=\"upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img\r\n class=\"image__view\"\r\n [src]=\"thumbnailUrl()\"\r\n height=\"120\"\r\n width=\"184\"\r\n alt=\"Thumbnail\"\r\n />\r\n </div>\r\n }\r\n <div class=\"info\">\r\n <button\r\n type=\"button\"\r\n cuiButton\r\n appearance=\"outlined-gray\"\r\n size=\"xxs\"\r\n icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\"\r\n >\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button\r\n class=\"remove-button\"\r\n cuiButton\r\n appearance=\"link\"\r\n size=\"sm\"\r\n type=\"button\"\r\n (click)=\"onRemoveThumbnail()\"\r\n >\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"accepted\">{{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB</span>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n", styles: [".file{display:flex;flex-direction:column;gap:4px}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.upload-file{display:flex;align-items:center;gap:8px}.upload-file input[type=file]{display:none}.info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.accepted{color:var(--cui-base-500)}.remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}\n"] }]
|
|
93
|
+
}] });
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS10aHVtYm5haWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL3V0aWxpdHktdGh1bWJuYWlsL3V0aWxpdHktdGh1bWJuYWlsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LXRodW1ibmFpbC91dGlsaXR5LXRodW1ibmFpbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUUxRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUVuRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBVW5ELE1BQU0sT0FBTyw0QkFBNEI7SUFSekM7UUFTcUIsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsb0JBQWUsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUUzQyxrQkFBYSxHQUFHLFFBQVEsQ0FBQztRQUV6QixpQkFBWSxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBRW5DLElBQUksU0FBUyxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUN0QixPQUFPLFNBQVMsQ0FBQyxR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QVJ4QyxTQUFTOytCQUNJLHVCQUF1QixXQUN4QixDQUFDLGtCQUFrQixDQUFDLGNBQ2pCLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBtb2RlbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUsIFRyYW5zbG9jb1NlcnZpY2UgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgdHlwZSB7IFJlc291cmNlRnJhZ21lbnQgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgeyBDdWlGcmFtZUFwaVNlcnZpY2UgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgRmlsZXNVcGxvYWRlciwgdGFrZUNhcHR1cmVGcm9tVmlkZW8gfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5cclxuaW1wb3J0IHsgQ3VpQWxlcnRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLXV0aWxpdHktdGh1bWJuYWlsJyxcclxuICAgIGltcG9ydHM6IFtUcmFuc2xvY29EaXJlY3RpdmVdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAndXRpbGl0eS10aHVtYm5haWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICd1dGlsaXR5LXRodW1ibmFpbC5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eVRodW1ibmFpbENvbXBvbmVudCB7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFsZXJ0U2VydmljZSA9IGluamVjdChDdWlBbGVydFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xvY29TZXJ2aWNlID0gaW5qZWN0KFRyYW5zbG9jb1NlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmcmFtZUFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpRnJhbWVBcGlTZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgTUFYX0ZJTEVfU0laRSA9IDIwOTcxNTIwO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSB0aHVtYm5haWxVcmwgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gdGhpcy50aHVtYm5haWwoKTtcclxuXHJcbiAgICAgICAgaWYgKHRodW1ibmFpbD8ucmVzb3VyY2UpIHtcclxuICAgICAgICAgICAgcmV0dXJuIHRodW1ibmFpbC5yZXNvdXJjZTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLmJhc2VSZXNvdXJjZVVybCgpICsgdGh1bWJuYWlsIS5maWxlSWQhO1xyXG4gICAgfSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdXBsb2FkQnV0dG9uTmFtZSA9IGNvbXB1dGVkKCgpID0+IHtcclxuICAgICAgICBjb25zdCB0aHVtYm5haWwgPSB0aGlzLnRodW1ibmFpbCgpO1xyXG5cclxuICAgICAgICBpZiAodGh1bWJuYWlsPy5uYW1lKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdSRVBMQUNFX0ZJTEUnKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiB0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdVUExPQURfRklMRScpO1xyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRodW1ibmFpbCA9IG1vZGVsLnJlcXVpcmVkPEN1aU51bGxhYmxlPFJlc291cmNlRnJhZ21lbnQ+PigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGZyYW1lcklkID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJhc2VSZXNvdXJjZVVybCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25TZWxlY3RGaWxlKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHR5cGVzID0gJ2ltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCB2aWRlby9tcDQnO1xyXG5cclxuICAgICAgICBGaWxlc1VwbG9hZGVyLnVwbG9hZEZpbGUodHlwZXMpLnRoZW4oKGZpbGVzKSA9PiB0aGlzLmdldEZpbGUoZmlsZXMpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25SZW1vdmVUaHVtYm5haWwoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudElkID0gdGhpcy50aHVtYm5haWwoKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS5kZWxldGVSZXNvdXJjZShmcmFtZUlkLCBmcmFnbWVudElkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBmaWxlSWQ6IG51bGwsIG5hbWU6IG51bGwsIHJlc291cmNlOiBudWxsIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldEZpbGUoZmlsZXM6IEZpbGVMaXN0KTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZmlsZSA9IGZpbGVzLml0ZW0oMCk7XHJcblxyXG4gICAgICAgIGlmICghZmlsZSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZmlsZS5zaXplID4gdGhpcy5NQVhfRklMRV9TSVpFKSB7XHJcbiAgICAgICAgICAgIHRoaXMuY3VpQWxlcnRTZXJ2aWNlXHJcbiAgICAgICAgICAgICAgICAub3Blbih0aGlzLnRyYW5zbG9jb1NlcnZpY2UudHJhbnNsYXRlKCdJTlZBTElEX0ZJTEVfU0laRScpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiAnZXJyb3InXHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgaXNWaWRlbyA9IGZpbGUubmFtZS5zcGxpdCgnLicpLmF0KC0xKSA9PT0gJ21wNCc7XHJcbiAgICAgICAgY29uc3QgdXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChmaWxlKTtcclxuXHJcbiAgICAgICAgaWYgKGlzVmlkZW8pIHtcclxuICAgICAgICAgICAgdGhpcy5nZXRDYXB0dXJlRnJvbVZpZGVvKHVybCwgZmlsZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy50aHVtYm5haWwudXBkYXRlKChwcmV2KSA9PiAoeyAuLi5wcmV2ISwgbmFtZTogZmlsZS5uYW1lLCByZXNvdXJjZTogdXJsIH0pKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZyYW1lSWQgPSB0aGlzLmZyYW1lcklkKCk7XHJcbiAgICAgICAgY29uc3QgZnJhZ21lbnRJZCA9IHRoaXMudGh1bWJuYWlsKCk/LmlkO1xyXG5cclxuICAgICAgICBpZiAoIWZyYW1lSWQgfHwgIWZyYWdtZW50SWQpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3QgZm9ybURhdGEgPSBuZXcgRm9ybURhdGEoKTtcclxuICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ3Jlc291cmNlJywgZmlsZSk7XHJcblxyXG4gICAgICAgIHRoaXMuZnJhbWVBcGlTZXJ2aWNlLnVwbG9hZFJlc291cmNlKGZvcm1EYXRhLCBmcmFtZUlkLCBmcmFnbWVudElkKS5zdWJzY3JpYmUoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldENhcHR1cmVGcm9tVmlkZW8odXJsOiBzdHJpbmcsIGZpbGU/OiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgdGFrZUNhcHR1cmVGcm9tVmlkZW8odXJsKS50aGVuKChjYXB0dXJlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgIC4uLnByZXYhLFxyXG4gICAgICAgICAgICAgICAgbmFtZTogKGZpbGU/Lm5hbWUgfHwgcHJldj8ubmFtZSkhLFxyXG4gICAgICAgICAgICAgICAgcmVzb3VyY2U6IGNhcHR1cmVcclxuICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG59XHJcbiIsIjxzZWN0aW9uXHJcbiAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4gICAgY2xhc3M9XCJmaWxlXCJcclxuPlxyXG4gICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7IHQoJ1RIVU1CTkFJTCcpIH19PC9zcGFuPlxyXG4gICAgPGRpdiBjbGFzcz1cInVwbG9hZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ1cGxvYWQtZmlsZVwiPlxyXG4gICAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lOyBhcyBmaWxlSWQpIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1hZ2VfX25hbWVcIj57eyB0aHVtYm5haWwoKT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8IS0tIFRPRE86IG5nU3JjIC0tPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWdcclxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbWFnZV9fdmlld1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtzcmNdPVwidGh1bWJuYWlsVXJsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9XCIxMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjE4NFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlRodW1ibmFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cIm91dGxpbmVkLWdyYXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHNpemU9XCJ4eHNcIlxyXG4gICAgICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uVXBsb2FkXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RGaWxlKClcIlxyXG4gICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHVwbG9hZEJ1dHRvbk5hbWUoKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInJlbW92ZS1idXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjdWlCdXR0b25cclxuICAgICAgICAgICAgICAgICAgICAgICAgYXBwZWFyYW5jZT1cImxpbmtcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uUmVtb3ZlVGh1bWJuYWlsKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgdCgnUkVNT1ZFJykgfX1cclxuICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImFjY2VwdGVkXCI+e3sgdCgnQUNDRVBURUQnKSB9fTogSlBHLCBKUEVHLCBQTkcsIE1QNCB7eyB0KCdVUF9UTycpIH19IDIwTUI8L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvc2VjdGlvbj5cclxuIl19
|