@cuby-ui/core 0.0.227 → 0.0.230
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/button/button.component.d.ts +1 -1
- package/components/content-wrapper/content-wrapper.component.d.ts +11 -0
- package/components/content-wrapper/index.d.ts +1 -0
- package/components/empty-state/empty-state.component.d.ts +7 -0
- package/components/empty-state/index.d.ts +1 -0
- package/components/ghost-input/ghost-input.component.d.ts +6 -0
- package/components/ghost-input/index.d.ts +1 -0
- package/components/index.d.ts +3 -0
- package/components/sidebar/sidebar-header/sidebar-header.component.d.ts +1 -1
- package/components/sidebar/sidebar-navigation-item/sidebar-navigation-item.component.d.ts +1 -1
- package/directives/tooltip/tooltip.component.d.ts +1 -1
- package/editor/components/editor-attaches-tool/editor-attaches-tool.component.d.ts +44 -0
- package/editor/components/editor-attaches-tool/editor-attaches-tool.options.d.ts +17 -0
- package/editor/components/editor-attaches-tool/index.d.ts +2 -0
- package/editor/components/editor-image-tool/editor-image-tool.component.d.ts +14 -0
- package/editor/components/editor-image-tool/editor-image-tool.options.d.ts +26 -0
- package/editor/components/editor-image-tool/index.d.ts +2 -0
- package/editor/components/editor-tool/editor-tool.component.d.ts +22 -0
- package/editor/components/editor-tool-modal/editor-tool-modal.component.d.ts +24 -0
- package/editor/components/editor-tool-modal/editor-tool-modal.options.d.ts +8 -0
- package/editor/components/editor-tool-modal/index.d.ts +2 -0
- package/editor/components/editor-tooltip/editor-tooltip.component.d.ts +16 -0
- package/editor/components/editor-tooltip/editor-tooltip.options.d.ts +9 -0
- package/editor/components/editor-tooltip/index.d.ts +2 -0
- package/editor/components/editor-video-tool/editor-video-tool.component.d.ts +12 -0
- package/editor/components/editor-video-tool/editor-video-tool.options.d.ts +26 -0
- package/editor/components/editor-video-tool/index.d.ts +2 -0
- package/editor/components/index.d.ts +7 -0
- package/editor/components/marker-modal/index.d.ts +3 -0
- package/editor/components/marker-modal/marker-modal.component.d.ts +62 -0
- package/editor/components/marker-modal/marker-modal.interfaces.d.ts +7 -0
- package/editor/components/marker-modal/marker-modal.options.d.ts +1 -0
- package/editor/components/marker-select/component/select-item/select-option.component.d.ts +7 -0
- package/editor/components/marker-select/index.d.ts +2 -0
- package/editor/components/marker-select/marker-select.component.d.ts +40 -0
- package/editor/components/marker-select/marker-select.options.d.ts +1 -0
- package/editor/config/custom-elements.d.ts +2 -0
- package/editor/config/editor.config.d.ts +3 -0
- package/editor/config/editor.provider.d.ts +2 -0
- package/editor/config/index.d.ts +2 -0
- package/editor/constants/editor.constants.d.ts +15 -0
- package/editor/constants/index.d.ts +1 -0
- package/editor/editor.component.d.ts +71 -0
- package/editor/events/editor-drag.event.d.ts +2 -0
- package/editor/events/editor-keyboard.event.d.ts +2 -0
- package/editor/events/editor-modal.event.d.ts +3 -0
- package/editor/events/editor-tooltip.event.d.ts +2 -0
- package/editor/events/set-editor-events.d.ts +1 -0
- package/editor/index.d.ts +9 -0
- package/editor/interfaces/angular-element.d.ts +2 -0
- package/editor/interfaces/blocks-request-data.d.ts +6 -0
- package/editor/interfaces/combined-block-adding-event.d.ts +7 -0
- package/editor/interfaces/combined-block-data.d.ts +5 -0
- package/editor/interfaces/combined-part-block-data.d.ts +7 -0
- package/editor/interfaces/custom-element.d.ts +5 -0
- package/editor/interfaces/event-action-data.d.ts +5 -0
- package/editor/interfaces/file-response-data.d.ts +10 -0
- package/editor/interfaces/full-block-data.d.ts +8 -0
- package/editor/interfaces/index.d.ts +14 -0
- package/editor/interfaces/main-editor-config.d.ts +15 -0
- package/editor/interfaces/mutation-actions.d.ts +5 -0
- package/editor/interfaces/parent.d.ts +4 -0
- package/editor/interfaces/tools.d.ts +4 -0
- package/editor/interfaces/tune.d.ts +6 -0
- package/editor/pipes/file-size.pipe.d.ts +9 -0
- package/editor/services/editor-service.options.d.ts +8 -0
- package/editor/services/editor.service.d.ts +23 -0
- package/editor/services/index.d.ts +6 -0
- package/editor/services/jtext-api.options.d.ts +20 -0
- package/editor/services/jtext-api.service.d.ts +23 -0
- package/editor/services/markers-service.options.d.ts +4 -0
- package/editor/services/markers.service.d.ts +11 -0
- package/editor/tools/attaches.tool.d.ts +28 -0
- package/editor/tools/bold.tool.d.ts +11 -0
- package/editor/tools/combined-text-block.tool.d.ts +49 -0
- package/editor/tools/custom-marker.tool.d.ts +16 -0
- package/editor/tools/header.tool.d.ts +8 -0
- package/editor/tools/image.tool.d.ts +37 -0
- package/editor/tools/index.d.ts +11 -0
- package/editor/tools/italic.tool.d.ts +12 -0
- package/editor/tools/link-marker.tool.d.ts +15 -0
- package/editor/tools/list.tool.d.ts +5 -0
- package/editor/tools/marker.tool.d.ts +36 -0
- package/editor/tools/role-marker.tool.d.ts +7 -0
- package/editor/tools/selection-base.tool.d.ts +24 -0
- package/editor/tools/tool-marker.tool.d.ts +7 -0
- package/editor/tools/video.tool.d.ts +32 -0
- package/editor/utils/create-link-modal.d.ts +3 -0
- package/editor/utils/create-tool-modal.d.ts +4 -0
- package/editor/utils/create-tooltip.d.ts +8 -0
- package/editor/utils/file-uploader.d.ts +26 -0
- package/editor/utils/generate-id.d.ts +1 -0
- package/editor/utils/index.d.ts +9 -0
- package/editor/utils/recalculate-indexes.d.ts +2 -0
- package/editor/utils/remove-element-tag-wrapper.d.ts +1 -0
- package/editor/utils/split-html.d.ts +1 -0
- package/editor/utils/url.validator.d.ts +2 -0
- package/editor/widgets/editor-block/editor-block.component.d.ts +22 -0
- package/editor/widgets/editor-block/index.d.ts +1 -0
- package/editor/widgets/editor-modal/editor-modal.component.d.ts +19 -0
- package/editor/widgets/editor-modal/index.d.ts +1 -0
- package/editor/widgets/editor-readonly/editor-readonly.component.d.ts +28 -0
- package/editor/widgets/editor-readonly/editor-readonly.options.d.ts +5 -0
- package/editor/widgets/editor-readonly/index.d.ts +2 -0
- package/editor/widgets/index.d.ts +3 -0
- package/esm2022/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/components/content-wrapper/content-wrapper.component.mjs +29 -0
- package/esm2022/components/content-wrapper/index.mjs +2 -0
- package/esm2022/components/empty-state/empty-state.component.mjs +17 -0
- package/esm2022/components/empty-state/index.mjs +2 -0
- package/esm2022/components/ghost-input/ghost-input.component.mjs +16 -0
- package/esm2022/components/ghost-input/index.mjs +2 -0
- package/esm2022/components/index.mjs +4 -1
- package/esm2022/directives/tooltip/tooltip-describe.directive.mjs +5 -3
- package/esm2022/directives/tooltip/tooltip-position.directive.mjs +6 -3
- package/esm2022/directives/tooltip/tooltip.component.mjs +6 -3
- package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.component.mjs +76 -0
- package/esm2022/editor/components/editor-attaches-tool/editor-attaches-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-attaches-tool/index.mjs +3 -0
- package/esm2022/editor/components/editor-image-tool/editor-image-tool.component.mjs +43 -0
- package/esm2022/editor/components/editor-image-tool/editor-image-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-image-tool/index.mjs +3 -0
- package/esm2022/editor/components/editor-tool/editor-tool.component.mjs +74 -0
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.component.mjs +69 -0
- package/esm2022/editor/components/editor-tool-modal/editor-tool-modal.options.mjs +2 -0
- package/esm2022/editor/components/editor-tool-modal/index.mjs +3 -0
- package/esm2022/editor/components/editor-tooltip/editor-tooltip.component.mjs +45 -0
- package/esm2022/editor/components/editor-tooltip/editor-tooltip.options.mjs +2 -0
- package/esm2022/editor/components/editor-tooltip/index.mjs +3 -0
- package/esm2022/editor/components/editor-video-tool/editor-video-tool.component.mjs +41 -0
- package/esm2022/editor/components/editor-video-tool/editor-video-tool.options.mjs +2 -0
- package/esm2022/editor/components/editor-video-tool/index.mjs +3 -0
- package/esm2022/editor/components/index.mjs +8 -0
- package/esm2022/editor/components/marker-modal/index.mjs +3 -0
- package/esm2022/editor/components/marker-modal/marker-modal.component.mjs +261 -0
- package/esm2022/editor/components/marker-modal/marker-modal.interfaces.mjs +2 -0
- package/esm2022/editor/components/marker-modal/marker-modal.options.mjs +2 -0
- package/esm2022/editor/components/marker-select/component/select-item/select-option.component.mjs +15 -0
- package/esm2022/editor/components/marker-select/index.mjs +3 -0
- package/esm2022/editor/components/marker-select/marker-select.component.mjs +155 -0
- package/esm2022/editor/components/marker-select/marker-select.options.mjs +2 -0
- package/esm2022/editor/config/custom-elements.mjs +32 -0
- package/esm2022/editor/config/editor.config.mjs +30 -0
- package/esm2022/editor/config/editor.provider.mjs +19 -0
- package/esm2022/editor/config/index.mjs +3 -0
- package/esm2022/editor/constants/editor.constants.mjs +20 -0
- package/esm2022/editor/constants/index.mjs +2 -0
- package/esm2022/editor/editor.component.mjs +380 -0
- package/esm2022/editor/events/editor-drag.event.mjs +7 -0
- package/esm2022/editor/events/editor-keyboard.event.mjs +33 -0
- package/esm2022/editor/events/editor-modal.event.mjs +31 -0
- package/esm2022/editor/events/editor-tooltip.event.mjs +63 -0
- package/esm2022/editor/events/set-editor-events.mjs +11 -0
- package/esm2022/editor/i18n/en.json +14 -0
- package/esm2022/editor/index.mjs +8 -0
- package/esm2022/editor/interfaces/angular-element.mjs +2 -0
- package/esm2022/editor/interfaces/blocks-request-data.mjs +2 -0
- package/esm2022/editor/interfaces/combined-block-adding-event.mjs +2 -0
- package/esm2022/editor/interfaces/combined-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/combined-part-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/custom-element.mjs +2 -0
- package/esm2022/editor/interfaces/event-action-data.mjs +2 -0
- package/esm2022/editor/interfaces/file-response-data.mjs +2 -0
- package/esm2022/editor/interfaces/full-block-data.mjs +2 -0
- package/esm2022/editor/interfaces/index.mjs +14 -0
- package/esm2022/editor/interfaces/main-editor-config.mjs +2 -0
- package/esm2022/editor/interfaces/mutation-actions.mjs +2 -0
- package/esm2022/editor/interfaces/parent.mjs +2 -0
- package/esm2022/editor/interfaces/tools.mjs +2 -0
- package/esm2022/editor/interfaces/tune.mjs +2 -0
- package/esm2022/editor/pipes/file-size.pipe.mjs +25 -0
- package/esm2022/editor/services/editor-service.options.mjs +4 -0
- package/esm2022/editor/services/editor.service.mjs +138 -0
- package/esm2022/editor/services/index.mjs +7 -0
- package/esm2022/editor/services/jtext-api.options.mjs +2 -0
- package/esm2022/editor/services/jtext-api.service.mjs +50 -0
- package/esm2022/editor/services/markers-service.options.mjs +2 -0
- package/esm2022/editor/services/markers.service.mjs +79 -0
- package/esm2022/editor/tools/attaches.tool.mjs +96 -0
- package/esm2022/editor/tools/bold.tool.mjs +33 -0
- package/esm2022/editor/tools/combined-text-block.tool.mjs +380 -0
- package/esm2022/editor/tools/custom-marker.tool.mjs +88 -0
- package/esm2022/editor/tools/header.tool.mjs +16 -0
- package/esm2022/editor/tools/image.tool.mjs +157 -0
- package/esm2022/editor/tools/index.mjs +12 -0
- package/esm2022/editor/tools/italic.tool.mjs +35 -0
- package/esm2022/editor/tools/link-marker.tool.mjs +80 -0
- package/esm2022/editor/tools/list.tool.mjs +10 -0
- package/esm2022/editor/tools/marker.tool.mjs +144 -0
- package/esm2022/editor/tools/role-marker.tool.mjs +17 -0
- package/esm2022/editor/tools/selection-base.tool.mjs +92 -0
- package/esm2022/editor/tools/tool-marker.tool.mjs +14 -0
- package/esm2022/editor/tools/video.tool.mjs +132 -0
- package/esm2022/editor/utils/create-link-modal.mjs +22 -0
- package/esm2022/editor/utils/create-tool-modal.mjs +45 -0
- package/esm2022/editor/utils/create-tooltip.mjs +44 -0
- package/esm2022/editor/utils/file-uploader.mjs +57 -0
- package/esm2022/editor/utils/generate-id.mjs +4 -0
- package/esm2022/editor/utils/index.mjs +10 -0
- package/esm2022/editor/utils/recalculate-indexes.mjs +32 -0
- package/esm2022/editor/utils/remove-element-tag-wrapper.mjs +11 -0
- package/esm2022/editor/utils/split-html.mjs +128 -0
- package/esm2022/editor/utils/url.validator.mjs +12 -0
- package/esm2022/editor/widgets/editor-block/editor-block.component.mjs +63 -0
- package/esm2022/editor/widgets/editor-block/index.mjs +2 -0
- package/esm2022/editor/widgets/editor-modal/editor-modal.component.mjs +47 -0
- package/esm2022/editor/widgets/editor-modal/index.mjs +2 -0
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.component.mjs +40 -0
- package/esm2022/editor/widgets/editor-readonly/editor-readonly.options.mjs +2 -0
- package/esm2022/editor/widgets/editor-readonly/index.mjs +2 -0
- package/esm2022/editor/widgets/index.mjs +4 -0
- package/esm2022/index.mjs +3 -1
- package/esm2022/interceptors/loader.interceptor.mjs +3 -3
- package/esm2022/services/loader.options.mjs +2 -2
- package/esm2022/services/loader.service.mjs +11 -11
- package/esm2022/utils/default-validators/create-default-validators.mjs +12 -0
- package/esm2022/utils/default-validators/extra-spaces.options.mjs +11 -0
- package/esm2022/utils/default-validators/extra-spaces.validators.mjs +16 -0
- package/esm2022/utils/default-validators/index.mjs +2 -0
- package/esm2022/utils/index.mjs +2 -1
- package/esm2022/widgets/categories/categories.component.mjs +75 -0
- package/esm2022/widgets/categories/components/categories-list/categories-list.component.mjs +16 -0
- package/esm2022/widgets/categories/components/categories-list/index.mjs +2 -0
- package/esm2022/widgets/categories/components/category-form/category-form.component.mjs +79 -0
- package/esm2022/widgets/categories/components/category-form/index.mjs +2 -0
- package/esm2022/widgets/categories/components/category-item/category-item.component.mjs +123 -0
- package/esm2022/widgets/categories/components/category-item/index.mjs +2 -0
- package/esm2022/widgets/categories/components/create-category-item/create-category-item.component.mjs +25 -0
- package/esm2022/widgets/categories/components/create-category-item/index.mjs +2 -0
- package/esm2022/widgets/categories/components/index.mjs +3 -0
- package/esm2022/widgets/categories/index.mjs +2 -0
- package/esm2022/widgets/categories/services/index.mjs +2 -0
- package/esm2022/widgets/categories/services/selected-category.service.mjs +38 -0
- package/esm2022/widgets/general-control-error-hint/general-control-error-hint.component.mjs +21 -0
- package/esm2022/widgets/general-control-error-hint/index.mjs +2 -0
- package/esm2022/widgets/index.mjs +3 -0
- package/esm2022/widgets/utility-info/index.mjs +2 -0
- package/esm2022/widgets/utility-info/utility-info.component.mjs +224 -0
- package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs +29 -0
- package/fesm2022/cuby-ui-core-en-D3DnyYmu.mjs.map +1 -0
- package/fesm2022/cuby-ui-core.mjs +4047 -67
- package/fesm2022/cuby-ui-core.mjs.map +1 -1
- package/index.d.ts +2 -0
- package/package.json +3 -3
- package/services/loader.options.d.ts +2 -2
- package/services/loader.service.d.ts +7 -7
- package/utils/default-validators/create-default-validators.d.ts +5 -0
- package/utils/default-validators/extra-spaces.options.d.ts +2 -0
- package/utils/default-validators/extra-spaces.validators.d.ts +3 -0
- package/utils/default-validators/index.d.ts +1 -0
- package/utils/index.d.ts +1 -0
- package/widgets/categories/categories.component.d.ts +24 -0
- package/widgets/categories/components/categories-list/categories-list.component.d.ts +7 -0
- package/widgets/categories/components/categories-list/index.d.ts +1 -0
- package/widgets/categories/components/category-form/category-form.component.d.ts +28 -0
- package/widgets/categories/components/category-form/index.d.ts +1 -0
- package/widgets/categories/components/category-item/category-item.component.d.ts +40 -0
- package/widgets/categories/components/category-item/index.d.ts +1 -0
- package/widgets/categories/components/create-category-item/create-category-item.component.d.ts +10 -0
- package/widgets/categories/components/create-category-item/index.d.ts +1 -0
- package/widgets/categories/components/index.d.ts +2 -0
- package/widgets/categories/index.d.ts +1 -0
- package/widgets/categories/services/index.d.ts +1 -0
- package/widgets/categories/services/selected-category.service.d.ts +18 -0
- package/widgets/general-control-error-hint/general-control-error-hint.component.d.ts +9 -0
- package/widgets/general-control-error-hint/index.d.ts +1 -0
- package/widgets/index.d.ts +2 -0
- package/widgets/utility-info/index.d.ts +1 -0
- package/widgets/utility-info/utility-info.component.d.ts +45 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { map, timer } from 'rxjs';
|
|
2
|
+
import { hasExtraSpaces } from './extra-spaces.options';
|
|
3
|
+
export function asyncExtraSpacesValidators(delay) {
|
|
4
|
+
return ({ value }) => {
|
|
5
|
+
return timer(delay).pipe(map(() => hasExtraSpaces(value)));
|
|
6
|
+
};
|
|
7
|
+
}
|
|
8
|
+
export function syncExtraSpacesValidator() {
|
|
9
|
+
return ({ errors, value }) => {
|
|
10
|
+
if (!errors?.['extraSpaces']) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
return hasExtraSpaces(value);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0cmEtc3BhY2VzLnZhbGlkYXRvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL2RlZmF1bHQtdmFsaWRhdG9ycy9leHRyYS1zcGFjZXMudmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVsQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFeEQsTUFBTSxVQUFVLDBCQUEwQixDQUFDLEtBQWE7SUFDcEQsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFtQixFQUF1QyxFQUFFO1FBQ3ZFLE9BQU8sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUMvRCxDQUFDLENBQUM7QUFDTixDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QjtJQUNwQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFtQixFQUEyQixFQUFFO1FBQ25FLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxhQUFhLENBQUMsRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7UUFFRCxPQUFPLGNBQWMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7QUFDTixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBBYnN0cmFjdENvbnRyb2wsIEFzeW5jVmFsaWRhdG9yRm4sIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgdHlwZSB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0aW1lciB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgaGFzRXh0cmFTcGFjZXMgfSBmcm9tICcuL2V4dHJhLXNwYWNlcy5vcHRpb25zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBhc3luY0V4dHJhU3BhY2VzVmFsaWRhdG9ycyhkZWxheTogbnVtYmVyKTogQXN5bmNWYWxpZGF0b3JGbiB7XHJcbiAgICByZXR1cm4gKHsgdmFsdWUgfTogQWJzdHJhY3RDb250cm9sKTogT2JzZXJ2YWJsZTxWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbD4gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aW1lcihkZWxheSkucGlwZShtYXAoKCkgPT4gaGFzRXh0cmFTcGFjZXModmFsdWUpKSk7XHJcbiAgICB9O1xyXG59XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gc3luY0V4dHJhU3BhY2VzVmFsaWRhdG9yKCk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoeyBlcnJvcnMsIHZhbHVlIH06IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+IHtcclxuICAgICAgICBpZiAoIWVycm9ycz8uWydleHRyYVNwYWNlcyddKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGhhc0V4dHJhU3BhY2VzKHZhbHVlKTtcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { createDefaultValidators } from './create-default-validators';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL2RlZmF1bHQtdmFsaWRhdG9ycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGNyZWF0ZURlZmF1bHRWYWxpZGF0b3JzIH0gZnJvbSAnLi9jcmVhdGUtZGVmYXVsdC12YWxpZGF0b3JzJztcclxuIl19
|
package/esm2022/utils/index.mjs
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export * from './format';
|
|
2
2
|
export * from './miscellaneous';
|
|
3
|
-
|
|
3
|
+
export * from './default-validators';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3V0aWxzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsVUFBVSxDQUFBO0FBQ3hCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vZm9ybWF0J1xyXG5leHBvcnQgKiBmcm9tICcuL21pc2NlbGxhbmVvdXMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2RlZmF1bHQtdmFsaWRhdG9ycyc7XHJcbiJdfQ==
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, effect, inject, input, signal, viewChild } from '@angular/core';
|
|
2
|
+
import { CuiLetDirective } from '@cuby-ui/cdk';
|
|
3
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
4
|
+
import { finalize } from 'rxjs';
|
|
5
|
+
import { CuiTreeStructNavigatorApiService } from '@cuby-ui/api';
|
|
6
|
+
import { CuiCategoriesListComponent, CuiCreateCategoryItemComponent } from './components';
|
|
7
|
+
import { SelectedCategoryService } from './services';
|
|
8
|
+
import { CuiEmptyStateComponent, CuiButtonModule, CuiDropdownDirective, CuiDropdownWrapperComponent } from '../../components';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "../../components/button/button.component";
|
|
11
|
+
export class CuiCategoriesComponent {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
|
|
14
|
+
this.selectedCategoryService = inject(SelectedCategoryService);
|
|
15
|
+
this.stageStorages = signal(null);
|
|
16
|
+
this.isCategoryCreating = signal(false);
|
|
17
|
+
this.isCategoryCreationLoading = signal(false);
|
|
18
|
+
this.isCreateCategoryControlVisible = computed(() => (this.selectedCategoryService.creatingId() === this.treeStructType() && this.isCategoryCreating()) ||
|
|
19
|
+
this.isCategoryCreationLoading());
|
|
20
|
+
this.dropdown = viewChild.required('dropdown');
|
|
21
|
+
this.treeStructType = input.required();
|
|
22
|
+
this.buttonId = input();
|
|
23
|
+
this.disabled = input(false, { transform: booleanAttribute });
|
|
24
|
+
this.initSelectCategoryEffect();
|
|
25
|
+
}
|
|
26
|
+
onOpenStageStorages() {
|
|
27
|
+
this.selectedCategoryService.clearCreatingId();
|
|
28
|
+
this.selectedCategoryService.clearEditingId();
|
|
29
|
+
if (this.stageStorages()?.length) {
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
this.treeStructNavigatorApiService.getStageStorages(this.treeStructType()).subscribe((stageStorage) => {
|
|
33
|
+
this.stageStorages.update((prevStageStorages) => prevStageStorages ? [...prevStageStorages, stageStorage] : [stageStorage]);
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
onStartCreatingNewCategory() {
|
|
37
|
+
this.isCategoryCreating.set(true);
|
|
38
|
+
this.selectedCategoryService.setCreatingId(this.treeStructType());
|
|
39
|
+
}
|
|
40
|
+
onCreateNewCategory(title) {
|
|
41
|
+
this.isCategoryCreating.set(false);
|
|
42
|
+
this.selectedCategoryService.clearCreatingId();
|
|
43
|
+
this.isCategoryCreationLoading.set(true);
|
|
44
|
+
this.treeStructNavigatorApiService
|
|
45
|
+
.createStageStorage(title, this.treeStructType())
|
|
46
|
+
.pipe(finalize(this.isCategoryCreationLoading.set.bind(this, false)))
|
|
47
|
+
.subscribe((stateStorage) => this.stageStorages.update((value) => [...(value || []), stateStorage]));
|
|
48
|
+
}
|
|
49
|
+
onCreatingCategoryCanceled() {
|
|
50
|
+
this.isCategoryCreating.set(false);
|
|
51
|
+
this.selectedCategoryService.clearCreatingId();
|
|
52
|
+
}
|
|
53
|
+
initSelectCategoryEffect() {
|
|
54
|
+
effect(() => {
|
|
55
|
+
this.selectedCategoryService.category();
|
|
56
|
+
this.dropdown().close();
|
|
57
|
+
}, { allowSignalWrites: true });
|
|
58
|
+
}
|
|
59
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
60
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoriesComponent, isStandalone: true, selector: "cui-categories", inputs: { treeStructType: { classPropertyName: "treeStructType", publicName: "treeStructType", isSignal: true, isRequired: true, transformFunction: null }, buttonId: { classPropertyName: "buttonId", publicName: "buttonId", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: ["dropdown"], descendants: true, isSignal: true }], ngImport: i0, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\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: "directive", type: CuiLetDirective, selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "directive", type: CuiDropdownDirective, selector: "[cuiDropdown]", inputs: ["cuiDropdown", "orientation"], outputs: ["isOpened"], exportAs: ["cuiDropdown"] }, { kind: "component", type: CuiDropdownWrapperComponent, selector: "cui-dropdown-wrapper", inputs: ["title", "width"] }, { kind: "component", type: CuiEmptyStateComponent, selector: "cui-empty-state, [cuiEmptyState]", inputs: ["title", "subtitle"] }, { kind: "component", type: CuiCreateCategoryItemComponent, selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: CuiCategoriesListComponent, selector: "cui-categories-list", inputs: ["stageStorages"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
61
|
+
}
|
|
62
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesComponent, decorators: [{
|
|
63
|
+
type: Component,
|
|
64
|
+
args: [{ selector: 'cui-categories', imports: [
|
|
65
|
+
CuiButtonModule,
|
|
66
|
+
CuiLetDirective,
|
|
67
|
+
CuiDropdownDirective,
|
|
68
|
+
CuiDropdownWrapperComponent,
|
|
69
|
+
CuiEmptyStateComponent,
|
|
70
|
+
CuiCreateCategoryItemComponent,
|
|
71
|
+
CuiCategoriesListComponent,
|
|
72
|
+
TranslocoDirective
|
|
73
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<button\r\n [attr.id]=\"buttonId()\"\r\n #dropdown=\"cuiDropdown\"\r\n [cuiDropdown]=\"dropdownContent\"\r\n orientation=\"stretch\"\r\n type=\"button\"\r\n class=\"target\"\r\n [disabled]=\"disabled()\"\r\n (click)=\"onOpenStageStorages()\"\r\n>\r\n <ng-content />\r\n</button>\r\n\r\n<ng-template #dropdownContent>\r\n <cui-dropdown-wrapper\r\n *transloco=\"let t\"\r\n [title]=\"t('SELECT_OR_CREATE_CATEGORY')\"\r\n width=\"100%\"\r\n class=\"dropdown-wrapper\"\r\n >\r\n <ng-container *cuiLet=\"stageStorages() as stageStorages\">\r\n @if (stageStorages && stageStorages?.length) {\r\n <cui-categories-list [stageStorages]=\"stageStorages\" />\r\n }\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isCategoryCreationLoading()\"\r\n (created)=\"onCreateNewCategory($event)\"\r\n (canceled)=\"onCreatingCategoryCanceled()\"\r\n />\r\n } @else if (!stageStorages?.length) {\r\n <cui-empty-state\r\n class=\"empty\"\r\n [subtitle]=\"t('NO_CATEGORY_TO_VIEW_YET')\"\r\n />\r\n }\r\n </ng-container>\r\n <button\r\n ccDropdownFooterContent\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n (click)=\"onStartCreatingNewCategory()\"\r\n >\r\n {{ t('NEW_CATEGORY') }}\r\n </button>\r\n </cui-dropdown-wrapper>\r\n</ng-template>\r\n", styles: ["::ng-deep .dropdown-wrapper .scrollable-content{flex:1;display:flex;flex-direction:column}.target{display:block;padding:0;width:100%;border-radius:8px;border:1px solid transparent}.target:focus{box-shadow:0 0 0 2px var(--cui-focus);border:1px solid var(--cui-info)}.target:disabled{cursor:default}.create-category{margin-left:24px}.empty{margin:auto}.dropdown-wrapper{display:block;height:350px}\n"] }]
|
|
74
|
+
}], ctorParameters: () => [] });
|
|
75
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jYXRlZ29yaWVzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jYXRlZ29yaWVzL2NhdGVnb3JpZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILGdCQUFnQixFQUNoQix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBQ04sTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVoQyxPQUFPLEVBQUUsZ0NBQWdDLEVBQThCLE1BQU0sY0FBYyxDQUFDO0FBRTVGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUMxRixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFDckQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFtQjlILE1BQU0sT0FBTyxzQkFBc0I7SUFtQi9CO1FBbEJpQixrQ0FBNkIsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUN6RSw0QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQUV4RCxrQkFBYSxHQUFHLE1BQU0sQ0FBNEIsSUFBSSxDQUFDLENBQUM7UUFDeEQsdUJBQWtC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USxFQUFFLENBQUM7WUFDeEMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzVCLENBQUMsRUFBRSxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7SUFDcEMsQ0FBQzsrR0EvRFEsc0JBQXNCO21HQUF0QixzQkFBc0IsZ21CQ3ZDbkMsNnZEQW1EQSxzY0QxQlEsZUFBZSwyTkFDZixlQUFlLHlFQUNmLG9CQUFvQixvSkFDcEIsMkJBQTJCLDZGQUMzQixzQkFBc0IsNEdBQ3RCLDhCQUE4QiwrSEFDOUIsMEJBQTBCLDJGQUMxQixrQkFBa0I7OzRGQU9iLHNCQUFzQjtrQkFqQmxDLFNBQVM7K0JBQ0ksZ0JBQWdCLFdBQ2pCO3dCQUNMLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixvQkFBb0I7d0JBQ3BCLDJCQUEyQjt3QkFDM0Isc0JBQXNCO3dCQUN0Qiw4QkFBOEI7d0JBQzlCLDBCQUEwQjt3QkFDMUIsa0JBQWtCO3FCQUNyQixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBib29sZWFuQXR0cmlidXRlLFxyXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgICBDb21wb25lbnQsXHJcbiAgICBjb21wdXRlZCxcclxuICAgIGVmZmVjdCxcclxuICAgIGluamVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgc2lnbmFsLFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB0eXBlIHsgQ3VpTnVsbGFibGUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBDdWlMZXREaXJlY3RpdmUgfSBmcm9tICdAY3VieS11aS9jZGsnO1xyXG5pbXBvcnQgeyBUcmFuc2xvY29EaXJlY3RpdmUgfSBmcm9tICdAanN2ZXJzZS90cmFuc2xvY28nO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UsIFRyZWVTdHJ1Y3QsIFRyZWVTdHJ1Y3RUeXBlIH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuXHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50LCBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBTZWxlY3RlZENhdGVnb3J5U2VydmljZSB9IGZyb20gJy4vc2VydmljZXMnO1xyXG5pbXBvcnQgeyBDdWlFbXB0eVN0YXRlQ29tcG9uZW50LCBDdWlCdXR0b25Nb2R1bGUsIEN1aURyb3Bkb3duRGlyZWN0aXZlLCBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktY2F0ZWdvcmllcycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUxldERpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bkRpcmVjdGl2ZSxcclxuICAgICAgICBDdWlEcm9wZG93bldyYXBwZXJDb21wb25lbnQsXHJcbiAgICAgICAgQ3VpRW1wdHlTdGF0ZUNvbXBvbmVudCxcclxuICAgICAgICBDdWlDcmVhdGVDYXRlZ29yeUl0ZW1Db21wb25lbnQsXHJcbiAgICAgICAgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQsXHJcbiAgICAgICAgVHJhbnNsb2NvRGlyZWN0aXZlXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yaWVzLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsczogWycuL2NhdGVnb3JpZXMuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlDYXRlZ29yaWVzQ29tcG9uZW50IHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UgPSBpbmplY3QoQ3VpVHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWxlY3RlZENhdGVnb3J5U2VydmljZSA9IGluamVjdChTZWxlY3RlZENhdGVnb3J5U2VydmljZSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHN0YWdlU3RvcmFnZXMgPSBzaWduYWw8Q3VpTnVsbGFibGU8VHJlZVN0cnVjdFtdPj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNDYXRlZ29yeUNyZWF0aW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PlxyXG4gICAgICAgICAgICAodGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jcmVhdGluZ0lkKCkgPT09IHRoaXMudHJlZVN0cnVjdFR5cGUoKSAmJiB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZygpKSB8fFxyXG4gICAgICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVxyXG4gICAgKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZHJvcGRvd24gPSB2aWV3Q2hpbGQucmVxdWlyZWQ8Q3VpRHJvcGRvd25EaXJlY3RpdmU+KCdkcm9wZG93bicpO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSB0cmVlU3RydWN0VHlwZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3RUeXBlPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGJ1dHRvbklkID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRpc2FibGVkID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uT3BlblN0YWdlU3RvcmFnZXMoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLnN0YWdlU3RvcmFnZXMoKT8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2UuZ2V0U3RhZ2VTdG9yYWdlcyh0aGlzLnRyZWVTdHJ1Y3RUeXBlKCkpLnN1YnNjcmliZSgoc3RhZ2VTdG9yYWdlKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlcy51cGRhdGUoKHByZXZTdGFnZVN0b3JhZ2VzKSA9PlxyXG4gICAgICAgICAgICAgICAgcHJldlN0YWdlU3RvcmFnZXMgPyBbLi4ucHJldlN0YWdlU3RvcmFnZXMsIHN0YWdlU3RvcmFnZV0gOiBbc3RhZ2VTdG9yYWdlXVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblN0YXJ0Q3JlYXRpbmdOZXdDYXRlZ29yeSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGluZy5zZXQodHJ1ZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDcmVhdGluZ0lkKHRoaXMudHJlZVN0cnVjdFR5cGUoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uQ3JlYXRlTmV3Q2F0ZWdvcnkodGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNDYXRlZ29yeUNyZWF0aW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgICAgICB0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZSh0aXRsZSwgdGhpcy50cmVlU3RydWN0VHlwZSgpKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSh0aGlzLmlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0LmJpbmQodGhpcywgZmFsc2UpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoc3RhdGVTdG9yYWdlKSA9PiB0aGlzLnN0YWdlU3RvcmFnZXMudXBkYXRlKCh2YWx1ZSkgPT4gWy4uLih2YWx1ZSB8fCBbXSksIHN0YXRlU3RvcmFnZV0pKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc0NhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyQ3JlYXRpbmdJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdFNlbGVjdENhdGVnb3J5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UuY2F0ZWdvcnkoKTtcclxuICAgICAgICAgICAgdGhpcy5kcm9wZG93bigpLmNsb3NlKCk7XHJcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8YnV0dG9uXHJcbiAgICBbYXR0ci5pZF09XCJidXR0b25JZCgpXCJcclxuICAgICNkcm9wZG93bj1cImN1aURyb3Bkb3duXCJcclxuICAgIFtjdWlEcm9wZG93bl09XCJkcm9wZG93bkNvbnRlbnRcIlxyXG4gICAgb3JpZW50YXRpb249XCJzdHJldGNoXCJcclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJ0YXJnZXRcIlxyXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkKClcIlxyXG4gICAgKGNsaWNrKT1cIm9uT3BlblN0YWdlU3RvcmFnZXMoKVwiXHJcbj5cclxuICAgIDxuZy1jb250ZW50IC8+XHJcbjwvYnV0dG9uPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkcm9wZG93bkNvbnRlbnQ+XHJcbiAgICA8Y3VpLWRyb3Bkb3duLXdyYXBwZXJcclxuICAgICAgICAqdHJhbnNsb2NvPVwibGV0IHRcIlxyXG4gICAgICAgIFt0aXRsZV09XCJ0KCdTRUxFQ1RfT1JfQ1JFQVRFX0NBVEVHT1JZJylcIlxyXG4gICAgICAgIHdpZHRoPVwiMTAwJVwiXHJcbiAgICAgICAgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCJcclxuICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpjdWlMZXQ9XCJzdGFnZVN0b3JhZ2VzKCkgYXMgc3RhZ2VTdG9yYWdlc1wiPlxyXG4gICAgICAgICAgICBAaWYgKHN0YWdlU3RvcmFnZXMgJiYgc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNhdGVnb3JpZXMtbGlzdCBbc3RhZ2VTdG9yYWdlc109XCJzdGFnZVN0b3JhZ2VzXCIgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAaWYgKGlzQ3JlYXRlQ2F0ZWdvcnlDb250cm9sVmlzaWJsZSgpKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjcmVhdGUtY2F0ZWdvcnlcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtpc0Rpc2FibGVkXT1cImlzQ2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdDYXRlZ29yeSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2FuY2VsZWQpPVwib25DcmVhdGluZ0NhdGVnb3J5Q2FuY2VsZWQoKVwiXHJcbiAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICB9IEBlbHNlIGlmICghc3RhZ2VTdG9yYWdlcz8ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICA8Y3VpLWVtcHR5LXN0YXRlXHJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJlbXB0eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW3N1YnRpdGxlXT1cInQoJ05PX0NBVEVHT1JZX1RPX1ZJRVdfWUVUJylcIlxyXG4gICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgY2NEcm9wZG93bkZvb3RlckNvbnRlbnRcclxuICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxyXG4gICAgICAgICAgICBzaXplPVwieHhzXCJcclxuICAgICAgICAgICAgaWNvbj1cImN1aUljb25QbHVzXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cIm9uU3RhcnRDcmVhdGluZ05ld0NhdGVnb3J5KClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAge3sgdCgnTkVXX0NBVEVHT1JZJykgfX1cclxuICAgICAgICA8L2J1dHRvbj5cclxuICAgIDwvY3VpLWRyb3Bkb3duLXdyYXBwZXI+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, forwardRef, input } from '@angular/core';
|
|
2
|
+
import { CuiIconButtonModule, CuiSvgModule } from '../../../../components';
|
|
3
|
+
import { CuiCategoryItemComponent } from '../category-item';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class CuiCategoriesListComponent {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.stageStorages = input.required();
|
|
8
|
+
}
|
|
9
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoriesListComponent, isStandalone: true, selector: "cui-categories-list", inputs: { stageStorages: { classPropertyName: "stageStorages", publicName: "stageStorages", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\r\n <cui-category-item [stageStorage]=\"stageStorage\" />\r\n}\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => CuiCategoryItemComponent), selector: "cui-category-item", inputs: ["stageStorage"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
11
|
+
}
|
|
12
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoriesListComponent, decorators: [{
|
|
13
|
+
type: Component,
|
|
14
|
+
args: [{ selector: 'cui-categories-list', imports: [CuiIconButtonModule, CuiSvgModule, forwardRef(() => CuiCategoryItemComponent)], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "@for (stageStorage of stageStorages(); track stageStorage.id) {\r\n <cui-category-item [stageStorage]=\"stageStorage\" />\r\n}\r\n", styles: [":host{display:block}\n"] }]
|
|
15
|
+
}] });
|
|
16
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcmllcy1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jYXRlZ29yaWVzL2NvbXBvbmVudHMvY2F0ZWdvcmllcy1saXN0L2NhdGVnb3JpZXMtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3JpZXMtbGlzdC9jYXRlZ29yaWVzLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3RGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMzRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVNUQsTUFBTSxPQUFPLDBCQUEwQjtJQVJ2QztRQVNvQixrQkFBYSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQWdCLENBQUM7S0FDbEU7K0dBRlksMEJBQTBCO21HQUExQiwwQkFBMEIsME9DZHZDLHVJQUdBLG1HREtjLG1CQUFtQixtREFBRSxZQUFZLG9EQUFtQix3QkFBd0I7OzRGQU03RSwwQkFBMEI7a0JBUnRDLFNBQVM7K0JBQ0kscUJBQXFCLFdBQ3RCLENBQUMsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLGNBQzVFLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIGZvcndhcmRSZWYsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRyZWVTdHJ1Y3QgfSBmcm9tICdAY3VieS11aS9hcGknO1xyXG5cclxuaW1wb3J0IHsgQ3VpSWNvbkJ1dHRvbk1vZHVsZSwgQ3VpU3ZnTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3J5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NhdGVnb3J5LWl0ZW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1jYXRlZ29yaWVzLWxpc3QnLFxyXG4gICAgaW1wb3J0czogW0N1aUljb25CdXR0b25Nb2R1bGUsIEN1aVN2Z01vZHVsZSwgZm9yd2FyZFJlZigoKSA9PiBDdWlDYXRlZ29yeUl0ZW1Db21wb25lbnQpXSxcclxuICAgIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2F0ZWdvcmllcy1saXN0LmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9jYXRlZ29yaWVzLWxpc3QuY29tcG9uZW50LnNjc3MnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50IHtcclxuICAgIHB1YmxpYyByZWFkb25seSBzdGFnZVN0b3JhZ2VzID0gaW5wdXQucmVxdWlyZWQ8VHJlZVN0cnVjdFtdPigpO1xyXG59XHJcbiIsIkBmb3IgKHN0YWdlU3RvcmFnZSBvZiBzdGFnZVN0b3JhZ2VzKCk7IHRyYWNrIHN0YWdlU3RvcmFnZS5pZCkge1xyXG4gICAgPGN1aS1jYXRlZ29yeS1pdGVtIFtzdGFnZVN0b3JhZ2VdPVwic3RhZ2VTdG9yYWdlXCIgLz5cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCategoriesListComponent } from './categories-list.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3JpZXMtbGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9jYXRlZ29yaWVzLWxpc3QuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, effect, ElementRef, inject, input, output, viewChild } from '@angular/core';
|
|
2
|
+
import { NonNullableFormBuilder, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { TranslocoDirective } from '@jsverse/transloco';
|
|
4
|
+
import { createDefaultValidators } from '../../../../utils';
|
|
5
|
+
import { CuiFormFieldModule, CuiHintModule, CuiIconButtonModule, CuiGhostInputComponent } from '../../../../components';
|
|
6
|
+
import { CuiGeneralControlErrorHintComponent } from '../../../general-control-error-hint';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../../../../components/icon-button/icon-button.component";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
export class CuiCategoryFormComponent {
|
|
11
|
+
get isTitleInvalid() {
|
|
12
|
+
return this.titleControl.invalid && this.titleControl.dirty;
|
|
13
|
+
}
|
|
14
|
+
get isSubmitButtonDisabled() {
|
|
15
|
+
return this.isDisabled() || this.form.invalid;
|
|
16
|
+
}
|
|
17
|
+
constructor() {
|
|
18
|
+
this.nonNullableFormBuilder = inject(NonNullableFormBuilder);
|
|
19
|
+
this.form = this.nonNullableFormBuilder.group({
|
|
20
|
+
title: ['', createDefaultValidators({ asyncDelay: 0 })]
|
|
21
|
+
});
|
|
22
|
+
this.titleControl = this.form.controls.title;
|
|
23
|
+
this.isDisabled = input(false);
|
|
24
|
+
this.defaultTitle = input('');
|
|
25
|
+
this.created = output();
|
|
26
|
+
this.canceled = output();
|
|
27
|
+
this.input = viewChild.required('input', { read: (ElementRef) });
|
|
28
|
+
this.initInputDisableStateSubscription();
|
|
29
|
+
}
|
|
30
|
+
ngOnInit() {
|
|
31
|
+
this.initDefaultTitle();
|
|
32
|
+
this.initInputFocus();
|
|
33
|
+
}
|
|
34
|
+
onHostClick(event) {
|
|
35
|
+
event.stopPropagation();
|
|
36
|
+
}
|
|
37
|
+
onSubmit() {
|
|
38
|
+
if (this.form.invalid) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
this.created.emit(this.form.value.title);
|
|
42
|
+
}
|
|
43
|
+
onCancel(event) {
|
|
44
|
+
event.stopPropagation();
|
|
45
|
+
this.canceled.emit();
|
|
46
|
+
}
|
|
47
|
+
initInputDisableStateSubscription() {
|
|
48
|
+
effect(() => {
|
|
49
|
+
if (this.isDisabled()) {
|
|
50
|
+
this.titleControl.disable();
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
this.titleControl.enable();
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
initDefaultTitle() {
|
|
57
|
+
this.form.patchValue({ title: this.defaultTitle() });
|
|
58
|
+
}
|
|
59
|
+
initInputFocus() {
|
|
60
|
+
Promise.resolve().then(() => this.input().nativeElement.focus());
|
|
61
|
+
}
|
|
62
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
63
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "18.2.13", type: CuiCategoryFormComponent, isStandalone: true, selector: "cui-category-form", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null }, defaultTitle: { classPropertyName: "defaultTitle", publicName: "defaultTitle", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", canceled: "canceled" }, host: { listeners: { "click": "onHostClick($event)" } }, viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <form\r\n [formGroup]=\"form\"\r\n class=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n >\r\n <div class=\"input\">\r\n <input\r\n #input\r\n cuiGhostInput\r\n formControlName=\"title\"\r\n type=\"text\"\r\n placeholder=\"{{ t('ADD_CATEGORY_NAME') }}...\"\r\n [isError]=\"isTitleInvalid\"\r\n (keyup)=\"$event.preventDefault()\"\r\n />\r\n <cui-general-control-error-hint [control]=\"titleControl\" />\r\n </div>\r\n <button\r\n cuiIconButton\r\n type=\"submit\"\r\n icon=\"cuiIconCheck\"\r\n color=\"var(--cui-success)\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n class=\"button\"\r\n ></button>\r\n </form>\r\n <button\r\n cuiIconButton\r\n type=\"button\"\r\n icon=\"cuiIconXCircle\"\r\n color=\"var(--cui-danger)\"\r\n (click)=\"onCancel($event)\"\r\n [disabled]=\"isDisabled()\"\r\n class=\"button\"\r\n ></button>\r\n</ng-container>\r\n", styles: [":host{padding-top:2px;padding-bottom:2px;display:flex;gap:4px;flex-grow:1}.form,.input{flex-grow:1}.form{display:flex;gap:4px}.input{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.button{width:28px}.button:disabled{opacity:.5}\n"], dependencies: [{ kind: "ngmodule", type: CuiFormFieldModule }, { kind: "ngmodule", type: CuiHintModule }, { kind: "ngmodule", type: CuiIconButtonModule }, { kind: "component", type: i1.CuiIconButtonComponent, selector: "button[cuiIconButton][icon], a[cuiIconButton][icon]", inputs: ["icon", "color", "hoverColor"] }, { kind: "component", type: CuiGeneralControlErrorHintComponent, selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "component", type: CuiGhostInputComponent, selector: "input [cuiGhostInput]", inputs: ["isError"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
64
|
+
}
|
|
65
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryFormComponent, decorators: [{
|
|
66
|
+
type: Component,
|
|
67
|
+
args: [{ selector: 'cui-category-form', imports: [
|
|
68
|
+
CuiFormFieldModule,
|
|
69
|
+
CuiHintModule,
|
|
70
|
+
CuiIconButtonModule,
|
|
71
|
+
CuiGeneralControlErrorHintComponent,
|
|
72
|
+
CuiGhostInputComponent,
|
|
73
|
+
ReactiveFormsModule,
|
|
74
|
+
TranslocoDirective
|
|
75
|
+
], standalone: true, host: {
|
|
76
|
+
'(click)': 'onHostClick($event)'
|
|
77
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <form\r\n [formGroup]=\"form\"\r\n class=\"form\"\r\n (ngSubmit)=\"onSubmit()\"\r\n >\r\n <div class=\"input\">\r\n <input\r\n #input\r\n cuiGhostInput\r\n formControlName=\"title\"\r\n type=\"text\"\r\n placeholder=\"{{ t('ADD_CATEGORY_NAME') }}...\"\r\n [isError]=\"isTitleInvalid\"\r\n (keyup)=\"$event.preventDefault()\"\r\n />\r\n <cui-general-control-error-hint [control]=\"titleControl\" />\r\n </div>\r\n <button\r\n cuiIconButton\r\n type=\"submit\"\r\n icon=\"cuiIconCheck\"\r\n color=\"var(--cui-success)\"\r\n [disabled]=\"isSubmitButtonDisabled\"\r\n class=\"button\"\r\n ></button>\r\n </form>\r\n <button\r\n cuiIconButton\r\n type=\"button\"\r\n icon=\"cuiIconXCircle\"\r\n color=\"var(--cui-danger)\"\r\n (click)=\"onCancel($event)\"\r\n [disabled]=\"isDisabled()\"\r\n class=\"button\"\r\n ></button>\r\n</ng-container>\r\n", styles: [":host{padding-top:2px;padding-bottom:2px;display:flex;gap:4px;flex-grow:1}.form,.input{flex-grow:1}.form{display:flex;gap:4px}.input{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.button{width:28px}.button:disabled{opacity:.5}\n"] }]
|
|
78
|
+
}], ctorParameters: () => [] });
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWZvcm0vY2F0ZWdvcnktZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWZvcm0vY2F0ZWdvcnktZm9ybS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUV4RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsYUFBYSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0scUNBQXFDLENBQUM7Ozs7QUFxQjFGLE1BQU0sT0FBTyx3QkFBd0I7SUFnQmpDLElBQWMsY0FBYztRQUN4QixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQ2hFLENBQUM7SUFFRCxJQUFjLHNCQUFzQjtRQUNoQyxPQUFPLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFD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c0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gICAgQ29tcG9uZW50LFxyXG4gICAgZWZmZWN0LFxyXG4gICAgRWxlbWVudFJlZixcclxuICAgIGluamVjdCxcclxuICAgIGlucHV0LFxyXG4gICAgb3V0cHV0LFxyXG4gICAgdmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRyYW5zbG9jb0RpcmVjdGl2ZSB9IGZyb20gJ0Bqc3ZlcnNlL3RyYW5zbG9jbyc7XHJcblxyXG5pbXBvcnQgeyBjcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ3VpRm9ybUZpZWxkTW9kdWxlLCBDdWlIaW50TW9kdWxlLCBDdWlJY29uQnV0dG9uTW9kdWxlLCBDdWlHaG9zdElucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUdlbmVyYWxDb250cm9sRXJyb3JIaW50Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1jYXRlZ29yeS1mb3JtJyxcclxuICAgIGltcG9ydHM6IFtcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSGludE1vZHVsZSxcclxuICAgICAgICBDdWlJY29uQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUdlbmVyYWxDb250cm9sRXJyb3JIaW50Q29tcG9uZW50LFxyXG4gICAgICAgIEN1aUdob3N0SW5wdXRDb21wb25lbnQsXHJcbiAgICAgICAgUmVhY3RpdmVGb3Jtc01vZHVsZSxcclxuICAgICAgICBUcmFuc2xvY29EaXJlY3RpdmVcclxuICAgIF0sXHJcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL2NhdGVnb3J5LWZvcm0uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL2NhdGVnb3J5LWZvcm0uY29tcG9uZW50LnNjc3MnLFxyXG4gICAgaG9zdDoge1xyXG4gICAgICAgICcoY2xpY2spJzogJ29uSG9zdENsaWNrKCRldmVudCknXHJcbiAgICB9LFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUNhdGVnb3J5Rm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgbm9uTnVsbGFibGVGb3JtQnVpbGRlciA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgZm9ybSA9IHRoaXMubm9uTnVsbGFibGVGb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICAgdGl0bGU6IFsnJywgY3JlYXRlRGVmYXVsdFZhbGlkYXRvcnMoeyBhc3luY0RlbGF5OiAwIH0pXVxyXG4gICAgfSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGl0bGVDb250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzLnRpdGxlO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBpc0Rpc2FibGVkID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGRlZmF1bHRUaXRsZSA9IGlucHV0PHN0cmluZz4oJycpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjcmVhdGVkID0gb3V0cHV0PHN0cmluZz4oKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBjYW5jZWxlZCA9IG91dHB1dDx2b2lkPigpO1xyXG5cclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpbnB1dCA9IHZpZXdDaGlsZC5yZXF1aXJlZCgnaW5wdXQnLCB7IHJlYWQ6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4gfSk7XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBpc1RpdGxlSW52YWxpZCgpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gdGhpcy50aXRsZUNvbnRyb2wuaW52YWxpZCAmJiB0aGlzLnRpdGxlQ29udHJvbC5kaXJ0eTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGlzU3VibWl0QnV0dG9uRGlzYWJsZWQoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNEaXNhYmxlZCgpIHx8IHRoaXMuZm9ybS5pbnZhbGlkO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdElucHV0RGlzYWJsZVN0YXRlU3Vic2NyaXB0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaW5pdERlZmF1bHRUaXRsZSgpO1xyXG4gICAgICAgIHRoaXMuaW5pdElucHV0Rm9jdXMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ib3N0Q2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uU3VibWl0KCk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmNyZWF0ZWQuZW1pdCh0aGlzLmZvcm0udmFsdWUudGl0bGUhKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DYW5jZWwoZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxlZC5lbWl0KCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0SW5wdXREaXNhYmxlU3RhdGVTdWJzY3JpcHRpb24oKTogdm9pZCB7XHJcbiAgICAgICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuaXNEaXNhYmxlZCgpKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnRpdGxlQ29udHJvbC5kaXNhYmxlKCk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRpdGxlQ29udHJvbC5lbmFibGUoKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXREZWZhdWx0VGl0bGUoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyB0aXRsZTogdGhpcy5kZWZhdWx0VGl0bGUoKSB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRJbnB1dEZvY3VzKCk6IHZvaWQge1xyXG4gICAgICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4gdGhpcy5pbnB1dCgpLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICAgIDxmb3JtXHJcbiAgICAgICAgW2Zvcm1Hcm91cF09XCJmb3JtXCJcclxuICAgICAgICBjbGFzcz1cImZvcm1cIlxyXG4gICAgICAgIChuZ1N1Ym1pdCk9XCJvblN1Ym1pdCgpXCJcclxuICAgID5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXRcIj5cclxuICAgICAgICAgICAgPGlucHV0XHJcbiAgICAgICAgICAgICAgICAjaW5wdXRcclxuICAgICAgICAgICAgICAgIGN1aUdob3N0SW5wdXRcclxuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRpdGxlXCJcclxuICAgICAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgdCgnQUREX0NBVEVHT1JZX05BTUUnKSB9fS4uLlwiXHJcbiAgICAgICAgICAgICAgICBbaXNFcnJvcl09XCJpc1RpdGxlSW52YWxpZFwiXHJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiJGV2ZW50LnByZXZlbnREZWZhdWx0KClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICA8Y3VpLWdlbmVyYWwtY29udHJvbC1lcnJvci1oaW50IFtjb250cm9sXT1cInRpdGxlQ29udHJvbFwiIC8+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICBjdWlJY29uQnV0dG9uXHJcbiAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxyXG4gICAgICAgICAgICBpY29uPVwiY3VpSWNvbkNoZWNrXCJcclxuICAgICAgICAgICAgY29sb3I9XCJ2YXIoLS1jdWktc3VjY2VzcylcIlxyXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNTdWJtaXRCdXR0b25EaXNhYmxlZFwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcclxuICAgICAgICA+PC9idXR0b24+XHJcbiAgICA8L2Zvcm0+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgY3VpSWNvbkJ1dHRvblxyXG4gICAgICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgIGljb249XCJjdWlJY29uWENpcmNsZVwiXHJcbiAgICAgICAgY29sb3I9XCJ2YXIoLS1jdWktZGFuZ2VyKVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uQ2FuY2VsKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIlxyXG4gICAgICAgIGNsYXNzPVwiYnV0dG9uXCJcclxuICAgID48L2J1dHRvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCategoryFormComponent } from './category-form.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWZvcm0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlDYXRlZ29yeUZvcm1Db21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3J5LWZvcm0uY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, computed, effect, forwardRef, inject, input, signal } from '@angular/core';
|
|
2
|
+
import { CuiLetDirective } from '@cuby-ui/cdk';
|
|
3
|
+
import { CuiTreeStructNavigatorApiService } from '@cuby-ui/api';
|
|
4
|
+
import { finalize } from 'rxjs';
|
|
5
|
+
import { CuiButtonModule, CuiIconButtonModule, CuiSvgModule } from '../../../../components';
|
|
6
|
+
import { SelectedCategoryService } from '../../services';
|
|
7
|
+
import { CuiCategoriesListComponent } from '../categories-list';
|
|
8
|
+
import { CuiCategoryFormComponent } from '../category-form';
|
|
9
|
+
import { CuiCreateCategoryItemComponent } from '../create-category-item';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../../../../components/button/button.component";
|
|
12
|
+
import * as i2 from "../../../../components/svg/svg.component";
|
|
13
|
+
export class CuiCategoryItemComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.treeStructNavigatorApiService = inject(CuiTreeStructNavigatorApiService);
|
|
16
|
+
this.selectedCategoryService = inject(SelectedCategoryService);
|
|
17
|
+
this.isStageCreationLoading = signal(false);
|
|
18
|
+
this.stageStorageChildren = signal([]);
|
|
19
|
+
this.areChildrenOpened = signal(false);
|
|
20
|
+
this.openCloseButtonIcon = computed(() => this.areChildrenOpened() ? 'cuiIconChevronDown' : 'cuiIconChevronRight');
|
|
21
|
+
this.doChildrenExist = computed(() => this.stageStorage().children.length || this.stageStorageChildren().length);
|
|
22
|
+
this.isOpenCloseButtonHidden = computed(() => !this.doChildrenExist());
|
|
23
|
+
this.stageStorageIcon = computed(() => this.areChildrenOpened() && this.doChildrenExist() ? 'cuiIconFolderOpen' : 'cuiIconFolder');
|
|
24
|
+
this.isSubcategoryCreating = signal(false);
|
|
25
|
+
this.isSubcategoryCreationLoading = signal(false);
|
|
26
|
+
this.alignItems = computed(() => (this.isTitleEdit() ? 'flex-start' : 'center'));
|
|
27
|
+
this.isTitleEdit = computed(() => this.selectedCategoryService.editingId() === this.stageStorage().id);
|
|
28
|
+
this.isCreateCategoryControlVisible = computed(() => (this.selectedCategoryService.creatingId() === this.stageStorage().id && this.isSubcategoryCreating()) ||
|
|
29
|
+
this.isSubcategoryCreationLoading());
|
|
30
|
+
this.stageStorage = input.required();
|
|
31
|
+
this.categoryTitle = signal('');
|
|
32
|
+
this.category = computed(() => ({
|
|
33
|
+
...this.stageStorage(),
|
|
34
|
+
title: this.categoryTitle() || this.stageStorage().title
|
|
35
|
+
}));
|
|
36
|
+
this.initStageStorageChildren();
|
|
37
|
+
}
|
|
38
|
+
onSelectCategory() {
|
|
39
|
+
this.selectedCategoryService.setCurrentCategory(this.category());
|
|
40
|
+
}
|
|
41
|
+
onToggleChildren(event) {
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
this.areChildrenOpened.update((value) => !value);
|
|
44
|
+
if (this.areChildrenOpened()) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
this.isSubcategoryCreating.set(false);
|
|
48
|
+
}
|
|
49
|
+
onTitleChanged(title) {
|
|
50
|
+
this.onCancelTitleEdit();
|
|
51
|
+
if (title === this.category().title) {
|
|
52
|
+
return;
|
|
53
|
+
}
|
|
54
|
+
this.treeStructNavigatorApiService.updateTitle(this.stageStorage().id, title).subscribe(() => {
|
|
55
|
+
this.categoryTitle.set(title);
|
|
56
|
+
if (this.category().id === this.selectedCategoryService.category()?.id) {
|
|
57
|
+
this.selectedCategoryService.setCurrentCategory(this.category());
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
onStartTitleEdit(event) {
|
|
62
|
+
event?.stopPropagation();
|
|
63
|
+
this.selectedCategoryService.setEditingId(this.stageStorage().id);
|
|
64
|
+
this.onCreatingSubcategoryCanceled();
|
|
65
|
+
}
|
|
66
|
+
onCancelTitleEdit() {
|
|
67
|
+
this.selectedCategoryService.clearEditingId();
|
|
68
|
+
}
|
|
69
|
+
onStartCreatingSubcategory(event) {
|
|
70
|
+
event.stopPropagation();
|
|
71
|
+
this.isSubcategoryCreating.set(true);
|
|
72
|
+
this.areChildrenOpened.set(true);
|
|
73
|
+
this.selectedCategoryService.setCreatingId(this.stageStorage().id);
|
|
74
|
+
}
|
|
75
|
+
onCreateNewSubcategoryCategory(title) {
|
|
76
|
+
this.isSubcategoryCreating.set(false);
|
|
77
|
+
this.isSubcategoryCreationLoading.set(true);
|
|
78
|
+
this.treeStructNavigatorApiService
|
|
79
|
+
.createStageStorageToParent(this.stageStorage().id, title)
|
|
80
|
+
.pipe(finalize(this.isSubcategoryCreationLoading.set.bind(this.isSubcategoryCreationLoading, false)))
|
|
81
|
+
.subscribe((stateStorage) => {
|
|
82
|
+
this.stageStorageChildren.update((value) => [...value, stateStorage]);
|
|
83
|
+
});
|
|
84
|
+
}
|
|
85
|
+
onCreatingSubcategoryCanceled() {
|
|
86
|
+
this.isSubcategoryCreating.set(false);
|
|
87
|
+
this.selectedCategoryService.clearCreatingId();
|
|
88
|
+
}
|
|
89
|
+
initStageStorageChildren() {
|
|
90
|
+
effect(() => {
|
|
91
|
+
if (!this.areChildrenOpened() || this.stageStorageChildren().length) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const stageStorage = this.stageStorage();
|
|
95
|
+
const stageStorageChildren = stageStorage.children;
|
|
96
|
+
if (!stageStorageChildren.length) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
if (typeof stageStorageChildren[0] !== 'string') {
|
|
100
|
+
this.stageStorageChildren.set(stageStorageChildren);
|
|
101
|
+
return;
|
|
102
|
+
}
|
|
103
|
+
this.treeStructNavigatorApiService.getStageStoragesByParent(stageStorage.id).subscribe((storage) => {
|
|
104
|
+
this.stageStorageChildren.update((prevStageStorages) => prevStageStorages ? [...prevStageStorages, storage] : [storage]);
|
|
105
|
+
});
|
|
106
|
+
}, { allowSignalWrites: true });
|
|
107
|
+
}
|
|
108
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
109
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiCategoryItemComponent, isStandalone: true, selector: "cui-category-item", inputs: { stageStorage: { classPropertyName: "stageStorage", publicName: "stageStorage", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<ng-container *cuiLet=\"category() as stage\">\r\n <button\r\n type=\"button\"\r\n [style.align-items]=\"alignItems()\"\r\n [disabled]=\"isStageCreationLoading()\"\r\n class=\"category\"\r\n (click)=\"onSelectCategory()\"\r\n >\r\n <button\r\n type=\"button\"\r\n ccFlexContainerDirective\r\n class=\"category__open-close-button\"\r\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\r\n (click)=\"onToggleChildren($event)\"\r\n >\r\n <cui-svg\r\n [icon]=\"openCloseButtonIcon()\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n </button>\r\n <cui-svg\r\n [icon]=\"stageStorageIcon()\"\r\n color=\"var(--cui-base-500)\"\r\n class=\"icon\"\r\n />\r\n @if (isTitleEdit()) {\r\n <cui-category-form\r\n [defaultTitle]=\"stage.title\"\r\n (created)=\"onTitleChanged($event)\"\r\n (canceled)=\"onCancelTitleEdit()\"\r\n />\r\n } @else {\r\n <span class=\"category__title\">{{ stage.title }}</span>\r\n\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconEdit\"\r\n class=\"category__add-subcategory-button\"\r\n (click)=\"onStartTitleEdit($event)\"\r\n ></button>\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n class=\"category__add-subcategory-button\"\r\n (click)=\"onStartCreatingSubcategory($event)\"\r\n ></button>\r\n }\r\n </button>\r\n <div\r\n [hidden]=\"!areChildrenOpened()\"\r\n class=\"list-wrapper\"\r\n >\r\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isSubcategoryCreationLoading()\"\r\n (created)=\"onCreateNewSubcategoryCategory($event)\"\r\n (canceled)=\"onCreatingSubcategoryCanceled()\"\r\n />\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => i1.CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiIconButtonModule) }, { kind: "directive", type: i0.forwardRef(() => CuiLetDirective), selector: "[cuiLet]", inputs: ["cuiLet"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiSvgModule) }, { kind: "component", type: i0.forwardRef(() => i2.CuiSvgComponent), selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoryFormComponent), selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCreateCategoryItemComponent), selector: "cui-create-category-item", inputs: ["isDisabled"], outputs: ["created", "canceled"] }, { kind: "component", type: i0.forwardRef(() => CuiCategoriesListComponent), selector: "cui-categories-list", inputs: ["stageStorages"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
110
|
+
}
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCategoryItemComponent, decorators: [{
|
|
112
|
+
type: Component,
|
|
113
|
+
args: [{ selector: 'cui-category-item', imports: [
|
|
114
|
+
CuiButtonModule,
|
|
115
|
+
CuiIconButtonModule,
|
|
116
|
+
CuiLetDirective,
|
|
117
|
+
CuiSvgModule,
|
|
118
|
+
CuiCategoryFormComponent,
|
|
119
|
+
CuiCreateCategoryItemComponent,
|
|
120
|
+
forwardRef(() => CuiCategoriesListComponent)
|
|
121
|
+
], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *cuiLet=\"category() as stage\">\r\n <button\r\n type=\"button\"\r\n [style.align-items]=\"alignItems()\"\r\n [disabled]=\"isStageCreationLoading()\"\r\n class=\"category\"\r\n (click)=\"onSelectCategory()\"\r\n >\r\n <button\r\n type=\"button\"\r\n ccFlexContainerDirective\r\n class=\"category__open-close-button\"\r\n [class.category__open-close-button_hidden]=\"isOpenCloseButtonHidden()\"\r\n (click)=\"onToggleChildren($event)\"\r\n >\r\n <cui-svg\r\n [icon]=\"openCloseButtonIcon()\"\r\n color=\"var(--cui-base-500)\"\r\n />\r\n </button>\r\n <cui-svg\r\n [icon]=\"stageStorageIcon()\"\r\n color=\"var(--cui-base-500)\"\r\n class=\"icon\"\r\n />\r\n @if (isTitleEdit()) {\r\n <cui-category-form\r\n [defaultTitle]=\"stage.title\"\r\n (created)=\"onTitleChanged($event)\"\r\n (canceled)=\"onCancelTitleEdit()\"\r\n />\r\n } @else {\r\n <span class=\"category__title\">{{ stage.title }}</span>\r\n\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconEdit\"\r\n class=\"category__add-subcategory-button\"\r\n (click)=\"onStartTitleEdit($event)\"\r\n ></button>\r\n <button\r\n cuiButton\r\n type=\"button\"\r\n appearance=\"ghost\"\r\n size=\"xxs\"\r\n icon=\"cuiIconPlus\"\r\n class=\"category__add-subcategory-button\"\r\n (click)=\"onStartCreatingSubcategory($event)\"\r\n ></button>\r\n }\r\n </button>\r\n <div\r\n [hidden]=\"!areChildrenOpened()\"\r\n class=\"list-wrapper\"\r\n >\r\n <cui-categories-list [stageStorages]=\"stageStorageChildren()\" />\r\n @if (isCreateCategoryControlVisible()) {\r\n <cui-create-category-item\r\n class=\"create-category\"\r\n [isDisabled]=\"isSubcategoryCreationLoading()\"\r\n (created)=\"onCreateNewSubcategoryCategory($event)\"\r\n (canceled)=\"onCreatingSubcategoryCanceled()\"\r\n />\r\n }\r\n </div>\r\n</ng-container>\r\n", styles: [".category{display:flex;gap:4px;padding:2px 4px;width:100%;min-height:32px;border-radius:8px}@media (hover: hover){.category:hover{background:var(--cui-base-10)}}.category:active{background:var(--cui-base-10)}.category__open-close-button{padding:2px;border-radius:4px;margin:4px 0}@media (hover: hover){.category__open-close-button:hover{background:var(--cui-base-100)}}.category__open-close-button:active{background:var(--cui-base-100)}.category__open-close-button_hidden{visibility:hidden}.category__title{flex:1;text-align:start;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.category__add-subcategory-button{--cui-base-50: var(--cui-base-200)}.list-wrapper{padding-left:8px}.create-category{margin-left:24px}.icon{padding-right:2px;padding-left:2px;height:28px}\n"] }]
|
|
122
|
+
}], ctorParameters: () => [] });
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDL0MsT0FBTyxFQUFFLGdDQUFnQyxFQUFjLE1BQU0sY0FBYyxDQUFDO0FBRTVFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFaEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsOEJBQThCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7OztBQWtCekUsTUFBTSxPQUFPLHdCQUF3QjtJQW9DakM7UUFuQ2lCLGtDQUE2QixHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBQ3pFLDRCQUF1QixHQUFHLE1B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Q0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgY29tcHV0ZWQsIGVmZmVjdCwgZm9yd2FyZFJlZiwgaW5qZWN0LCBpbnB1dCwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEN1aUxldERpcmVjdGl2ZSB9IGZyb20gJ0BjdWJ5LXVpL2Nkayc7XHJcbmltcG9ydCB7IEN1aVRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlLCBUcmVlU3RydWN0IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuaW1wb3J0IHR5cGUgeyBDdWlJY29uIH0gZnJvbSAnQGN1YnktdWkvaWNvbnMnO1xyXG5pbXBvcnQgeyBmaW5hbGl6ZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgQ3VpQnV0dG9uTW9kdWxlLCBDdWlJY29uQnV0dG9uTW9kdWxlLCBDdWlTdmdNb2R1bGUgfSBmcm9tICcuLi8uLi8uLi8uLi9jb21wb25lbnRzJztcclxuaW1wb3J0IHsgU2VsZWN0ZWRDYXRlZ29yeVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3JpZXNMaXN0Q29tcG9uZW50IH0gZnJvbSAnLi4vY2F0ZWdvcmllcy1saXN0JztcclxuaW1wb3J0IHsgQ3VpQ2F0ZWdvcnlGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vY2F0ZWdvcnktZm9ybSc7XHJcbmltcG9ydCB7IEN1aUNyZWF0ZUNhdGVnb3J5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL2NyZWF0ZS1jYXRlZ29yeS1pdGVtJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdjdWktY2F0ZWdvcnktaXRlbScsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQnV0dG9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUljb25CdXR0b25Nb2R1bGUsXHJcbiAgICAgICAgQ3VpTGV0RGlyZWN0aXZlLFxyXG4gICAgICAgIEN1aVN2Z01vZHVsZSxcclxuICAgICAgICBDdWlDYXRlZ29yeUZvcm1Db21wb25lbnQsXHJcbiAgICAgICAgQ3VpQ3JlYXRlQ2F0ZWdvcnlJdGVtQ29tcG9uZW50LFxyXG4gICAgICAgIGZvcndhcmRSZWYoKCkgPT4gQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQpXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jYXRlZ29yeS1pdGVtLmNvbXBvbmVudC5odG1sJyxcclxuICAgIHN0eWxlVXJsOiAnLi9jYXRlZ29yeS1pdGVtLmNvbXBvbmVudC5zY3NzJyxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdWlDYXRlZ29yeUl0ZW1Db21wb25lbnQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSA9IGluamVjdChDdWlUcmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlID0gaW5qZWN0KFNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTdGFnZUNyZWF0aW9uTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlQ2hpbGRyZW4gPSBzaWduYWw8VHJlZVN0cnVjdFtdPihbXSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXJlQ2hpbGRyZW5PcGVuZWQgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IG9wZW5DbG9zZUJ1dHRvbkljb24gPSBjb21wdXRlZDxDdWlJY29uPigoKSA9PlxyXG4gICAgICAgIHRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSA/ICdjdWlJY29uQ2hldnJvbkRvd24nIDogJ2N1aUljb25DaGV2cm9uUmlnaHQnXHJcbiAgICApO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRvQ2hpbGRyZW5FeGlzdCA9IGNvbXB1dGVkKFxyXG4gICAgICAgICgpID0+IHRoaXMuc3RhZ2VTdG9yYWdlKCkuY2hpbGRyZW4ubGVuZ3RoIHx8IHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKS5sZW5ndGhcclxuICAgICk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNPcGVuQ2xvc2VCdXR0b25IaWRkZW4gPSBjb21wdXRlZCgoKSA9PiAhdGhpcy5kb0NoaWxkcmVuRXhpc3QoKSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgc3RhZ2VTdG9yYWdlSWNvbiA9IGNvbXB1dGVkPEN1aUljb24+KCgpID0+XHJcbiAgICAgICAgdGhpcy5hcmVDaGlsZHJlbk9wZW5lZCgpICYmIHRoaXMuZG9DaGlsZHJlbkV4aXN0KCkgPyAnY3VpSWNvbkZvbGRlck9wZW4nIDogJ2N1aUljb25Gb2xkZXInXHJcbiAgICApO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzU3ViY2F0ZWdvcnlDcmVhdGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgaXNTdWJjYXRlZ29yeUNyZWF0aW9uTG9hZGluZyA9IHNpZ25hbChmYWxzZSk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWxpZ25JdGVtcyA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlzVGl0bGVFZGl0KCkgPyAnZmxleC1zdGFydCcgOiAnY2VudGVyJykpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzVGl0bGVFZGl0ID0gY29tcHV0ZWQoXHJcbiAgICAgICAgKCkgPT4gdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5lZGl0aW5nSWQoKSA9PT0gdGhpcy5zdGFnZVN0b3JhZ2UoKS5pZFxyXG4gICAgKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUgPSBjb21wdXRlZChcclxuICAgICAgICAoKSA9PlxyXG4gICAgICAgICAgICAodGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jcmVhdGluZ0lkKCkgPT09IHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQgJiYgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcoKSkgfHxcclxuICAgICAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nKClcclxuICAgICk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHN0YWdlU3RvcmFnZSA9IGlucHV0LnJlcXVpcmVkPFRyZWVTdHJ1Y3Q+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgY2F0ZWdvcnlUaXRsZSA9IHNpZ25hbDxzdHJpbmc+KCcnKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeSA9IGNvbXB1dGVkKCgpID0+ICh7XHJcbiAgICAgICAgLi4udGhpcy5zdGFnZVN0b3JhZ2UoKSxcclxuICAgICAgICB0aXRsZTogdGhpcy5jYXRlZ29yeVRpdGxlKCkgfHwgdGhpcy5zdGFnZVN0b3JhZ2UoKS50aXRsZVxyXG4gICAgfSkpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKCkge1xyXG4gICAgICAgIHRoaXMuaW5pdFN0YWdlU3RvcmFnZUNoaWxkcmVuKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uU2VsZWN0Q2F0ZWdvcnkoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRDdXJyZW50Q2F0ZWdvcnkodGhpcy5jYXRlZ29yeSgpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVDaGlsZHJlbihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cclxuICAgICAgICB0aGlzLmFyZUNoaWxkcmVuT3BlbmVkLnVwZGF0ZSgodmFsdWUpID0+ICF2YWx1ZSk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmFyZUNoaWxkcmVuT3BlbmVkKCkpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25UaXRsZUNoYW5nZWQodGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMub25DYW5jZWxUaXRsZUVkaXQoKTtcclxuXHJcbiAgICAgICAgaWYgKHRpdGxlID09PSB0aGlzLmNhdGVnb3J5KCkudGl0bGUpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy50cmVlU3RydWN0TmF2aWdhdG9yQXBpU2VydmljZS51cGRhdGVUaXRsZSh0aGlzLnN0YWdlU3RvcmFnZSgpLmlkLCB0aXRsZSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5jYXRlZ29yeVRpdGxlLnNldCh0aXRsZSk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5jYXRlZ29yeSgpLmlkID09PSB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNhdGVnb3J5KCk/LmlkKSB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLnNldEN1cnJlbnRDYXRlZ29yeSh0aGlzLmNhdGVnb3J5KCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uU3RhcnRUaXRsZUVkaXQoZXZlbnQ/OiBFdmVudCk6IHZvaWQge1xyXG4gICAgICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcclxuXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5zZXRFZGl0aW5nSWQodGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCk7XHJcbiAgICAgICAgdGhpcy5vbkNyZWF0aW5nU3ViY2F0ZWdvcnlDYW5jZWxlZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvbkNhbmNlbFRpdGxlRWRpdCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLmNsZWFyRWRpdGluZ0lkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uU3RhcnRDcmVhdGluZ1N1YmNhdGVnb3J5KGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gICAgICAgIHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW5nLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLmFyZUNoaWxkcmVuT3BlbmVkLnNldCh0cnVlKTtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlLnNldENyZWF0aW5nSWQodGhpcy5zdGFnZVN0b3JhZ2UoKS5pZCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uQ3JlYXRlTmV3U3ViY2F0ZWdvcnlDYXRlZ29yeSh0aXRsZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpbmcuc2V0KGZhbHNlKTtcclxuICAgICAgICB0aGlzLmlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0KHRydWUpO1xyXG4gICAgICAgIHRoaXMudHJlZVN0cnVjdE5hdmlnYXRvckFwaVNlcnZpY2VcclxuICAgICAgICAgICAgLmNyZWF0ZVN0YWdlU3RvcmFnZVRvUGFyZW50KHRoaXMuc3RhZ2VTdG9yYWdlKCkuaWQsIHRpdGxlKVxyXG4gICAgICAgICAgICAucGlwZShmaW5hbGl6ZSh0aGlzLmlzU3ViY2F0ZWdvcnlDcmVhdGlvbkxvYWRpbmcuc2V0LmJpbmQodGhpcy5pc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nLCBmYWxzZSkpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChzdGF0ZVN0b3JhZ2UpID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4udXBkYXRlKCh2YWx1ZSkgPT4gWy4uLnZhbHVlLCBzdGF0ZVN0b3JhZ2VdKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uQ3JlYXRpbmdTdWJjYXRlZ29yeUNhbmNlbGVkKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNTdWJjYXRlZ29yeUNyZWF0aW5nLnNldChmYWxzZSk7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZENhdGVnb3J5U2VydmljZS5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRTdGFnZVN0b3JhZ2VDaGlsZHJlbigpOiB2b2lkIHtcclxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXRoaXMuYXJlQ2hpbGRyZW5PcGVuZWQoKSB8fCB0aGlzLnN0YWdlU3RvcmFnZUNoaWxkcmVuKCkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWdlU3RvcmFnZSA9IHRoaXMuc3RhZ2VTdG9yYWdlKCk7XHJcbiAgICAgICAgICAgIGNvbnN0IHN0YWdlU3RvcmFnZUNoaWxkcmVuID0gc3RhZ2VTdG9yYWdlLmNoaWxkcmVuO1xyXG5cclxuICAgICAgICAgICAgaWYgKCFzdGFnZVN0b3JhZ2VDaGlsZHJlbi5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHR5cGVvZiBzdGFnZVN0b3JhZ2VDaGlsZHJlblswXSAhPT0gJ3N0cmluZycpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc3RhZ2VTdG9yYWdlQ2hpbGRyZW4uc2V0KHN0YWdlU3RvcmFnZUNoaWxkcmVuIGFzIFRyZWVTdHJ1Y3RbXSk7XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLnRyZWVTdHJ1Y3ROYXZpZ2F0b3JBcGlTZXJ2aWNlLmdldFN0YWdlU3RvcmFnZXNCeVBhcmVudChzdGFnZVN0b3JhZ2UuaWQpLnN1YnNjcmliZSgoc3RvcmFnZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5zdGFnZVN0b3JhZ2VDaGlsZHJlbi51cGRhdGUoKHByZXZTdGFnZVN0b3JhZ2VzKSA9PlxyXG4gICAgICAgICAgICAgICAgICAgIHByZXZTdGFnZVN0b3JhZ2VzID8gWy4uLnByZXZTdGFnZVN0b3JhZ2VzLCBzdG9yYWdlXSA6IFtzdG9yYWdlXVxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSwgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9KTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpjdWlMZXQ9XCJjYXRlZ29yeSgpIGFzIHN0YWdlXCI+XHJcbiAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgW3N0eWxlLmFsaWduLWl0ZW1zXT1cImFsaWduSXRlbXMoKVwiXHJcbiAgICAgICAgW2Rpc2FibGVkXT1cImlzU3RhZ2VDcmVhdGlvbkxvYWRpbmcoKVwiXHJcbiAgICAgICAgY2xhc3M9XCJjYXRlZ29yeVwiXHJcbiAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0Q2F0ZWdvcnkoKVwiXHJcbiAgICA+XHJcbiAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgY2NGbGV4Q29udGFpbmVyRGlyZWN0aXZlXHJcbiAgICAgICAgICAgIGNsYXNzPVwiY2F0ZWdvcnlfX29wZW4tY2xvc2UtYnV0dG9uXCJcclxuICAgICAgICAgICAgW2NsYXNzLmNhdGVnb3J5X19vcGVuLWNsb3NlLWJ1dHRvbl9oaWRkZW5dPVwiaXNPcGVuQ2xvc2VCdXR0b25IaWRkZW4oKVwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJvblRvZ2dsZUNoaWxkcmVuKCRldmVudClcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgICAgPGN1aS1zdmdcclxuICAgICAgICAgICAgICAgIFtpY29uXT1cIm9wZW5DbG9zZUJ1dHRvbkljb24oKVwiXHJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInZhcigtLWN1aS1iYXNlLTUwMClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgIDxjdWktc3ZnXHJcbiAgICAgICAgICAgIFtpY29uXT1cInN0YWdlU3RvcmFnZUljb24oKVwiXHJcbiAgICAgICAgICAgIGNvbG9yPVwidmFyKC0tY3VpLWJhc2UtNTAwKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICBAaWYgKGlzVGl0bGVFZGl0KCkpIHtcclxuICAgICAgICAgICAgPGN1aS1jYXRlZ29yeS1mb3JtXHJcbiAgICAgICAgICAgICAgICBbZGVmYXVsdFRpdGxlXT1cInN0YWdlLnRpdGxlXCJcclxuICAgICAgICAgICAgICAgIChjcmVhdGVkKT1cIm9uVGl0bGVDaGFuZ2VkKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGNhbmNlbGVkKT1cIm9uQ2FuY2VsVGl0bGVFZGl0KClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH0gQGVsc2Uge1xyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNhdGVnb3J5X190aXRsZVwiPnt7IHN0YWdlLnRpdGxlIH19PC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgPGJ1dHRvblxyXG4gICAgICAgICAgICAgICAgY3VpQnV0dG9uXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIGFwcGVhcmFuY2U9XCJnaG9zdFwiXHJcbiAgICAgICAgICAgICAgICBzaXplPVwieHhzXCJcclxuICAgICAgICAgICAgICAgIGljb249XCJjdWlJY29uRWRpdFwiXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNhdGVnb3J5X19hZGQtc3ViY2F0ZWdvcnktYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN0YXJ0VGl0bGVFZGl0KCRldmVudClcIlxyXG4gICAgICAgICAgICA+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgIGN1aUJ1dHRvblxyXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICBhcHBlYXJhbmNlPVwiZ2hvc3RcIlxyXG4gICAgICAgICAgICAgICAgc2l6ZT1cInh4c1wiXHJcbiAgICAgICAgICAgICAgICBpY29uPVwiY3VpSWNvblBsdXNcIlxyXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJjYXRlZ29yeV9fYWRkLXN1YmNhdGVnb3J5LWJ1dHRvblwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdGFydENyZWF0aW5nU3ViY2F0ZWdvcnkoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgID48L2J1dHRvbj5cclxuICAgICAgICB9XHJcbiAgICA8L2J1dHRvbj5cclxuICAgIDxkaXZcclxuICAgICAgICBbaGlkZGVuXT1cIiFhcmVDaGlsZHJlbk9wZW5lZCgpXCJcclxuICAgICAgICBjbGFzcz1cImxpc3Qtd3JhcHBlclwiXHJcbiAgICA+XHJcbiAgICAgICAgPGN1aS1jYXRlZ29yaWVzLWxpc3QgW3N0YWdlU3RvcmFnZXNdPVwic3RhZ2VTdG9yYWdlQ2hpbGRyZW4oKVwiIC8+XHJcbiAgICAgICAgQGlmIChpc0NyZWF0ZUNhdGVnb3J5Q29udHJvbFZpc2libGUoKSkge1xyXG4gICAgICAgICAgICA8Y3VpLWNyZWF0ZS1jYXRlZ29yeS1pdGVtXHJcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNyZWF0ZS1jYXRlZ29yeVwiXHJcbiAgICAgICAgICAgICAgICBbaXNEaXNhYmxlZF09XCJpc1N1YmNhdGVnb3J5Q3JlYXRpb25Mb2FkaW5nKClcIlxyXG4gICAgICAgICAgICAgICAgKGNyZWF0ZWQpPVwib25DcmVhdGVOZXdTdWJjYXRlZ29yeUNhdGVnb3J5KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgKGNhbmNlbGVkKT1cIm9uQ3JlYXRpbmdTdWJjYXRlZ29yeUNhbmNlbGVkKClcIlxyXG4gICAgICAgICAgICAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCategoryItemComponent } from './category-item.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NhdGVnb3J5LWl0ZW0vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBDdWlDYXRlZ29yeUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3J5LWl0ZW0uY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';
|
|
2
|
+
import { CuiSvgModule } from '../../../../components';
|
|
3
|
+
import { CuiCategoryFormComponent } from '../category-form';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../../../components/svg/svg.component";
|
|
6
|
+
export class CuiCreateCategoryItemComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.created = output();
|
|
9
|
+
this.canceled = output();
|
|
10
|
+
this.isDisabled = input(false);
|
|
11
|
+
}
|
|
12
|
+
onSubmit(title) {
|
|
13
|
+
this.created.emit(title);
|
|
14
|
+
}
|
|
15
|
+
onCancel() {
|
|
16
|
+
this.canceled.emit();
|
|
17
|
+
}
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCreateCategoryItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
19
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: CuiCreateCategoryItemComponent, isStandalone: true, selector: "cui-create-category-item", inputs: { isDisabled: { classPropertyName: "isDisabled", publicName: "isDisabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { created: "created", canceled: "canceled" }, ngImport: i0, template: "<cui-svg\r\n icon=\"cuiIconFolder\"\r\n color=\"var(--cui-base-500)\"\r\n class=\"icon\"\r\n/>\r\n<cui-category-form\r\n [isDisabled]=\"isDisabled()\"\r\n (created)=\"onSubmit($event)\"\r\n (canceled)=\"onCancel()\"\r\n/>\r\n", styles: [":host{padding-right:4px;padding-left:4px;display:flex;gap:4px;align-items:flex-start;min-height:32px}.icon{padding:6px 2px}\n"], dependencies: [{ kind: "ngmodule", type: CuiSvgModule }, { kind: "component", type: i1.CuiSvgComponent, selector: "cui-svg[icon]", inputs: ["width", "height", "strokeWidth", "color", "icon"] }, { kind: "component", type: CuiCategoryFormComponent, selector: "cui-category-form", inputs: ["isDisabled", "defaultTitle"], outputs: ["created", "canceled"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiCreateCategoryItemComponent, decorators: [{
|
|
22
|
+
type: Component,
|
|
23
|
+
args: [{ selector: 'cui-create-category-item', imports: [CuiSvgModule, CuiCategoryFormComponent], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<cui-svg\r\n icon=\"cuiIconFolder\"\r\n color=\"var(--cui-base-500)\"\r\n class=\"icon\"\r\n/>\r\n<cui-category-form\r\n [isDisabled]=\"isDisabled()\"\r\n (created)=\"onSubmit($event)\"\r\n (canceled)=\"onCancel()\"\r\n/>\r\n", styles: [":host{padding-right:4px;padding-left:4px;display:flex;gap:4px;align-items:flex-start;min-height:32px}.icon{padding:6px 2px}\n"] }]
|
|
24
|
+
}] });
|
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLWNhdGVnb3J5LWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZS93aWRnZXRzL2NhdGVnb3JpZXMvY29tcG9uZW50cy9jcmVhdGUtY2F0ZWdvcnktaXRlbS9jcmVhdGUtY2F0ZWdvcnktaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NyZWF0ZS1jYXRlZ29yeS1pdGVtL2NyZWF0ZS1jYXRlZ29yeS1pdGVtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVsRixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQVU1RCxNQUFNLE9BQU8sOEJBQThCO0lBUjNDO1FBU3VCLFlBQU8sR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUMzQixhQUFRLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFFN0IsZUFBVSxHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztLQVN0RDtJQVBhLFFBQVEsQ0FBQyxLQUFhO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFUyxRQUFRO1FBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDOytHQVpRLDhCQUE4QjttR0FBOUIsOEJBQThCLDhSQ2IzQyxxUEFVQSxzTERIYyxZQUFZLHdLQUFFLHdCQUF3Qjs7NEZBTXZDLDhCQUE4QjtrQkFSMUMsU0FBUzsrQkFDSSwwQkFBMEIsV0FDM0IsQ0FBQyxZQUFZLEVBQUUsd0JBQXdCLENBQUMsY0FDckMsSUFBSSxtQkFHQyx1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ3VpU3ZnTW9kdWxlIH0gZnJvbSAnLi4vLi4vLi4vLi4vY29tcG9uZW50cyc7XHJcbmltcG9ydCB7IEN1aUNhdGVnb3J5Rm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL2NhdGVnb3J5LWZvcm0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2N1aS1jcmVhdGUtY2F0ZWdvcnktaXRlbScsXHJcbiAgICBpbXBvcnRzOiBbQ3VpU3ZnTW9kdWxlLCBDdWlDYXRlZ29yeUZvcm1Db21wb25lbnRdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi9jcmVhdGUtY2F0ZWdvcnktaXRlbS5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybDogJy4vY3JlYXRlLWNhdGVnb3J5LWl0ZW0uY29tcG9uZW50LnNjc3MnLFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcclxufSlcclxuZXhwb3J0IGNsYXNzIEN1aUNyZWF0ZUNhdGVnb3J5SXRlbUNvbXBvbmVudCB7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY3JlYXRlZCA9IG91dHB1dDxzdHJpbmc+KCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuY2VsZWQgPSBvdXRwdXQ8dm9pZD4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNEaXNhYmxlZCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgb25TdWJtaXQodGl0bGU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuY3JlYXRlZC5lbWl0KHRpdGxlKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25DYW5jZWwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYW5jZWxlZC5lbWl0KCk7XHJcbiAgICB9XHJcbn1cclxuIiwiPGN1aS1zdmdcclxuICAgIGljb249XCJjdWlJY29uRm9sZGVyXCJcclxuICAgIGNvbG9yPVwidmFyKC0tY3VpLWJhc2UtNTAwKVwiXHJcbiAgICBjbGFzcz1cImljb25cIlxyXG4vPlxyXG48Y3VpLWNhdGVnb3J5LWZvcm1cclxuICAgIFtpc0Rpc2FibGVkXT1cImlzRGlzYWJsZWQoKVwiXHJcbiAgICAoY3JlYXRlZCk9XCJvblN1Ym1pdCgkZXZlbnQpXCJcclxuICAgIChjYW5jZWxlZCk9XCJvbkNhbmNlbCgpXCJcclxuLz5cclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCreateCategoryItemComponent } from './create-category-item.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2NyZWF0ZS1jYXRlZ29yeS1pdGVtL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQ3JlYXRlQ2F0ZWdvcnlJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9jcmVhdGUtY2F0ZWdvcnktaXRlbS5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { CuiCategoriesListComponent } from './categories-list';
|
|
2
|
+
export { CuiCreateCategoryItemComponent } from './create-category-item';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9jb21wb25lbnRzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQy9ELE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgQ3VpQ2F0ZWdvcmllc0xpc3RDb21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3JpZXMtbGlzdCc7XHJcbmV4cG9ydCB7IEN1aUNyZWF0ZUNhdGVnb3J5SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vY3JlYXRlLWNhdGVnb3J5LWl0ZW0nO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { CuiCategoriesComponent } from './categories.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IEN1aUNhdGVnb3JpZXNDb21wb25lbnQgfSBmcm9tICcuL2NhdGVnb3JpZXMuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export { SelectedCategoryService } from './selected-category.service';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JlL3dpZGdldHMvY2F0ZWdvcmllcy9zZXJ2aWNlcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIH0gZnJvbSAnLi9zZWxlY3RlZC1jYXRlZ29yeS5zZXJ2aWNlJztcclxuIl19
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { Injectable, signal } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class SelectedCategoryService {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.editingIdSignal = signal(null);
|
|
6
|
+
this.creatingIdSignal = signal(null);
|
|
7
|
+
this.categorySignal = signal(null);
|
|
8
|
+
this.editingId = this.editingIdSignal.asReadonly();
|
|
9
|
+
this.creatingId = this.creatingIdSignal.asReadonly();
|
|
10
|
+
this.category = this.categorySignal.asReadonly();
|
|
11
|
+
}
|
|
12
|
+
setCurrentCategory(category) {
|
|
13
|
+
this.categorySignal.set(category);
|
|
14
|
+
}
|
|
15
|
+
setEditingId(id) {
|
|
16
|
+
this.editingIdSignal.set(id);
|
|
17
|
+
this.clearCreatingId();
|
|
18
|
+
}
|
|
19
|
+
setCreatingId(id) {
|
|
20
|
+
this.creatingIdSignal.set(id);
|
|
21
|
+
this.clearEditingId();
|
|
22
|
+
}
|
|
23
|
+
clearEditingId() {
|
|
24
|
+
this.editingIdSignal.set('');
|
|
25
|
+
}
|
|
26
|
+
clearCreatingId() {
|
|
27
|
+
this.creatingIdSignal.set('');
|
|
28
|
+
}
|
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectedCategoryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectedCategoryService, providedIn: 'root' }); }
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SelectedCategoryService, decorators: [{
|
|
33
|
+
type: Injectable,
|
|
34
|
+
args: [{
|
|
35
|
+
providedIn: 'root'
|
|
36
|
+
}]
|
|
37
|
+
}] });
|
|
38
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0ZWQtY2F0ZWdvcnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy9jYXRlZ29yaWVzL3NlcnZpY2VzL3NlbGVjdGVkLWNhdGVnb3J5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0sT0FBTyx1QkFBdUI7SUFIcEM7UUFJcUIsb0JBQWUsR0FBRyxNQUFNLENBQXNCLElBQUksQ0FBQyxDQUFDO1FBQ3BELHFCQUFnQixHQUFHLE1BQU0sQ0FBc0IsSUFBSSxDQUFDLENBQUM7UUFDckQsbUJBQWMsR0FBRyxNQUFNLENBQTBCLElBQUksQ0FBQyxDQUFDO1FBRXhELGNBQVMsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQzlDLGVBQVUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDaEQsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsVUFBVSxFQUFFLENBQUM7S0F1Qi9EO0lBckJVLGtCQUFrQixDQUFDLFFBQWlDO1FBQ3ZELElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFTSxZQUFZLENBQUMsRUFBVTtRQUMxQixJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM3QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVNLGFBQWEsQ0FBQyxFQUFVO1FBQzNCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQzFCLENBQUM7SUFFTSxjQUFjO1FBQ2pCLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFTSxlQUFlO1FBQ2xCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQzsrR0E3QlEsdUJBQXVCO21IQUF2Qix1QkFBdUIsY0FGcEIsTUFBTTs7NEZBRVQsdUJBQXVCO2tCQUhuQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgdHlwZSB7IEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgVHJlZVN0cnVjdCB9IGZyb20gJ0BjdWJ5LXVpL2FwaSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFNlbGVjdGVkQ2F0ZWdvcnlTZXJ2aWNlIHtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWRpdGluZ0lkU2lnbmFsID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjcmVhdGluZ0lkU2lnbmFsID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXRlZ29yeVNpZ25hbCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxUcmVlU3RydWN0Pj4obnVsbCk7XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IGVkaXRpbmdJZCA9IHRoaXMuZWRpdGluZ0lkU2lnbmFsLmFzUmVhZG9ubHkoKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBjcmVhdGluZ0lkID0gdGhpcy5jcmVhdGluZ0lkU2lnbmFsLmFzUmVhZG9ubHkoKTtcclxuICAgIHB1YmxpYyByZWFkb25seSBjYXRlZ29yeSA9IHRoaXMuY2F0ZWdvcnlTaWduYWwuYXNSZWFkb25seSgpO1xyXG5cclxuICAgIHB1YmxpYyBzZXRDdXJyZW50Q2F0ZWdvcnkoY2F0ZWdvcnk6IEN1aU51bGxhYmxlPFRyZWVTdHJ1Y3Q+KTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jYXRlZ29yeVNpZ25hbC5zZXQoY2F0ZWdvcnkpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzZXRFZGl0aW5nSWQoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZWRpdGluZ0lkU2lnbmFsLnNldChpZCk7XHJcbiAgICAgICAgdGhpcy5jbGVhckNyZWF0aW5nSWQoKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc2V0Q3JlYXRpbmdJZChpZDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGluZ0lkU2lnbmFsLnNldChpZCk7XHJcbiAgICAgICAgdGhpcy5jbGVhckVkaXRpbmdJZCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckVkaXRpbmdJZCgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmVkaXRpbmdJZFNpZ25hbC5zZXQoJycpO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBjbGVhckNyZWF0aW5nSWQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5jcmVhdGluZ0lkU2lnbmFsLnNldCgnJyk7XHJcbiAgICB9XHJcbn1cclxuIl19
|