@decaf-ts/for-angular 0.0.24 → 0.0.26
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/fesm2022/decaf-ts-for-angular.mjs +1512 -1517
- package/fesm2022/decaf-ts-for-angular.mjs.map +1 -1
- package/index.d.ts +7470 -3
- package/package.json +14 -17
- package/components/component-renderer/component-renderer.component.d.ts +0 -278
- package/components/crud-field/crud-field.component.d.ts +0 -611
- package/components/crud-form/constants.d.ts +0 -5
- package/components/crud-form/crud-form.component.d.ts +0 -288
- package/components/crud-form/types.d.ts +0 -17
- package/components/empty-state/empty-state.component.d.ts +0 -300
- package/components/fieldset/fieldset.component.d.ts +0 -555
- package/components/filter/filter.component.d.ts +0 -514
- package/components/for-angular-components.module.d.ts +0 -20
- package/components/index.d.ts +0 -16
- package/components/layout/layout.component.d.ts +0 -110
- package/components/list/list.component.d.ts +0 -848
- package/components/list-item/list-item.component.d.ts +0 -390
- package/components/model-renderer/model-renderer.component.d.ts +0 -97
- package/components/pagination/constants.d.ts +0 -7
- package/components/pagination/pagination.component.d.ts +0 -264
- package/components/searchbar/searchbar.component.d.ts +0 -407
- package/components/steped-form/steped-form.component.d.ts +0 -243
- package/directives/collapsable.directive.d.ts +0 -9
- package/directives/index.d.ts +0 -1
- package/engine/DynamicModule.d.ts +0 -17
- package/engine/NgxBaseComponent.d.ts +0 -541
- package/engine/NgxCrudFormField.d.ts +0 -123
- package/engine/NgxFormService.d.ts +0 -601
- package/engine/NgxRenderingEngine.d.ts +0 -282
- package/engine/ValidatorFactory.d.ts +0 -15
- package/engine/constants.d.ts +0 -168
- package/engine/decorators.d.ts +0 -25
- package/engine/index.d.ts +0 -18
- package/engine/interfaces.d.ts +0 -271
- package/engine/types.d.ts +0 -200
- package/esm2022/components/component-renderer/component-renderer.component.mjs +0 -321
- package/esm2022/components/crud-field/crud-field.component.mjs +0 -518
- package/esm2022/components/crud-form/constants.mjs +0 -14
- package/esm2022/components/crud-form/crud-form.component.mjs +0 -259
- package/esm2022/components/crud-form/types.mjs +0 -2
- package/esm2022/components/empty-state/empty-state.component.mjs +0 -345
- package/esm2022/components/fieldset/fieldset.component.mjs +0 -677
- package/esm2022/components/filter/filter.component.mjs +0 -700
- package/esm2022/components/for-angular-components.module.mjs +0 -84
- package/esm2022/components/index.mjs +0 -20
- package/esm2022/components/layout/layout.component.mjs +0 -150
- package/esm2022/components/list/list.component.mjs +0 -1238
- package/esm2022/components/list-item/list-item.component.mjs +0 -405
- package/esm2022/components/model-renderer/model-renderer.component.mjs +0 -144
- package/esm2022/components/pagination/constants.mjs +0 -2
- package/esm2022/components/pagination/pagination.component.mjs +0 -321
- package/esm2022/components/searchbar/searchbar.component.mjs +0 -491
- package/esm2022/components/steped-form/steped-form.component.mjs +0 -291
- package/esm2022/decaf-ts-for-angular.mjs +0 -5
- package/esm2022/directives/collapsable.directive.mjs +0 -29
- package/esm2022/directives/index.mjs +0 -2
- package/esm2022/engine/DynamicModule.mjs +0 -18
- package/esm2022/engine/NgxBaseComponent.mjs +0 -541
- package/esm2022/engine/NgxCrudFormField.mjs +0 -137
- package/esm2022/engine/NgxFormService.mjs +0 -917
- package/esm2022/engine/NgxRenderingEngine.mjs +0 -376
- package/esm2022/engine/ValidatorFactory.mjs +0 -106
- package/esm2022/engine/constants.mjs +0 -170
- package/esm2022/engine/decorators.mjs +0 -38
- package/esm2022/engine/index.mjs +0 -19
- package/esm2022/engine/interfaces.mjs +0 -4
- package/esm2022/engine/types.mjs +0 -2
- package/esm2022/for-angular-common.module.mjs +0 -84
- package/esm2022/helpers/index.mjs +0 -13
- package/esm2022/helpers/utils.mjs +0 -436
- package/esm2022/i18n/Loader.mjs +0 -86
- package/esm2022/i18n/data/en.json +0 -80
- package/esm2022/public-apis.mjs +0 -15
- package/for-angular-common.module.d.ts +0 -50
- package/helpers/index.d.ts +0 -12
- package/helpers/utils.d.ts +0 -279
- package/i18n/Loader.d.ts +0 -43
- package/public-apis.d.ts +0 -14
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
2
|
-
import { CrudFieldComponent } from './crud-field/crud-field.component';
|
|
3
|
-
import { CrudFormComponent } from './crud-form/crud-form.component';
|
|
4
|
-
import { ModelRendererComponent } from './model-renderer/model-renderer.component';
|
|
5
|
-
import { SearchbarComponent } from './searchbar/searchbar.component';
|
|
6
|
-
import { EmptyStateComponent } from './empty-state/empty-state.component';
|
|
7
|
-
import { ListItemComponent } from './list-item/list-item.component';
|
|
8
|
-
import { ComponentRendererComponent } from './component-renderer/component-renderer.component';
|
|
9
|
-
import { PaginationComponent } from './pagination/pagination.component';
|
|
10
|
-
import { ListComponent } from './list/list.component';
|
|
11
|
-
import { FieldsetComponent } from './fieldset/fieldset.component';
|
|
12
|
-
import { CollapsableDirective } from '../directives/collapsable.directive';
|
|
13
|
-
import { LayoutComponent } from './layout/layout.component';
|
|
14
|
-
import { FilterComponent } from './filter/filter.component';
|
|
15
|
-
import { StepedFormComponent } from './steped-form/steped-form.component';
|
|
16
|
-
import * as i0 from "@angular/core";
|
|
17
|
-
const Directives = [CollapsableDirective];
|
|
18
|
-
const Components = [
|
|
19
|
-
ModelRendererComponent,
|
|
20
|
-
ComponentRendererComponent,
|
|
21
|
-
CrudFieldComponent,
|
|
22
|
-
CrudFormComponent,
|
|
23
|
-
EmptyStateComponent,
|
|
24
|
-
ListComponent,
|
|
25
|
-
ListItemComponent,
|
|
26
|
-
SearchbarComponent,
|
|
27
|
-
PaginationComponent,
|
|
28
|
-
CrudFormComponent,
|
|
29
|
-
FieldsetComponent,
|
|
30
|
-
LayoutComponent,
|
|
31
|
-
FilterComponent,
|
|
32
|
-
StepedFormComponent
|
|
33
|
-
];
|
|
34
|
-
export class ForAngularComponentsModule {
|
|
35
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ForAngularComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
36
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.14", ngImport: i0, type: ForAngularComponentsModule, imports: [ModelRendererComponent,
|
|
37
|
-
ComponentRendererComponent,
|
|
38
|
-
CrudFieldComponent,
|
|
39
|
-
CrudFormComponent,
|
|
40
|
-
EmptyStateComponent,
|
|
41
|
-
ListComponent,
|
|
42
|
-
ListItemComponent,
|
|
43
|
-
SearchbarComponent,
|
|
44
|
-
PaginationComponent,
|
|
45
|
-
CrudFormComponent,
|
|
46
|
-
FieldsetComponent,
|
|
47
|
-
LayoutComponent,
|
|
48
|
-
FilterComponent,
|
|
49
|
-
StepedFormComponent, CollapsableDirective], exports: [ModelRendererComponent,
|
|
50
|
-
ComponentRendererComponent,
|
|
51
|
-
CrudFieldComponent,
|
|
52
|
-
CrudFormComponent,
|
|
53
|
-
EmptyStateComponent,
|
|
54
|
-
ListComponent,
|
|
55
|
-
ListItemComponent,
|
|
56
|
-
SearchbarComponent,
|
|
57
|
-
PaginationComponent,
|
|
58
|
-
CrudFormComponent,
|
|
59
|
-
FieldsetComponent,
|
|
60
|
-
LayoutComponent,
|
|
61
|
-
FilterComponent,
|
|
62
|
-
StepedFormComponent, CollapsableDirective] }); }
|
|
63
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ForAngularComponentsModule, imports: [CrudFieldComponent,
|
|
64
|
-
CrudFormComponent,
|
|
65
|
-
EmptyStateComponent,
|
|
66
|
-
ListComponent,
|
|
67
|
-
ListItemComponent,
|
|
68
|
-
SearchbarComponent,
|
|
69
|
-
PaginationComponent,
|
|
70
|
-
CrudFormComponent,
|
|
71
|
-
FieldsetComponent,
|
|
72
|
-
FilterComponent,
|
|
73
|
-
StepedFormComponent] }); }
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: ForAngularComponentsModule, decorators: [{
|
|
76
|
-
type: NgModule,
|
|
77
|
-
args: [{
|
|
78
|
-
imports: [...Components, ...Directives],
|
|
79
|
-
declarations: [],
|
|
80
|
-
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
81
|
-
exports: [...Components, ...Directives],
|
|
82
|
-
}]
|
|
83
|
-
}] });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9yLWFuZ3VsYXItY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9yLWFuZ3VsYXItY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNqRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN2RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNwRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUMvRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQzs7QUFFMUUsTUFBTSxVQUFVLEdBQUcsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sVUFBVSxHQUFHO0lBQ2pCLHNCQUFzQjtJQUN0QiwwQkFBMEI7SUFDMUIsa0JBQWtCO0lBQ2xCLGlCQUFpQjtJQUNqQixtQkFBbUI7SUFDbkIsYUFBYTtJQUNiLGlCQUFpQjtJQUNqQixrQkFBa0I7SUFDbEIsbUJBQW1CO0lBQ25CLGlCQUFpQjtJQUNqQixpQkFBaUI7SUFDakIsZUFBZTtJQUNmLGVBQWU7SUFDZixtQkFBbUI7Q0FDcEIsQ0FBQztBQVFGLE1BQU0sT0FBTywwQkFBMEI7K0dBQTFCLDBCQUEwQjtnSEFBMUIsMEJBQTBCLFlBdEJyQyxzQkFBc0I7WUFDdEIsMEJBQTBCO1lBQzFCLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixlQUFlO1lBQ2YsbUJBQW1CLEVBZkQsb0JBQW9CLGFBRXRDLHNCQUFzQjtZQUN0QiwwQkFBMEI7WUFDMUIsa0JBQWtCO1lBQ2xCLGlCQUFpQjtZQUNqQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjtZQUNqQixrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGlCQUFpQjtZQUNqQixpQkFBaUI7WUFDakIsZUFBZTtZQUNmLGVBQWU7WUFDZixtQkFBbUIsRUFmRCxvQkFBb0I7Z0hBd0IzQiwwQkFBMEIsWUFwQnJDLGtCQUFrQjtZQUNsQixpQkFBaUI7WUFDakIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixpQkFBaUI7WUFDakIsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixpQkFBaUI7WUFDakIsaUJBQWlCO1lBRWpCLGVBQWU7WUFDZixtQkFBbUI7OzRGQVNSLDBCQUEwQjtrQkFOdEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQztvQkFDdkMsWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLFVBQVUsRUFBRSxHQUFHLFVBQVUsQ0FBQztpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSwgQ1VTVE9NX0VMRU1FTlRTX1NDSEVNQSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ3J1ZEZpZWxkQ29tcG9uZW50IH0gZnJvbSAnLi9jcnVkLWZpZWxkL2NydWQtZmllbGQuY29tcG9uZW50JztcbmltcG9ydCB7IENydWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9jcnVkLWZvcm0vY3J1ZC1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNb2RlbFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9tb2RlbC1yZW5kZXJlci9tb2RlbC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VhcmNoYmFyQ29tcG9uZW50IH0gZnJvbSAnLi9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBFbXB0eVN0YXRlQ29tcG9uZW50IH0gZnJvbSAnLi9lbXB0eS1zdGF0ZS9lbXB0eS1zdGF0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGlzdEl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2xpc3QtaXRlbS9saXN0LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnQtcmVuZGVyZXIvY29tcG9uZW50LXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYWdpbmF0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50JztcbmltcG9ydCB7IExpc3RDb21wb25lbnQgfSBmcm9tICcuL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmllbGRzZXRDb21wb25lbnQgfSBmcm9tICcuL2ZpZWxkc2V0L2ZpZWxkc2V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb2xsYXBzYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvY29sbGFwc2FibGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IExheW91dENvbXBvbmVudCB9IGZyb20gJy4vbGF5b3V0L2xheW91dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdGVwZWRGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9zdGVwZWQtZm9ybS9zdGVwZWQtZm9ybS5jb21wb25lbnQnO1xuXG5jb25zdCBEaXJlY3RpdmVzID0gW0NvbGxhcHNhYmxlRGlyZWN0aXZlXTtcbmNvbnN0IENvbXBvbmVudHMgPSBbXG4gIE1vZGVsUmVuZGVyZXJDb21wb25lbnQsXG4gIENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50LFxuICBDcnVkRmllbGRDb21wb25lbnQsXG4gIENydWRGb3JtQ29tcG9uZW50LFxuICBFbXB0eVN0YXRlQ29tcG9uZW50LFxuICBMaXN0Q29tcG9uZW50LFxuICBMaXN0SXRlbUNvbXBvbmVudCxcbiAgU2VhcmNoYmFyQ29tcG9uZW50LFxuICBQYWdpbmF0aW9uQ29tcG9uZW50LFxuICBDcnVkRm9ybUNvbXBvbmVudCxcbiAgRmllbGRzZXRDb21wb25lbnQsXG4gIExheW91dENvbXBvbmVudCxcbiAgRmlsdGVyQ29tcG9uZW50LFxuICBTdGVwZWRGb3JtQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbLi4uQ29tcG9uZW50cywgLi4uRGlyZWN0aXZlc10sXG4gIGRlY2xhcmF0aW9uczogW10sXG4gIHNjaGVtYXM6IFtDVVNUT01fRUxFTUVOVFNfU0NIRU1BXSxcbiAgZXhwb3J0czogWy4uLkNvbXBvbmVudHMsIC4uLkRpcmVjdGl2ZXNdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JBbmd1bGFyQ29tcG9uZW50c01vZHVsZSB7fVxuIl19
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
// Component exports
|
|
2
|
-
export * from './component-renderer/component-renderer.component';
|
|
3
|
-
export * from './crud-field/crud-field.component';
|
|
4
|
-
export * from './crud-form/crud-form.component';
|
|
5
|
-
export * from './empty-state/empty-state.component';
|
|
6
|
-
export * from './fieldset/fieldset.component';
|
|
7
|
-
export * from './filter/filter.component';
|
|
8
|
-
export * from './layout/layout.component';
|
|
9
|
-
export * from './list/list.component';
|
|
10
|
-
export * from './list-item/list-item.component';
|
|
11
|
-
export * from './model-renderer/model-renderer.component';
|
|
12
|
-
export * from './pagination/pagination.component';
|
|
13
|
-
export * from './searchbar/searchbar.component';
|
|
14
|
-
// Constants exports
|
|
15
|
-
export * from './crud-form/constants';
|
|
16
|
-
export * from './pagination/constants';
|
|
17
|
-
export * from './steped-form/steped-form.component';
|
|
18
|
-
// Module export
|
|
19
|
-
export * from './for-angular-components.module';
|
|
20
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELG9CQUFvQjtBQUNwQixjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsd0JBQXdCLENBQUM7QUFFdkMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxnQkFBZ0I7QUFDaEIsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvbXBvbmVudCBleHBvcnRzXG5leHBvcnQgKiBmcm9tICcuL2NvbXBvbmVudC1yZW5kZXJlci9jb21wb25lbnQtcmVuZGVyZXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vY3J1ZC1maWVsZC9jcnVkLWZpZWxkLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2NydWQtZm9ybS9jcnVkLWZvcm0uY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZW1wdHktc3RhdGUvZW1wdHktc3RhdGUuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmllbGRzZXQvZmllbGRzZXQuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZmlsdGVyL2ZpbHRlci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpc3QvbGlzdC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saXN0LWl0ZW0vbGlzdC1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL21vZGVsLXJlbmRlcmVyL21vZGVsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL3BhZ2luYXRpb24vcGFnaW5hdGlvbi5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9zZWFyY2hiYXIvc2VhcmNoYmFyLmNvbXBvbmVudCc7XG5cbi8vIENvbnN0YW50cyBleHBvcnRzXG5leHBvcnQgKiBmcm9tICcuL2NydWQtZm9ybS9jb25zdGFudHMnO1xuZXhwb3J0ICogZnJvbSAnLi9wYWdpbmF0aW9uL2NvbnN0YW50cyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vc3RlcGVkLWZvcm0vc3RlcGVkLWZvcm0uY29tcG9uZW50Jztcbi8vIE1vZHVsZSBleHBvcnRcbmV4cG9ydCAqIGZyb20gJy4vZm9yLWFuZ3VsYXItY29tcG9uZW50cy5tb2R1bGUnO1xuIl19
|
|
@@ -1,150 +0,0 @@
|
|
|
1
|
-
import { Component, Input } from '@angular/core';
|
|
2
|
-
import { NgxBaseComponent } from '../../engine/NgxBaseComponent';
|
|
3
|
-
import { ComponentRendererComponent } from '../component-renderer/component-renderer.component';
|
|
4
|
-
import { ModelRendererComponent } from '../model-renderer/model-renderer.component';
|
|
5
|
-
import { TranslatePipe } from '@ngx-translate/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* @description Layout component for creating responsive grid layouts in Angular applications.
|
|
9
|
-
* @summary This component provides a flexible grid system that can be configured with dynamic
|
|
10
|
-
* rows and columns. It supports responsive breakpoints and can render child components within
|
|
11
|
-
* the grid structure. The component extends NgxBaseComponent to inherit common functionality
|
|
12
|
-
* and integrates with the model and component renderer systems.
|
|
13
|
-
*
|
|
14
|
-
* @class LayoutComponent
|
|
15
|
-
* @extends {NgxBaseComponent}
|
|
16
|
-
* @implements {OnInit}
|
|
17
|
-
* @memberOf LayoutComponent
|
|
18
|
-
*/
|
|
19
|
-
export class LayoutComponent extends NgxBaseComponent {
|
|
20
|
-
/**
|
|
21
|
-
* @description Creates an instance of LayoutComponent.
|
|
22
|
-
* @summary Initializes a new LayoutComponent with the component name "LayoutComponent".
|
|
23
|
-
* This constructor calls the parent NgxBaseComponent constructor to set up base
|
|
24
|
-
* functionality and component identification.
|
|
25
|
-
*
|
|
26
|
-
* @memberOf LayoutComponent
|
|
27
|
-
*/
|
|
28
|
-
constructor() {
|
|
29
|
-
super("LayoutComponent");
|
|
30
|
-
/**
|
|
31
|
-
* @description Number of columns or array of column definitions for the grid layout.
|
|
32
|
-
* @summary Defines the column structure of the grid. When a number is provided, it creates
|
|
33
|
-
* that many equal-width columns. When an array is provided, each element can define specific
|
|
34
|
-
* column properties or sizing. This allows for flexible grid layouts that can adapt to
|
|
35
|
-
* different content requirements.
|
|
36
|
-
*
|
|
37
|
-
* @type {(number | string[])}
|
|
38
|
-
* @default 1
|
|
39
|
-
* @memberOf LayoutComponent
|
|
40
|
-
*/
|
|
41
|
-
this.cols = 1;
|
|
42
|
-
/**
|
|
43
|
-
* @description Number of rows or array of row definitions for the grid layout.
|
|
44
|
-
* @summary Defines the row structure of the grid. When a number is provided, it creates
|
|
45
|
-
* that many equal-height rows. When an array is provided, each element can define specific
|
|
46
|
-
* row properties or sizing. This provides control over vertical spacing and content organization.
|
|
47
|
-
*
|
|
48
|
-
* @type {(number | string[])}
|
|
49
|
-
* @default 1
|
|
50
|
-
* @memberOf LayoutComponent
|
|
51
|
-
*/
|
|
52
|
-
this.rows = 1;
|
|
53
|
-
/**
|
|
54
|
-
* @description Media breakpoint for responsive behavior.
|
|
55
|
-
* @summary Determines the responsive breakpoint at which the layout should adapt.
|
|
56
|
-
* This affects how the grid behaves on different screen sizes, allowing for
|
|
57
|
-
* mobile-first or desktop-first responsive design patterns. The breakpoint
|
|
58
|
-
* is automatically processed to ensure compatibility with the UI framework.
|
|
59
|
-
*
|
|
60
|
-
* @type {UIMediaBreakPoints}
|
|
61
|
-
* @default 'medium'
|
|
62
|
-
* @memberOf LayoutComponent
|
|
63
|
-
*/
|
|
64
|
-
this.breakpoint = 'medium';
|
|
65
|
-
/**
|
|
66
|
-
* @description Array of child components or data to render within the grid.
|
|
67
|
-
* @summary Contains the child elements that will be distributed across the grid layout.
|
|
68
|
-
* Each item in the array represents content that will be rendered using the appropriate
|
|
69
|
-
* renderer component (ModelRenderer or ComponentRenderer). This allows for mixed content
|
|
70
|
-
* types within a single layout structure.
|
|
71
|
-
*
|
|
72
|
-
* @type {KeyValue[]}
|
|
73
|
-
* @default []
|
|
74
|
-
* @memberOf LayoutComponent
|
|
75
|
-
*/
|
|
76
|
-
this.children = [];
|
|
77
|
-
}
|
|
78
|
-
/**
|
|
79
|
-
* @description Getter that converts columns input to an array format.
|
|
80
|
-
* @summary Transforms the cols input property into a standardized string array format.
|
|
81
|
-
* When cols is a number, it creates an array with that many empty string elements.
|
|
82
|
-
* When cols is already an array, it returns the array as-is. This normalization
|
|
83
|
-
* ensures consistent handling of column definitions in the template.
|
|
84
|
-
*
|
|
85
|
-
* @type {string[]}
|
|
86
|
-
* @readonly
|
|
87
|
-
* @memberOf LayoutComponent
|
|
88
|
-
*/
|
|
89
|
-
get _cols() {
|
|
90
|
-
let cols = this.cols;
|
|
91
|
-
if (typeof cols === "number")
|
|
92
|
-
cols = Array.from({ length: Number(cols) }, () => ``);
|
|
93
|
-
return cols;
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* @description Getter that converts rows input to an array format.
|
|
97
|
-
* @summary Transforms the rows input property into a standardized string array format.
|
|
98
|
-
* When rows is a number, it creates an array with that many empty string elements.
|
|
99
|
-
* When rows is already an array, it returns the array as-is. This normalization
|
|
100
|
-
* ensures consistent handling of row definitions in the template.
|
|
101
|
-
*
|
|
102
|
-
* @type {KeyValue[]}
|
|
103
|
-
* @readonly
|
|
104
|
-
* @memberOf LayoutComponent
|
|
105
|
-
*/
|
|
106
|
-
get _rows() {
|
|
107
|
-
let rows = this.rows;
|
|
108
|
-
if (typeof rows === "number")
|
|
109
|
-
rows = Array.from({ length: Number(rows) }, () => ({ title: '' }));
|
|
110
|
-
return rows.map((row, index) => {
|
|
111
|
-
return {
|
|
112
|
-
title: row?.['title'],
|
|
113
|
-
cols: this.children.filter(child => {
|
|
114
|
-
if (child['row'] === index + 1)
|
|
115
|
-
return child;
|
|
116
|
-
})
|
|
117
|
-
};
|
|
118
|
-
});
|
|
119
|
-
}
|
|
120
|
-
/**
|
|
121
|
-
* @description Angular lifecycle hook that runs after component initialization.
|
|
122
|
-
* @summary Called once, after the first ngOnChanges(). This method triggers the
|
|
123
|
-
* component's initialization process, which includes property parsing and grid
|
|
124
|
-
* setup. It ensures the component is properly configured before rendering.
|
|
125
|
-
*
|
|
126
|
-
* @memberOf LayoutComponent
|
|
127
|
-
*/
|
|
128
|
-
async ngOnInit() {
|
|
129
|
-
await this.initialize();
|
|
130
|
-
this.breakpoint = this.breakpoint.slice(0, 2).toLowerCase();
|
|
131
|
-
this.cols = this._cols;
|
|
132
|
-
this.rows = this._rows;
|
|
133
|
-
this.initialized = true;
|
|
134
|
-
}
|
|
135
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
136
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: LayoutComponent, isStandalone: true, selector: "ngx-decaf-layout", inputs: { cols: "cols", rows: "rows", breakpoint: "breakpoint", children: "children" }, usesInheritance: true, ngImport: i0, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div [id]=\"uid\" class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid ion-card.dcf-height-1-1>ion-card-content{margin-top:2rem}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--dcf-color-dark);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "component", type: ModelRendererComponent, selector: "ngx-decaf-model-renderer", inputs: ["model", "globals", "projectable", "rendererId"], outputs: ["listenEvent"] }, { kind: "component", type: ComponentRendererComponent, selector: "ngx-decaf-component-renderer", inputs: ["tag", "globals", "children", "model", "parent"], outputs: ["listenEvent"] }] }); }
|
|
137
|
-
}
|
|
138
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: LayoutComponent, decorators: [{
|
|
139
|
-
type: Component,
|
|
140
|
-
args: [{ selector: 'ngx-decaf-layout', imports: [TranslatePipe, ModelRendererComponent, ComponentRendererComponent], standalone: true, template: "\n@if(initialized) {\n @for (row of rows; track trackItemFn($index, row); let rowIndex = $index) {\n <div [id]=\"uid\" class=\"dcf-grid dcf-grid-collapse dcf-grid-match\">\n @if(row) {\n <div class=\"dcf-width-1-1 dcf-grid-title\">\n <ion-card class=\"dcf-grid-title\">\n {{row.title | translate}}\n </ion-card>\n </div>\n }\n @for (child of row.cols; track trackItemFn($index, child.col); let colIndex = $index) {\n <div [class]=\"(child.col === cols.length ? 'dcf-width-1-1' : 'dcf-width-'+child.col+'-'+cols.length+'@'+breakpoint)\">\n <div [class]=\"'dcf-grid-child '+child.col \">\n @if(child.tag === 'ngx-decaf-crud-form') {\n <ion-card [class]=\"'dcf-height-1-1 ' + className\">\n <ion-card-content>\n <ngx-decaf-model-renderer\n [model]=\"child.props.name\"\n (listenEvent)=\"handleEvent($event)\"\n />\n </ion-card-content>\n </ion-card>\n } @else {\n <ngx-decaf-component-renderer\n [tag]=\"child.tag\"\n (listenEvent)=\"handleEvent($event)\"\n [globals]=\"{props: child.props}\"\n />\n }\n </div>\n </div>\n }\n </div>\n }\n}\n", styles: [".dcf-grid>div:not(.dcf-grid-title) ::ng-deep ngx-decaf-component-renderer>*>*{height:100%;display:flex;justify-content:center!important;align-items:center!important}.dcf-grid ion-card.dcf-height-1-1>ion-card-content{margin-top:2rem}.dcf-grid.dcf-grid-small .dcf-grid-child{margin-bottom:2rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child{margin-bottom:1.25rem}.dcf-grid.dcf-grid-collapse .dcf-grid-child ion-card{margin-bottom:1.25rem}.dcf-grid-title{font-size:1.05rem!important;background:none;box-shadow:none;margin-bottom:0;padding-bottom:0;font-weight:600;color:var(--dcf-color-dark);display:flex;align-items:center;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}\n"] }]
|
|
141
|
-
}], ctorParameters: () => [], propDecorators: { cols: [{
|
|
142
|
-
type: Input
|
|
143
|
-
}], rows: [{
|
|
144
|
-
type: Input
|
|
145
|
-
}], breakpoint: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}], children: [{
|
|
148
|
-
type: Input
|
|
149
|
-
}] } });
|
|
150
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGF5b3V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9sYXlvdXQvbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRWpFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFcEQ7Ozs7Ozs7Ozs7O0dBV0c7QUFTSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxnQkFBZ0I7SUF5RG5EOzs7Ozs7O09BT0c7SUFDSDtRQUNFLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO1FBaEUxQjs7Ozs7Ozs7OztXQVVHO1FBRUgsU0FBSSxHQUFzQixDQUFDLENBQUM7UUFFNUI7Ozs7Ozs7OztXQVNHO1FBRUgsU0FBSSxHQUFtQyxDQUFDLENBQUM7UUFFekM7Ozs7Ozs7Ozs7V0FVRztRQUVILGVBQVUsR0FBdUIsUUFBUSxDQUFDO1FBRTFDOzs7Ozs7Ozs7O1dBVUc7UUFFSCxhQUFRLEdBQWUsRUFBRSxDQUFDO0lBWTFCLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNyQixJQUFHLE9BQU8sSUFBSSxLQUFLLFFBQVE7WUFDekIsSUFBSSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFDLEVBQUUsR0FBRyxFQUFFLENBQUUsRUFBRSxDQUFDLENBQUM7UUFDdkQsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7T0FVRztJQUNILElBQUksS0FBSztRQUNQLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDckIsSUFBRyxPQUFPLElBQUksS0FBSyxRQUFRO1lBQ3pCLElBQUksR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBQyxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUUsRUFBRSxFQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUM3QixPQUFPO2dCQUNMLEtBQUssRUFBRyxHQUFnQixFQUFFLENBQUMsT0FBTyxDQUFDO2dCQUNuQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7b0JBQ2pDLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDO3dCQUMzQixPQUFPLEtBQUssQ0FBQztnQkFDakIsQ0FBQyxDQUFDO2FBQ0gsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxLQUFLLENBQUMsUUFBUTtRQUNaLE1BQU0sSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBd0IsQ0FBQztRQUNsRixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO0lBQzFCLENBQUM7K0dBL0hVLGVBQWU7bUdBQWYsZUFBZSwyTEM1QjVCLHk0Q0FvQ0EsMnRCRFpZLGFBQWEsa0RBQUUsc0JBQXNCLDBKQUFFLDBCQUEwQjs7NEZBSWhFLGVBQWU7a0JBUjNCLFNBQVM7K0JBQ0Usa0JBQWtCLFdBR25CLENBQUMsYUFBYSxFQUFFLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDLGNBQ2hFLElBQUk7d0RBaUJoQixJQUFJO3NCQURILEtBQUs7Z0JBY04sSUFBSTtzQkFESCxLQUFLO2dCQWVOLFVBQVU7c0JBRFQsS0FBSztnQkFlTixRQUFRO3NCQURQLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTmd4QmFzZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2VuZ2luZS9OZ3hCYXNlQ29tcG9uZW50JztcbmltcG9ydCB7IEtleVZhbHVlIH0gZnJvbSAnLi4vLi4vZW5naW5lJztcbmltcG9ydCB7IENvbXBvbmVudFJlbmRlcmVyQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tcG9uZW50LXJlbmRlcmVyL2NvbXBvbmVudC1yZW5kZXJlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgTW9kZWxSZW5kZXJlckNvbXBvbmVudCB9IGZyb20gJy4uL21vZGVsLXJlbmRlcmVyL21vZGVsLXJlbmRlcmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBVSU1lZGlhQnJlYWtQb2ludHMgfSBmcm9tICdAZGVjYWYtdHMvdWktZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIExheW91dCBjb21wb25lbnQgZm9yIGNyZWF0aW5nIHJlc3BvbnNpdmUgZ3JpZCBsYXlvdXRzIGluIEFuZ3VsYXIgYXBwbGljYXRpb25zLlxuICogQHN1bW1hcnkgVGhpcyBjb21wb25lbnQgcHJvdmlkZXMgYSBmbGV4aWJsZSBncmlkIHN5c3RlbSB0aGF0IGNhbiBiZSBjb25maWd1cmVkIHdpdGggZHluYW1pY1xuICogcm93cyBhbmQgY29sdW1ucy4gSXQgc3VwcG9ydHMgcmVzcG9uc2l2ZSBicmVha3BvaW50cyBhbmQgY2FuIHJlbmRlciBjaGlsZCBjb21wb25lbnRzIHdpdGhpblxuICogdGhlIGdyaWQgc3RydWN0dXJlLiBUaGUgY29tcG9uZW50IGV4dGVuZHMgTmd4QmFzZUNvbXBvbmVudCB0byBpbmhlcml0IGNvbW1vbiBmdW5jdGlvbmFsaXR5XG4gKiBhbmQgaW50ZWdyYXRlcyB3aXRoIHRoZSBtb2RlbCBhbmQgY29tcG9uZW50IHJlbmRlcmVyIHN5c3RlbXMuXG4gKlxuICogQGNsYXNzIExheW91dENvbXBvbmVudFxuICogQGV4dGVuZHMge05neEJhc2VDb21wb25lbnR9XG4gKiBAaW1wbGVtZW50cyB7T25Jbml0fVxuICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICduZ3gtZGVjYWYtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xheW91dC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgTW9kZWxSZW5kZXJlckNvbXBvbmVudCwgQ29tcG9uZW50UmVuZGVyZXJDb21wb25lbnRdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuXG59KVxuZXhwb3J0IGNsYXNzIExheW91dENvbXBvbmVudCBleHRlbmRzIE5neEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gTnVtYmVyIG9mIGNvbHVtbnMgb3IgYXJyYXkgb2YgY29sdW1uIGRlZmluaXRpb25zIGZvciB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEBzdW1tYXJ5IERlZmluZXMgdGhlIGNvbHVtbiBzdHJ1Y3R1cmUgb2YgdGhlIGdyaWQuIFdoZW4gYSBudW1iZXIgaXMgcHJvdmlkZWQsIGl0IGNyZWF0ZXNcbiAgICogdGhhdCBtYW55IGVxdWFsLXdpZHRoIGNvbHVtbnMuIFdoZW4gYW4gYXJyYXkgaXMgcHJvdmlkZWQsIGVhY2ggZWxlbWVudCBjYW4gZGVmaW5lIHNwZWNpZmljXG4gICAqIGNvbHVtbiBwcm9wZXJ0aWVzIG9yIHNpemluZy4gVGhpcyBhbGxvd3MgZm9yIGZsZXhpYmxlIGdyaWQgbGF5b3V0cyB0aGF0IGNhbiBhZGFwdCB0b1xuICAgKiBkaWZmZXJlbnQgY29udGVudCByZXF1aXJlbWVudHMuXG4gICAqXG4gICAqIEB0eXBlIHsobnVtYmVyIHwgc3RyaW5nW10pfVxuICAgKiBAZGVmYXVsdCAxXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbHM6IG51bWJlciB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE51bWJlciBvZiByb3dzIG9yIGFycmF5IG9mIHJvdyBkZWZpbml0aW9ucyBmb3IgdGhlIGdyaWQgbGF5b3V0LlxuICAgKiBAc3VtbWFyeSBEZWZpbmVzIHRoZSByb3cgc3RydWN0dXJlIG9mIHRoZSBncmlkLiBXaGVuIGEgbnVtYmVyIGlzIHByb3ZpZGVkLCBpdCBjcmVhdGVzXG4gICAqIHRoYXQgbWFueSBlcXVhbC1oZWlnaHQgcm93cy4gV2hlbiBhbiBhcnJheSBpcyBwcm92aWRlZCwgZWFjaCBlbGVtZW50IGNhbiBkZWZpbmUgc3BlY2lmaWNcbiAgICogcm93IHByb3BlcnRpZXMgb3Igc2l6aW5nLiBUaGlzIHByb3ZpZGVzIGNvbnRyb2wgb3ZlciB2ZXJ0aWNhbCBzcGFjaW5nIGFuZCBjb250ZW50IG9yZ2FuaXphdGlvbi5cbiAgICpcbiAgICogQHR5cGUgeyhudW1iZXIgfCBzdHJpbmdbXSl9XG4gICAqIEBkZWZhdWx0IDFcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgQElucHV0KClcbiAgcm93czogbnVtYmVyIHwgS2V5VmFsdWVbXSB8IHN0cmluZ1tdID0gMTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIE1lZGlhIGJyZWFrcG9pbnQgZm9yIHJlc3BvbnNpdmUgYmVoYXZpb3IuXG4gICAqIEBzdW1tYXJ5IERldGVybWluZXMgdGhlIHJlc3BvbnNpdmUgYnJlYWtwb2ludCBhdCB3aGljaCB0aGUgbGF5b3V0IHNob3VsZCBhZGFwdC5cbiAgICogVGhpcyBhZmZlY3RzIGhvdyB0aGUgZ3JpZCBiZWhhdmVzIG9uIGRpZmZlcmVudCBzY3JlZW4gc2l6ZXMsIGFsbG93aW5nIGZvclxuICAgKiBtb2JpbGUtZmlyc3Qgb3IgZGVza3RvcC1maXJzdCByZXNwb25zaXZlIGRlc2lnbiBwYXR0ZXJucy4gVGhlIGJyZWFrcG9pbnRcbiAgICogaXMgYXV0b21hdGljYWxseSBwcm9jZXNzZWQgdG8gZW5zdXJlIGNvbXBhdGliaWxpdHkgd2l0aCB0aGUgVUkgZnJhbWV3b3JrLlxuICAgKlxuICAgKiBAdHlwZSB7VUlNZWRpYUJyZWFrUG9pbnRzfVxuICAgKiBAZGVmYXVsdCAnbWVkaXVtJ1xuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBicmVha3BvaW50OiBVSU1lZGlhQnJlYWtQb2ludHMgPSAnbWVkaXVtJztcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFycmF5IG9mIGNoaWxkIGNvbXBvbmVudHMgb3IgZGF0YSB0byByZW5kZXIgd2l0aGluIHRoZSBncmlkLlxuICAgKiBAc3VtbWFyeSBDb250YWlucyB0aGUgY2hpbGQgZWxlbWVudHMgdGhhdCB3aWxsIGJlIGRpc3RyaWJ1dGVkIGFjcm9zcyB0aGUgZ3JpZCBsYXlvdXQuXG4gICAqIEVhY2ggaXRlbSBpbiB0aGUgYXJyYXkgcmVwcmVzZW50cyBjb250ZW50IHRoYXQgd2lsbCBiZSByZW5kZXJlZCB1c2luZyB0aGUgYXBwcm9wcmlhdGVcbiAgICogcmVuZGVyZXIgY29tcG9uZW50IChNb2RlbFJlbmRlcmVyIG9yIENvbXBvbmVudFJlbmRlcmVyKS4gVGhpcyBhbGxvd3MgZm9yIG1peGVkIGNvbnRlbnRcbiAgICogdHlwZXMgd2l0aGluIGEgc2luZ2xlIGxheW91dCBzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIEB0eXBlIHtLZXlWYWx1ZVtdfVxuICAgKiBAZGVmYXVsdCBbXVxuICAgKiBAbWVtYmVyT2YgTGF5b3V0Q29tcG9uZW50XG4gICAqL1xuICBASW5wdXQoKVxuICBjaGlsZHJlbjogS2V5VmFsdWVbXSA9IFtdO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb24gQ3JlYXRlcyBhbiBpbnN0YW5jZSBvZiBMYXlvdXRDb21wb25lbnQuXG4gICAqIEBzdW1tYXJ5IEluaXRpYWxpemVzIGEgbmV3IExheW91dENvbXBvbmVudCB3aXRoIHRoZSBjb21wb25lbnQgbmFtZSBcIkxheW91dENvbXBvbmVudFwiLlxuICAgKiBUaGlzIGNvbnN0cnVjdG9yIGNhbGxzIHRoZSBwYXJlbnQgTmd4QmFzZUNvbXBvbmVudCBjb25zdHJ1Y3RvciB0byBzZXQgdXAgYmFzZVxuICAgKiBmdW5jdGlvbmFsaXR5IGFuZCBjb21wb25lbnQgaWRlbnRpZmljYXRpb24uXG4gICAqXG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKFwiTGF5b3V0Q29tcG9uZW50XCIpXG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEdldHRlciB0aGF0IGNvbnZlcnRzIGNvbHVtbnMgaW5wdXQgdG8gYW4gYXJyYXkgZm9ybWF0LlxuICAgKiBAc3VtbWFyeSBUcmFuc2Zvcm1zIHRoZSBjb2xzIGlucHV0IHByb3BlcnR5IGludG8gYSBzdGFuZGFyZGl6ZWQgc3RyaW5nIGFycmF5IGZvcm1hdC5cbiAgICogV2hlbiBjb2xzIGlzIGEgbnVtYmVyLCBpdCBjcmVhdGVzIGFuIGFycmF5IHdpdGggdGhhdCBtYW55IGVtcHR5IHN0cmluZyBlbGVtZW50cy5cbiAgICogV2hlbiBjb2xzIGlzIGFscmVhZHkgYW4gYXJyYXksIGl0IHJldHVybnMgdGhlIGFycmF5IGFzLWlzLiBUaGlzIG5vcm1hbGl6YXRpb25cbiAgICogZW5zdXJlcyBjb25zaXN0ZW50IGhhbmRsaW5nIG9mIGNvbHVtbiBkZWZpbml0aW9ucyBpbiB0aGUgdGVtcGxhdGUuXG4gICAqXG4gICAqIEB0eXBlIHtzdHJpbmdbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfY29scygpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGNvbHMgPSB0aGlzLmNvbHM7XG4gICAgaWYodHlwZW9mIGNvbHMgPT09IFwibnVtYmVyXCIpXG4gICAgICBjb2xzID0gQXJyYXkuZnJvbSh7bGVuZ3RoOiBOdW1iZXIoY29scyl9LCAoKSA9PiAgYGApO1xuICAgIHJldHVybiBjb2xzO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvbiBHZXR0ZXIgdGhhdCBjb252ZXJ0cyByb3dzIGlucHV0IHRvIGFuIGFycmF5IGZvcm1hdC5cbiAgICogQHN1bW1hcnkgVHJhbnNmb3JtcyB0aGUgcm93cyBpbnB1dCBwcm9wZXJ0eSBpbnRvIGEgc3RhbmRhcmRpemVkIHN0cmluZyBhcnJheSBmb3JtYXQuXG4gICAqIFdoZW4gcm93cyBpcyBhIG51bWJlciwgaXQgY3JlYXRlcyBhbiBhcnJheSB3aXRoIHRoYXQgbWFueSBlbXB0eSBzdHJpbmcgZWxlbWVudHMuXG4gICAqIFdoZW4gcm93cyBpcyBhbHJlYWR5IGFuIGFycmF5LCBpdCByZXR1cm5zIHRoZSBhcnJheSBhcy1pcy4gVGhpcyBub3JtYWxpemF0aW9uXG4gICAqIGVuc3VyZXMgY29uc2lzdGVudCBoYW5kbGluZyBvZiByb3cgZGVmaW5pdGlvbnMgaW4gdGhlIHRlbXBsYXRlLlxuICAgKlxuICAgKiBAdHlwZSB7S2V5VmFsdWVbXX1cbiAgICogQHJlYWRvbmx5XG4gICAqIEBtZW1iZXJPZiBMYXlvdXRDb21wb25lbnRcbiAgICovXG4gIGdldCBfcm93cygpOiBLZXlWYWx1ZVtdIHtcbiAgICBsZXQgcm93cyA9IHRoaXMucm93cztcbiAgICBpZih0eXBlb2Ygcm93cyA9PT0gXCJudW1iZXJcIilcbiAgICAgIHJvd3MgPSBBcnJheS5mcm9tKHtsZW5ndGg6IE51bWJlcihyb3dzKX0sICgpID0+ICh7dGl0bGU6ICcnfSkpO1xuICAgIHJldHVybiByb3dzLm1hcCgocm93LCBpbmRleCkgPT4ge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgdGl0bGU6IChyb3cgYXMgS2V5VmFsdWUpPy5bJ3RpdGxlJ10sXG4gICAgICAgIGNvbHM6IHRoaXMuY2hpbGRyZW4uZmlsdGVyKGNoaWxkID0+IHtcbiAgICAgICAgICBpZihjaGlsZFsncm93J10gPT09IGluZGV4ICsgMSlcbiAgICAgICAgICAgIHJldHVybiBjaGlsZDtcbiAgICAgICAgfSlcbiAgICAgIH07XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uIEFuZ3VsYXIgbGlmZWN5Y2xlIGhvb2sgdGhhdCBydW5zIGFmdGVyIGNvbXBvbmVudCBpbml0aWFsaXphdGlvbi5cbiAgICogQHN1bW1hcnkgQ2FsbGVkIG9uY2UsIGFmdGVyIHRoZSBmaXJzdCBuZ09uQ2hhbmdlcygpLiBUaGlzIG1ldGhvZCB0cmlnZ2VycyB0aGVcbiAgICogY29tcG9uZW50J3MgaW5pdGlhbGl6YXRpb24gcHJvY2Vzcywgd2hpY2ggaW5jbHVkZXMgcHJvcGVydHkgcGFyc2luZyBhbmQgZ3JpZFxuICAgKiBzZXR1cC4gSXQgZW5zdXJlcyB0aGUgY29tcG9uZW50IGlzIHByb3Blcmx5IGNvbmZpZ3VyZWQgYmVmb3JlIHJlbmRlcmluZy5cbiAgICpcbiAgICogQG1lbWJlck9mIExheW91dENvbXBvbmVudFxuICAgKi9cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pbml0aWFsaXplKCk7XG4gICAgdGhpcy5icmVha3BvaW50ID0gdGhpcy5icmVha3BvaW50LnNsaWNlKDAsIDIpLnRvTG93ZXJDYXNlKCkgYXMgVUlNZWRpYUJyZWFrUG9pbnRzO1xuICAgIHRoaXMuY29scyA9IHRoaXMuX2NvbHM7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5fcm93cztcbiAgICB0aGlzLmluaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxufVxuIiwiXG5AaWYoaW5pdGlhbGl6ZWQpIHtcbiAgQGZvciAocm93IG9mIHJvd3M7IHRyYWNrIHRyYWNrSXRlbUZuKCRpbmRleCwgcm93KTsgbGV0IHJvd0luZGV4ID0gJGluZGV4KSB7XG4gICAgPGRpdiBbaWRdPVwidWlkXCIgY2xhc3M9XCJkY2YtZ3JpZCBkY2YtZ3JpZC1jb2xsYXBzZSBkY2YtZ3JpZC1tYXRjaFwiPlxuICAgICAgQGlmKHJvdykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZGNmLXdpZHRoLTEtMSBkY2YtZ3JpZC10aXRsZVwiPlxuICAgICAgICAgIDxpb24tY2FyZCBjbGFzcz1cImRjZi1ncmlkLXRpdGxlXCI+XG4gICAgICAgICAgICB7e3Jvdy50aXRsZSB8IHRyYW5zbGF0ZX19XG4gICAgICAgICAgPC9pb24tY2FyZD5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChjaGlsZCBvZiByb3cuY29sczsgdHJhY2sgdHJhY2tJdGVtRm4oJGluZGV4LCBjaGlsZC5jb2wpOyBsZXQgY29sSW5kZXggPSAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBbY2xhc3NdPVwiKGNoaWxkLmNvbCA9PT0gY29scy5sZW5ndGggPyAnZGNmLXdpZHRoLTEtMScgOiAnZGNmLXdpZHRoLScrY2hpbGQuY29sKyctJytjb2xzLmxlbmd0aCsnQCcrYnJlYWtwb2ludClcIj5cbiAgICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIidkY2YtZ3JpZC1jaGlsZCAnK2NoaWxkLmNvbCBcIj5cbiAgICAgICAgICAgICAgQGlmKGNoaWxkLnRhZyA9PT0gJ25neC1kZWNhZi1jcnVkLWZvcm0nKSB7XG4gICAgICAgICAgICAgICAgPGlvbi1jYXJkIFtjbGFzc109XCInZGNmLWhlaWdodC0xLTEgJyArIGNsYXNzTmFtZVwiPlxuICAgICAgICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgICAgIDxuZ3gtZGVjYWYtbW9kZWwtcmVuZGVyZXJcbiAgICAgICAgICAgICAgICAgICAgICBbbW9kZWxdPVwiY2hpbGQucHJvcHMubmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKGxpc3RlbkV2ZW50KT1cImhhbmRsZUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgICAgIDxuZ3gtZGVjYWYtY29tcG9uZW50LXJlbmRlcmVyXG4gICAgICAgICAgICAgICAgICBbdGFnXT1cImNoaWxkLnRhZ1wiXG4gICAgICAgICAgICAgICAgICAobGlzdGVuRXZlbnQpPVwiaGFuZGxlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICBbZ2xvYmFsc109XCJ7cHJvcHM6IGNoaWxkLnByb3BzfVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=
|