@abp/ng.theme.shared 5.0.1 → 5.1.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/{esm2015/abp-ng.theme.shared.js → esm2020/abp-ng.theme.shared.mjs} +0 -0
- package/{esm2015/extensions/abp-ng.theme.shared-extensions.js → esm2020/extensions/abp-ng.theme.shared-extensions.mjs} +0 -0
- package/esm2020/extensions/lib/adapters/date-time.adapter.mjs +44 -0
- package/{esm2015/extensions/lib/adapters/date.adapter.js → esm2020/extensions/lib/adapters/date.adapter.mjs} +4 -4
- package/{esm2015/extensions/lib/adapters/time.adapter.js → esm2020/extensions/lib/adapters/time.adapter.mjs} +4 -4
- package/{esm2015/extensions/lib/components/abstract-actions/abstract-actions.component.js → esm2020/extensions/lib/components/abstract-actions/abstract-actions.component.mjs} +4 -4
- package/{esm2015/extensions/lib/components/date-time-picker/date-time-picker.component.js → esm2020/extensions/lib/components/date-time-picker/date-time-picker.component.mjs} +5 -5
- package/esm2020/extensions/lib/components/extensible-form/extensible-form-prop.component.mjs +159 -0
- package/esm2020/extensions/lib/components/extensible-form/extensible-form.component.mjs +64 -0
- package/esm2020/extensions/lib/components/extensible-table/extensible-table.component.mjs +128 -0
- package/esm2020/extensions/lib/components/grid-actions/grid-actions.component.mjs +39 -0
- package/esm2020/extensions/lib/components/page-toolbar/page-toolbar.component.mjs +40 -0
- package/{esm2015/extensions/lib/constants/extra-properties.js → esm2020/extensions/lib/constants/extra-properties.mjs} +0 -0
- package/{esm2015/extensions/lib/directives/disabled.directive.js → esm2020/extensions/lib/directives/disabled.directive.mjs} +4 -4
- package/{esm2015/extensions/lib/directives/prop-data.directive.js → esm2020/extensions/lib/directives/prop-data.directive.mjs} +4 -4
- package/{esm2015/extensions/lib/enums/props.enum.js → esm2020/extensions/lib/enums/props.enum.mjs} +0 -0
- package/{esm2015/extensions/lib/models/actions.js → esm2020/extensions/lib/models/actions.mjs} +0 -0
- package/{esm2015/extensions/lib/models/entity-actions.js → esm2020/extensions/lib/models/entity-actions.mjs} +0 -0
- package/esm2020/extensions/lib/models/entity-props.mjs +36 -0
- package/{esm2015/extensions/lib/models/form-props.js → esm2020/extensions/lib/models/form-props.mjs} +0 -0
- package/{esm2015/extensions/lib/models/internal/object-extensions.js → esm2020/extensions/lib/models/internal/object-extensions.mjs} +0 -0
- package/{esm2015/extensions/lib/models/object-extensions.js → esm2020/extensions/lib/models/object-extensions.mjs} +0 -0
- package/{esm2015/extensions/lib/models/props.js → esm2020/extensions/lib/models/props.mjs} +0 -0
- package/{esm2015/extensions/lib/models/toolbar-actions.js → esm2020/extensions/lib/models/toolbar-actions.mjs} +0 -0
- package/{esm2015/extensions/lib/services/extensions.service.js → esm2020/extensions/lib/services/extensions.service.mjs} +4 -4
- package/{esm2015/extensions/lib/tokens/extensions.token.js → esm2020/extensions/lib/tokens/extensions.token.mjs} +0 -0
- package/{esm2015/extensions/lib/ui-extensions.module.js → esm2020/extensions/lib/ui-extensions.module.mjs} +9 -9
- package/{esm2015/extensions/lib/utils/actions.util.js → esm2020/extensions/lib/utils/actions.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/enum.util.js → esm2020/extensions/lib/utils/enum.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/factory.util.js → esm2020/extensions/lib/utils/factory.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/form-props.util.js → esm2020/extensions/lib/utils/form-props.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/localization.util.js → esm2020/extensions/lib/utils/localization.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/props.util.js → esm2020/extensions/lib/utils/props.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/state.util.js → esm2020/extensions/lib/utils/state.util.mjs} +2 -3
- package/{esm2015/extensions/lib/utils/typeahead.util.js → esm2020/extensions/lib/utils/typeahead.util.mjs} +0 -0
- package/{esm2015/extensions/lib/utils/validation.util.js → esm2020/extensions/lib/utils/validation.util.mjs} +0 -0
- package/{esm2015/extensions/public-api.js → esm2020/extensions/public-api.mjs} +0 -0
- package/{esm2015/lib/animations/bounce.animations.js → esm2020/lib/animations/bounce.animations.mjs} +0 -0
- package/{esm2015/lib/animations/collapse.animations.js → esm2020/lib/animations/collapse.animations.mjs} +0 -0
- package/{esm2015/lib/animations/fade.animations.js → esm2020/lib/animations/fade.animations.mjs} +0 -0
- package/{esm2015/lib/animations/index.js → esm2020/lib/animations/index.mjs} +0 -0
- package/{esm2015/lib/animations/modal.animations.js → esm2020/lib/animations/modal.animations.mjs} +0 -0
- package/{esm2015/lib/animations/slide.animations.js → esm2020/lib/animations/slide.animations.mjs} +0 -0
- package/{esm2015/lib/animations/toast.animations.js → esm2020/lib/animations/toast.animations.mjs} +0 -0
- package/esm2020/lib/components/breadcrumb/breadcrumb.component.mjs +43 -0
- package/esm2020/lib/components/breadcrumb-items/breadcrumb-items.component.mjs +19 -0
- package/esm2020/lib/components/button/button.component.mjs +97 -0
- package/esm2020/lib/components/confirmation/confirmation.component.mjs +36 -0
- package/esm2020/lib/components/http-error-wrapper/http-error-wrapper.component.mjs +59 -0
- package/{esm2015/lib/components/index.js → esm2020/lib/components/index.mjs} +0 -0
- package/{esm2015/lib/components/loader-bar/loader-bar.component.js → esm2020/lib/components/loader-bar/loader-bar.component.mjs} +6 -11
- package/{esm2015/lib/components/loading/loading.component.js → esm2020/lib/components/loading/loading.component.mjs} +5 -5
- package/{esm2015/lib/components/modal/modal-close.directive.js → esm2020/lib/components/modal/modal-close.directive.mjs} +5 -6
- package/{esm2015/lib/components/modal/modal-ref.service.js → esm2020/lib/components/modal/modal-ref.service.mjs} +4 -4
- package/esm2020/lib/components/modal/modal.component.mjs +189 -0
- package/esm2020/lib/components/toast/toast.component.mjs +55 -0
- package/esm2020/lib/components/toast-container/toast-container.component.mjs +43 -0
- package/{esm2015/lib/constants/styles.js → esm2020/lib/constants/styles.mjs} +0 -0
- package/{esm2015/lib/constants/validation.js → esm2020/lib/constants/validation.mjs} +0 -0
- package/{esm2015/lib/directives/ellipsis.directive.js → esm2020/lib/directives/ellipsis.directive.mjs} +8 -8
- package/{esm2015/lib/directives/index.js → esm2020/lib/directives/index.mjs} +0 -0
- package/esm2020/lib/directives/loading.directive.mjs +89 -0
- package/{esm2015/lib/directives/ngx-datatable-default.directive.js → esm2020/lib/directives/ngx-datatable-default.directive.mjs} +4 -4
- package/{esm2015/lib/directives/ngx-datatable-list.directive.js → esm2020/lib/directives/ngx-datatable-list.directive.mjs} +4 -4
- package/{esm2015/lib/enums/index.js → esm2020/lib/enums/index.mjs} +0 -0
- package/{esm2015/lib/enums/route-names.js → esm2020/lib/enums/route-names.mjs} +0 -0
- package/{esm2015/lib/handlers/document-dir.handler.js → esm2020/lib/handlers/document-dir.handler.mjs} +4 -4
- package/esm2020/lib/handlers/error.handler.mjs +286 -0
- package/{esm2015/lib/handlers/index.js → esm2020/lib/handlers/index.mjs} +0 -0
- package/{esm2015/lib/models/common.js → esm2020/lib/models/common.mjs} +0 -0
- package/{esm2015/lib/models/confirmation.js → esm2020/lib/models/confirmation.mjs} +0 -0
- package/esm2020/lib/models/index.mjs +7 -0
- package/esm2020/lib/models/nav-item.mjs +7 -0
- package/{esm2015/lib/models/statistics.js → esm2020/lib/models/statistics.mjs} +0 -0
- package/{esm2015/lib/models/toaster.js → esm2020/lib/models/toaster.mjs} +0 -0
- package/esm2020/lib/models/user-menu.mjs +4 -0
- package/{esm2015/lib/providers/index.js → esm2020/lib/providers/index.mjs} +0 -0
- package/{esm2015/lib/providers/ng-bootstrap-config.provider.js → esm2020/lib/providers/ng-bootstrap-config.provider.mjs} +0 -0
- package/{esm2015/lib/providers/route.provider.js → esm2020/lib/providers/route.provider.mjs} +0 -0
- package/esm2020/lib/services/abstract-menu.service.mjs +50 -0
- package/{esm2015/lib/services/confirmation.service.js → esm2020/lib/services/confirmation.service.mjs} +4 -4
- package/{esm2015/lib/services/index.js → esm2020/lib/services/index.mjs} +2 -1
- package/esm2020/lib/services/nav-items.service.mjs +17 -0
- package/esm2020/lib/services/page-alert.service.mjs +28 -0
- package/esm2020/lib/services/toaster.service.mjs +103 -0
- package/esm2020/lib/services/user-menu.service.mjs +17 -0
- package/esm2020/lib/theme-shared.module.mjs +162 -0
- package/{esm2015/lib/tokens/append-content.token.js → esm2020/lib/tokens/append-content.token.mjs} +0 -0
- package/esm2020/lib/tokens/http-error.token.mjs +14 -0
- package/{esm2015/lib/tokens/index.js → esm2020/lib/tokens/index.mjs} +0 -0
- package/{esm2015/lib/tokens/ngx-datatable-messages.token.js → esm2020/lib/tokens/ngx-datatable-messages.token.mjs} +0 -0
- package/{esm2015/lib/tokens/suppress-unsaved-changes-warning.token.js → esm2020/lib/tokens/suppress-unsaved-changes-warning.token.mjs} +0 -0
- package/{esm2015/lib/utils/date-parser-formatter.js → esm2020/lib/utils/date-parser-formatter.mjs} +5 -6
- package/{esm2015/lib/utils/index.js → esm2020/lib/utils/index.mjs} +0 -0
- package/{esm2015/lib/utils/validation-utils.js → esm2020/lib/utils/validation-utils.mjs} +0 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/testing/abp-ng.theme.shared-testing.js → esm2020/testing/abp-ng.theme.shared-testing.mjs} +0 -0
- package/{esm2015/testing/lib/models/config.js → esm2020/testing/lib/models/config.mjs} +0 -0
- package/{esm2015/testing/lib/models/index.js → esm2020/testing/lib/models/index.mjs} +0 -0
- package/esm2020/testing/lib/theme-shared-testing.module.mjs +46 -0
- package/{esm2015/testing/public-api.js → esm2020/testing/public-api.mjs} +0 -0
- package/extensions/lib/models/entity-props.d.ts +1 -1
- package/extensions/lib/tokens/extensions.token.d.ts +1 -1
- package/extensions/package.json +5 -5
- package/fesm2015/abp-ng.theme.shared-extensions.mjs +1329 -0
- package/fesm2015/abp-ng.theme.shared-extensions.mjs.map +1 -0
- package/fesm2015/{abp-ng.theme.shared-testing.js → abp-ng.theme.shared-testing.mjs} +5 -5
- package/fesm2015/abp-ng.theme.shared-testing.mjs.map +1 -0
- package/fesm2015/{abp-ng.theme.shared.js → abp-ng.theme.shared.mjs} +174 -175
- package/fesm2015/abp-ng.theme.shared.mjs.map +1 -0
- package/{fesm2015/abp-ng.theme.shared-extensions.js → fesm2020/abp-ng.theme.shared-extensions.mjs} +80 -99
- package/fesm2020/abp-ng.theme.shared-extensions.mjs.map +1 -0
- package/fesm2020/abp-ng.theme.shared-testing.mjs +57 -0
- package/fesm2020/abp-ng.theme.shared-testing.mjs.map +1 -0
- package/fesm2020/abp-ng.theme.shared.mjs +2202 -0
- package/fesm2020/abp-ng.theme.shared.mjs.map +1 -0
- package/lib/models/index.d.ts +2 -1
- package/lib/models/user-menu.d.ts +8 -0
- package/lib/services/abstract-menu.service.d.ts +12 -0
- package/lib/services/index.d.ts +1 -0
- package/lib/services/nav-items.service.d.ts +3 -8
- package/lib/services/user-menu.service.d.ts +8 -0
- package/package.json +38 -8
- package/testing/package.json +5 -5
- package/bundles/abp-ng.theme.shared-extensions.umd.js +0 -1904
- package/bundles/abp-ng.theme.shared-extensions.umd.js.map +0 -1
- package/bundles/abp-ng.theme.shared-testing.umd.js +0 -82
- package/bundles/abp-ng.theme.shared-testing.umd.js.map +0 -1
- package/bundles/abp-ng.theme.shared.umd.js +0 -2506
- package/bundles/abp-ng.theme.shared.umd.js.map +0 -1
- package/esm2015/extensions/lib/adapters/date-time.adapter.js +0 -34
- package/esm2015/extensions/lib/components/extensible-form/extensible-form-prop.component.js +0 -164
- package/esm2015/extensions/lib/components/extensible-form/extensible-form.component.js +0 -70
- package/esm2015/extensions/lib/components/extensible-table/extensible-table.component.js +0 -134
- package/esm2015/extensions/lib/components/grid-actions/grid-actions.component.js +0 -45
- package/esm2015/extensions/lib/components/page-toolbar/page-toolbar.component.js +0 -46
- package/esm2015/extensions/lib/models/entity-props.js +0 -34
- package/esm2015/lib/components/breadcrumb/breadcrumb.component.js +0 -49
- package/esm2015/lib/components/breadcrumb-items/breadcrumb-items.component.js +0 -22
- package/esm2015/lib/components/button/button.component.js +0 -98
- package/esm2015/lib/components/confirmation/confirmation.component.js +0 -40
- package/esm2015/lib/components/http-error-wrapper/http-error-wrapper.component.js +0 -65
- package/esm2015/lib/components/modal/modal.component.js +0 -188
- package/esm2015/lib/components/toast/toast.component.js +0 -61
- package/esm2015/lib/components/toast-container/toast-container.component.js +0 -49
- package/esm2015/lib/directives/loading.directive.js +0 -90
- package/esm2015/lib/handlers/error.handler.js +0 -292
- package/esm2015/lib/models/index.js +0 -6
- package/esm2015/lib/models/nav-item.js +0 -7
- package/esm2015/lib/services/nav-items.service.js +0 -51
- package/esm2015/lib/services/page-alert.service.js +0 -26
- package/esm2015/lib/services/toaster.service.js +0 -103
- package/esm2015/lib/theme-shared.module.js +0 -165
- package/esm2015/lib/tokens/http-error.token.js +0 -10
- package/esm2015/testing/lib/theme-shared-testing.module.js +0 -43
- package/fesm2015/abp-ng.theme.shared-extensions.js.map +0 -1
- package/fesm2015/abp-ng.theme.shared-testing.js.map +0 -1
- package/fesm2015/abp-ng.theme.shared.js.map +0 -1
|
@@ -1,165 +0,0 @@
|
|
|
1
|
-
import { CoreModule, noop } from '@abp/ng.core';
|
|
2
|
-
import { DatePipe } from '@angular/common';
|
|
3
|
-
import { APP_INITIALIZER, NgModule } from '@angular/core';
|
|
4
|
-
import { NgbDateParserFormatter, NgbPaginationModule } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { defaultMapErrorsFn, NgxValidateCoreModule, VALIDATION_BLUEPRINTS, VALIDATION_MAP_ERRORS_FN, VALIDATION_VALIDATE_ON_SUBMIT, } from '@ngx-validate/core';
|
|
6
|
-
import { NgxDatatableModule } from '@swimlane/ngx-datatable';
|
|
7
|
-
import { BreadcrumbItemsComponent } from './components/breadcrumb-items/breadcrumb-items.component';
|
|
8
|
-
import { BreadcrumbComponent } from './components/breadcrumb/breadcrumb.component';
|
|
9
|
-
import { ButtonComponent } from './components/button/button.component';
|
|
10
|
-
import { ConfirmationComponent } from './components/confirmation/confirmation.component';
|
|
11
|
-
import { HttpErrorWrapperComponent } from './components/http-error-wrapper/http-error-wrapper.component';
|
|
12
|
-
import { LoaderBarComponent } from './components/loader-bar/loader-bar.component';
|
|
13
|
-
import { LoadingComponent } from './components/loading/loading.component';
|
|
14
|
-
import { ModalCloseDirective } from './components/modal/modal-close.directive';
|
|
15
|
-
import { ModalComponent } from './components/modal/modal.component';
|
|
16
|
-
import { ToastContainerComponent } from './components/toast-container/toast-container.component';
|
|
17
|
-
import { ToastComponent } from './components/toast/toast.component';
|
|
18
|
-
import { DEFAULT_VALIDATION_BLUEPRINTS } from './constants/validation';
|
|
19
|
-
import { EllipsisModule } from './directives/ellipsis.directive';
|
|
20
|
-
import { LoadingDirective } from './directives/loading.directive';
|
|
21
|
-
import { NgxDatatableDefaultDirective } from './directives/ngx-datatable-default.directive';
|
|
22
|
-
import { NgxDatatableListDirective } from './directives/ngx-datatable-list.directive';
|
|
23
|
-
import { DocumentDirHandlerService } from './handlers/document-dir.handler';
|
|
24
|
-
import { ErrorHandler } from './handlers/error.handler';
|
|
25
|
-
import { NG_BOOTSTRAP_CONFIG_PROVIDERS } from './providers';
|
|
26
|
-
import { THEME_SHARED_ROUTE_PROVIDERS } from './providers/route.provider';
|
|
27
|
-
import { THEME_SHARED_APPEND_CONTENT } from './tokens/append-content.token';
|
|
28
|
-
import { httpErrorConfigFactory, HTTP_ERROR_CONFIG } from './tokens/http-error.token';
|
|
29
|
-
import { DateParserFormatter } from './utils/date-parser-formatter';
|
|
30
|
-
import * as i0 from "@angular/core";
|
|
31
|
-
const declarationsWithExports = [
|
|
32
|
-
BreadcrumbComponent,
|
|
33
|
-
BreadcrumbItemsComponent,
|
|
34
|
-
ButtonComponent,
|
|
35
|
-
ConfirmationComponent,
|
|
36
|
-
LoaderBarComponent,
|
|
37
|
-
LoadingComponent,
|
|
38
|
-
ModalComponent,
|
|
39
|
-
ToastComponent,
|
|
40
|
-
ToastContainerComponent,
|
|
41
|
-
NgxDatatableDefaultDirective,
|
|
42
|
-
NgxDatatableListDirective,
|
|
43
|
-
LoadingDirective,
|
|
44
|
-
ModalCloseDirective,
|
|
45
|
-
];
|
|
46
|
-
export class BaseThemeSharedModule {
|
|
47
|
-
}
|
|
48
|
-
BaseThemeSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
49
|
-
BaseThemeSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeSharedModule, declarations: [BreadcrumbComponent,
|
|
50
|
-
BreadcrumbItemsComponent,
|
|
51
|
-
ButtonComponent,
|
|
52
|
-
ConfirmationComponent,
|
|
53
|
-
LoaderBarComponent,
|
|
54
|
-
LoadingComponent,
|
|
55
|
-
ModalComponent,
|
|
56
|
-
ToastComponent,
|
|
57
|
-
ToastContainerComponent,
|
|
58
|
-
NgxDatatableDefaultDirective,
|
|
59
|
-
NgxDatatableListDirective,
|
|
60
|
-
LoadingDirective,
|
|
61
|
-
ModalCloseDirective, HttpErrorWrapperComponent], imports: [CoreModule,
|
|
62
|
-
NgxDatatableModule,
|
|
63
|
-
NgxValidateCoreModule,
|
|
64
|
-
NgbPaginationModule,
|
|
65
|
-
EllipsisModule], exports: [NgxDatatableModule, EllipsisModule, BreadcrumbComponent,
|
|
66
|
-
BreadcrumbItemsComponent,
|
|
67
|
-
ButtonComponent,
|
|
68
|
-
ConfirmationComponent,
|
|
69
|
-
LoaderBarComponent,
|
|
70
|
-
LoadingComponent,
|
|
71
|
-
ModalComponent,
|
|
72
|
-
ToastComponent,
|
|
73
|
-
ToastContainerComponent,
|
|
74
|
-
NgxDatatableDefaultDirective,
|
|
75
|
-
NgxDatatableListDirective,
|
|
76
|
-
LoadingDirective,
|
|
77
|
-
ModalCloseDirective] });
|
|
78
|
-
BaseThemeSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeSharedModule, providers: [DatePipe], imports: [[
|
|
79
|
-
CoreModule,
|
|
80
|
-
NgxDatatableModule,
|
|
81
|
-
NgxValidateCoreModule,
|
|
82
|
-
NgbPaginationModule,
|
|
83
|
-
EllipsisModule,
|
|
84
|
-
], NgxDatatableModule, EllipsisModule] });
|
|
85
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: BaseThemeSharedModule, decorators: [{
|
|
86
|
-
type: NgModule,
|
|
87
|
-
args: [{
|
|
88
|
-
imports: [
|
|
89
|
-
CoreModule,
|
|
90
|
-
NgxDatatableModule,
|
|
91
|
-
NgxValidateCoreModule,
|
|
92
|
-
NgbPaginationModule,
|
|
93
|
-
EllipsisModule,
|
|
94
|
-
],
|
|
95
|
-
declarations: [...declarationsWithExports, HttpErrorWrapperComponent],
|
|
96
|
-
exports: [NgxDatatableModule, EllipsisModule, ...declarationsWithExports],
|
|
97
|
-
providers: [DatePipe],
|
|
98
|
-
entryComponents: [
|
|
99
|
-
HttpErrorWrapperComponent,
|
|
100
|
-
LoadingComponent,
|
|
101
|
-
ToastContainerComponent,
|
|
102
|
-
ConfirmationComponent,
|
|
103
|
-
],
|
|
104
|
-
}]
|
|
105
|
-
}] });
|
|
106
|
-
export class ThemeSharedModule {
|
|
107
|
-
static forRoot({ httpErrorConfig, validation = {} } = {}) {
|
|
108
|
-
return {
|
|
109
|
-
ngModule: ThemeSharedModule,
|
|
110
|
-
providers: [
|
|
111
|
-
{
|
|
112
|
-
provide: APP_INITIALIZER,
|
|
113
|
-
multi: true,
|
|
114
|
-
deps: [ErrorHandler],
|
|
115
|
-
useFactory: noop,
|
|
116
|
-
},
|
|
117
|
-
THEME_SHARED_ROUTE_PROVIDERS,
|
|
118
|
-
{
|
|
119
|
-
provide: APP_INITIALIZER,
|
|
120
|
-
multi: true,
|
|
121
|
-
deps: [THEME_SHARED_APPEND_CONTENT],
|
|
122
|
-
useFactory: noop,
|
|
123
|
-
},
|
|
124
|
-
{ provide: HTTP_ERROR_CONFIG, useValue: httpErrorConfig },
|
|
125
|
-
{
|
|
126
|
-
provide: 'HTTP_ERROR_CONFIG',
|
|
127
|
-
useFactory: httpErrorConfigFactory,
|
|
128
|
-
deps: [HTTP_ERROR_CONFIG],
|
|
129
|
-
},
|
|
130
|
-
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
|
|
131
|
-
NG_BOOTSTRAP_CONFIG_PROVIDERS,
|
|
132
|
-
{
|
|
133
|
-
provide: VALIDATION_BLUEPRINTS,
|
|
134
|
-
useValue: Object.assign(Object.assign({}, DEFAULT_VALIDATION_BLUEPRINTS), (validation.blueprints || {})),
|
|
135
|
-
},
|
|
136
|
-
{
|
|
137
|
-
provide: VALIDATION_MAP_ERRORS_FN,
|
|
138
|
-
useValue: validation.mapErrorsFn || defaultMapErrorsFn,
|
|
139
|
-
},
|
|
140
|
-
{
|
|
141
|
-
provide: VALIDATION_VALIDATE_ON_SUBMIT,
|
|
142
|
-
useValue: validation.validateOnSubmit,
|
|
143
|
-
},
|
|
144
|
-
DocumentDirHandlerService,
|
|
145
|
-
{
|
|
146
|
-
provide: APP_INITIALIZER,
|
|
147
|
-
useFactory: noop,
|
|
148
|
-
multi: true,
|
|
149
|
-
deps: [DocumentDirHandlerService],
|
|
150
|
-
},
|
|
151
|
-
],
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
ThemeSharedModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
156
|
-
ThemeSharedModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedModule, imports: [BaseThemeSharedModule], exports: [BaseThemeSharedModule] });
|
|
157
|
-
ThemeSharedModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedModule, imports: [[BaseThemeSharedModule], BaseThemeSharedModule] });
|
|
158
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedModule, decorators: [{
|
|
159
|
-
type: NgModule,
|
|
160
|
-
args: [{
|
|
161
|
-
imports: [BaseThemeSharedModule],
|
|
162
|
-
exports: [BaseThemeSharedModule],
|
|
163
|
-
}]
|
|
164
|
-
}] });
|
|
165
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3RoZW1lLXNoYXJlZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDaEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxlQUFlLEVBQXVCLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN6RixPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLHFCQUFxQixFQUNyQixxQkFBcUIsRUFDckIsd0JBQXdCLEVBQ3hCLDZCQUE2QixHQUM5QixNQUFNLG9CQUFvQixDQUFDO0FBQzVCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUN2RSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUNsRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0s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QixLQUFLLEVBQUUsSUFBSTtvQkFDWCxJQUFJLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztpQkFDbEM7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDOzsrR0FwRFUsaUJBQWlCO2dIQUFqQixpQkFBaUIsWUFOakIscUJBQXFCLGFBQXJCLHFCQUFxQjtnSEFNckIsaUJBQWlCLFlBSG5CLENBQUMscUJBQXFCLENBQUMsRUFIckIscUJBQXFCOzRGQU1yQixpQkFBaUI7a0JBSjdCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMscUJBQXFCLENBQUM7b0JBQ2hDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvcmVNb2R1bGUsIG5vb3AgfSBmcm9tICdAYWJwL25nLmNvcmUnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEFQUF9JTklUSUFMSVpFUiwgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiRGF0ZVBhcnNlckZvcm1hdHRlciwgTmdiUGFnaW5hdGlvbk1vZHVsZSB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHtcclxuICBkZWZhdWx0TWFwRXJyb3JzRm4sXHJcbiAgTmd4VmFsaWRhdGVDb3JlTW9kdWxlLFxyXG4gIFZBTElEQVRJT05fQkxVRVBSSU5UUyxcclxuICBWQUxJREFUSU9OX01BUF9FUlJPUlNfRk4sXHJcbiAgVkFMSURBVElPTl9WQUxJREFURV9PTl9TVUJNSVQsXHJcbn0gZnJvbSAnQG5neC12YWxpZGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgTmd4RGF0YXRhYmxlTW9kdWxlIH0gZnJvbSAnQHN3aW1sYW5lL25neC1kYXRhdGFibGUnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iSXRlbXNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYi1pdGVtcy9icmVhZGNydW1iLWl0ZW1zLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJyZWFkY3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYnJlYWRjcnVtYi9icmVhZGNydW1iLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IENvbmZpcm1hdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jb25maXJtYXRpb24vY29uZmlybWF0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEh0dHBFcnJvcldyYXBwZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvaHR0cC1lcnJvci13cmFwcGVyL2h0dHAtZXJyb3Itd3JhcHBlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMb2FkZXJCYXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGVyLWJhci9sb2FkZXItYmFyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbG9hZGluZy9sb2FkaW5nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1vZGFsQ2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwtY2xvc2UuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbW9kYWwvbW9kYWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVG9hc3RDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdG9hc3QtY29udGFpbmVyL3RvYXN0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUb2FzdENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy90b2FzdC90b2FzdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBERUZBVUxUX1ZBTElEQVRJT05fQkxVRVBSSU5UUyB9IGZyb20gJy4vY29uc3RhbnRzL3ZhbGlkYXRpb24nO1xyXG5pbXBvcnQgeyBFbGxpcHNpc01vZHVsZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9lbGxpcHNpcy5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMb2FkaW5nRGlyZWN0aXZlIH0gZnJvbSAnLi9kaXJlY3RpdmVzL2xvYWRpbmcuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uZ3gtZGF0YXRhYmxlLWRlZmF1bHQuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgTmd4RGF0YXRhYmxlTGlzdERpcmVjdGl2ZSB9IGZyb20gJy4vZGlyZWN0aXZlcy9uZ3gtZGF0YXRhYmxlLWxpc3QuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgRG9jdW1lbnREaXJIYW5kbGVyU2VydmljZSB9IGZyb20gJy4vaGFuZGxlcnMvZG9jdW1lbnQtZGlyLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBFcnJvckhhbmRsZXIgfSBmcm9tICcuL2hhbmRsZXJzL2Vycm9yLmhhbmRsZXInO1xyXG5pbXBvcnQgeyBSb290UGFyYW1zIH0gZnJvbSAnLi9tb2RlbHMvY29tbW9uJztcclxuaW1wb3J0IHsgTkdfQk9PVFNUUkFQX0NPTkZJR19QUk9WSURFUlMgfSBmcm9tICcuL3Byb3ZpZGVycyc7XHJcbmltcG9ydCB7IFRIRU1FX1NIQVJFRF9ST1VURV9QUk9WSURFUlMgfSBmcm9tICcuL3Byb3ZpZGVycy9yb3V0ZS5wcm92aWRlcic7XHJcbmltcG9ydCB7IFRIRU1FX1NIQVJFRF9BUFBFTkRfQ09OVEVOVCB9IGZyb20gJy4vdG9rZW5zL2FwcGVuZC1jb250ZW50LnRva2VuJztcclxuaW1wb3J0IHsgaHR0cEVycm9yQ29uZmlnRmFjdG9yeSwgSFRUUF9FUlJPUl9DT05GSUcgfSBmcm9tICcuL3Rva2Vucy9odHRwLWVycm9yLnRva2VuJztcclxuaW1wb3J0IHsgRGF0ZVBhcnNlckZvcm1hdHRlciB9IGZyb20gJy4vdXRpbHMvZGF0ZS1wYXJzZXItZm9ybWF0dGVyJztcclxuXHJcbmNvbnN0IGRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzID0gW1xyXG4gIEJyZWFkY3J1bWJDb21wb25lbnQsXHJcbiAgQnJlYWRjcnVtYkl0ZW1zQ29tcG9uZW50LFxyXG4gIEJ1dHRvbkNvbXBvbmVudCxcclxuICBDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgTG9hZGVyQmFyQ29tcG9uZW50LFxyXG4gIExvYWRpbmdDb21wb25lbnQsXHJcbiAgTW9kYWxDb21wb25lbnQsXHJcbiAgVG9hc3RDb21wb25lbnQsXHJcbiAgVG9hc3RDb250YWluZXJDb21wb25lbnQsXHJcbiAgTmd4RGF0YXRhYmxlRGVmYXVsdERpcmVjdGl2ZSxcclxuICBOZ3hEYXRhdGFibGVMaXN0RGlyZWN0aXZlLFxyXG4gIExvYWRpbmdEaXJlY3RpdmUsXHJcbiAgTW9kYWxDbG9zZURpcmVjdGl2ZSxcclxuXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29yZU1vZHVsZSxcclxuICAgIE5neERhdGF0YWJsZU1vZHVsZSxcclxuICAgIE5neFZhbGlkYXRlQ29yZU1vZHVsZSxcclxuICAgIE5nYlBhZ2luYXRpb25Nb2R1bGUsXHJcbiAgICBFbGxpcHNpc01vZHVsZSxcclxuICBdLFxyXG4gIGRlY2xhcmF0aW9uczogWy4uLmRlY2xhcmF0aW9uc1dpdGhFeHBvcnRzLCBIdHRwRXJyb3JXcmFwcGVyQ29tcG9uZW50XSxcclxuICBleHBvcnRzOiBbTmd4RGF0YXRhYmxlTW9kdWxlLCBFbGxpcHNpc01vZHVsZSwgLi4uZGVjbGFyYXRpb25zV2l0aEV4cG9ydHNdLFxyXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlXSxcclxuICBlbnRyeUNvbXBvbmVudHM6IFtcclxuICAgIEh0dHBFcnJvcldyYXBwZXJDb21wb25lbnQsXHJcbiAgICBMb2FkaW5nQ29tcG9uZW50LFxyXG4gICAgVG9hc3RDb250YWluZXJDb21wb25lbnQsXHJcbiAgICBDb25maXJtYXRpb25Db21wb25lbnQsXHJcbiAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEJhc2VUaGVtZVNoYXJlZE1vZHVsZSB7fVxyXG5cclxuQE5nTW9kdWxlKHtcclxuICBpbXBvcnRzOiBbQmFzZVRoZW1lU2hhcmVkTW9kdWxlXSxcclxuICBleHBvcnRzOiBbQmFzZVRoZW1lU2hhcmVkTW9kdWxlXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRoZW1lU2hhcmVkTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChcclxuICAgIHsgaHR0cEVycm9yQ29uZmlnLCB2YWxpZGF0aW9uID0ge30gfSA9IHt9IGFzIFJvb3RQYXJhbXMsXHJcbiAgKTogTW9kdWxlV2l0aFByb3ZpZGVyczxUaGVtZVNoYXJlZE1vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFRoZW1lU2hhcmVkTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBBUFBfSU5JVElBTElaRVIsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtFcnJvckhhbmRsZXJdLFxyXG4gICAgICAgICAgdXNlRmFjdG9yeTogbm9vcCxcclxuICAgICAgICB9LFxyXG4gICAgICAgIFRIRU1FX1NIQVJFRF9ST1VURV9QUk9WSURFUlMsXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogQVBQX0lOSVRJQUxJWkVSLFxyXG4gICAgICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgICAgICBkZXBzOiBbVEhFTUVfU0hBUkVEX0FQUEVORF9DT05URU5UXSxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEhUVFBfRVJST1JfQ09ORklHLCB1c2VWYWx1ZTogaHR0cEVycm9yQ29uZmlnIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogJ0hUVFBfRVJST1JfQ09ORklHJyxcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IGh0dHBFcnJvckNvbmZpZ0ZhY3RvcnksXHJcbiAgICAgICAgICBkZXBzOiBbSFRUUF9FUlJPUl9DT05GSUddLFxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyLCB1c2VDbGFzczogRGF0ZVBhcnNlckZvcm1hdHRlciB9LFxyXG4gICAgICAgIE5HX0JPT1RTVFJBUF9DT05GSUdfUFJPVklERVJTLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fQkxVRVBSSU5UUyxcclxuICAgICAgICAgIHVzZVZhbHVlOiB7XHJcbiAgICAgICAgICAgIC4uLkRFRkFVTFRfVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gICAgICAgICAgICAuLi4odmFsaWRhdGlvbi5ibHVlcHJpbnRzIHx8IHt9KSxcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBWQUxJREFUSU9OX01BUF9FUlJPUlNfRk4sXHJcbiAgICAgICAgICB1c2VWYWx1ZTogdmFsaWRhdGlvbi5tYXBFcnJvcnNGbiB8fCBkZWZhdWx0TWFwRXJyb3JzRm4sXHJcbiAgICAgICAgfSxcclxuICAgICAgICB7XHJcbiAgICAgICAgICBwcm92aWRlOiBWQUxJREFUSU9OX1ZBTElEQVRFX09OX1NVQk1JVCxcclxuICAgICAgICAgIHVzZVZhbHVlOiB2YWxpZGF0aW9uLnZhbGlkYXRlT25TdWJtaXQsXHJcbiAgICAgICAgfSxcclxuICAgICAgICBEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlLFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcclxuICAgICAgICAgIHVzZUZhY3Rvcnk6IG5vb3AsXHJcbiAgICAgICAgICBtdWx0aTogdHJ1ZSxcclxuICAgICAgICAgIGRlcHM6IFtEb2N1bWVudERpckhhbmRsZXJTZXJ2aWNlXSxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
export function httpErrorConfigFactory(config = {}) {
|
|
3
|
-
if (config.errorScreen && config.errorScreen.component && !config.errorScreen.forWhichErrors) {
|
|
4
|
-
config.errorScreen.forWhichErrors = [401, 403, 404, 500];
|
|
5
|
-
}
|
|
6
|
-
return Object.assign({ skipHandledErrorCodes: [], errorScreen: {} }, config);
|
|
7
|
-
}
|
|
8
|
-
export const HTTP_ERROR_CONFIG = new InjectionToken('HTTP_ERROR_CONFIG');
|
|
9
|
-
export const HTTP_ERROR_HANDLER = new InjectionToken('HTTP_ERROR_HANDLER');
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC1lcnJvci50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3RoZW1lLXNoYXJlZC9zcmMvbGliL3Rva2Vucy9odHRwLWVycm9yLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHL0MsTUFBTSxVQUFVLHNCQUFzQixDQUFDLFNBQVMsRUFBcUI7SUFDbkUsSUFBSSxNQUFNLENBQUMsV0FBVyxJQUFJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBUyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEVBQUU7UUFDNUYsTUFBTSxDQUFDLFdBQVcsQ0FBQyxjQUFjLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztLQUMxRDtJQUVELE9BQU8sZ0JBQ0wscUJBQXFCLEVBQUUsRUFBRSxFQUN6QixXQUFXLEVBQUUsRUFBRSxJQUNaLE1BQU0sQ0FDUyxDQUFDO0FBQ3ZCLENBQUM7QUFFRCxNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLGNBQWMsQ0FBa0IsbUJBQW1CLENBQUMsQ0FBQztBQUUxRixNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLGNBQWMsQ0FBbUIsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvckNvbmZpZywgSHR0cEVycm9ySGFuZGxlciB9IGZyb20gJy4uL21vZGVscy9jb21tb24nO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIGh0dHBFcnJvckNvbmZpZ0ZhY3RvcnkoY29uZmlnID0ge30gYXMgSHR0cEVycm9yQ29uZmlnKSB7XHJcbiAgaWYgKGNvbmZpZy5lcnJvclNjcmVlbiAmJiBjb25maWcuZXJyb3JTY3JlZW4uY29tcG9uZW50ICYmICFjb25maWcuZXJyb3JTY3JlZW4uZm9yV2hpY2hFcnJvcnMpIHtcclxuICAgIGNvbmZpZy5lcnJvclNjcmVlbi5mb3JXaGljaEVycm9ycyA9IFs0MDEsIDQwMywgNDA0LCA1MDBdO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHtcclxuICAgIHNraXBIYW5kbGVkRXJyb3JDb2RlczogW10sXHJcbiAgICBlcnJvclNjcmVlbjoge30sXHJcbiAgICAuLi5jb25maWcsXHJcbiAgfSBhcyBIdHRwRXJyb3JDb25maWc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBIVFRQX0VSUk9SX0NPTkZJRyA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdHRwRXJyb3JDb25maWc+KCdIVFRQX0VSUk9SX0NPTkZJRycpO1xyXG5cclxuZXhwb3J0IGNvbnN0IEhUVFBfRVJST1JfSEFORExFUiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIdHRwRXJyb3JIYW5kbGVyPignSFRUUF9FUlJPUl9IQU5ETEVSJyk7XHJcbiJdfQ==
|
|
@@ -1,43 +0,0 @@
|
|
|
1
|
-
import { BaseThemeSharedModule, DateParserFormatter, DEFAULT_VALIDATION_BLUEPRINTS, THEME_SHARED_ROUTE_PROVIDERS, } from '@abp/ng.theme.shared';
|
|
2
|
-
import { NgModule } from '@angular/core';
|
|
3
|
-
import { RouterTestingModule } from '@angular/router/testing';
|
|
4
|
-
import { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';
|
|
5
|
-
import { defaultMapErrorsFn, VALIDATION_BLUEPRINTS, VALIDATION_MAP_ERRORS_FN, VALIDATION_VALIDATE_ON_SUBMIT, } from '@ngx-validate/core';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
/**
|
|
8
|
-
* ThemeSharedTestingModule is the module that will be used in tests
|
|
9
|
-
*/
|
|
10
|
-
export class ThemeSharedTestingModule {
|
|
11
|
-
static withConfig({ validation = {} } = {}) {
|
|
12
|
-
return {
|
|
13
|
-
ngModule: ThemeSharedTestingModule,
|
|
14
|
-
providers: [
|
|
15
|
-
THEME_SHARED_ROUTE_PROVIDERS,
|
|
16
|
-
{ provide: NgbDateParserFormatter, useClass: DateParserFormatter },
|
|
17
|
-
{
|
|
18
|
-
provide: VALIDATION_BLUEPRINTS,
|
|
19
|
-
useValue: Object.assign(Object.assign({}, DEFAULT_VALIDATION_BLUEPRINTS), (validation.blueprints || {})),
|
|
20
|
-
},
|
|
21
|
-
{
|
|
22
|
-
provide: VALIDATION_MAP_ERRORS_FN,
|
|
23
|
-
useValue: validation.mapErrorsFn || defaultMapErrorsFn,
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
provide: VALIDATION_VALIDATE_ON_SUBMIT,
|
|
27
|
-
useValue: validation.validateOnSubmit,
|
|
28
|
-
},
|
|
29
|
-
],
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
ThemeSharedTestingModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedTestingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
34
|
-
ThemeSharedTestingModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedTestingModule, imports: [RouterTestingModule, BaseThemeSharedModule], exports: [RouterTestingModule, BaseThemeSharedModule] });
|
|
35
|
-
ThemeSharedTestingModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedTestingModule, imports: [[RouterTestingModule, BaseThemeSharedModule], RouterTestingModule, BaseThemeSharedModule] });
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: ThemeSharedTestingModule, decorators: [{
|
|
37
|
-
type: NgModule,
|
|
38
|
-
args: [{
|
|
39
|
-
exports: [RouterTestingModule, BaseThemeSharedModule],
|
|
40
|
-
imports: [RouterTestingModule, BaseThemeSharedModule],
|
|
41
|
-
}]
|
|
42
|
-
}] });
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGhlbWUtc2hhcmVkLXRlc3RpbmcubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvdGhlbWUtc2hhcmVkL3Rlc3Rpbmcvc3JjL2xpYi90aGVtZS1zaGFyZWQtdGVzdGluZy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLHFCQUFxQixFQUNyQixtQkFBbUIsRUFDbkIsNkJBQTZCLEVBQzdCLDRCQUE0QixHQUM3QixNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBdUIsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlELE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3BFLE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIscUJBQXFCLEVBQ3JCLHdCQUF3QixFQUN4Qiw2QkFBNkIsR0FDOUIsTUFBTSxvQkFBb0IsQ0FBQzs7QUFHNUI7O0dBRUc7QUFLSCxNQUFNLE9BQU8sd0JBQXdCO0lBQ25DLE1BQU0sQ0FBQyxVQUFVLENBQ2YsRUFBRSxVQUFVLEdBQUcsRUFBRSxLQUFLLEVBQVk7UUFFbEMsT0FBTztZQUNMLFFBQVEsRUFBRSx3QkFBd0I7WUFDbEMsU0FBUyxFQUFFO2dCQUNULDRCQUE0QjtnQkFDNUIsRUFBRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixFQUFFO2dCQUNsRTtvQkFDRSxPQUFPLEVBQUUscUJBQXFCO29CQUM5QixRQUFRLGtDQUNILDZCQUE2QixHQUM3QixDQUFDLFVBQVUsQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDLENBQ2pDO2lCQUNGO2dCQUNEO29CQUNFLE9BQU8sRUFBRSx3QkFBd0I7b0JBQ2pDLFFBQVEsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLGtCQUFrQjtpQkFDdkQ7Z0JBQ0Q7b0JBQ0UsT0FBTyxFQUFFLDZCQUE2QjtvQkFDdEMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxnQkFBZ0I7aUJBQ3RDO2FBQ0Y7U0FDRixDQUFDO0lBQ0osQ0FBQzs7c0hBMUJVLHdCQUF3Qjt1SEFBeEIsd0JBQXdCLFlBRnpCLG1CQUFtQixFQUFFLHFCQUFxQixhQUQxQyxtQkFBbUIsRUFBRSxxQkFBcUI7dUhBR3pDLHdCQUF3QixZQUYxQixDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDLEVBRDNDLG1CQUFtQixFQUFFLHFCQUFxQjs0RkFHekMsd0JBQXdCO2tCQUpwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLG1CQUFtQixFQUFFLHFCQUFxQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsQ0FBQztpQkFDdEQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEJhc2VUaGVtZVNoYXJlZE1vZHVsZSxcclxuICBEYXRlUGFyc2VyRm9ybWF0dGVyLFxyXG4gIERFRkFVTFRfVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gIFRIRU1FX1NIQVJFRF9ST1VURV9QUk9WSURFUlMsXHJcbn0gZnJvbSAnQGFicC9uZy50aGVtZS5zaGFyZWQnO1xyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXJUZXN0aW5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyL3Rlc3RpbmcnO1xyXG5pbXBvcnQgeyBOZ2JEYXRlUGFyc2VyRm9ybWF0dGVyIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQge1xyXG4gIGRlZmF1bHRNYXBFcnJvcnNGbixcclxuICBWQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgVkFMSURBVElPTl9NQVBfRVJST1JTX0ZOLFxyXG4gIFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG59IGZyb20gJ0BuZ3gtdmFsaWRhdGUvY29yZSc7XHJcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJy4vbW9kZWxzL2NvbmZpZyc7XHJcblxyXG4vKipcclxuICogVGhlbWVTaGFyZWRUZXN0aW5nTW9kdWxlIGlzIHRoZSBtb2R1bGUgdGhhdCB3aWxsIGJlIHVzZWQgaW4gdGVzdHNcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW1JvdXRlclRlc3RpbmdNb2R1bGUsIEJhc2VUaGVtZVNoYXJlZE1vZHVsZV0sXHJcbiAgaW1wb3J0czogW1JvdXRlclRlc3RpbmdNb2R1bGUsIEJhc2VUaGVtZVNoYXJlZE1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaGVtZVNoYXJlZFRlc3RpbmdNb2R1bGUge1xyXG4gIHN0YXRpYyB3aXRoQ29uZmlnKFxyXG4gICAgeyB2YWxpZGF0aW9uID0ge30gfSA9IHt9IGFzIENvbmZpZyxcclxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPFRoZW1lU2hhcmVkVGVzdGluZ01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IFRoZW1lU2hhcmVkVGVzdGluZ01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgVEhFTUVfU0hBUkVEX1JPVVRFX1BST1ZJREVSUyxcclxuICAgICAgICB7IHByb3ZpZGU6IE5nYkRhdGVQYXJzZXJGb3JtYXR0ZXIsIHVzZUNsYXNzOiBEYXRlUGFyc2VyRm9ybWF0dGVyIH0sXHJcbiAgICAgICAge1xyXG4gICAgICAgICAgcHJvdmlkZTogVkFMSURBVElPTl9CTFVFUFJJTlRTLFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHtcclxuICAgICAgICAgICAgLi4uREVGQVVMVF9WQUxJREFUSU9OX0JMVUVQUklOVFMsXHJcbiAgICAgICAgICAgIC4uLih2YWxpZGF0aW9uLmJsdWVwcmludHMgfHwge30pLFxyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fTUFQX0VSUk9SU19GTixcclxuICAgICAgICAgIHVzZVZhbHVlOiB2YWxpZGF0aW9uLm1hcEVycm9yc0ZuIHx8IGRlZmF1bHRNYXBFcnJvcnNGbixcclxuICAgICAgICB9LFxyXG4gICAgICAgIHtcclxuICAgICAgICAgIHByb3ZpZGU6IFZBTElEQVRJT05fVkFMSURBVEVfT05fU1VCTUlULFxyXG4gICAgICAgICAgdXNlVmFsdWU6IHZhbGlkYXRpb24udmFsaWRhdGVPblN1Ym1pdCxcclxuICAgICAgICB9LFxyXG4gICAgICBdLFxyXG4gICAgfTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.theme.shared-extensions.js","sources":["../../../../packages/theme-shared/extensions/src/lib/adapters/date-time.adapter.ts","../../../../packages/theme-shared/extensions/src/lib/adapters/date.adapter.ts","../../../../packages/theme-shared/extensions/src/lib/adapters/time.adapter.ts","../../../../packages/theme-shared/extensions/src/lib/models/props.ts","../../../../packages/theme-shared/extensions/src/lib/models/form-props.ts","../../../../packages/theme-shared/extensions/src/lib/utils/factory.util.ts","../../../../packages/theme-shared/extensions/src/lib/components/date-time-picker/date-time-picker.component.ts","../../../../packages/theme-shared/extensions/src/lib/constants/extra-properties.ts","../../../../packages/theme-shared/extensions/src/lib/utils/typeahead.util.ts","../../../../packages/theme-shared/extensions/src/lib/directives/disabled.directive.ts","../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form-prop.component.html","../../../../packages/theme-shared/extensions/src/lib/models/actions.ts","../../../../packages/theme-shared/extensions/src/lib/models/entity-actions.ts","../../../../packages/theme-shared/extensions/src/lib/models/entity-props.ts","../../../../packages/theme-shared/extensions/src/lib/models/toolbar-actions.ts","../../../../packages/theme-shared/extensions/src/lib/services/extensions.service.ts","../../../../packages/theme-shared/extensions/src/lib/tokens/extensions.token.ts","../../../../packages/theme-shared/extensions/src/lib/directives/prop-data.directive.ts","../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/extensible-form/extensible-form.component.html","../../../../packages/theme-shared/extensions/src/lib/components/abstract-actions/abstract-actions.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/grid-actions/grid-actions.component.html","../../../../packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/extensible-table/extensible-table.component.html","../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.ts","../../../../packages/theme-shared/extensions/src/lib/components/page-toolbar/page-toolbar.component.html","../../../../packages/theme-shared/extensions/src/lib/ui-extensions.module.ts","../../../../packages/theme-shared/extensions/src/lib/utils/actions.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/form-props.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/props.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/enum.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/localization.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/validation.util.ts","../../../../packages/theme-shared/extensions/src/lib/utils/state.util.ts","../../../../packages/theme-shared/extensions/src/abp-ng.theme.shared-extensions.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { NgbDateStruct, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateTimeAdapter {\r\n value!: NgbDateTimeStruct;\r\n\r\n fromModel(value: string | Date): NgbDateTimeStruct | null {\r\n if (!value) return null;\r\n\r\n const date = new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n this.value = {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n\r\n return this.value;\r\n }\r\n\r\n toModel(value: NgbDateTimeStruct | null): string {\r\n if (!value) return '';\r\n\r\n //const now = new Date();\r\n\r\n value = {\r\n // TODO\r\n /* year: now.getUTCFullYear(),\r\n month: now.getMonth() + 1,\r\n day: now.getDate(),\r\n hour: 0,\r\n minute: 0,\r\n second: 0, */\r\n ...this.value,\r\n ...value,\r\n };\r\n\r\n const date = new Date(\r\n value.year,\r\n value.month - 1,\r\n value.day,\r\n value.hour,\r\n value.minute,\r\n value.second,\r\n );\r\n\r\n return new Date(date).toISOString();\r\n }\r\n}\r\n\r\ntype NgbDateTimeStruct = NgbDateStruct & NgbTimeStruct;\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDateAdapter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class DateAdapter extends NgbDateAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbDateStruct | null {\r\n if (!value) return null;\r\n\r\n let date: Date;\r\n\r\n if (typeof value === 'string') {\r\n date = this.dateOf(value);\r\n } else {\r\n date = new Date(value);\r\n }\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n day: date.getDate(),\r\n month: date.getMonth() + 1,\r\n year: date.getFullYear(),\r\n };\r\n }\r\n\r\n toModel(value: NgbDateStruct | null): string {\r\n if (!value) return '';\r\n\r\n const date = new Date(value.year, value.month - 1, value.day);\r\n const formattedDate = formatDate(date, 'yyyy-MM-dd', 'en');\r\n\r\n return formattedDate;\r\n }\r\n\r\n protected dateOf(value: string): Date {\r\n const dateUtc = new Date(Date.parse(value));\r\n return new Date(dateUtc.getTime() + Math.abs(dateUtc.getTimezoneOffset() * 60000));\r\n }\r\n}\r\n","import { formatDate } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbTimeAdapter, NgbTimeStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable()\r\nexport class TimeAdapter extends NgbTimeAdapter<string | Date> {\r\n fromModel(value: string | Date): NgbTimeStruct | null {\r\n if (!value) return null;\r\n\r\n const date = isTimeStr(value)\r\n ? new Date(0, 0, 1, ...value.split(':').map(Number))\r\n : new Date(value);\r\n\r\n if (isNaN(date as unknown as number)) return null;\r\n\r\n return {\r\n hour: date.getHours(),\r\n minute: date.getMinutes(),\r\n second: date.getSeconds(),\r\n };\r\n }\r\n\r\n toModel(value: NgbTimeStruct | null): string {\r\n if (!value) return '';\r\n\r\n const date = new Date(0, 0, 1, value.hour, value.minute, value.second);\r\n const formattedDate = formatDate(date, 'HH:mm', 'en');\r\n\r\n return formattedDate;\r\n }\r\n}\r\n\r\nfunction isTimeStr(value: string | Date): value is string {\r\n return /^((2[123])|[01][0-9])(\\:[0-5][0-9]){1,2}$/.test(String(value));\r\n}\r\n","import { LinkedList } from '@abp/utils';\r\nimport { InjectFlags, InjectionToken, Type } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\nimport { ePropType } from '../enums/props.enum';\r\n\r\nexport abstract class PropList<R = any, A = Prop<R>> extends LinkedList<A> {}\r\n\r\nexport abstract class PropData<R = any> {\r\n abstract getInjected: <T>(\r\n token: Type<T> | InjectionToken<T>,\r\n notFoundValue?: T,\r\n flags?: InjectFlags,\r\n ) => T;\r\n index?: number;\r\n abstract record: R;\r\n\r\n get data(): ReadonlyPropData<R> {\r\n return {\r\n getInjected: this.getInjected,\r\n index: this.index,\r\n record: this.record,\r\n };\r\n }\r\n}\r\n\r\nexport type ReadonlyPropData<R = any> = O.Readonly<Omit<PropData<R>, 'data'>>;\r\n\r\nexport abstract class Prop<R = any> {\r\n constructor(\r\n public readonly type: ePropType,\r\n public readonly name: string,\r\n public readonly displayName: string,\r\n public readonly permission: string,\r\n public readonly visible: PropPredicate<R> = _ => true,\r\n public readonly isExtra = false,\r\n ) {\r\n this.displayName = this.displayName || this.name;\r\n }\r\n}\r\n\r\nexport type PropCallback<T, R = any> = (data: Omit<PropData<T>, 'data'>, auxData?: any) => R;\r\nexport type PropPredicate<T> = (data?: Omit<PropData<T>, 'data'>, auxData?: any) => boolean;\r\n\r\nexport abstract class PropsFactory<C extends Props<any>> {\r\n protected abstract _ctor: Type<C>;\r\n private contributorCallbacks: PropContributorCallbacks<InferredPropList<C>> = {};\r\n\r\n get(name: string): C {\r\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\r\n\r\n return new this._ctor(this.contributorCallbacks[name]);\r\n }\r\n}\r\n\r\nexport abstract class Props<L extends PropList> {\r\n protected abstract _ctor: Type<L>;\r\n\r\n get props(): L {\r\n const propList = new this._ctor();\r\n\r\n this.callbackList.forEach(callback => callback(propList));\r\n\r\n return propList;\r\n }\r\n\r\n constructor(private readonly callbackList: PropContributorCallback<L>[]) {}\r\n\r\n addContributor(contributeCallback: PropContributorCallback<L>) {\r\n this.callbackList.push(contributeCallback);\r\n }\r\n\r\n clearContributors() {\r\n while (this.callbackList.length) this.callbackList.pop();\r\n }\r\n}\r\n\r\nexport type PropContributorCallbacks<L extends PropList<any>> = Record<\r\n string,\r\n PropContributorCallback<L>[]\r\n>;\r\n\r\nexport type PropContributorCallback<L extends PropList<any>> = (propList: L) => any;\r\n\r\ntype InferredPropList<C> = C extends Props<infer L> ? L : never;\r\n","import { ABP } from '@abp/ng.core';\r\nimport { Injector, Type } from '@angular/core';\r\nimport { AsyncValidatorFn, ValidatorFn } from '@angular/forms';\r\nimport { Observable } from 'rxjs';\r\nimport { O } from 'ts-toolbelt';\r\nimport {\r\n Prop,\r\n PropCallback,\r\n PropContributorCallback,\r\n PropContributorCallbacks,\r\n PropData,\r\n PropList,\r\n PropPredicate,\r\n Props,\r\n PropsFactory,\r\n} from './props';\r\n\r\nexport class FormPropList<R = any> extends PropList<R, FormProp<R>> {}\r\n\r\nexport class FormProps<R = any> extends Props<FormPropList<R>> {\r\n protected _ctor: Type<FormPropList<R>> = FormPropList;\r\n}\r\n\r\nexport class CreateFormPropsFactory<R = any> extends PropsFactory<FormProps<R>> {\r\n protected _ctor: Type<FormProps<R>> = FormProps;\r\n}\r\n\r\nexport class EditFormPropsFactory<R = any> extends PropsFactory<FormProps<R>> {\r\n protected _ctor: Type<FormProps<R>> = FormProps;\r\n}\r\n\r\nexport class FormProp<R = any> extends Prop<R> {\r\n readonly validators: PropCallback<R, ValidatorFn[]>;\r\n readonly asyncValidators: PropCallback<R, AsyncValidatorFn[]>;\r\n readonly disabled: PropPredicate<R>;\r\n readonly readonly: PropPredicate<R>;\r\n readonly autocomplete: string;\r\n readonly defaultValue: boolean | number | string | Date;\r\n readonly options: PropCallback<R, Observable<ABP.Option<any>[]>> | undefined;\r\n readonly id: string | undefined;\r\n\r\n constructor(options: FormPropOptions<R>) {\r\n super(\r\n options.type,\r\n options.name,\r\n options.displayName,\r\n options.permission,\r\n options.visible,\r\n options.isExtra,\r\n );\r\n\r\n this.asyncValidators = options.asyncValidators || (_ => []);\r\n this.validators = options.validators || (_ => []);\r\n this.disabled = options.disabled || (_ => false);\r\n this.readonly = options.readonly || (_ => false);\r\n this.autocomplete = options.autocomplete || 'off';\r\n this.options = options.options;\r\n this.id = options.id || options.name;\r\n const defaultValue = options.defaultValue;\r\n this.defaultValue = isFalsyValue(defaultValue) ? defaultValue : defaultValue || null;\r\n }\r\n\r\n static create<R = any>(options: FormPropOptions<R>) {\r\n return new FormProp<R>(options);\r\n }\r\n\r\n static createMany<R = any>(arrayOfOptions: FormPropOptions<R>[]) {\r\n return arrayOfOptions.map(FormProp.create);\r\n }\r\n}\r\n\r\nexport class FormPropData<R = any> extends PropData<R> {\r\n getInjected: PropData<R>['getInjected'];\r\n\r\n constructor(injector: Injector, public readonly record: R) {\r\n super();\r\n\r\n this.getInjected = injector.get.bind(injector);\r\n }\r\n}\r\n\r\nexport type FormPropOptions<R = any> = O.Optional<\r\n O.Writable<FormProp<R>>,\r\n | 'permission'\r\n | 'visible'\r\n | 'displayName'\r\n | 'isExtra'\r\n | 'validators'\r\n | 'asyncValidators'\r\n | 'disabled'\r\n | 'readonly'\r\n | 'autocomplete'\r\n | 'defaultValue'\r\n | 'options'\r\n | 'id'\r\n>;\r\n\r\nexport type CreateFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;\r\nexport type CreateFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>;\r\nexport type CreateFormPropContributorCallbacks<R = any> = PropContributorCallbacks<FormPropList<R>>;\r\nexport type EditFormPropDefaults<R = any> = Record<string, FormProp<R>[]>;\r\nexport type EditFormPropContributorCallback<R = any> = PropContributorCallback<FormPropList<R>>;\r\nexport type EditFormPropContributorCallbacks<R = any> = PropContributorCallbacks<FormPropList<R>>;\r\n\r\nfunction isFalsyValue(defaultValue: FormProp['defaultValue']): boolean {\r\n return [0, '', false].indexOf(defaultValue as any) > -1;\r\n}\r\n","export function selfFactory(dependency?: any) {\r\n return dependency;\r\n}\r\n","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n Optional,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ControlContainer } from '@angular/forms';\r\nimport {\r\n NgbDateAdapter,\r\n NgbInputDatepicker,\r\n NgbTimeAdapter,\r\n NgbTimepicker,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { DateTimeAdapter } from '../../adapters/date-time.adapter';\r\nimport { FormProp } from '../../models/form-props';\r\nimport { selfFactory } from '../../utils/factory.util';\r\n\r\n@Component({\r\n exportAs: 'abpDateTimePicker',\r\n selector: 'abp-date-time-picker',\r\n template: `\r\n <input\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n (ngModelChange)=\"setTime($event)\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n <ngb-timepicker\r\n #timepicker\r\n [formControlName]=\"prop.name\"\r\n (ngModelChange)=\"setDate($event)\"\r\n [meridian]=\"meridian\"\r\n ></ngb-timepicker>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n viewProviders: [\r\n {\r\n provide: ControlContainer,\r\n useFactory: selfFactory,\r\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\r\n },\r\n {\r\n provide: NgbDateAdapter,\r\n useClass: DateTimeAdapter,\r\n },\r\n {\r\n provide: NgbTimeAdapter,\r\n useClass: DateTimeAdapter,\r\n },\r\n ],\r\n})\r\nexport class DateTimePickerComponent {\r\n @Input() prop!: FormProp;\r\n @Input() meridian = false;\r\n\r\n @ViewChild(NgbInputDatepicker) date!: NgbInputDatepicker;\r\n @ViewChild(NgbTimepicker) time!: NgbTimepicker;\r\n\r\n constructor(public readonly cdRef: ChangeDetectorRef) {}\r\n\r\n setDate(datestr: string) {\r\n this.date.writeValue(datestr);\r\n }\r\n\r\n setTime(datestr: string) {\r\n this.time.writeValue(datestr);\r\n }\r\n}\r\n","export const EXTRA_PROPERTIES_KEY = 'extraProperties';\r\n","import { ABP, ExtensionPropertyUiLookupDto, RestService } from '@abp/ng.core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ePropType } from '../enums/props.enum';\r\nimport { ObjectExtensions } from '../models/object-extensions';\r\nimport { PropCallback } from '../models/props';\r\n\r\nconst TYPEAHEAD_TEXT_SUFFIX = '_Text';\r\nconst TYPEAHEAD_TEXT_SUFFIX_REGEX = /_Text$/;\r\n\r\nexport function createTypeaheadOptions(\r\n lookup: ExtensionPropertyUiLookupDto,\r\n): PropCallback<any, Observable<ABP.Option<any>[]>> {\r\n return (data, searchText) =>\r\n searchText && data\r\n ? data\r\n .getInjected(RestService)\r\n .request(\r\n {\r\n method: 'GET',\r\n url: lookup.url || '',\r\n params: {\r\n [lookup.filterParamName || '']: searchText,\r\n },\r\n },\r\n { apiName: 'Default' },\r\n )\r\n .pipe(\r\n map((response: any) => {\r\n const list = response[lookup.resultListPropertyName || ''];\r\n const mapToOption = (item: any) => ({\r\n key: item[lookup.displayPropertyName || ''],\r\n value: item[lookup.valuePropertyName || ''],\r\n });\r\n return list.map(mapToOption);\r\n }),\r\n )\r\n : of([]);\r\n}\r\n\r\nexport function getTypeaheadType(lookup: ExtensionPropertyUiLookupDto, name: string) {\r\n return Boolean(lookup.url)\r\n ? ePropType.Typeahead\r\n : name.endsWith(TYPEAHEAD_TEXT_SUFFIX)\r\n ? ePropType.Hidden\r\n : undefined;\r\n}\r\n\r\nexport function createTypeaheadDisplayNameGenerator(\r\n displayNameGeneratorFn: ObjectExtensions.DisplayNameGeneratorFn,\r\n properties: ObjectExtensions.EntityExtensionProperties,\r\n): ObjectExtensions.DisplayNameGeneratorFn {\r\n return (displayName, fallback) => {\r\n const name = removeTypeaheadTextSuffix(fallback.name || '');\r\n return displayNameGeneratorFn(displayName || properties[name].displayName, {\r\n name,\r\n resource: fallback.resource,\r\n });\r\n };\r\n}\r\n\r\nexport function addTypeaheadTextSuffix(name: string) {\r\n return name + TYPEAHEAD_TEXT_SUFFIX;\r\n}\r\n\r\nexport function hasTypeaheadTextSuffix(name: string) {\r\n return TYPEAHEAD_TEXT_SUFFIX_REGEX.test(name);\r\n}\r\n\r\nexport function removeTypeaheadTextSuffix(name: string) {\r\n return name.replace(TYPEAHEAD_TEXT_SUFFIX_REGEX, '');\r\n}\r\n","import { Directive, Host, Input, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { NgControl } from '@angular/forms';\r\n\r\n@Directive({\r\n selector: '[abpDisabled]',\r\n})\r\nexport class DisabledDirective implements OnChanges {\r\n @Input()\r\n abpDisabled = false;\r\n\r\n constructor(@Host() private ngControl: NgControl) {}\r\n\r\n // Related issue: https://github.com/angular/angular/issues/35330\r\n ngOnChanges({ abpDisabled }: SimpleChanges) {\r\n if (this.ngControl.control && abpDisabled) {\r\n this.ngControl.control[abpDisabled.currentValue ? 'disable' : 'enable']();\r\n }\r\n }\r\n}\r\n","import { ABP, AbpValidators, ConfigStateService, TrackByService } from '@abp/ng.core';\r\nimport {\r\n AfterViewInit,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnChanges,\r\n Optional,\r\n SimpleChanges,\r\n SkipSelf,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport {\r\n ControlContainer,\r\n FormGroup,\r\n FormGroupDirective,\r\n ValidatorFn,\r\n Validators,\r\n} from '@angular/forms';\r\nimport { NgbDateAdapter, NgbTimeAdapter } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Observable, of } from 'rxjs';\r\nimport { debounceTime, distinctUntilChanged, switchMap } from 'rxjs/operators';\r\nimport { DateAdapter } from '../../adapters/date.adapter';\r\nimport { TimeAdapter } from '../../adapters/time.adapter';\r\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\r\nimport { ePropType } from '../../enums/props.enum';\r\nimport { FormProp } from '../../models/form-props';\r\nimport { PropData } from '../../models/props';\r\nimport { selfFactory } from '../../utils/factory.util';\r\nimport { addTypeaheadTextSuffix } from '../../utils/typeahead.util';\r\n\r\n@Component({\r\n selector: 'abp-extensible-form-prop',\r\n templateUrl: './extensible-form-prop.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n viewProviders: [\r\n {\r\n provide: ControlContainer,\r\n useFactory: selfFactory,\r\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\r\n },\r\n { provide: NgbDateAdapter, useClass: DateAdapter },\r\n { provide: NgbTimeAdapter, useClass: TimeAdapter },\r\n ],\r\n})\r\nexport class ExtensibleFormPropComponent implements OnChanges, AfterViewInit {\r\n @Input() data!: PropData;\r\n\r\n @Input() prop!: FormProp;\r\n\r\n @Input() first?: boolean;\r\n\r\n @ViewChild('field') private fieldRef!: ElementRef<HTMLElement>;\r\n\r\n asterisk = '';\r\n\r\n options$: Observable<ABP.Option<any>[]> = of([]);\r\n\r\n validators: ValidatorFn[] = [];\r\n\r\n readonly!: boolean;\r\n\r\n disabled!: boolean;\r\n\r\n private readonly form: FormGroup;\r\n\r\n typeaheadModel: any;\r\n\r\n setTypeaheadValue(selectedOption: ABP.Option<string>) {\r\n this.typeaheadModel = selectedOption || { key: null, value: null };\r\n const { key, value } = this.typeaheadModel;\r\n const [keyControl, valueControl] = this.getTypeaheadControls();\r\n if (valueControl?.value && !value) valueControl.markAsDirty();\r\n keyControl?.setValue(key);\r\n valueControl?.setValue(value);\r\n }\r\n\r\n search = (text$: Observable<string>) =>\r\n text$\r\n ? text$.pipe(\r\n debounceTime(300),\r\n distinctUntilChanged(),\r\n switchMap(text => this.prop.options(this.data, text)),\r\n )\r\n : of([]);\r\n\r\n typeaheadFormatter = (option: ABP.Option<any>) => option.key;\r\n\r\n get meridian() {\r\n return (\r\n this.configState.getDeep('localization.currentCulture.dateTimeFormat.shortTimePattern') || ''\r\n ).includes('tt');\r\n }\r\n\r\n get isInvalid() {\r\n const control = this.form.get(this.prop.name);\r\n return control.touched && control.invalid;\r\n }\r\n\r\n constructor(\r\n public readonly cdRef: ChangeDetectorRef,\r\n public readonly track: TrackByService,\r\n protected configState: ConfigStateService,\r\n groupDirective: FormGroupDirective,\r\n ) {\r\n this.form = groupDirective.form;\r\n }\r\n\r\n private getTypeaheadControls() {\r\n const { name } = this.prop;\r\n const extraPropName = `${EXTRA_PROPERTIES_KEY}.${name}`;\r\n const keyControl =\r\n this.form.get(addTypeaheadTextSuffix(extraPropName)) ||\r\n this.form.get(addTypeaheadTextSuffix(name));\r\n const valueControl = this.form.get(extraPropName) || this.form.get(name);\r\n return [keyControl, valueControl];\r\n }\r\n\r\n private setAsterisk() {\r\n this.asterisk = this.validators.some(isRequired) ? '*' : '';\r\n }\r\n\r\n ngAfterViewInit() {\r\n if (this.first && this.fieldRef) {\r\n this.fieldRef.nativeElement.focus();\r\n }\r\n }\r\n\r\n getComponent(prop: FormProp): string {\r\n switch (prop.type) {\r\n case ePropType.Boolean:\r\n return 'checkbox';\r\n case ePropType.Date:\r\n return 'date';\r\n case ePropType.DateTime:\r\n return 'dateTime';\r\n case ePropType.Hidden:\r\n return 'hidden';\r\n case ePropType.MultiSelect:\r\n return 'multiselect';\r\n case ePropType.Text:\r\n return 'textarea';\r\n case ePropType.Time:\r\n return 'time';\r\n case ePropType.Typeahead:\r\n return 'typeahead';\r\n default:\r\n return prop.options ? 'select' : 'input';\r\n }\r\n }\r\n\r\n getType(prop: FormProp): string {\r\n switch (prop.type) {\r\n case ePropType.Date:\r\n case ePropType.String:\r\n return 'text';\r\n case ePropType.Boolean:\r\n return 'checkbox';\r\n case ePropType.Number:\r\n return 'number';\r\n case ePropType.Email:\r\n return 'email';\r\n case ePropType.Password:\r\n return 'password';\r\n default:\r\n return 'hidden';\r\n }\r\n }\r\n\r\n ngOnChanges({ prop }: SimpleChanges) {\r\n const currentProp = prop?.currentValue;\r\n const { options, readonly, disabled, validators } = currentProp || {};\r\n\r\n if (options) this.options$ = options(this.data);\r\n if (readonly) this.readonly = readonly(this.data);\r\n if (disabled) this.disabled = disabled(this.data);\r\n if (validators) {\r\n this.validators = validators(this.data);\r\n this.setAsterisk();\r\n }\r\n\r\n const [keyControl, valueControl] = this.getTypeaheadControls();\r\n if (keyControl && valueControl)\r\n this.typeaheadModel = { key: keyControl.value, value: valueControl.value };\r\n }\r\n}\r\n\r\nfunction isRequired(validator: ValidatorFn) {\r\n return validator === Validators.required || validator === AbpValidators.required;\r\n}\r\n","<div class=\"mb-3 form-group\" *abpPermission=\"prop.permission\" [ngSwitch]=\"getComponent(prop)\">\r\n <ng-template ngSwitchCase=\"input\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [type]=\"getType(prop)\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"hidden\">\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"checkbox\">\r\n <div class=\"form-check\" validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n />\r\n <ng-template\r\n [ngTemplateOutlet]=\"label\"\r\n [ngTemplateOutletContext]=\"{ $implicit: 'form-check-label' }\"\r\n ></ng-template>\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"select\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"multiselect\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <select\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n multiple=\"multiple\"\r\n class=\"form-select form-control\"\r\n >\r\n <option\r\n *ngFor=\"let option of options$ | async; trackBy: track.by('value')\"\r\n [ngValue]=\"option.value\"\r\n >\r\n {{ option.key }}\r\n </option>\r\n </select>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"typeahead\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <div #typeahead class=\"position-relative\" validationStyle validationTarget>\r\n <input\r\n #field\r\n [id]=\"prop.id\"\r\n [autocomplete]=\"prop.autocomplete\"\r\n [abpDisabled]=\"disabled\"\r\n [ngbTypeahead]=\"search\"\r\n [editable]=\"false\"\r\n [inputFormatter]=\"typeaheadFormatter\"\r\n [resultFormatter]=\"typeaheadFormatter\"\r\n [ngModelOptions]=\"{ standalone: true }\"\r\n [(ngModel)]=\"typeaheadModel\"\r\n (selectItem)=\"setTypeaheadValue($event.item)\"\r\n (blur)=\"setTypeaheadValue(typeaheadModel)\"\r\n [class.is-invalid]=\"typeahead.classList.contains('is-invalid')\"\r\n class=\"form-control\"\r\n />\r\n <input [formControlName]=\"prop.name\" type=\"hidden\" />\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"date\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <input\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n (click)=\"datepicker.open()\"\r\n (keyup.space)=\"datepicker.open()\"\r\n ngbDatepicker\r\n #datepicker=\"ngbDatepicker\"\r\n type=\"text\"\r\n class=\"form-control\"\r\n />\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"time\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <ngb-timepicker [formControlName]=\"prop.name\"></ngb-timepicker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"dateTime\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <abp-date-time-picker [prop]=\"prop\" [meridian]=\"meridian\"></abp-date-time-picker>\r\n </ng-template>\r\n\r\n <ng-template ngSwitchCase=\"textarea\">\r\n <ng-template [ngTemplateOutlet]=\"label\"></ng-template>\r\n <textarea\r\n #field\r\n [id]=\"prop.id\"\r\n [formControlName]=\"prop.name\"\r\n [abpDisabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n class=\"form-control\"\r\n ></textarea>\r\n </ng-template>\r\n</div>\r\n\r\n<ng-template #label let-classes>\r\n <label [htmlFor]=\"prop.id\" [ngClass]=\"classes || 'form-label'\"\r\n >{{ prop.displayName | abpLocalization }} {{ asterisk }}</label\r\n >\r\n</ng-template>\r\n","import { LinkedList } from '@abp/utils';\r\nimport { InjectFlags, InjectionToken, Type } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\n\r\nexport abstract class ActionList<R = any, A = Action<R>> extends LinkedList<A> {}\r\n\r\nexport abstract class ActionData<R = any> {\r\n abstract getInjected: <T>(\r\n token: Type<T> | InjectionToken<T>,\r\n notFoundValue?: T,\r\n flags?: InjectFlags,\r\n ) => T;\r\n index?: number;\r\n abstract record: R;\r\n\r\n get data(): ReadonlyActionData<R> {\r\n return {\r\n getInjected: this.getInjected,\r\n index: this.index,\r\n record: this.record,\r\n };\r\n }\r\n}\r\n\r\nexport type ReadonlyActionData<R = any> = O.Readonly<Omit<ActionData<R>, 'data'>>;\r\n\r\nexport abstract class Action<R = any> {\r\n constructor(\r\n public readonly permission: string,\r\n public readonly visible: ActionPredicate<R> = _ => true,\r\n public readonly action: ActionCallback<R> = _ => {},\r\n ) {}\r\n}\r\n\r\nexport type ActionCallback<T, R = any> = (data: Omit<ActionData<T>, 'data'>) => R;\r\nexport type ActionPredicate<T> = (data?: Omit<ActionData<T>, 'data'>) => boolean;\r\n\r\nexport abstract class ActionsFactory<C extends Actions<any>> {\r\n protected abstract _ctor: Type<C>;\r\n private contributorCallbacks: ActionContributorCallbacks<InferredActionList<C>> = {};\r\n\r\n get(name: string): C {\r\n this.contributorCallbacks[name] = this.contributorCallbacks[name] || [];\r\n\r\n return new this._ctor(this.contributorCallbacks[name]);\r\n }\r\n}\r\n\r\nexport abstract class Actions<L extends ActionList> {\r\n protected abstract _ctor: Type<L>;\r\n\r\n get actions(): L {\r\n const actionList = new this._ctor();\r\n\r\n this.callbackList.forEach(callback => callback(actionList));\r\n\r\n return actionList;\r\n }\r\n\r\n constructor(private readonly callbackList: ActionContributorCallback<L>[]) {}\r\n\r\n addContributor(contributeCallback: ActionContributorCallback<L>) {\r\n this.callbackList.push(contributeCallback);\r\n }\r\n\r\n clearContributors() {\r\n while (this.callbackList.length) this.callbackList.pop();\r\n }\r\n}\r\n\r\nexport type ActionContributorCallbacks<L extends ActionList<any>> = Record<\r\n string,\r\n ActionContributorCallback<L>[]\r\n>;\r\n\r\nexport type ActionContributorCallback<L extends ActionList<any>> = (actionList: L) => any;\r\n\r\ntype InferredActionList<C> = C extends Actions<infer L> ? L : never;\r\n","import { Type } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\nimport {\r\n Action,\r\n ActionContributorCallback,\r\n ActionContributorCallbacks,\r\n ActionList,\r\n Actions,\r\n ActionsFactory,\r\n} from './actions';\r\n\r\nexport class EntityActionList<R = any> extends ActionList<R, EntityAction<R>> {}\r\n\r\nexport class EntityActions<R = any> extends Actions<EntityActionList<R>> {\r\n protected _ctor: Type<EntityActionList<R>> = EntityActionList;\r\n}\r\n\r\nexport class EntityActionsFactory<R = any> extends ActionsFactory<EntityActions<R>> {\r\n protected _ctor: Type<EntityActions<R>> = EntityActions;\r\n}\r\n\r\nexport class EntityAction<R = any> extends Action<R> {\r\n readonly text: string;\r\n readonly icon: string;\r\n\r\n constructor(options: EntityActionOptions<R>) {\r\n super(options.permission, options.visible, options.action);\r\n this.text = options.text;\r\n this.icon = options.icon || '';\r\n }\r\n\r\n static create<R = any>(options: EntityActionOptions<R>) {\r\n return new EntityAction<R>(options);\r\n }\r\n\r\n static createMany<R = any>(arrayOfOptions: EntityActionOptions<R>[]) {\r\n return arrayOfOptions.map(EntityAction.create);\r\n }\r\n}\r\n\r\nexport type EntityActionOptions<R = any> = O.Optional<\r\n O.Writable<EntityAction<R>>,\r\n 'permission' | 'visible' | 'icon'\r\n>;\r\n\r\nexport type EntityActionDefaults<R = any> = Record<string, EntityAction<R>[]>;\r\nexport type EntityActionContributorCallback<R = any> = ActionContributorCallback<\r\n EntityActionList<R>\r\n>;\r\nexport type EntityActionContributorCallbacks<R = any> = ActionContributorCallbacks<\r\n EntityActionList<R>\r\n>;\r\n","import { Type } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { O } from 'ts-toolbelt';\r\nimport { ABP } from '@abp/ng.core';\r\nimport { ActionCallback } from './actions';\r\nimport {\r\n Prop,\r\n PropCallback,\r\n PropContributorCallback,\r\n PropContributorCallbacks,\r\n PropList,\r\n Props,\r\n PropsFactory,\r\n} from './props';\r\n\r\nexport class EntityPropList<R = any> extends PropList<R, EntityProp<R>> {}\r\n\r\nexport class EntityProps<R = any> extends Props<EntityPropList<R>> {\r\n protected _ctor: Type<EntityPropList<R>> = EntityPropList;\r\n}\r\n\r\nexport class EntityPropsFactory<R = any> extends PropsFactory<EntityProps<R>> {\r\n protected _ctor: Type<EntityProps<R>> = EntityProps;\r\n}\r\n\r\nexport class EntityProp<R = any> extends Prop<R> {\r\n readonly columnWidth: number | undefined;\r\n readonly sortable: boolean;\r\n readonly valueResolver: PropCallback<R, Observable<any>>;\r\n readonly action: ActionCallback<R>;\r\n readonly component: Type<any>;\r\n readonly enumList: Array<ABP.Option<any>>;\r\n\r\n constructor(options: EntityPropOptions<R>) {\r\n super(\r\n options.type,\r\n options.name,\r\n options.displayName,\r\n options.permission,\r\n options.visible,\r\n options.isExtra,\r\n );\r\n\r\n this.columnWidth = options.columnWidth;\r\n this.sortable = options.sortable || false;\r\n this.valueResolver = options.valueResolver || (data => of(data.record[this.name]));\r\n this.action = options.action;\r\n this.component = options.component;\r\n this.enumList = options.enumList;\r\n }\r\n\r\n static create<R = any>(options: EntityPropOptions<R>) {\r\n return new EntityProp<R>(options);\r\n }\r\n\r\n static createMany<R = any>(arrayOfOptions: EntityPropOptions<R>[]) {\r\n return arrayOfOptions.map(EntityProp.create);\r\n }\r\n}\r\n\r\nexport type EntityPropOptions<R = any> = O.Optional<\r\n O.Writable<EntityProp<R>>,\r\n | 'permission'\r\n | 'visible'\r\n | 'displayName'\r\n | 'isExtra'\r\n | 'columnWidth'\r\n | 'sortable'\r\n | 'valueResolver'\r\n | 'action'\r\n | 'component'\r\n | 'enumList'\r\n>;\r\n\r\nexport type EntityPropDefaults<R = any> = Record<string, EntityProp<R>[]>;\r\nexport type EntityPropContributorCallback<R = any> = PropContributorCallback<EntityPropList<R>>;\r\nexport type EntityPropContributorCallbacks<R = any> = PropContributorCallbacks<EntityPropList<R>>;\r\n","import { Type } from '@angular/core';\r\nimport { O } from 'ts-toolbelt';\r\nimport {\r\n Action,\r\n ActionContributorCallback,\r\n ActionContributorCallbacks,\r\n ActionList,\r\n Actions,\r\n ActionsFactory,\r\n} from './actions';\r\n\r\nexport class ToolbarActionList<R = any> extends ActionList<\r\n R,\r\n ToolbarAction<R> | ToolbarComponent<R>\r\n> {}\r\n\r\nexport class ToolbarActions<R = any> extends Actions<ToolbarActionList<R>> {\r\n protected _ctor: Type<ToolbarActionList<R>> = ToolbarActionList;\r\n}\r\n\r\nexport class ToolbarActionsFactory<R = any> extends ActionsFactory<ToolbarActions<R>> {\r\n protected _ctor: Type<ToolbarActions<R>> = ToolbarActions;\r\n}\r\n\r\nexport class ToolbarAction<R = any> extends Action<R> {\r\n readonly text: string;\r\n readonly icon: string;\r\n\r\n constructor(options: ToolbarActionOptions<R>) {\r\n super(options.permission || '', options.visible, options.action);\r\n this.text = options.text;\r\n this.icon = options.icon || '';\r\n }\r\n\r\n static create<R = any>(options: ToolbarActionOptions<R>) {\r\n return new ToolbarAction<R>(options);\r\n }\r\n\r\n static createMany<R = any>(arrayOfOptions: ToolbarActionOptions<R>[]) {\r\n return arrayOfOptions.map(ToolbarAction.create);\r\n }\r\n}\r\n\r\nexport class ToolbarComponent<R = any> extends Action<R> {\r\n readonly component: Type<any>;\r\n\r\n constructor(options: ToolbarComponentOptions<R>) {\r\n super(options.permission || '', options.visible, options.action);\r\n this.component = options.component;\r\n }\r\n\r\n static create<R = any>(options: ToolbarComponentOptions<R>) {\r\n return new ToolbarComponent<R>(options);\r\n }\r\n\r\n static createMany<R = any>(arrayOfOptions: ToolbarComponentOptions<R>[]) {\r\n return arrayOfOptions.map(ToolbarComponent.create);\r\n }\r\n}\r\n\r\nexport type ToolbarActionOptions<R = any> = O.Optional<\r\n O.Writable<ToolbarAction<R>>,\r\n 'permission' | 'visible' | 'icon'\r\n>;\r\n\r\nexport type ToolbarComponentOptions<R = any> = O.Optional<\r\n O.Writable<ToolbarComponent<R>>,\r\n 'permission' | 'visible' | 'action'\r\n>;\r\n\r\nexport type ToolbarActionDefaults<R = any> = Record<string, ToolbarAction<R>[]>;\r\nexport type ToolbarActionContributorCallback<R = any> = ActionContributorCallback<\r\n ToolbarActionList<R>\r\n>;\r\nexport type ToolbarActionContributorCallbacks<R = any> = ActionContributorCallbacks<\r\n ToolbarActionList<R>\r\n>;\r\n","import { Injectable } from '@angular/core';\r\nimport { EntityActionsFactory } from '../models/entity-actions';\r\nimport { EntityPropsFactory } from '../models/entity-props';\r\nimport { CreateFormPropsFactory, EditFormPropsFactory } from '../models/form-props';\r\nimport { ToolbarActionsFactory } from '../models/toolbar-actions';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ExtensionsService<R = any> {\r\n readonly entityActions = new EntityActionsFactory<R>();\r\n readonly toolbarActions = new ToolbarActionsFactory<R[]>();\r\n readonly entityProps = new EntityPropsFactory<R>();\r\n readonly createFormProps = new CreateFormPropsFactory<R>();\r\n readonly editFormProps = new EditFormPropsFactory<R>();\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { ActionCallback, ReadonlyActionData as ActionData } from '../models/actions';\r\nimport { ExtensionsService } from '../services/extensions.service';\r\nimport { Observable } from 'rxjs';\r\n\r\nexport const EXTENSIONS_IDENTIFIER = new InjectionToken<string>('EXTENSIONS_IDENTIFIER');\r\nexport type ActionKeys = Extract<'entityActions' | 'toolbarActions', keyof ExtensionsService>;\r\n\r\nexport const EXTENSIONS_ACTION_TYPE = new InjectionToken<ActionKeys>('EXTENSIONS_ACTION_TYPE');\r\n\r\nexport const EXTENSIONS_ACTION_DATA = new InjectionToken<ActionData>('EXTENSIONS_ACTION_DATA');\r\nexport const EXTENSIONS_ACTION_CALLBACK = new InjectionToken<ActionCallback<unknown>>(\r\n 'EXTENSIONS_ACTION_DATA',\r\n);\r\nexport const PROP_DATA_STREAM = new InjectionToken<Observable<any>>('PROP_DATA_STREAM');\r\n","/* eslint-disable @angular-eslint/no-input-rename */\r\nimport {\r\n Directive,\r\n Injector,\r\n Input,\r\n OnChanges,\r\n OnDestroy,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { PropData, PropList } from '../models/props';\r\n\r\n@Directive({\r\n exportAs: 'abpPropData',\r\n selector: '[abpPropData]',\r\n})\r\nexport class PropDataDirective<L extends PropList<any>>\r\n extends PropData<InferredData<L>>\r\n implements OnChanges, OnDestroy\r\n{\r\n @Input('abpPropDataFromList') propList?: L;\r\n\r\n @Input('abpPropDataWithRecord') record!: InferredData<L>['record'];\r\n\r\n @Input('abpPropDataAtIndex') index?: number;\r\n\r\n readonly getInjected: InferredData<L>['getInjected'];\r\n\r\n constructor(\r\n private tempRef: TemplateRef<any>,\r\n private vcRef: ViewContainerRef,\r\n injector: Injector,\r\n ) {\r\n super();\r\n\r\n this.getInjected = injector.get.bind(injector);\r\n }\r\n\r\n ngOnChanges() {\r\n this.vcRef.clear();\r\n\r\n this.vcRef.createEmbeddedView(this.tempRef, {\r\n $implicit: this.data,\r\n index: 0,\r\n });\r\n }\r\n\r\n ngOnDestroy() {\r\n this.vcRef.clear();\r\n }\r\n}\r\n\r\ntype InferredData<L> = PropData<InferredRecord<L>>;\r\ntype InferredRecord<L> = L extends PropList<infer R> ? R : never;\r\n","import { TrackByService } from '@abp/ng.core';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n Inject,\r\n Input,\r\n Optional,\r\n QueryList,\r\n SkipSelf,\r\n ViewChildren,\r\n} from '@angular/core';\r\nimport { ControlContainer, FormGroup } from '@angular/forms';\r\nimport { EXTRA_PROPERTIES_KEY } from '../../constants/extra-properties';\r\nimport { FormPropList } from '../../models/form-props';\r\nimport { ExtensionsService } from '../../services/extensions.service';\r\nimport { EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\r\nimport { selfFactory } from '../../utils/factory.util';\r\nimport { ExtensibleFormPropComponent } from './extensible-form-prop.component';\r\n\r\n@Component({\r\n exportAs: 'abpExtensibleForm',\r\n selector: 'abp-extensible-form',\r\n templateUrl: './extensible-form.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n viewProviders: [\r\n {\r\n provide: ControlContainer,\r\n useFactory: selfFactory,\r\n deps: [[new Optional(), new SkipSelf(), ControlContainer]],\r\n },\r\n ],\r\n})\r\nexport class ExtensibleFormComponent<R = any> {\r\n @ViewChildren(ExtensibleFormPropComponent)\r\n formProps!: QueryList<ExtensibleFormPropComponent>;\r\n\r\n @Input()\r\n set selectedRecord(record: R) {\r\n const type = !record || JSON.stringify(record) === '{}' ? 'create' : 'edit';\r\n this.propList = this.extensions[`${type}FormProps`].get(this.identifier).props;\r\n this.record = record;\r\n }\r\n\r\n extraPropertiesKey = EXTRA_PROPERTIES_KEY;\r\n propList!: FormPropList<R>;\r\n record!: R;\r\n\r\n get form(): FormGroup {\r\n return (this.container ? this.container.control : { controls: {} }) as FormGroup;\r\n }\r\n\r\n get extraProperties(): FormGroup {\r\n return (this.form.controls.extraProperties || { controls: {} }) as FormGroup;\r\n }\r\n\r\n constructor(\r\n public readonly cdRef: ChangeDetectorRef,\r\n public readonly track: TrackByService,\r\n private container: ControlContainer,\r\n private extensions: ExtensionsService,\r\n @Inject(EXTENSIONS_IDENTIFIER) private identifier: string,\r\n ) {}\r\n}\r\n","<ng-container *ngIf=\"form\">\r\n <ng-container *abpPropData=\"let data; fromList: propList; withRecord: record\">\r\n <ng-container *ngFor=\"let prop of propList; let first = first; trackBy: track.by('name')\">\r\n <ng-container *ngIf=\"prop.visible(data)\">\r\n <ng-container\r\n [formGroupName]=\"extraPropertiesKey\"\r\n *ngIf=\"extraProperties.controls[prop.name]; else tempDefault\"\r\n >\r\n <abp-extensible-form-prop [prop]=\"prop\" [data]=\"data\"></abp-extensible-form-prop>\r\n </ng-container>\r\n\r\n <ng-template #tempDefault>\r\n <abp-extensible-form-prop\r\n *ngIf=\"form.get(prop.name)\"\r\n [prop]=\"prop\"\r\n [data]=\"data\"\r\n [first]=\"first\"\r\n ></abp-extensible-form-prop>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-container>\r\n","import { Directive, Injector, Input } from '@angular/core';\r\nimport { ActionData, ActionList } from '../../models/actions';\r\nimport { ExtensionsService } from '../../services/extensions.service';\r\nimport { EXTENSIONS_ACTION_TYPE, EXTENSIONS_IDENTIFIER } from '../../tokens/extensions.token';\r\n\r\n// Fix for https://github.com/angular/angular/issues/23904\r\n// @dynamic\r\n@Directive()\r\nexport abstract class AbstractActionsComponent<L extends ActionList<any>> extends ActionData<\r\n InferredRecord<L>\r\n> {\r\n readonly actionList: L;\r\n\r\n readonly getInjected: InferredData<L>['getInjected'];\r\n\r\n @Input() record!: InferredData<L>['record'];\r\n\r\n constructor(injector: Injector) {\r\n super();\r\n\r\n this.getInjected = injector.get.bind(injector);\r\n const extensions = injector.get(ExtensionsService);\r\n const name = injector.get(EXTENSIONS_IDENTIFIER);\r\n const type = injector.get(EXTENSIONS_ACTION_TYPE);\r\n this.actionList = extensions[type].get(name).actions as unknown as L;\r\n }\r\n}\r\n\r\ntype InferredData<L> = ActionData<InferredRecord<L>>;\r\ntype InferredRecord<L> = L extends ActionList<infer R> ? R : never;\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Injector,\r\n Input,\r\n TrackByFunction,\r\n} from '@angular/core';\r\nimport { EntityAction, EntityActionList } from '../../models/entity-actions';\r\nimport { EXTENSIONS_ACTION_TYPE } from '../../tokens/extensions.token';\r\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\r\n\r\n@Component({\r\n exportAs: 'abpGridActions',\r\n selector: 'abp-grid-actions',\r\n templateUrl: './grid-actions.component.html',\r\n providers: [\r\n {\r\n provide: EXTENSIONS_ACTION_TYPE,\r\n useValue: 'entityActions',\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class GridActionsComponent<R = any> extends AbstractActionsComponent<EntityActionList<R>> {\r\n @Input() icon = 'fa fa-cog';\r\n\r\n @Input() readonly index: number;\r\n\r\n @Input() text = '';\r\n\r\n readonly trackByFn: TrackByFunction<EntityAction<R>> = (_, item) => item.text;\r\n\r\n constructor(injector: Injector) {\r\n super(injector);\r\n }\r\n}\r\n","<div *ngIf=\"actionList.length > 1\" ngbDropdown container=\"body\" class=\"d-inline-block\">\r\n <button\r\n class=\"btn btn-primary btn-sm dropdown-toggle\"\r\n data-toggle=\"dropdown\"\r\n aria-haspopup=\"true\"\r\n ngbDropdownToggle\r\n >\r\n <i [ngClass]=\"icon\" [class.me-1]=\"icon\"></i>{{ text | abpLocalization }}\r\n </button>\r\n <div ngbDropdownMenu>\r\n <ng-container\r\n *ngFor=\"let action of actionList; trackBy: trackByFn\"\r\n [ngTemplateOutlet]=\"dropDownBtnItemTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: action }\"\r\n >\r\n </ng-container>\r\n </div>\r\n</div>\r\n\r\n<ng-container\r\n *ngIf=\"actionList.length === 1\"\r\n [ngTemplateOutlet]=\"btnTmp\"\r\n [ngTemplateOutletContext]=\"{ $implicit: actionList.get(0).value }\"\r\n></ng-container>\r\n\r\n<ng-template #dropDownBtnItemTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n ngbDropdownItem\r\n *abpPermission=\"action.permission\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #buttonContentTmp let-action>\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n <span *ngIf=\"action.icon; else ellipsis\">{{ action.text | abpLocalization }}</span>\r\n <ng-template #ellipsis>\r\n <div abpEllipsis>{{ action.text | abpLocalization }}</div>\r\n </ng-template>\r\n</ng-template>\r\n\r\n<ng-template #btnTmp let-action>\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <button\r\n *abpPermission=\"action.permission\"\r\n (click)=\"action.action(data)\"\r\n type=\"button\"\r\n class=\"btn btn-primary text-center\"\r\n >\r\n <ng-container\r\n *ngTemplateOutlet=\"buttonContentTmp; context: { $implicit: action }\"\r\n ></ng-container>\r\n </button>\r\n </ng-container>\r\n</ng-template>\r\n","import {\r\n ABP,\r\n ConfigStateService,\r\n getShortDateFormat,\r\n getShortDateShortTimeFormat,\r\n getShortTimeFormat,\r\n ListService,\r\n PermissionService,\r\n} from '@abp/ng.core';\r\nimport { formatDate } from '@angular/common';\r\nimport {\r\n ChangeDetectionStrategy,\r\n Component,\r\n Inject,\r\n InjectFlags,\r\n InjectionToken,\r\n Injector,\r\n Input,\r\n LOCALE_ID,\r\n OnChanges,\r\n SimpleChanges,\r\n TemplateRef,\r\n TrackByFunction,\r\n Type,\r\n} from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { ePropType } from '../../enums/props.enum';\r\nimport { EntityActionList } from '../../models/entity-actions';\r\nimport { EntityProp, EntityPropList } from '../../models/entity-props';\r\nimport { PropData } from '../../models/props';\r\nimport { ExtensionsService } from '../../services/extensions.service';\r\nimport { EXTENSIONS_IDENTIFIER, PROP_DATA_STREAM } from '../../tokens/extensions.token';\r\n\r\nconst DEFAULT_ACTIONS_COLUMN_WIDTH = 150;\r\n\r\n@Component({\r\n exportAs: 'abpExtensibleTable',\r\n selector: 'abp-extensible-table',\r\n templateUrl: './extensible-table.component.html',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class ExtensibleTableComponent<R = any> implements OnChanges {\r\n protected _actionsText: string;\r\n @Input()\r\n set actionsText(value: string) {\r\n this._actionsText = value;\r\n }\r\n get actionsText(): string {\r\n return this._actionsText ?? (this.actionList.length > 1 ? 'AbpUi::Actions' : '');\r\n }\r\n\r\n @Input() data: R[];\r\n @Input() list: ListService;\r\n @Input() recordsTotal: number;\r\n @Input() set actionsColumnWidth(width: number) {\r\n this.setColumnWidths(width ? Number(width) : undefined);\r\n }\r\n @Input() actionsTemplate: TemplateRef<any>;\r\n\r\n getInjected: <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => T;\r\n\r\n hasAtLeastOnePermittedAction: boolean;\r\n\r\n readonly columnWidths: number[];\r\n\r\n readonly propList: EntityPropList<R>;\r\n\r\n readonly actionList: EntityActionList<R>;\r\n\r\n readonly trackByFn: TrackByFunction<EntityProp<R>> = (_, item) => item.name;\r\n\r\n constructor(\r\n @Inject(LOCALE_ID) private locale: string,\r\n private config: ConfigStateService,\r\n private injector: Injector,\r\n ) {\r\n this.getInjected = injector.get.bind(injector);\r\n const extensions = injector.get(ExtensionsService);\r\n const name = injector.get(EXTENSIONS_IDENTIFIER);\r\n this.propList = extensions.entityProps.get(name).props;\r\n this.actionList = extensions['entityActions'].get(name)\r\n .actions as unknown as EntityActionList<R>;\r\n\r\n const permissionService = injector.get(PermissionService);\r\n this.hasAtLeastOnePermittedAction =\r\n permissionService.filterItemsByPolicy(\r\n this.actionList.toArray().map(action => ({ requiredPolicy: action.permission })),\r\n ).length > 0;\r\n this.setColumnWidths(DEFAULT_ACTIONS_COLUMN_WIDTH);\r\n }\r\n\r\n private setColumnWidths(actionsColumn: number) {\r\n const widths = [actionsColumn];\r\n this.propList.forEach(({ value: prop }) => {\r\n widths.push(prop.columnWidth);\r\n });\r\n (this.columnWidths as any) = widths;\r\n }\r\n\r\n private getDate(value: Date, format: string) {\r\n return value ? formatDate(value, format, this.locale) : '';\r\n }\r\n\r\n private getIcon(value: boolean) {\r\n return value\r\n ? '<div class=\"text-center text-success\"><i class=\"fa fa-check\"></i></div>'\r\n : '<div class=\"text-center text-danger\"><i class=\"fa fa-times\"></i></div>';\r\n }\r\n\r\n private getEnum(rowValue: any, list: Array<ABP.Option<any>>) {\r\n if (!list) return rowValue;\r\n const { key } = list.find(({ value }) => value === rowValue);\r\n return key;\r\n }\r\n\r\n getContent(prop: EntityProp<R>, data: PropData): Observable<string> {\r\n return prop.valueResolver(data).pipe(\r\n map(value => {\r\n switch (prop.type) {\r\n case ePropType.Boolean:\r\n return this.getIcon(value);\r\n case ePropType.Date:\r\n return this.getDate(value, getShortDateFormat(this.config));\r\n case ePropType.Time:\r\n return this.getDate(value, getShortTimeFormat(this.config));\r\n case ePropType.DateTime:\r\n return this.getDate(value, getShortDateShortTimeFormat(this.config));\r\n case ePropType.Enum:\r\n return this.getEnum(value, prop.enumList);\r\n default:\r\n return value;\r\n // More types can be handled in the future\r\n }\r\n }),\r\n );\r\n }\r\n\r\n ngOnChanges({ data }: SimpleChanges) {\r\n if (!data?.currentValue) return;\r\n\r\n this.data = data.currentValue.map((record, index) => {\r\n this.propList.forEach(prop => {\r\n const propData = { getInjected: this.getInjected, record, index } as any;\r\n const value = this.getContent(prop.value, propData);\r\n\r\n const propKey = `_${prop.value.name}`;\r\n record[propKey] = {\r\n visible: prop.value.visible(propData),\r\n value,\r\n };\r\n if (prop.value.component) {\r\n const injector = Injector.create(\r\n [\r\n {\r\n provide: PROP_DATA_STREAM,\r\n useValue: value,\r\n },\r\n ],\r\n this.injector,\r\n );\r\n record[propKey].injector = injector;\r\n record[propKey].component = prop.value.component;\r\n }\r\n });\r\n\r\n return record;\r\n });\r\n }\r\n}\r\n","<ngx-datatable default [rows]=\"data\" [count]=\"recordsTotal\" [list]=\"list\">\r\n <ngx-datatable-column\r\n *ngIf=\"actionsTemplate || (actionList.length && hasAtLeastOnePermittedAction)\"\r\n [name]=\"actionsText | abpLocalization\"\r\n [maxWidth]=\"columnWidths[0]\"\r\n [width]=\"columnWidths[0]\"\r\n [sortable]=\"false\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"rowIndex\" ngx-datatable-cell-template>\r\n <ng-container\r\n *ngTemplateOutlet=\"actionsTemplate || gridActions; context: { $implicit: row, index: i }\"\r\n ></ng-container>\r\n <ng-template #gridActions>\r\n <abp-grid-actions [index]=\"i\" [record]=\"row\" text=\"AbpUi::Actions\"></abp-grid-actions>\r\n </ng-template>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n\r\n <ng-container *ngFor=\"let prop of propList; let i = index; trackBy: trackByFn\">\r\n <ngx-datatable-column\r\n [width]=\"columnWidths[i + 1] || 200\"\r\n [name]=\"prop.displayName | abpLocalization\"\r\n [prop]=\"prop.name\"\r\n [sortable]=\"prop.sortable\"\r\n >\r\n <ng-template let-row=\"row\" let-i=\"index\" ngx-datatable-cell-template>\r\n <ng-container *abpPermission=\"prop.permission\">\r\n <ng-container *ngIf=\"row['_' + prop.name]?.visible\">\r\n <div\r\n *ngIf=\"!row['_' + prop.name].component; else component\"\r\n [innerHTML]=\"row['_' + prop.name]?.value | async\"\r\n (click)=\"\r\n prop.action && prop.action({ getInjected: getInjected, record: row, index: i })\r\n \"\r\n [class.pointer]=\"prop.action\"\r\n ></div>\r\n </ng-container>\r\n <ng-template #component>\r\n <ng-container\r\n *ngComponentOutlet=\"\r\n row['_' + prop.name].component;\r\n injector: row['_' + prop.name].injector\r\n \"\r\n ></ng-container>\r\n </ng-template>\r\n </ng-container>\r\n </ng-template>\r\n </ngx-datatable-column>\r\n </ng-container>\r\n</ngx-datatable>\r\n","import {\r\n ChangeDetectionStrategy,\r\n Component,\r\n InjectFlags,\r\n InjectionToken,\r\n Injector,\r\n TrackByFunction,\r\n Type,\r\n} from '@angular/core';\r\nimport { ToolbarActionList, ToolbarComponent } from '../../models/toolbar-actions';\r\nimport {\r\n EXTENSIONS_ACTION_CALLBACK,\r\n EXTENSIONS_ACTION_DATA,\r\n EXTENSIONS_ACTION_TYPE,\r\n} from '../../tokens/extensions.token';\r\nimport { AbstractActionsComponent } from '../abstract-actions/abstract-actions.component';\r\n\r\n@Component({\r\n exportAs: 'abpPageToolbar',\r\n selector: 'abp-page-toolbar',\r\n templateUrl: './page-toolbar.component.html',\r\n providers: [\r\n {\r\n provide: EXTENSIONS_ACTION_TYPE,\r\n useValue: 'toolbarActions',\r\n },\r\n ],\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class PageToolbarComponent<R = any> extends AbstractActionsComponent<ToolbarActionList<R>> {\r\n readonly trackByFn: TrackByFunction<ToolbarComponent<R>> = (_, item) =>\r\n item.action || item.component;\r\n\r\n constructor(private readonly injector: Injector) {\r\n super(injector);\r\n }\r\n\r\n createInjector(action: ToolbarComponent<R>): Injector {\r\n const get = <T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectFlags) => {\r\n return token === EXTENSIONS_ACTION_DATA\r\n ? this.data\r\n : token === EXTENSIONS_ACTION_CALLBACK\r\n ? (data = this.data) => action.action(data)\r\n : this.getInjected.call(this.injector, token, notFoundValue, flags);\r\n };\r\n\r\n return { get };\r\n }\r\n}\r\n","<div class=\"row justify-content-end mx-0\" id=\"AbpContentToolbar\">\r\n <div\r\n class=\"col-auto px-1 pt-0 pt-md-2\"\r\n [class.pe-0]=\"last\"\r\n *ngFor=\"let action of actionList; trackBy: trackByFn; let last = last\"\r\n >\r\n <ng-container *ngIf=\"action.visible(data)\">\r\n <ng-container *abpPermission=\"action.permission\">\r\n <ng-container *ngIf=\"action.component as component; else button\">\r\n <ng-container\r\n *ngComponentOutlet=\"component; injector: createInjector(action)\"\r\n ></ng-container>\r\n </ng-container>\r\n\r\n <ng-template #button>\r\n <button (click)=\"action.action(data)\" type=\"button\" class=\"btn btn-primary btn-sm\">\r\n <i [ngClass]=\"action.icon\" [class.me-1]=\"action.icon\"></i>\r\n {{ action.text | abpLocalization }}\r\n </button>\r\n </ng-template>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n</div>\r\n","import { CoreModule } from '@abp/ng.core';\r\nimport { ThemeSharedModule } from '@abp/ng.theme.shared';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n NgbDatepickerModule,\r\n NgbDropdownModule,\r\n NgbTimepickerModule,\r\n NgbTypeaheadModule,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgxValidateCoreModule } from '@ngx-validate/core';\r\nimport { DateTimePickerComponent } from './components/date-time-picker/date-time-picker.component';\r\nimport { ExtensibleFormPropComponent } from './components/extensible-form/extensible-form-prop.component';\r\nimport { ExtensibleFormComponent } from './components/extensible-form/extensible-form.component';\r\nimport { ExtensibleTableComponent } from './components/extensible-table/extensible-table.component';\r\nimport { GridActionsComponent } from './components/grid-actions/grid-actions.component';\r\nimport { PageToolbarComponent } from './components/page-toolbar/page-toolbar.component';\r\nimport { DisabledDirective } from './directives/disabled.directive';\r\nimport { PropDataDirective } from './directives/prop-data.directive';\r\n\r\n@NgModule({\r\n exports: [\r\n DateTimePickerComponent,\r\n PageToolbarComponent,\r\n GridActionsComponent,\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n PropDataDirective,\r\n DisabledDirective,\r\n ],\r\n declarations: [\r\n DateTimePickerComponent,\r\n PageToolbarComponent,\r\n GridActionsComponent,\r\n ExtensibleFormPropComponent,\r\n ExtensibleFormComponent,\r\n ExtensibleTableComponent,\r\n PropDataDirective,\r\n DisabledDirective,\r\n ],\r\n imports: [\r\n CoreModule,\r\n ThemeSharedModule,\r\n NgxValidateCoreModule,\r\n NgbDatepickerModule,\r\n NgbDropdownModule,\r\n NgbTimepickerModule,\r\n NgbTypeaheadModule,\r\n ],\r\n})\r\nexport class BaseUiExtensionsModule {}\r\n\r\n@NgModule({\r\n exports: [BaseUiExtensionsModule],\r\n imports: [BaseUiExtensionsModule],\r\n})\r\nexport class UiExtensionsModule {}\r\n","import { ActionContributorCallback, ActionList, ActionsFactory } from '../models/actions';\r\nimport {\r\n EntityActionContributorCallbacks,\r\n EntityActionDefaults,\r\n EntityActions,\r\n EntityActionsFactory,\r\n} from '../models/entity-actions';\r\nimport {\r\n ToolbarActionContributorCallbacks,\r\n ToolbarActionDefaults,\r\n ToolbarActions,\r\n ToolbarActionsFactory,\r\n} from '../models/toolbar-actions';\r\n\r\nexport function mergeWithDefaultActions<F extends ActionsFactory<any>>(\r\n extension: F,\r\n defaultActions: InferredActionDefaults<F>,\r\n ...contributors: InferredActionContributorCallbacks<F>[]\r\n) {\r\n Object.keys(defaultActions).forEach((name: string) => {\r\n const actions: InferredActions<F> = extension.get(name);\r\n actions.clearContributors();\r\n actions.addContributor((actionList: ActionList) =>\r\n actionList.addManyTail(defaultActions[name]),\r\n );\r\n contributors.forEach(contributor =>\r\n (contributor[name] || []).forEach((callback: ActionContributorCallback<any>) =>\r\n actions.addContributor(callback),\r\n ),\r\n );\r\n });\r\n}\r\ntype InferredActionDefaults<F> = F extends EntityActionsFactory<infer RE>\r\n ? EntityActionDefaults<RE>\r\n : F extends ToolbarActionsFactory<infer RT>\r\n ? ToolbarActionDefaults<RT>\r\n : never;\r\n\r\ntype InferredActionContributorCallbacks<F> = F extends EntityActionsFactory<infer RE>\r\n ? EntityActionContributorCallbacks<RE>\r\n : F extends ToolbarActionsFactory<infer RT>\r\n ? ToolbarActionContributorCallbacks<RT>\r\n : never;\r\n\r\ntype InferredActions<F> = F extends EntityActionsFactory<infer RE>\r\n ? EntityActions<RE>\r\n : F extends ToolbarActionsFactory<infer RT>\r\n ? ToolbarActions<RT>\r\n : never;\r\n","import { FormControl, FormGroup } from '@angular/forms';\r\nimport { DateTimeAdapter } from '../adapters/date-time.adapter';\r\nimport { DateAdapter } from '../adapters/date.adapter';\r\nimport { TimeAdapter } from '../adapters/time.adapter';\r\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\r\nimport { ePropType } from '../enums/props.enum';\r\nimport { FormPropList } from '../models/form-props';\r\nimport { PropData } from '../models/props';\r\nimport { ExtensionsService } from '../services/extensions.service';\r\nimport { EXTENSIONS_IDENTIFIER } from '../tokens/extensions.token';\r\n\r\nexport function generateFormFromProps<R extends any>(data: PropData<R>) {\r\n const extensions = data.getInjected(ExtensionsService);\r\n const identifier = data.getInjected(EXTENSIONS_IDENTIFIER);\r\n\r\n const form = new FormGroup({});\r\n const extraForm = new FormGroup({});\r\n form.addControl(EXTRA_PROPERTIES_KEY, extraForm);\r\n\r\n const record = data.record || {};\r\n const type = JSON.stringify(record) === '{}' ? 'create' : 'edit';\r\n const props: FormPropList<R> = extensions[`${type}FormProps`].get(identifier).props;\r\n const extraProperties = record[EXTRA_PROPERTIES_KEY] || {};\r\n\r\n props.forEach(({ value: prop }) => {\r\n const name = prop.name;\r\n const isExtraProperty = prop.isExtra || name in extraProperties;\r\n let value = isExtraProperty ? extraProperties[name] : name in record ? record[name] : undefined;\r\n\r\n if (typeof value === 'undefined') value = prop.defaultValue;\r\n\r\n if (value) {\r\n let adapter: DateAdapter | TimeAdapter | DateTimeAdapter;\r\n switch (prop.type) {\r\n case ePropType.Date:\r\n adapter = new DateAdapter();\r\n value = adapter.toModel(adapter.fromModel(value));\r\n break;\r\n case ePropType.Time:\r\n adapter = new TimeAdapter();\r\n value = adapter.toModel(adapter.fromModel(value));\r\n break;\r\n case ePropType.DateTime:\r\n adapter = new DateTimeAdapter();\r\n value = adapter.toModel(adapter.fromModel(value) as any);\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n const formControl = new FormControl(value, {\r\n asyncValidators: prop.asyncValidators(data),\r\n validators: prop.validators(data),\r\n });\r\n\r\n (isExtraProperty ? extraForm : form).addControl(name, formControl);\r\n });\r\n\r\n return form;\r\n}\r\n","import { of } from 'rxjs';\r\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\r\nimport {\r\n EntityPropContributorCallbacks,\r\n EntityPropDefaults,\r\n EntityProps,\r\n EntityPropsFactory,\r\n} from '../models/entity-props';\r\nimport {\r\n CreateFormPropContributorCallbacks,\r\n CreateFormPropDefaults,\r\n CreateFormPropsFactory,\r\n EditFormPropContributorCallbacks,\r\n EditFormPropDefaults,\r\n EditFormPropsFactory,\r\n FormProps,\r\n} from '../models/form-props';\r\nimport { PropContributorCallback, PropData, PropList, PropsFactory } from '../models/props';\r\n\r\nexport function createExtraPropertyValueResolver<T>(name: string) {\r\n return (data?: PropData<T>) => of(data.record[EXTRA_PROPERTIES_KEY][name]);\r\n}\r\n\r\nexport function mergeWithDefaultProps<F extends PropsFactory<any>>(\r\n extension: F,\r\n defaultProps: InferredPropDefaults<F>,\r\n ...contributors: InferredPropContributorCallbacks<F>[]\r\n) {\r\n Object.keys(defaultProps).forEach((name: string) => {\r\n const props: InferredProps<F> = extension.get(name);\r\n props.clearContributors();\r\n props.addContributor((propList: PropList) => propList.addManyTail(defaultProps[name]));\r\n contributors.forEach(contributor =>\r\n (contributor[name] || []).forEach((callback: PropContributorCallback<any>) =>\r\n props.addContributor(callback),\r\n ),\r\n );\r\n });\r\n}\r\ntype InferredPropDefaults<F> = F extends EntityPropsFactory<infer RE>\r\n ? EntityPropDefaults<RE>\r\n : F extends CreateFormPropsFactory<infer RCF>\r\n ? CreateFormPropDefaults<RCF>\r\n : F extends EditFormPropsFactory<infer REF>\r\n ? EditFormPropDefaults<REF>\r\n : never;\r\n\r\ntype InferredPropContributorCallbacks<F> = F extends EntityPropsFactory<infer RE>\r\n ? EntityPropContributorCallbacks<RE>\r\n : F extends CreateFormPropsFactory<infer RCF>\r\n ? CreateFormPropContributorCallbacks<RCF>\r\n : F extends EditFormPropsFactory<infer REF>\r\n ? EditFormPropContributorCallbacks<REF>\r\n : never;\r\n\r\ntype InferredProps<F> = F extends EntityPropsFactory<infer RE>\r\n ? EntityProps<RE>\r\n : F extends CreateFormPropsFactory<infer RCF>\r\n ? FormProps<RCF>\r\n : F extends EditFormPropsFactory<infer REF>\r\n ? FormProps<REF>\r\n : never;\r\n","import { ABP, LocalizationService } from '@abp/ng.core';\r\nimport { merge, Observable, of } from 'rxjs';\r\nimport { map } from 'rxjs/operators';\r\nimport { EXTRA_PROPERTIES_KEY } from '../constants/extra-properties';\r\nimport { ObjectExtensions } from '../models/object-extensions';\r\nimport { PropCallback } from '../models/props';\r\n\r\nexport function createEnum(members: ObjectExtensions.ExtensionEnumFieldDto[]) {\r\n const enumObject: any = {};\r\n\r\n members.forEach(({ name = '', value }) => {\r\n enumObject[(enumObject[name] = value as any)] = name;\r\n });\r\n\r\n return enumObject;\r\n}\r\n\r\nexport function createEnumValueResolver<T = any>(\r\n enumType: string,\r\n lookupEnum: ObjectExtensions.ExtensionEnumDto,\r\n propName: string,\r\n): PropCallback<T, Observable<string>> {\r\n return data => {\r\n const value = (data.record as any)[EXTRA_PROPERTIES_KEY][propName];\r\n const key = lookupEnum.transformed[value];\r\n const l10n = data.getInjected(LocalizationService);\r\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\r\n\r\n return createLocalizationStream(l10n, localizeEnum(key));\r\n };\r\n}\r\n\r\nexport function createEnumOptions<T = any>(\r\n enumType: string,\r\n lookupEnum: ObjectExtensions.ExtensionEnumDto,\r\n): PropCallback<T, Observable<ABP.Option<any>[]>> {\r\n return data => {\r\n const l10n = data.getInjected(LocalizationService);\r\n const localizeEnum = createEnumLocalizer(l10n, enumType, lookupEnum);\r\n\r\n return createLocalizationStream(\r\n l10n,\r\n lookupEnum.fields.map(({ name = '', value }) => ({\r\n key: localizeEnum(name),\r\n value,\r\n })),\r\n );\r\n };\r\n}\r\n\r\nfunction createLocalizationStream(l10n: LocalizationService, mapTarget: any) {\r\n return merge(of(null), l10n.languageChange$).pipe(map(() => mapTarget));\r\n}\r\n\r\nfunction createEnumLocalizer(\r\n l10n: LocalizationService,\r\n enumType: string,\r\n lookupEnum: ObjectExtensions.ExtensionEnumDto,\r\n): (key: string) => string {\r\n const resource = lookupEnum.localizationResource;\r\n const shortType = getShortEnumType(enumType);\r\n\r\n return key =>\r\n l10n.localizeWithFallbackSync(\r\n [resource || ''],\r\n ['Enum:' + shortType + '.' + key, shortType + '.' + key, key],\r\n key,\r\n );\r\n}\r\n\r\nfunction getShortEnumType(enumType: string) {\r\n return enumType.split('.').pop();\r\n}\r\n","import {\r\n ApplicationLocalizationConfigurationDto,\r\n createLocalizationPipeKeyGenerator,\r\n} from '@abp/ng.core';\r\nimport { ObjectExtensions } from '../models/object-extensions';\r\n\r\nexport function createDisplayNameLocalizationPipeKeyGenerator(\r\n localization: ApplicationLocalizationConfigurationDto,\r\n) {\r\n const generateLocalizationPipeKey = createLocalizationPipeKeyGenerator(localization);\r\n\r\n return (\r\n displayName: ObjectExtensions.LocalizableStringDto,\r\n fallback: ObjectExtensions.LocalizableStringDto,\r\n ) => {\r\n if (displayName && displayName.name)\r\n return generateLocalizationPipeKey(\r\n [displayName.resource || ''],\r\n [displayName.name],\r\n displayName.name,\r\n );\r\n\r\n const key = generateLocalizationPipeKey(\r\n [fallback.resource || ''],\r\n ['DisplayName:' + fallback.name],\r\n undefined,\r\n );\r\n\r\n if (key) return key;\r\n\r\n return generateLocalizationPipeKey(\r\n [fallback.resource || ''],\r\n [fallback.name || ''],\r\n fallback.name,\r\n );\r\n };\r\n}\r\n","import { AbpValidators } from '@abp/ng.core';\r\nimport { ValidatorFn } from '@angular/forms';\r\nimport { ObjectExtensions } from '../models/object-extensions';\r\n\r\nexport function getValidatorsFromProperty(\r\n property: ObjectExtensions.ExtensionPropertyDto,\r\n): ValidatorFn[] {\r\n const validators: ValidatorFn[] = [];\r\n\r\n property.attributes.forEach(attr => {\r\n if (attr.typeSimple && attr.typeSimple in AbpValidators) {\r\n validators.push((AbpValidators as any)[attr.typeSimple](attr.config));\r\n }\r\n });\r\n\r\n return validators;\r\n}\r\n","import {\r\n ABP,\r\n ApplicationLocalizationConfigurationDto,\r\n ConfigStateService,\r\n ExtensionPropertyUiLookupDto,\r\n} from '@abp/ng.core';\r\nimport { Observable, pipe, zip } from 'rxjs';\r\nimport { filter, map, switchMap, take } from 'rxjs/operators';\r\nimport { ePropType } from '../enums/props.enum';\r\nimport { EntityProp, EntityPropList } from '../models/entity-props';\r\nimport { FormProp, FormPropList } from '../models/form-props';\r\nimport { ObjectExtensions } from '../models/object-extensions';\r\nimport { PropCallback } from '../models/props';\r\nimport { createEnum, createEnumOptions, createEnumValueResolver } from './enum.util';\r\nimport { createDisplayNameLocalizationPipeKeyGenerator } from './localization.util';\r\nimport { createExtraPropertyValueResolver } from './props.util';\r\nimport {\r\n createTypeaheadDisplayNameGenerator,\r\n createTypeaheadOptions,\r\n getTypeaheadType,\r\n hasTypeaheadTextSuffix,\r\n} from './typeahead.util';\r\nimport { getValidatorsFromProperty } from './validation.util';\r\n\r\nfunction selectObjectExtensions(\r\n configState: ConfigStateService,\r\n): Observable<ObjectExtensions.ObjectExtensionsDto> {\r\n return configState.getOne$('objectExtensions');\r\n}\r\n\r\nfunction selectLocalization(\r\n configState: ConfigStateService,\r\n): Observable<ApplicationLocalizationConfigurationDto> {\r\n return configState.getOne$('localization');\r\n}\r\n\r\nfunction selectEnums(\r\n configState: ConfigStateService,\r\n): Observable<Record<string, ObjectExtensions.ExtensionEnumDto>> {\r\n return selectObjectExtensions(configState).pipe(\r\n map((extensions: ObjectExtensions.ObjectExtensionsDto) =>\r\n Object.keys(extensions.enums).reduce((acc, key) => {\r\n const { fields, localizationResource } = extensions.enums[key];\r\n acc[key] = {\r\n fields,\r\n localizationResource,\r\n transformed: createEnum(fields),\r\n };\r\n return acc;\r\n }, {} as Record<string, ObjectExtensions.ExtensionEnumDto>),\r\n ),\r\n );\r\n}\r\n\r\nexport function getObjectExtensionEntitiesFromStore(\r\n configState: ConfigStateService,\r\n moduleKey: string,\r\n) {\r\n return selectObjectExtensions(configState).pipe(\r\n map(extensions => {\r\n if (!extensions) return null;\r\n\r\n return (extensions.modules[moduleKey] || ({} as ObjectExtensions.ModuleExtensionDto))\r\n .entities;\r\n }),\r\n map(entities => (isUndefined(entities) ? {} : entities)),\r\n filter<ObjectExtensions.EntityExtensions>(Boolean),\r\n take(1),\r\n );\r\n}\r\n\r\nexport function mapEntitiesToContributors<T = any>(\r\n configState: ConfigStateService,\r\n resource: string,\r\n) {\r\n return pipe(\r\n switchMap((entities: any) =>\r\n zip(selectLocalization(configState), selectEnums(configState)).pipe(\r\n map(([localization, enums]) => {\r\n const generateDisplayName = createDisplayNameLocalizationPipeKeyGenerator(localization);\r\n\r\n return Object.keys(entities).reduce(\r\n (acc, key: keyof ObjectExtensions.EntityExtensions) => {\r\n acc.prop[key] = [];\r\n acc.createForm[key] = [];\r\n acc.editForm[key] = [];\r\n\r\n const entity: ObjectExtensions.EntityExtensionDto = entities[key];\r\n if (!entity) return acc;\r\n\r\n const properties = entity.properties;\r\n if (!properties) return acc;\r\n\r\n const mapPropertiesToContributors = createPropertiesToContributorsMapper<T>(\r\n generateDisplayName,\r\n resource,\r\n enums,\r\n );\r\n\r\n return mapPropertiesToContributors(properties, acc, key);\r\n },\r\n {\r\n prop: {},\r\n createForm: {},\r\n editForm: {},\r\n } as ObjectExtensions.PropContributors,\r\n );\r\n }),\r\n ),\r\n ),\r\n take(1),\r\n );\r\n}\r\n\r\nfunction createPropertiesToContributorsMapper<T = any>(\r\n generateDisplayName: ObjectExtensions.DisplayNameGeneratorFn,\r\n resource: string,\r\n enums: Record<string, ObjectExtensions.ExtensionEnumDto>,\r\n) {\r\n return (\r\n properties: ObjectExtensions.EntityExtensionProperties,\r\n contributors: ObjectExtensions.PropContributors<T>,\r\n key: string,\r\n ) => {\r\n const isExtra = true;\r\n const generateTypeaheadDisplayName = createTypeaheadDisplayNameGenerator(\r\n generateDisplayName,\r\n properties,\r\n );\r\n\r\n Object.keys(properties).forEach((name: string) => {\r\n const property = properties[name];\r\n const propName = name;\r\n const lookup = property.ui.lookup || ({} as ExtensionPropertyUiLookupDto);\r\n const type = getTypeaheadType(lookup, name) || getTypeFromProperty(property);\r\n const generateDN = hasTypeaheadTextSuffix(name)\r\n ? generateTypeaheadDisplayName\r\n : generateDisplayName;\r\n const displayName = generateDN(property.displayName, { name, resource });\r\n\r\n if (property.ui.onTable.isVisible) {\r\n const sortable = Boolean(property.ui.onTable.isSortable);\r\n const columnWidth = type === ePropType.Boolean ? 150 : 250;\r\n const valueResolver =\r\n type === ePropType.Enum\r\n ? createEnumValueResolver(property.type, enums[property.type], propName)\r\n : createExtraPropertyValueResolver<T>(propName);\r\n\r\n const entityProp = new EntityProp<T>({\r\n type,\r\n name: propName,\r\n displayName,\r\n sortable,\r\n columnWidth,\r\n valueResolver,\r\n isExtra,\r\n });\r\n\r\n const contributor = (propList: EntityPropList<T>) => propList.addTail(entityProp);\r\n contributors.prop[key].push(contributor);\r\n }\r\n\r\n const isOnCreateForm = property.ui.onCreateForm.isVisible;\r\n const isOnEditForm = property.ui.onEditForm.isVisible;\r\n\r\n if (isOnCreateForm || isOnEditForm) {\r\n const defaultValue = property.defaultValue;\r\n const validators = () => getValidatorsFromProperty(property);\r\n let options: PropCallback<any, Observable<ABP.Option<any>[]>> | undefined;\r\n if (type === ePropType.Enum)\r\n options = createEnumOptions(propName, enums[property.type || '']);\r\n else if (type === ePropType.Typeahead) options = createTypeaheadOptions(lookup);\r\n\r\n const formProp = new FormProp({\r\n type,\r\n name: propName,\r\n displayName,\r\n options,\r\n defaultValue,\r\n validators,\r\n isExtra,\r\n });\r\n\r\n const formContributor = (propList: FormPropList<T>) => propList.addTail(formProp);\r\n\r\n if (isOnCreateForm) contributors.createForm[key].push(formContributor);\r\n if (isOnEditForm) contributors.editForm[key].push(formContributor);\r\n }\r\n });\r\n\r\n return contributors;\r\n };\r\n}\r\n\r\nfunction getTypeFromProperty(property: ObjectExtensions.ExtensionPropertyDto): ePropType {\r\n return property?.typeSimple?.replace(/\\?$/, '') as string as ePropType;\r\n}\r\n\r\nfunction isUndefined(obj: any): obj is undefined {\r\n return typeof obj === 'undefined';\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"abp-ng.theme.shared-testing.js","sources":["../../../../packages/theme-shared/testing/src/lib/theme-shared-testing.module.ts","../../../../packages/theme-shared/testing/src/abp-ng.theme.shared-testing.ts"],"sourcesContent":["import {\r\n BaseThemeSharedModule,\r\n DateParserFormatter,\r\n DEFAULT_VALIDATION_BLUEPRINTS,\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n} from '@abp/ng.theme.shared';\r\nimport { ModuleWithProviders, NgModule } from '@angular/core';\r\nimport { RouterTestingModule } from '@angular/router/testing';\r\nimport { NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\nimport {\r\n defaultMapErrorsFn,\r\n VALIDATION_BLUEPRINTS,\r\n VALIDATION_MAP_ERRORS_FN,\r\n VALIDATION_VALIDATE_ON_SUBMIT,\r\n} from '@ngx-validate/core';\r\nimport { Config } from './models/config';\r\n\r\n/**\r\n * ThemeSharedTestingModule is the module that will be used in tests\r\n */\r\n@NgModule({\r\n exports: [RouterTestingModule, BaseThemeSharedModule],\r\n imports: [RouterTestingModule, BaseThemeSharedModule],\r\n})\r\nexport class ThemeSharedTestingModule {\r\n static withConfig(\r\n { validation = {} } = {} as Config,\r\n ): ModuleWithProviders<ThemeSharedTestingModule> {\r\n return {\r\n ngModule: ThemeSharedTestingModule,\r\n providers: [\r\n THEME_SHARED_ROUTE_PROVIDERS,\r\n { provide: NgbDateParserFormatter, useClass: DateParserFormatter },\r\n {\r\n provide: VALIDATION_BLUEPRINTS,\r\n useValue: {\r\n ...DEFAULT_VALIDATION_BLUEPRINTS,\r\n ...(validation.blueprints || {}),\r\n },\r\n },\r\n {\r\n provide: VALIDATION_MAP_ERRORS_FN,\r\n useValue: validation.mapErrorsFn || defaultMapErrorsFn,\r\n },\r\n {\r\n provide: VALIDATION_VALIDATE_ON_SUBMIT,\r\n useValue: validation.validateOnSubmit,\r\n },\r\n ],\r\n };\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;AAiBA;;;MAOa,wBAAwB;IACnC,OAAO,UAAU,CACf,EAAE,UAAU,GAAG,EAAE,KAAK,EAAY;QAElC,OAAO;YACL,QAAQ,EAAE,wBAAwB;YAClC,SAAS,EAAE;gBACT,4BAA4B;gBAC5B,EAAE,OAAO,EAAE,sBAAsB,EAAE,QAAQ,EAAE,mBAAmB,EAAE;gBAClE;oBACE,OAAO,EAAE,qBAAqB;oBAC9B,QAAQ,kCACH,6BAA6B,IAC5B,UAAU,CAAC,UAAU,IAAI,EAAE,EAChC;iBACF;gBACD;oBACE,OAAO,EAAE,wBAAwB;oBACjC,QAAQ,EAAE,UAAU,CAAC,WAAW,IAAI,kBAAkB;iBACvD;gBACD;oBACE,OAAO,EAAE,6BAA6B;oBACtC,QAAQ,EAAE,UAAU,CAAC,gBAAgB;iBACtC;aACF;SACF,CAAC;KACH;;sHA1BU,wBAAwB;uHAAxB,wBAAwB,YAFzB,mBAAmB,EAAE,qBAAqB,aAD1C,mBAAmB,EAAE,qBAAqB;uHAGzC,wBAAwB,YAF1B,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,EAD3C,mBAAmB,EAAE,qBAAqB;4FAGzC,wBAAwB;kBAJpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;oBACrD,OAAO,EAAE,CAAC,mBAAmB,EAAE,qBAAqB,CAAC;iBACtD;;;ACvBD;;;;;;"}
|