cloud-ide-core 0.0.1 → 1.0.1
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/esm2022/lib/cloud-ide-core.routes.mjs +137 -0
- package/esm2022/lib/core/general-master-management/components/general-master/general-master.component.mjs +738 -0
- package/esm2022/lib/core/general-master-management/components/general-master-type/general-master-type.component.mjs +608 -0
- package/esm2022/lib/core/general-master-management/services/general-master-type.service.mjs +203 -0
- package/esm2022/lib/core/general-master-management/services/general-master.service.mjs +166 -0
- package/esm2022/lib/core/page-management/components/page-form/page-form.component.mjs +212 -0
- package/esm2022/public-api.mjs +2 -1
- package/fesm2022/cloud-ide-core-general-master-type.component-B26auJZw.mjs +611 -0
- package/fesm2022/cloud-ide-core-general-master-type.component-B26auJZw.mjs.map +1 -0
- package/fesm2022/cloud-ide-core-general-master-type.service-Ab64Jjps.mjs +206 -0
- package/fesm2022/cloud-ide-core-general-master-type.service-Ab64Jjps.mjs.map +1 -0
- package/fesm2022/cloud-ide-core-general-master.component-B6llTVoV.mjs +903 -0
- package/fesm2022/cloud-ide-core-general-master.component-B6llTVoV.mjs.map +1 -0
- package/fesm2022/cloud-ide-core-page-form.component-CaEca3mB.mjs +215 -0
- package/fesm2022/cloud-ide-core-page-form.component-CaEca3mB.mjs.map +1 -0
- package/fesm2022/cloud-ide-core.mjs +173 -1
- package/fesm2022/cloud-ide-core.mjs.map +1 -1
- package/lib/cloud-ide-core.routes.d.ts +2 -0
- package/lib/core/general-master-management/components/general-master/general-master.component.d.ts +167 -0
- package/lib/core/general-master-management/components/general-master-type/general-master-type.component.d.ts +129 -0
- package/lib/core/general-master-management/services/general-master-type.service.d.ts +75 -0
- package/lib/core/general-master-management/services/general-master.service.d.ts +62 -0
- package/lib/core/page-management/components/page-form/page-form.component.d.ts +35 -0
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { Component, signal, computed, inject, DestroyRef } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { Validators, ReactiveFormsModule, NonNullableFormBuilder, FormsModule } from '@angular/forms';
|
|
4
|
+
import { ActivatedRoute, Router } from '@angular/router';
|
|
5
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { PageManagementService } from '../../services/page-management.service';
|
|
7
|
+
import { AppStateHelperService } from 'cloud-ide-layout';
|
|
8
|
+
import { CideEleButtonComponent, CideInputComponent, CideSelectComponent, CideTextareaComponent, CideIconComponent, CideEleFileInputComponent, CideEleJsonEditorComponent } from 'cloud-ide-element';
|
|
9
|
+
import { generateObjectFromString } from 'cloud-ide-lms-model';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/forms";
|
|
12
|
+
export class PageFormComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.destroyRef = inject(DestroyRef);
|
|
15
|
+
this.pageService = inject(PageManagementService);
|
|
16
|
+
this.appState = inject(AppStateHelperService);
|
|
17
|
+
this.fb = inject(NonNullableFormBuilder);
|
|
18
|
+
this.router = inject(Router);
|
|
19
|
+
this.route = inject(ActivatedRoute);
|
|
20
|
+
this.loading = signal(false);
|
|
21
|
+
this.error = signal(null);
|
|
22
|
+
this.success = signal(null);
|
|
23
|
+
// Page information
|
|
24
|
+
this.pageId = signal(null);
|
|
25
|
+
this.isEditMode = signal(false);
|
|
26
|
+
this.pageForm = this.fb.group({
|
|
27
|
+
sypg_title: ['', [Validators.required, Validators.maxLength(100)]],
|
|
28
|
+
sypg_desc: ['', [Validators.maxLength(255)]],
|
|
29
|
+
sypg_page_code: ['', [Validators.required, Validators.maxLength(40), Validators.pattern(/^[a-zA-Z0-9_]+$/)]],
|
|
30
|
+
sypg_configuration: ['{}', [Validators.required]],
|
|
31
|
+
sypg_isactive: [true]
|
|
32
|
+
});
|
|
33
|
+
// Computed values
|
|
34
|
+
this.isFormDirty = computed(() => this.pageForm.dirty);
|
|
35
|
+
this.setupFormSubscriptions();
|
|
36
|
+
}
|
|
37
|
+
ngOnInit() {
|
|
38
|
+
// Check for page ID in query parameters
|
|
39
|
+
this.checkForPageId();
|
|
40
|
+
}
|
|
41
|
+
// Check for page ID in query parameters
|
|
42
|
+
checkForPageId() {
|
|
43
|
+
console.log('🔍 Checking for page ID in query parameters', this.route.params);
|
|
44
|
+
this.route.params.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(params => {
|
|
45
|
+
console.log('🔍 Query params:', params);
|
|
46
|
+
// Check for pageId, id, or page parameter
|
|
47
|
+
const queryParams = params['query'];
|
|
48
|
+
const queryData = generateObjectFromString(queryParams);
|
|
49
|
+
// If pageId is an object string (from generateStringFromObject), try to parse it
|
|
50
|
+
const pageId = queryData.sypg_id;
|
|
51
|
+
if (pageId) {
|
|
52
|
+
console.log('🔍 Page ID found in query params:', pageId);
|
|
53
|
+
this.pageId.set(pageId);
|
|
54
|
+
this.isEditMode.set(true);
|
|
55
|
+
this.loadPageData(pageId);
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
console.log('🆕 No page ID found - creating new page');
|
|
59
|
+
this.isEditMode.set(false);
|
|
60
|
+
this.pageId.set(null);
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Load page data for editing
|
|
65
|
+
loadPageData(pageId) {
|
|
66
|
+
this.loading.set(true);
|
|
67
|
+
this.error.set(null);
|
|
68
|
+
console.log('📥 Loading page data for ID:', pageId);
|
|
69
|
+
this.pageService.getPageById(pageId).pipe(takeUntilDestroyed(this.destroyRef)).subscribe({
|
|
70
|
+
next: (response) => {
|
|
71
|
+
console.log('✅ Page data loaded:', response);
|
|
72
|
+
if (response?.success && response?.data) {
|
|
73
|
+
const pageData = response.data;
|
|
74
|
+
if (pageData) {
|
|
75
|
+
this.populateFormWithPageData(pageData);
|
|
76
|
+
this.success.set('Page data loaded successfully');
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
this.error.set('Page data not found');
|
|
80
|
+
console.error('❌ Page data not found in response:', response);
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.error.set('Failed to load page data');
|
|
85
|
+
console.error('❌ Page data response invalid:', response);
|
|
86
|
+
}
|
|
87
|
+
this.loading.set(false);
|
|
88
|
+
},
|
|
89
|
+
error: (err) => {
|
|
90
|
+
console.error('❌ Failed to load page data:', err);
|
|
91
|
+
let errorMessage = 'Failed to load page data.';
|
|
92
|
+
if (err?.error?.message) {
|
|
93
|
+
errorMessage = err.error.message;
|
|
94
|
+
}
|
|
95
|
+
else if (err?.message) {
|
|
96
|
+
errorMessage = err.message;
|
|
97
|
+
}
|
|
98
|
+
else if (err?.status === 404) {
|
|
99
|
+
errorMessage = 'Page not found.';
|
|
100
|
+
}
|
|
101
|
+
else if (err?.status === 500) {
|
|
102
|
+
errorMessage = 'Server error. Please try again later.';
|
|
103
|
+
}
|
|
104
|
+
this.error.set(errorMessage);
|
|
105
|
+
this.loading.set(false);
|
|
106
|
+
}
|
|
107
|
+
});
|
|
108
|
+
}
|
|
109
|
+
// Populate form with page data
|
|
110
|
+
populateFormWithPageData(pageData) {
|
|
111
|
+
try {
|
|
112
|
+
console.log('📝 Populating form with page data:', pageData);
|
|
113
|
+
const formData = {
|
|
114
|
+
sypg_title: pageData.sypg_title || '',
|
|
115
|
+
sypg_desc: pageData.sypg_desc || '',
|
|
116
|
+
sypg_page_code: pageData.sypg_page_code || '',
|
|
117
|
+
sypg_configuration: pageData.sypg_configuration ? JSON.stringify(pageData.sypg_configuration) : '{}',
|
|
118
|
+
sypg_isactive: pageData.sypg_isactive !== undefined ? pageData.sypg_isactive : true
|
|
119
|
+
};
|
|
120
|
+
// Patch the form with the page data
|
|
121
|
+
this.pageForm.patchValue(formData, { emitEvent: false });
|
|
122
|
+
console.log('✅ Form populated successfully');
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
console.error('💥 Error populating form with page data:', error);
|
|
126
|
+
this.error.set('Error loading page data into form');
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
setupFormSubscriptions() {
|
|
130
|
+
// Watch for form changes to enable/disable save button
|
|
131
|
+
this.pageForm.valueChanges
|
|
132
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
133
|
+
.subscribe(() => {
|
|
134
|
+
// Form validation is handled by computed signals
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Form submission
|
|
138
|
+
savePage() {
|
|
139
|
+
if (!this.pageForm.valid) {
|
|
140
|
+
this.markFormAsTouched();
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const formValue = this.pageForm.getRawValue();
|
|
144
|
+
const pageData = {
|
|
145
|
+
_id: this.pageId() || '',
|
|
146
|
+
sypg_title: formValue.sypg_title,
|
|
147
|
+
sypg_desc: formValue.sypg_desc,
|
|
148
|
+
sypg_page_code: formValue.sypg_page_code,
|
|
149
|
+
sypg_configuration: formValue.sypg_configuration,
|
|
150
|
+
sypg_isactive: formValue.sypg_isactive
|
|
151
|
+
};
|
|
152
|
+
this.loading.set(true);
|
|
153
|
+
this.error.set(null);
|
|
154
|
+
this.pageService.createOrUpdatePage(pageData)
|
|
155
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
|
156
|
+
.subscribe({
|
|
157
|
+
next: (response) => {
|
|
158
|
+
if (response.success) {
|
|
159
|
+
this.success.set(this.isEditMode() ? 'Page updated successfully' : 'Page created successfully');
|
|
160
|
+
console.log('✅ Page saved successfully');
|
|
161
|
+
// Navigate back to page list after a short delay
|
|
162
|
+
setTimeout(() => {
|
|
163
|
+
this.router.navigate(['/control-panel/page']);
|
|
164
|
+
}, 1500);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
this.error.set(response.message || 'Failed to save page');
|
|
168
|
+
console.error('❌ Failed to save page:', response.message);
|
|
169
|
+
}
|
|
170
|
+
this.loading.set(false);
|
|
171
|
+
},
|
|
172
|
+
error: (error) => {
|
|
173
|
+
console.error('❌ Error saving page:', error);
|
|
174
|
+
this.error.set('Failed to save page. Please try again.');
|
|
175
|
+
this.loading.set(false);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
}
|
|
179
|
+
// Cancel form
|
|
180
|
+
cancelForm() {
|
|
181
|
+
this.router.navigate(['/control-panel/page']);
|
|
182
|
+
}
|
|
183
|
+
// Go back to page list
|
|
184
|
+
goBack() {
|
|
185
|
+
this.router.navigate(['/control-panel/page']);
|
|
186
|
+
}
|
|
187
|
+
// Mark form as touched to trigger validation display
|
|
188
|
+
markFormAsTouched() {
|
|
189
|
+
Object.keys(this.pageForm.controls).forEach(key => {
|
|
190
|
+
const control = this.pageForm.get(key);
|
|
191
|
+
control?.markAsTouched();
|
|
192
|
+
});
|
|
193
|
+
}
|
|
194
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PageFormComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.7", type: PageFormComponent, isStandalone: true, selector: "cide-core-page-form", ngImport: i0, template: "<div class=\"page-form-fullscreen\">\n <div class=\"page-form-container\">\n <form class=\"page-form\" [formGroup]=\"pageForm\" [class.loading]=\"loading()\" (ngSubmit)=\"savePage()\">\n \n <!-- Header Section -->\n <div class=\"form-header\">\n <h2 class=\"form-title\">{{ isEditMode() ? 'Edit Page' : 'Create Page' }}</h2>\n <p class=\"form-subtitle\">\n {{ isEditMode() ? 'Update page information and configuration' : 'Create a new page with configuration' }}\n </p>\n </div>\n\n <!-- Success and Error Messages -->\n @if (success()) {\n <div class=\"alert alert-success\">\n <svg class=\"alert-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 13l4 4L19 7\"></path>\n </svg>\n {{ success() }}\n </div>\n }\n @if (error()) {\n <div class=\"alert alert-error\">\n <svg class=\"alert-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"></path>\n </svg>\n {{ error() }}\n </div>\n }\n\n <!-- Form Content -->\n <div class=\"form-section\">\n <div class=\"grid grid-2 gap-md lg-grid-2 md-grid-1\">\n <cide-ele-input \n id=\"sypg_title\"\n label=\"Page Title *\" \n formControlName=\"sypg_title\"\n placeholder=\"Enter page title\"\n size=\"md\">\n </cide-ele-input>\n \n <cide-ele-input \n id=\"sypg_page_code\"\n label=\"Page Code *\" \n formControlName=\"sypg_page_code\"\n placeholder=\"Enter page code (alphanumeric and underscore only)\"\n size=\"md\">\n </cide-ele-input>\n </div>\n\n <div class=\"grid grid-1 gap-md\">\n <cide-ele-textarea \n id=\"sypg_desc\"\n label=\"Page Description\" \n formControlName=\"sypg_desc\"\n placeholder=\"Enter page description\"\n [rows]=\"3\"\n size=\"md\">\n </cide-ele-textarea>\n </div>\n\n <div class=\"grid grid-1 gap-md\">\n <cide-ele-json-editor\n id=\"sypg_configuration\"\n label=\"Configuration JSON *\"\n formControlName=\"sypg_configuration\"\n placeholder='{\"key\": \"value\"}'>\n </cide-ele-json-editor>\n </div>\n\n <div class=\"grid grid-1 gap-sm\">\n <cide-ele-input\n id=\"sypg_isactive\"\n type=\"checkbox\"\n formControlName=\"sypg_isactive\"\n label=\"Active Status\"\n size=\"sm\">\n </cide-ele-input>\n </div>\n </div>\n\n <!-- Form Actions -->\n <div class=\"form-actions\">\n <button cideEleButton\n type=\"button\" \n variant=\"secondary\" \n (click)=\"cancelForm()\" \n leftIcon=\"close\"\n [disabled]=\"loading()\">\n Cancel\n </button>\n \n <button cideEleButton\n type=\"submit\" \n variant=\"primary\" \n [disabled]=\"loading() || !pageForm.valid\"\n [loading]=\"loading()\"\n leftIcon=\"save\">\n {{ isEditMode() ? 'Update Page' : 'Create Page' }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", styles: [".page-form-container{background:transparent;padding:1rem;width:100%;box-sizing:border-box}.page-form{max-width:1200px;margin:0 auto;background:transparent;border:none;box-shadow:none;width:100%}.page-form.loading{opacity:.6;pointer-events:none}.form-header{background:transparent;color:#1f2937;padding:1.25rem 0;text-align:left}.form-header .form-title{font-size:1.5rem;font-weight:700;margin:0 0 .25rem;color:#1f2937}.form-header .form-subtitle{font-size:.95rem;opacity:.7;margin:0;font-weight:400;color:#6b7280}.form-section{padding:1.25rem 0;border-bottom:none;margin-bottom:1.5rem}.form-section:last-of-type{margin-bottom:0}.grid{display:grid;gap:1rem;margin-bottom:.75rem;transition:all .3s ease}.grid:last-child{margin-bottom:0}.grid.grid-1{grid-template-columns:1fr}.grid.grid-2{grid-template-columns:repeat(2,1fr)}.grid.grid-3{grid-template-columns:repeat(3,1fr)}.grid.grid-4{grid-template-columns:repeat(4,1fr)}.grid.gap-sm{gap:.5rem}.grid.gap-md{gap:1rem}.grid.gap-lg{gap:1.5rem}.grid.gap-xl{gap:2rem}@media (max-width: 1199px) and (min-width: 992px){.grid.lg-grid-1{grid-template-columns:1fr}.grid.lg-grid-2{grid-template-columns:repeat(2,1fr)}.grid.lg-grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 991px) and (min-width: 768px){.grid.md-grid-1{grid-template-columns:1fr}.grid.md-grid-2{grid-template-columns:repeat(2,1fr)}.grid.md-grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1024px){.grid.grid-4:not([class*=lg-grid]):not([class*=md-grid]){grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid{gap:.75rem}.grid.grid-2:not([class*=sm-grid]):not([class*=xs-grid]),.grid.grid-3:not([class*=sm-grid]):not([class*=xs-grid]),.grid.grid-4:not([class*=sm-grid]):not([class*=xs-grid]){grid-template-columns:1fr}.grid.gap-lg{gap:1rem}.grid.gap-xl{gap:1.25rem}}@media (max-width: 480px){.grid{gap:.5rem}.grid:not([class*=xs-grid]){grid-template-columns:1fr!important}.grid.gap-md{gap:.75rem}.grid.gap-lg,.grid.gap-xl{gap:1rem}}.checkbox-field{margin:.25rem 0}.checkbox-label{display:flex;flex-direction:column;gap:.25rem;cursor:pointer;padding:.75rem 0;background:transparent;border:none;border-radius:0;transition:all .2s ease}.checkbox-label:hover{background:#667eea05}.checkbox-label .checkbox-input{width:1rem;height:1rem;accent-color:#667eea;border-radius:3px;margin-bottom:.125rem}.checkbox-label .checkbox-text{font-weight:600;color:#374151;font-size:.875rem}.checkbox-label .checkbox-description{font-size:.75rem;color:#6b7280;margin-top:.125rem}.alert{display:flex;align-items:center;gap:.5rem;padding:.75rem 0;margin:1rem 0;border-radius:0;font-weight:500;font-size:.875rem;border-left:3px solid}.alert .alert-icon{width:1rem;height:1rem;flex-shrink:0}.alert.alert-success{background:#dcfce74d;border-left-color:#22c55e;color:#166534}.alert.alert-error{background:#fef2f24d;border-left-color:#ef4444;color:#dc2626}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 0;background:#fff;border-top:1px solid #e5e7eb;margin-top:2rem;position:sticky;bottom:0}@media (max-width: 640px){.form-actions{flex-direction:column-reverse}}cide-ele-input,cide-ele-select,cide-ele-textarea,cide-ele-json-editor{transition:all .2s ease}@media (max-width: 768px){.page-form-container{padding:.75rem}.form-header{padding:1rem 0}.form-header .form-title{font-size:1.25rem}.form-header .form-subtitle{font-size:.875rem}.form-section{padding:1rem 0}.form-actions{padding:1rem 0;margin-top:1.5rem}}@media (max-width: 480px){.page-form-container{padding:.25rem}.form-header,.form-section{padding:.75rem 0}.form-actions{padding:.75rem 0;margin-top:1rem}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: CideEleButtonComponent, selector: "button[cideEleButton], a[cideEleButton]", inputs: ["label", "variant", "size", "type", "shape", "elevation", "disabled", "id", "loading", "fullWidth", "leftIcon", "rightIcon", "customClass", "tooltip", "ariaLabel", "testId", "routerLink", "routerExtras", "preventDoubleClick", "animated"], outputs: ["btnClick", "doubleClick"] }, { kind: "component", type: CideInputComponent, selector: "cide-ele-input", inputs: ["fill", "label", "labelHide", "disabled", "clearInput", "labelPlacement", "labelDir", "placeholder", "leadingIcon", "trailingIcon", "helperText", "helperTextCollapse", "hideHelperAndErrorText", "errorText", "maxlength", "minlength", "required", "autocapitalize", "autocomplete", "type", "width", "id", "ngModel", "option", "min", "max", "size"], outputs: ["ngModelChange"] }, { kind: "component", type: CideTextareaComponent, selector: "cide-ele-textarea", inputs: ["label", "labelHide", "placeholder", "helperText", "errorText", "required", "disabled", "minlength", "maxlength", "rows", "id", "ngModel", "size", "fill", "labelPlacement", "labelDir", "leadingIcon", "trailingIcon", "clearInput"], outputs: ["ngModelChange"] }, { kind: "component", type: CideEleJsonEditorComponent, selector: "cide-ele-json-editor", inputs: ["label", "helperText", "required", "disabled", "showCharacterCount", "config"], outputs: ["valueChange", "objectChange", "errorsChange", "validChange"] }] }); }
|
|
196
|
+
}
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.7", ngImport: i0, type: PageFormComponent, decorators: [{
|
|
198
|
+
type: Component,
|
|
199
|
+
args: [{ selector: 'cide-core-page-form', standalone: true, imports: [
|
|
200
|
+
CommonModule,
|
|
201
|
+
ReactiveFormsModule,
|
|
202
|
+
FormsModule,
|
|
203
|
+
CideEleButtonComponent,
|
|
204
|
+
CideInputComponent,
|
|
205
|
+
CideSelectComponent,
|
|
206
|
+
CideTextareaComponent,
|
|
207
|
+
CideIconComponent,
|
|
208
|
+
CideEleFileInputComponent,
|
|
209
|
+
CideEleJsonEditorComponent
|
|
210
|
+
], template: "<div class=\"page-form-fullscreen\">\n <div class=\"page-form-container\">\n <form class=\"page-form\" [formGroup]=\"pageForm\" [class.loading]=\"loading()\" (ngSubmit)=\"savePage()\">\n \n <!-- Header Section -->\n <div class=\"form-header\">\n <h2 class=\"form-title\">{{ isEditMode() ? 'Edit Page' : 'Create Page' }}</h2>\n <p class=\"form-subtitle\">\n {{ isEditMode() ? 'Update page information and configuration' : 'Create a new page with configuration' }}\n </p>\n </div>\n\n <!-- Success and Error Messages -->\n @if (success()) {\n <div class=\"alert alert-success\">\n <svg class=\"alert-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M5 13l4 4L19 7\"></path>\n </svg>\n {{ success() }}\n </div>\n }\n @if (error()) {\n <div class=\"alert alert-error\">\n <svg class=\"alert-icon\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M6 18L18 6M6 6l12 12\"></path>\n </svg>\n {{ error() }}\n </div>\n }\n\n <!-- Form Content -->\n <div class=\"form-section\">\n <div class=\"grid grid-2 gap-md lg-grid-2 md-grid-1\">\n <cide-ele-input \n id=\"sypg_title\"\n label=\"Page Title *\" \n formControlName=\"sypg_title\"\n placeholder=\"Enter page title\"\n size=\"md\">\n </cide-ele-input>\n \n <cide-ele-input \n id=\"sypg_page_code\"\n label=\"Page Code *\" \n formControlName=\"sypg_page_code\"\n placeholder=\"Enter page code (alphanumeric and underscore only)\"\n size=\"md\">\n </cide-ele-input>\n </div>\n\n <div class=\"grid grid-1 gap-md\">\n <cide-ele-textarea \n id=\"sypg_desc\"\n label=\"Page Description\" \n formControlName=\"sypg_desc\"\n placeholder=\"Enter page description\"\n [rows]=\"3\"\n size=\"md\">\n </cide-ele-textarea>\n </div>\n\n <div class=\"grid grid-1 gap-md\">\n <cide-ele-json-editor\n id=\"sypg_configuration\"\n label=\"Configuration JSON *\"\n formControlName=\"sypg_configuration\"\n placeholder='{\"key\": \"value\"}'>\n </cide-ele-json-editor>\n </div>\n\n <div class=\"grid grid-1 gap-sm\">\n <cide-ele-input\n id=\"sypg_isactive\"\n type=\"checkbox\"\n formControlName=\"sypg_isactive\"\n label=\"Active Status\"\n size=\"sm\">\n </cide-ele-input>\n </div>\n </div>\n\n <!-- Form Actions -->\n <div class=\"form-actions\">\n <button cideEleButton\n type=\"button\" \n variant=\"secondary\" \n (click)=\"cancelForm()\" \n leftIcon=\"close\"\n [disabled]=\"loading()\">\n Cancel\n </button>\n \n <button cideEleButton\n type=\"submit\" \n variant=\"primary\" \n [disabled]=\"loading() || !pageForm.valid\"\n [loading]=\"loading()\"\n leftIcon=\"save\">\n {{ isEditMode() ? 'Update Page' : 'Create Page' }}\n </button>\n </div>\n </form>\n </div>\n</div>\n", styles: [".page-form-container{background:transparent;padding:1rem;width:100%;box-sizing:border-box}.page-form{max-width:1200px;margin:0 auto;background:transparent;border:none;box-shadow:none;width:100%}.page-form.loading{opacity:.6;pointer-events:none}.form-header{background:transparent;color:#1f2937;padding:1.25rem 0;text-align:left}.form-header .form-title{font-size:1.5rem;font-weight:700;margin:0 0 .25rem;color:#1f2937}.form-header .form-subtitle{font-size:.95rem;opacity:.7;margin:0;font-weight:400;color:#6b7280}.form-section{padding:1.25rem 0;border-bottom:none;margin-bottom:1.5rem}.form-section:last-of-type{margin-bottom:0}.grid{display:grid;gap:1rem;margin-bottom:.75rem;transition:all .3s ease}.grid:last-child{margin-bottom:0}.grid.grid-1{grid-template-columns:1fr}.grid.grid-2{grid-template-columns:repeat(2,1fr)}.grid.grid-3{grid-template-columns:repeat(3,1fr)}.grid.grid-4{grid-template-columns:repeat(4,1fr)}.grid.gap-sm{gap:.5rem}.grid.gap-md{gap:1rem}.grid.gap-lg{gap:1.5rem}.grid.gap-xl{gap:2rem}@media (max-width: 1199px) and (min-width: 992px){.grid.lg-grid-1{grid-template-columns:1fr}.grid.lg-grid-2{grid-template-columns:repeat(2,1fr)}.grid.lg-grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 991px) and (min-width: 768px){.grid.md-grid-1{grid-template-columns:1fr}.grid.md-grid-2{grid-template-columns:repeat(2,1fr)}.grid.md-grid-3{grid-template-columns:repeat(3,1fr)}}@media (max-width: 1024px){.grid.grid-4:not([class*=lg-grid]):not([class*=md-grid]){grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid{gap:.75rem}.grid.grid-2:not([class*=sm-grid]):not([class*=xs-grid]),.grid.grid-3:not([class*=sm-grid]):not([class*=xs-grid]),.grid.grid-4:not([class*=sm-grid]):not([class*=xs-grid]){grid-template-columns:1fr}.grid.gap-lg{gap:1rem}.grid.gap-xl{gap:1.25rem}}@media (max-width: 480px){.grid{gap:.5rem}.grid:not([class*=xs-grid]){grid-template-columns:1fr!important}.grid.gap-md{gap:.75rem}.grid.gap-lg,.grid.gap-xl{gap:1rem}}.checkbox-field{margin:.25rem 0}.checkbox-label{display:flex;flex-direction:column;gap:.25rem;cursor:pointer;padding:.75rem 0;background:transparent;border:none;border-radius:0;transition:all .2s ease}.checkbox-label:hover{background:#667eea05}.checkbox-label .checkbox-input{width:1rem;height:1rem;accent-color:#667eea;border-radius:3px;margin-bottom:.125rem}.checkbox-label .checkbox-text{font-weight:600;color:#374151;font-size:.875rem}.checkbox-label .checkbox-description{font-size:.75rem;color:#6b7280;margin-top:.125rem}.alert{display:flex;align-items:center;gap:.5rem;padding:.75rem 0;margin:1rem 0;border-radius:0;font-weight:500;font-size:.875rem;border-left:3px solid}.alert .alert-icon{width:1rem;height:1rem;flex-shrink:0}.alert.alert-success{background:#dcfce74d;border-left-color:#22c55e;color:#166534}.alert.alert-error{background:#fef2f24d;border-left-color:#ef4444;color:#dc2626}.form-actions{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 0;background:#fff;border-top:1px solid #e5e7eb;margin-top:2rem;position:sticky;bottom:0}@media (max-width: 640px){.form-actions{flex-direction:column-reverse}}cide-ele-input,cide-ele-select,cide-ele-textarea,cide-ele-json-editor{transition:all .2s ease}@media (max-width: 768px){.page-form-container{padding:.75rem}.form-header{padding:1rem 0}.form-header .form-title{font-size:1.25rem}.form-header .form-subtitle{font-size:.875rem}.form-section{padding:1rem 0}.form-actions{padding:1rem 0;margin-top:1.5rem}}@media (max-width: 480px){.page-form-container{padding:.25rem}.form-header,.form-section{padding:.75rem 0}.form-actions{padding:.75rem 0;margin-top:1rem}}\n"] }]
|
|
211
|
+
}], ctorParameters: () => [] });
|
|
212
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS1mb3JtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1jb3JlL3NyYy9saWIvY29yZS9wYWdlLW1hbmFnZW1lbnQvY29tcG9uZW50cy9wYWdlLWZvcm0vcGFnZS1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1jb3JlL3NyYy9saWIvY29yZS9wYWdlLW1hbmFnZW1lbnQvY29tcG9uZW50cy9wYWdlLWZvcm0vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQVUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsVUFBVSxFQUFFLG1CQUFtQixFQUFFLHNCQUFzQixFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFFaEUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUFFLHFCQUFxQixFQUFFLGlCQUFpQixFQUFFLHlCQUF5QixFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDck0sT0FBTyxFQUE4Qyx3QkFBd0IsRUFBZ0YsTUFBTSxxQkFBcUIsQ0FBQzs7O0FB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R0FBRyxDQUFDLEVBQUU7WUFDaEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdkMsT0FBTyxFQUFFLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0E5TVUsaUJBQWlCO2tHQUFqQixpQkFBaUIsK0VDN0I5QixtZ0hBd0dBLDBsSER6RkksWUFBWSw4QkFDWixtQkFBbUIsNHJCQUNuQixXQUFXLCtCQUNYLHNCQUFzQixrWEFDdEIsa0JBQWtCLDBiQUVsQixxQkFBcUIsMFVBR3JCLDBCQUEwQjs7MkZBS2pCLGlCQUFpQjtrQkFsQjdCLFNBQVM7K0JBQ0UscUJBQXFCLGNBQ25CLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxzQkFBc0I7d0JBQ3RCLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixxQkFBcUI7d0JBQ3JCLGlCQUFpQjt3QkFDakIseUJBQXlCO3dCQUN6QiwwQkFBMEI7cUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBzaWduYWwsIGNvbXB1dGVkLCBpbmplY3QsIE9uSW5pdCwgRGVzdHJveVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFZhbGlkYXRvcnMsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IFBhZ2VNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BhZ2UtbWFuYWdlbWVudC5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFN0YXRlSGVscGVyU2VydmljZSB9IGZyb20gJ2Nsb3VkLWlkZS1sYXlvdXQnO1xuaW1wb3J0IHsgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudCwgQ2lkZUlucHV0Q29tcG9uZW50LCBDaWRlU2VsZWN0Q29tcG9uZW50LCBDaWRlVGV4dGFyZWFDb21wb25lbnQsIENpZGVJY29uQ29tcG9uZW50LCBDaWRlRWxlRmlsZUlucHV0Q29tcG9uZW50LCBDaWRlRWxlSnNvbkVkaXRvckNvbXBvbmVudCB9IGZyb20gJ2Nsb3VkLWlkZS1lbGVtZW50JztcbmltcG9ydCB7IElDb3JlU3lwZywgTVN5c3RlbVBhZ2VzSW5zZXJ0VXBkYXRlUGF5bG9hZCwgZ2VuZXJhdGVPYmplY3RGcm9tU3RyaW5nLCBzeXN0ZW1QYWdlc0J5SWRDb250cm9sbGVyUmVzcG9uc2UsIHN5c3RlbVBhZ2VzSW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlIH0gZnJvbSAnY2xvdWQtaWRlLWxtcy1tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NpZGUtY29yZS1wYWdlLWZvcm0nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgQ2lkZUVsZUJ1dHRvbkNvbXBvbmVudCxcbiAgICBDaWRlSW5wdXRDb21wb25lbnQsXG4gICAgQ2lkZVNlbGVjdENvbXBvbmVudCxcbiAgICBDaWRlVGV4dGFyZWFDb21wb25lbnQsXG4gICAgQ2lkZUljb25Db21wb25lbnQsXG4gICAgQ2lkZUVsZUZpbGVJbnB1dENvbXBvbmVudCxcbiAgICBDaWRlRWxlSnNvbkVkaXRvckNvbXBvbmVudFxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcGFnZS1mb3JtLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFnZUZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG4gIHByaXZhdGUgcGFnZVNlcnZpY2UgPSBpbmplY3QoUGFnZU1hbmFnZW1lbnRTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBhcHBTdGF0ZSA9IGluamVjdChBcHBTdGF0ZUhlbHBlclNlcnZpY2UpO1xuICBwcml2YXRlIGZiID0gaW5qZWN0KE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIpO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIHJvdXRlID0gaW5qZWN0KEFjdGl2YXRlZFJvdXRlKTtcblxuICBsb2FkaW5nID0gc2lnbmFsKGZhbHNlKTtcbiAgZXJyb3IgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIHN1Y2Nlc3MgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG5cbiAgLy8gUGFnZSBpbmZvcm1hdGlvblxuICBwYWdlSWQgPSBzaWduYWw8c3RyaW5nIHwgbnVsbD4obnVsbCk7XG4gIGlzRWRpdE1vZGUgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHBhZ2VGb3JtID0gdGhpcy5mYi5ncm91cCh7XG4gICAgc3lwZ190aXRsZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMTAwKV1dLFxuICAgIHN5cGdfZGVzYzogWycnLCBbVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjU1KV1dLFxuICAgIHN5cGdfcGFnZV9jb2RlOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg0MCksIFZhbGlkYXRvcnMucGF0dGVybigvXlthLXpBLVowLTlfXSskLyldXSxcbiAgICBzeXBnX2NvbmZpZ3VyYXRpb246IFsne30nLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgIHN5cGdfaXNhY3RpdmU6IFt0cnVlXVxuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNldHVwRm9ybVN1YnNjcmlwdGlvbnMoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIC8vIENoZWNrIGZvciBwYWdlIElEIGluIHF1ZXJ5IHBhcmFtZXRlcnNcbiAgICB0aGlzLmNoZWNrRm9yUGFnZUlkKCk7XG4gIH1cblxuXG5cbiAgLy8gQ2hlY2sgZm9yIHBhZ2UgSUQgaW4gcXVlcnkgcGFyYW1ldGVyc1xuICBwcml2YXRlIGNoZWNrRm9yUGFnZUlkKCkge1xuICAgIGNvbnNvbGUubG9nKCfwn5SNIENoZWNraW5nIGZvciBwYWdlIElEIGluIHF1ZXJ5IHBhcmFtZXRlcnMnLCB0aGlzLnJvdXRlLnBhcmFtcyk7XG4gICAgdGhpcy5yb3V0ZS5wYXJhbXMucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSkuc3Vic2NyaWJlKHBhcmFtcyA9PiB7XG4gICAgICBjb25zb2xlLmxvZygn8J+UjSBRdWVyeSBwYXJhbXM6JywgcGFyYW1zKTtcbiAgICAgIC8vIENoZWNrIGZvciBwYWdlSWQsIGlkLCBvciBwYWdlIHBhcmFtZXRlclxuICAgICAgY29uc3QgcXVlcnlQYXJhbXMgPSBwYXJhbXNbJ3F1ZXJ5J107XG4gICAgICBjb25zdCBxdWVyeURhdGEgPSBnZW5lcmF0ZU9iamVjdEZyb21TdHJpbmcocXVlcnlQYXJhbXMpO1xuXG4gICAgICAvLyBJZiBwYWdlSWQgaXMgYW4gb2JqZWN0IHN0cmluZyAoZnJvbSBnZW5lcmF0ZVN0cmluZ0Zyb21PYmplY3QpLCB0cnkgdG8gcGFyc2UgaXRcbiAgICAgIGNvbnN0IHBhZ2VJZCA9IHF1ZXJ5RGF0YS5zeXBnX2lkO1xuICAgICAgaWYgKHBhZ2VJZCkge1xuICAgICAgICBjb25zb2xlLmxvZygn8J+UjSBQYWdlIElEIGZvdW5kIGluIHF1ZXJ5IHBhcmFtczonLCBwYWdlSWQpO1xuICAgICAgICB0aGlzLnBhZ2VJZC5zZXQocGFnZUlkKTtcbiAgICAgICAgdGhpcy5pc0VkaXRNb2RlLnNldCh0cnVlKTtcbiAgICAgICAgdGhpcy5sb2FkUGFnZURhdGEocGFnZUlkKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnNvbGUubG9nKCfwn4aVIE5vIHBhZ2UgSUQgZm91bmQgLSBjcmVhdGluZyBuZXcgcGFnZScpO1xuICAgICAgICB0aGlzLmlzRWRpdE1vZGUuc2V0KGZhbHNlKTtcbiAgICAgICAgdGhpcy5wYWdlSWQuc2V0KG51bGwpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLy8gTG9hZCBwYWdlIGRhdGEgZm9yIGVkaXRpbmdcbiAgcHJpdmF0ZSBsb2FkUGFnZURhdGEocGFnZUlkOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRpbmcuc2V0KHRydWUpO1xuICAgIHRoaXMuZXJyb3Iuc2V0KG51bGwpO1xuXG4gICAgY29uc29sZS5sb2coJ/Cfk6UgTG9hZGluZyBwYWdlIGRhdGEgZm9yIElEOicsIHBhZ2VJZCk7XG5cbiAgICB0aGlzLnBhZ2VTZXJ2aWNlLmdldFBhZ2VCeUlkKHBhZ2VJZCkucGlwZShcbiAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgKS5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKHJlc3BvbnNlOiBzeXN0ZW1QYWdlc0J5SWRDb250cm9sbGVyUmVzcG9uc2UpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coJ+KchSBQYWdlIGRhdGEgbG9hZGVkOicsIHJlc3BvbnNlKTtcbiAgICAgICAgXG4gICAgICAgIGlmIChyZXNwb25zZT8uc3VjY2VzcyAmJiByZXNwb25zZT8uZGF0YSkge1xuICAgICAgICAgIGNvbnN0IHBhZ2VEYXRhID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgICAgICBpZiAocGFnZURhdGEpIHtcbiAgICAgICAgICAgIHRoaXMucG9wdWxhdGVGb3JtV2l0aFBhZ2VEYXRhKHBhZ2VEYXRhKTtcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5zZXQoJ1BhZ2UgZGF0YSBsb2FkZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KCdQYWdlIGRhdGEgbm90IGZvdW5kJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgUGFnZSBkYXRhIG5vdCBmb3VuZCBpbiByZXNwb25zZTonLCByZXNwb25zZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KCdGYWlsZWQgdG8gbG9hZCBwYWdlIGRhdGEnKTtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgUGFnZSBkYXRhIHJlc3BvbnNlIGludmFsaWQ6JywgcmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoJ+KdjCBGYWlsZWQgdG8gbG9hZCBwYWdlIGRhdGE6JywgZXJyKTtcbiAgICAgICAgXG4gICAgICAgIGxldCBlcnJvck1lc3NhZ2UgPSAnRmFpbGVkIHRvIGxvYWQgcGFnZSBkYXRhLic7XG4gICAgICAgIFxuICAgICAgICBpZiAoZXJyPy5lcnJvcj8ubWVzc2FnZSkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5lcnJvci5tZXNzYWdlO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8ubWVzc2FnZSkge1xuICAgICAgICAgIGVycm9yTWVzc2FnZSA9IGVyci5tZXNzYWdlO1xuICAgICAgICB9IGVsc2UgaWYgKGVycj8uc3RhdHVzID09PSA0MDQpIHtcbiAgICAgICAgICBlcnJvck1lc3NhZ2UgPSAnUGFnZSBub3QgZm91bmQuJztcbiAgICAgICAgfSBlbHNlIGlmIChlcnI/LnN0YXR1cyA9PT0gNTAwKSB7XG4gICAgICAgICAgZXJyb3JNZXNzYWdlID0gJ1NlcnZlciBlcnJvci4gUGxlYXNlIHRyeSBhZ2FpbiBsYXRlci4nO1xuICAgICAgICB9XG4gICAgICAgIFxuICAgICAgICB0aGlzLmVycm9yLnNldChlcnJvck1lc3NhZ2UpO1xuICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGZhbHNlKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8vIFBvcHVsYXRlIGZvcm0gd2l0aCBwYWdlIGRhdGFcbiAgcHJpdmF0ZSBwb3B1bGF0ZUZvcm1XaXRoUGFnZURhdGEocGFnZURhdGE6IElDb3JlU3lwZykge1xuICAgIHRyeSB7XG4gICAgICBjb25zb2xlLmxvZygn8J+TnSBQb3B1bGF0aW5nIGZvcm0gd2l0aCBwYWdlIGRhdGE6JywgcGFnZURhdGEpO1xuXG4gICAgICBjb25zdCBmb3JtRGF0YSA9IHtcbiAgICAgICAgc3lwZ190aXRsZTogcGFnZURhdGEuc3lwZ190aXRsZSB8fCAnJyxcbiAgICAgICAgc3lwZ19kZXNjOiBwYWdlRGF0YS5zeXBnX2Rlc2MgfHwgJycsXG4gICAgICAgIHN5cGdfcGFnZV9jb2RlOiBwYWdlRGF0YS5zeXBnX3BhZ2VfY29kZSB8fCAnJyxcbiAgICAgICAgc3lwZ19jb25maWd1cmF0aW9uOiBwYWdlRGF0YS5zeXBnX2NvbmZpZ3VyYXRpb24gPyBKU09OLnN0cmluZ2lmeShwYWdlRGF0YS5zeXBnX2NvbmZpZ3VyYXRpb24pIDogJ3t9JyxcbiAgICAgICAgc3lwZ19pc2FjdGl2ZTogcGFnZURhdGEuc3lwZ19pc2FjdGl2ZSAhPT0gdW5kZWZpbmVkID8gcGFnZURhdGEuc3lwZ19pc2FjdGl2ZSA6IHRydWVcbiAgICAgIH07XG5cbiAgICAgIC8vIFBhdGNoIHRoZSBmb3JtIHdpdGggdGhlIHBhZ2UgZGF0YVxuICAgICAgdGhpcy5wYWdlRm9ybS5wYXRjaFZhbHVlKGZvcm1EYXRhLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG5cbiAgICAgIGNvbnNvbGUubG9nKCfinIUgRm9ybSBwb3B1bGF0ZWQgc3VjY2Vzc2Z1bGx5Jyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ/CfkqUgRXJyb3IgcG9wdWxhdGluZyBmb3JtIHdpdGggcGFnZSBkYXRhOicsIGVycm9yKTtcbiAgICAgIHRoaXMuZXJyb3Iuc2V0KCdFcnJvciBsb2FkaW5nIHBhZ2UgZGF0YSBpbnRvIGZvcm0nKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldHVwRm9ybVN1YnNjcmlwdGlvbnMoKTogdm9pZCB7XG4gICAgLy8gV2F0Y2ggZm9yIGZvcm0gY2hhbmdlcyB0byBlbmFibGUvZGlzYWJsZSBzYXZlIGJ1dHRvblxuICAgIHRoaXMucGFnZUZvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAvLyBGb3JtIHZhbGlkYXRpb24gaXMgaGFuZGxlZCBieSBjb21wdXRlZCBzaWduYWxzXG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIENvbXB1dGVkIHZhbHVlc1xuXG4gIGlzRm9ybURpcnR5ID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYWdlRm9ybS5kaXJ0eSk7XG5cbiAgLy8gRm9ybSBzdWJtaXNzaW9uXG4gIHNhdmVQYWdlKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wYWdlRm9ybS52YWxpZCkge1xuICAgICAgdGhpcy5tYXJrRm9ybUFzVG91Y2hlZCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMucGFnZUZvcm0uZ2V0UmF3VmFsdWUoKTtcbiAgICBcbiAgICBjb25zdCBwYWdlRGF0YTogTVN5c3RlbVBhZ2VzSW5zZXJ0VXBkYXRlUGF5bG9hZCA9IHtcbiAgICAgIF9pZDogdGhpcy5wYWdlSWQoKSB8fCAnJyxcbiAgICAgIHN5cGdfdGl0bGU6IGZvcm1WYWx1ZS5zeXBnX3RpdGxlLFxuICAgICAgc3lwZ19kZXNjOiBmb3JtVmFsdWUuc3lwZ19kZXNjLFxuICAgICAgc3lwZ19wYWdlX2NvZGU6IGZvcm1WYWx1ZS5zeXBnX3BhZ2VfY29kZSxcbiAgICAgIHN5cGdfY29uZmlndXJhdGlvbjogZm9ybVZhbHVlLnN5cGdfY29uZmlndXJhdGlvbixcbiAgICAgIHN5cGdfaXNhY3RpdmU6IGZvcm1WYWx1ZS5zeXBnX2lzYWN0aXZlXG4gICAgfTtcblxuICAgIHRoaXMubG9hZGluZy5zZXQodHJ1ZSk7XG4gICAgdGhpcy5lcnJvci5zZXQobnVsbCk7XG5cbiAgICAgICAgdGhpcy5wYWdlU2VydmljZS5jcmVhdGVPclVwZGF0ZVBhZ2UocGFnZURhdGEpXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95UmVmKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAocmVzcG9uc2U6IHN5c3RlbVBhZ2VzSW5zZXJ0VXBkYXRlQ29udHJvbGxlclJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgaWYgKHJlc3BvbnNlLnN1Y2Nlc3MpIHtcbiAgICAgICAgICAgIHRoaXMuc3VjY2Vzcy5zZXQodGhpcy5pc0VkaXRNb2RlKCkgPyAnUGFnZSB1cGRhdGVkIHN1Y2Nlc3NmdWxseScgOiAnUGFnZSBjcmVhdGVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgY29uc29sZS5sb2coJ+KchSBQYWdlIHNhdmVkIHN1Y2Nlc3NmdWxseScpO1xuICAgICAgICAgICAgLy8gTmF2aWdhdGUgYmFjayB0byBwYWdlIGxpc3QgYWZ0ZXIgYSBzaG9ydCBkZWxheVxuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2NvbnRyb2wtcGFuZWwvcGFnZSddKTtcbiAgICAgICAgICAgIH0sIDE1MDApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVycm9yLnNldChyZXNwb25zZS5tZXNzYWdlIHx8ICdGYWlsZWQgdG8gc2F2ZSBwYWdlJyk7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgRmFpbGVkIHRvIHNhdmUgcGFnZTonLCByZXNwb25zZS5tZXNzYWdlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sb2FkaW5nLnNldChmYWxzZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgICBjb25zb2xlLmVycm9yKCfinYwgRXJyb3Igc2F2aW5nIHBhZ2U6JywgZXJyb3IpO1xuICAgICAgICAgIHRoaXMuZXJyb3Iuc2V0KCdGYWlsZWQgdG8gc2F2ZSBwYWdlLiBQbGVhc2UgdHJ5IGFnYWluLicpO1xuICAgICAgICAgIHRoaXMubG9hZGluZy5zZXQoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIC8vIENhbmNlbCBmb3JtXG4gIGNhbmNlbEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoWycvY29udHJvbC1wYW5lbC9wYWdlJ10pO1xuICB9XG5cbiAgLy8gR28gYmFjayB0byBwYWdlIGxpc3RcbiAgZ29CYWNrKCk6IHZvaWQge1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFsnL2NvbnRyb2wtcGFuZWwvcGFnZSddKTtcbiAgfVxuXG4gIC8vIE1hcmsgZm9ybSBhcyB0b3VjaGVkIHRvIHRyaWdnZXIgdmFsaWRhdGlvbiBkaXNwbGF5XG4gIHByaXZhdGUgbWFya0Zvcm1Bc1RvdWNoZWQoKTogdm9pZCB7XG4gICAgT2JqZWN0LmtleXModGhpcy5wYWdlRm9ybS5jb250cm9scykuZm9yRWFjaChrZXkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IHRoaXMucGFnZUZvcm0uZ2V0KGtleSk7XG4gICAgICBjb250cm9sPy5tYXJrQXNUb3VjaGVkKCk7XG4gICAgfSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJwYWdlLWZvcm0tZnVsbHNjcmVlblwiPlxuICA8ZGl2IGNsYXNzPVwicGFnZS1mb3JtLWNvbnRhaW5lclwiPlxuICAgIDxmb3JtIGNsYXNzPVwicGFnZS1mb3JtXCIgW2Zvcm1Hcm91cF09XCJwYWdlRm9ybVwiIFtjbGFzcy5sb2FkaW5nXT1cImxvYWRpbmcoKVwiIChuZ1N1Ym1pdCk9XCJzYXZlUGFnZSgpXCI+XG4gICAgICBcbiAgICAgIDwhLS0gSGVhZGVyIFNlY3Rpb24gLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1oZWFkZXJcIj5cbiAgICAgICAgPGgyIGNsYXNzPVwiZm9ybS10aXRsZVwiPnt7IGlzRWRpdE1vZGUoKSA/ICdFZGl0IFBhZ2UnIDogJ0NyZWF0ZSBQYWdlJyB9fTwvaDI+XG4gICAgICAgIDxwIGNsYXNzPVwiZm9ybS1zdWJ0aXRsZVwiPlxuICAgICAgICAgIHt7IGlzRWRpdE1vZGUoKSA/ICdVcGRhdGUgcGFnZSBpbmZvcm1hdGlvbiBhbmQgY29uZmlndXJhdGlvbicgOiAnQ3JlYXRlIGEgbmV3IHBhZ2Ugd2l0aCBjb25maWd1cmF0aW9uJyB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBTdWNjZXNzIGFuZCBFcnJvciBNZXNzYWdlcyAtLT5cbiAgICAgIEBpZiAoc3VjY2VzcygpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1zdWNjZXNzXCI+XG4gICAgICAgICAgPHN2ZyBjbGFzcz1cImFsZXJ0LWljb25cIiBmaWxsPVwibm9uZVwiIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiIHZpZXdCb3g9XCIwIDAgMjQgMjRcIj5cbiAgICAgICAgICAgIDxwYXRoIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIHN0cm9rZS13aWR0aD1cIjJcIiBkPVwiTTUgMTNsNCA0TDE5IDdcIj48L3BhdGg+XG4gICAgICAgICAgPC9zdmc+XG4gICAgICAgICAge3sgc3VjY2VzcygpIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmIChlcnJvcigpKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhbGVydCBhbGVydC1lcnJvclwiPlxuICAgICAgICAgIDxzdmcgY2xhc3M9XCJhbGVydC1pY29uXCIgZmlsbD1cIm5vbmVcIiBzdHJva2U9XCJjdXJyZW50Q29sb3JcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCI+XG4gICAgICAgICAgICA8cGF0aCBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiBzdHJva2Utd2lkdGg9XCIyXCIgZD1cIk02IDE4TDE4IDZNNiA2bDEyIDEyXCI+PC9wYXRoPlxuICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgIHt7IGVycm9yKCkgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICAgIDwhLS0gRm9ybSBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZvcm0tc2VjdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLTIgZ2FwLW1kIGxnLWdyaWQtMiBtZC1ncmlkLTFcIj5cbiAgICAgICAgICA8Y2lkZS1lbGUtaW5wdXQgXG4gICAgICAgICAgICBpZD1cInN5cGdfdGl0bGVcIlxuICAgICAgICAgICAgbGFiZWw9XCJQYWdlIFRpdGxlICpcIiBcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN5cGdfdGl0bGVcIlxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJFbnRlciBwYWdlIHRpdGxlXCJcbiAgICAgICAgICAgIHNpemU9XCJtZFwiPlxuICAgICAgICAgIDwvY2lkZS1lbGUtaW5wdXQ+XG4gICAgICAgICAgXG4gICAgICAgICAgPGNpZGUtZWxlLWlucHV0IFxuICAgICAgICAgICAgaWQ9XCJzeXBnX3BhZ2VfY29kZVwiXG4gICAgICAgICAgICBsYWJlbD1cIlBhZ2UgQ29kZSAqXCIgXG4gICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzeXBnX3BhZ2VfY29kZVwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHBhZ2UgY29kZSAoYWxwaGFudW1lcmljIGFuZCB1bmRlcnNjb3JlIG9ubHkpXCJcbiAgICAgICAgICAgIHNpemU9XCJtZFwiPlxuICAgICAgICAgIDwvY2lkZS1lbGUtaW5wdXQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtMSBnYXAtbWRcIj5cbiAgICAgICAgICA8Y2lkZS1lbGUtdGV4dGFyZWEgXG4gICAgICAgICAgICBpZD1cInN5cGdfZGVzY1wiXG4gICAgICAgICAgICBsYWJlbD1cIlBhZ2UgRGVzY3JpcHRpb25cIiBcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN5cGdfZGVzY1wiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkVudGVyIHBhZ2UgZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgW3Jvd3NdPVwiM1wiXG4gICAgICAgICAgICBzaXplPVwibWRcIj5cbiAgICAgICAgICA8L2NpZGUtZWxlLXRleHRhcmVhPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZ3JpZCBncmlkLTEgZ2FwLW1kXCI+XG4gICAgICAgICAgPGNpZGUtZWxlLWpzb24tZWRpdG9yXG4gICAgICAgICAgICBpZD1cInN5cGdfY29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICBsYWJlbD1cIkNvbmZpZ3VyYXRpb24gSlNPTiAqXCJcbiAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInN5cGdfY29uZmlndXJhdGlvblwiXG4gICAgICAgICAgICBwbGFjZWhvbGRlcj0ne1wia2V5XCI6IFwidmFsdWVcIn0nPlxuICAgICAgICAgIDwvY2lkZS1lbGUtanNvbi1lZGl0b3I+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtMSBnYXAtc21cIj5cbiAgICAgICAgICA8Y2lkZS1lbGUtaW5wdXRcbiAgICAgICAgICAgIGlkPVwic3lwZ19pc2FjdGl2ZVwiXG4gICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxuICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic3lwZ19pc2FjdGl2ZVwiXG4gICAgICAgICAgICBsYWJlbD1cIkFjdGl2ZSBTdGF0dXNcIlxuICAgICAgICAgICAgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgPC9jaWRlLWVsZS1pbnB1dD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBGb3JtIEFjdGlvbnMgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1hY3Rpb25zXCI+XG4gICAgICAgIDxidXR0b24gY2lkZUVsZUJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIiBcbiAgICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCIgXG4gICAgICAgICAgKGNsaWNrKT1cImNhbmNlbEZvcm0oKVwiIFxuICAgICAgICAgIGxlZnRJY29uPVwiY2xvc2VcIlxuICAgICAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nKClcIj5cbiAgICAgICAgICBDYW5jZWxcbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIFxuICAgICAgICA8YnV0dG9uIGNpZGVFbGVCdXR0b25cbiAgICAgICAgICB0eXBlPVwic3VibWl0XCIgXG4gICAgICAgICAgdmFyaWFudD1cInByaW1hcnlcIiBcbiAgICAgICAgICBbZGlzYWJsZWRdPVwibG9hZGluZygpIHx8ICFwYWdlRm9ybS52YWxpZFwiXG4gICAgICAgICAgW2xvYWRpbmddPVwibG9hZGluZygpXCJcbiAgICAgICAgICBsZWZ0SWNvbj1cInNhdmVcIj5cbiAgICAgICAgICB7eyBpc0VkaXRNb2RlKCkgPyAnVXBkYXRlIFBhZ2UnIDogJ0NyZWF0ZSBQYWdlJyB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZm9ybT5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
/*
|
|
2
2
|
* Public API Surface of cloud-ide-core
|
|
3
3
|
*/
|
|
4
|
+
export * from './lib/cloud-ide-core.routes';
|
|
4
5
|
export * from './lib/cloud-ide-core.service';
|
|
5
6
|
export * from './lib/cloud-ide-core.component';
|
|
6
7
|
// Menu Management Module
|
|
@@ -13,4 +14,4 @@ export * from './lib/core/designation-management';
|
|
|
13
14
|
export * from './lib/core/grade-level-management';
|
|
14
15
|
// Page Management Components
|
|
15
16
|
export * from './lib/core/page-management';
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2Nsb3VkLWlkZS1jb3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsZ0NBQWdDLENBQUM7QUFFL0MseUJBQXlCO0FBQ3pCLGNBQWMsNEJBQTRCLENBQUM7QUFFM0MsK0JBQStCO0FBQy9CLGNBQWMsa0NBQWtDLENBQUM7QUFFakQsZ0NBQWdDO0FBQ2hDLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsZ0NBQWdDO0FBQ2hDLGNBQWMsbUNBQW1DLENBQUM7QUFFbEQsNkJBQTZCO0FBQzdCLGNBQWMsNEJBQTRCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGNsb3VkLWlkZS1jb3JlXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkLWlkZS1jb3JlLnJvdXRlcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbG91ZC1pZGUtY29yZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2Nsb3VkLWlkZS1jb3JlLmNvbXBvbmVudCc7XG5cbi8vIE1lbnUgTWFuYWdlbWVudCBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvbWVudS1tYW5hZ2VtZW50JztcblxuLy8gRGVwYXJ0bWVudCBNYW5hZ2VtZW50IE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9kZXBhcnRtZW50LW1hbmFnZW1lbnQnO1xuXG4vLyBEZXNpZ25hdGlvbiBNYW5hZ2VtZW50IE1vZHVsZVxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29yZS9kZXNpZ25hdGlvbi1tYW5hZ2VtZW50JztcblxuLy8gR3JhZGUgTGV2ZWwgTWFuYWdlbWVudCBNb2R1bGVcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvcmUvZ3JhZGUtbGV2ZWwtbWFuYWdlbWVudCc7XG5cbi8vIFBhZ2UgTWFuYWdlbWVudCBDb21wb25lbnRzXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb3JlL3BhZ2UtbWFuYWdlbWVudCc7XG4iXX0=
|