imng-kendo-data-entry 9.13.5 → 9.15.7
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-kendo-data-entry-testing.mjs","sources":["../../../../libs/imng-kendo-data-entry/testing/src/data-entry-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/test-trigger-event-helpers.ts","../../../../libs/imng-kendo-data-entry/testing/src/mock-data-entry-dialog.component.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-modal-state-facade-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/imng-kendo-data-entry-testing.ts"],"sourcesContent":["import { Observable, of } from 'rxjs';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { IDataEntryFacade } from 'imng-kendo-data-entry';\n\nexport class DataEntryMockFacade implements IDataEntryFacade<unknown> {\n public loading$: Observable<boolean> = of(false);\n public currentEntity$: Observable<unknown> = of(null);\n public isEditActive$: Observable<boolean> = of(false);\n public isNewActive$: Observable<boolean> = of(false);\n public setCurrentEntity = jest.fn();\n public clearCurrentEntity = jest.fn();\n public saveNewEntity = jest.fn();\n public updateExistingEntity = jest.fn();\n}\n\nexport function createDataEntryMockFacade(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mockFacade?: IDataEntryFacade<unknown> | any,\n): IDataEntryFacade<unknown> {\n const localFacade = new DataEntryMockFacade();\n if (!mockFacade) {\n return localFacade;\n }\n mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;\n mockFacade.currentEntity$ =\n mockFacade.currentEntity$ || localFacade.currentEntity$;\n mockFacade.isEditActive$ =\n mockFacade.isEditActive$ || localFacade.isEditActive$;\n mockFacade.isNewActive$ = mockFacade.isNewActive$ || localFacade.isNewActive$;\n mockFacade.setCurrentEntity = mockFacade.setCurrentEntity || jest.fn();\n mockFacade.clearCurrentEntity = mockFacade.clearCurrentEntity || jest.fn();\n mockFacade.saveNewEntity = mockFacade.saveNewEntity || jest.fn();\n mockFacade.updateExistingEntity =\n mockFacade.updateExistingEntity || jest.fn();\n return mockFacade;\n}\n","import { ModalStates } from 'imng-kendo-data-entry';\nimport { readFirst } from 'imng-ngrx-utils/testing';\nimport { Observable } from 'rxjs';\n\nexport async function testAddSetAndClearCurrentEntity<\n TFacade extends TestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { name: '🆕' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.ADD);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeTruthy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nexport async function testEditSetAndClearCurrentEntity<\n TFacade extends TestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { id: '💃', name: '🧓👴👵' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.EDIT);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeTruthy();\n expect(status.isNewActive).toBeFalsy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\nasync function validateInitialState(facade: TestableFacade): Promise<void> {\n const status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nasync function getEntityStatus<TFacade extends TestableFacade>(\n facade: TFacade,\n): Promise<{\n currentEntity: unknown;\n isEditActive: unknown;\n isNewActive: unknown;\n}> {\n return {\n currentEntity: await readFirst(facade.currentEntity$),\n isEditActive: await readFirst(facade.isEditActive$),\n isNewActive: await readFirst(facade.isNewActive$),\n };\n}\n\nexport interface TestableFacade {\n currentEntity$: Observable<unknown>;\n isEditActive$: Observable<boolean | null>;\n isNewActive$: Observable<boolean | null>;\n setCurrentEntity(entity: unknown, parentEntity?: unknown): void;\n clearCurrentEntity(): void;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testSaveCurrentEntity<\n TFacade extends { saveNewEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { name: '🆕' };\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.saveNewEntity(entity);\n expect(httpClient.post).toHaveBeenCalledTimes(1);\n expect(httpClient.put).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(0);\n}\n\nexport async function testUpdateCurrentEntity<\n TFacade extends { updateExistingEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.updateExistingEntity(entity);\n expect(httpClient.put).toHaveBeenCalledTimes(1);\n expect(httpClient.post).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(0);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testDeleteCurrentEntity<\n TFacade extends { deleteExistingEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn();\n httpClient.put = jest.fn();\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.deleteExistingEntity(entity);\n expect(httpClient.put).toHaveBeenCalledTimes(0);\n expect(httpClient.post).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(1);\n}\n","// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { IDataDeleteFacade } from 'imng-kendo-data-entry';\n\nexport class DataDeleteMockFacade implements IDataDeleteFacade<unknown> {\n deleteExistingEntity = jest.fn();\n}\n\nexport function createDataDeleteMockFacade<T = unknown>(\n mockFacade?: T,\n): T & IDataDeleteFacade<unknown> {\n if (!mockFacade) {\n return new DataDeleteMockFacade() as T & IDataDeleteFacade<unknown>;\n }\n (\n mockFacade as unknown as { deleteExistingEntity: () => void }\n ).deleteExistingEntity =\n (mockFacade as unknown as { deleteExistingEntity: () => void })\n .deleteExistingEntity || jest.fn();\n return mockFacade as T & IDataDeleteFacade<unknown>;\n}\n","import { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nexport function triggerSaveClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnSave'));\n typeAhead.triggerEventHandler('click', {});\n}\nexport function triggerCancelClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnCancel'));\n typeAhead.triggerEventHandler('click', {});\n}\n","import { FormControl, FormGroup } from '@angular/forms';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { BaseDataEntryComponent } from 'imng-kendo-data-entry';\nimport { DataEntryMockFacade } from './data-entry-mock.facade';\n\nexport class MockDataEntryComponent extends BaseDataEntryComponent<DataEntryMockFacade> {\n public dialogTitle = 'MockDataEntryComponent';\n public override addEditForm = new FormGroup({\n id: new FormControl<string>(''),\n });\n public props = {};\n public initForm = jest.fn();\n public save = () => jest.fn();\n}\n","import { ModalStates } from 'imng-kendo-data-entry';\nimport { readFirst } from 'imng-ngrx-utils/testing';\nimport { Observable } from 'rxjs';\n\nexport async function testModalStateAddAndClearCurrentEntity<\n TFacade extends ModalStateTestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { name: '🆕' };\n await validateInitialModalState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.ADD);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.currentModalState).toBe(ModalStates.ADD);\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeUndefined();\n}\n\nexport async function testModalStateEditAndClearCurrentEntity<\n TFacade extends ModalStateTestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { id: '💃', name: '🧓👴👵' };\n await validateInitialModalState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.EDIT);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.currentModalState).toBe(ModalStates.EDIT);\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeFalsy();\n}\nasync function validateInitialModalState(\n facade: ModalStateTestableFacade,\n): Promise<void> {\n const status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeFalsy();\n}\n\nasync function getEntityStatus<TFacade extends ModalStateTestableFacade>(\n facade: TFacade,\n): Promise<{\n currentEntity: unknown;\n currentModalState: unknown;\n}> {\n return {\n currentEntity: await readFirst(facade.currentEntity$),\n currentModalState: await readFirst(facade.currentModalState$),\n };\n}\n\nexport interface ModalStateTestableFacade {\n currentEntity$: Observable<unknown>;\n currentModalState$: Observable<string | undefined>;\n setCurrentEntity(entity: unknown, parentEntity?: unknown): void;\n clearCurrentEntity(): void;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getEntityStatus"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imng-kendo-data-entry-testing.mjs","sources":["../../../../libs/imng-kendo-data-entry/testing/src/data-entry-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-facade-http-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-delete-mock.facade.ts","../../../../libs/imng-kendo-data-entry/testing/src/test-trigger-event-helpers.ts","../../../../libs/imng-kendo-data-entry/testing/src/mock-data-entry-dialog.component.ts","../../../../libs/imng-kendo-data-entry/testing/src/data-entry-modal-state-facade-tests.ts","../../../../libs/imng-kendo-data-entry/testing/src/imng-kendo-data-entry-testing.ts"],"sourcesContent":["import { Observable, of } from 'rxjs';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { IDataEntryFacade } from 'imng-kendo-data-entry';\n\nexport class DataEntryMockFacade implements IDataEntryFacade<unknown> {\n public loading$: Observable<boolean> = of(false);\n public currentEntity$: Observable<unknown> = of(null);\n public isEditActive$: Observable<boolean> = of(false);\n public isNewActive$: Observable<boolean> = of(false);\n public setCurrentEntity = jest.fn();\n public clearCurrentEntity = jest.fn();\n public saveNewEntity = jest.fn();\n public updateExistingEntity = jest.fn();\n}\n\nexport function createDataEntryMockFacade(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n mockFacade?: IDataEntryFacade<unknown> | any,\n): IDataEntryFacade<unknown> {\n const localFacade = new DataEntryMockFacade();\n if (!mockFacade) {\n return localFacade;\n }\n mockFacade.loading$ = mockFacade.loading$ || localFacade.loading$;\n mockFacade.currentEntity$ =\n mockFacade.currentEntity$ || localFacade.currentEntity$;\n mockFacade.isEditActive$ =\n mockFacade.isEditActive$ || localFacade.isEditActive$;\n mockFacade.isNewActive$ = mockFacade.isNewActive$ || localFacade.isNewActive$;\n mockFacade.setCurrentEntity = mockFacade.setCurrentEntity || jest.fn();\n mockFacade.clearCurrentEntity = mockFacade.clearCurrentEntity || jest.fn();\n mockFacade.saveNewEntity = mockFacade.saveNewEntity || jest.fn();\n mockFacade.updateExistingEntity =\n mockFacade.updateExistingEntity || jest.fn();\n return mockFacade;\n}\n","import { ModalStates } from 'imng-kendo-data-entry';\nimport { readFirst } from 'imng-ngrx-utils/testing';\nimport { Observable } from 'rxjs';\n\nexport async function testAddSetAndClearCurrentEntity<\n TFacade extends TestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { name: '🆕' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.ADD);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeTruthy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nexport async function testEditSetAndClearCurrentEntity<\n TFacade extends TestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { id: '💃', name: '🧓👴👵' };\n await validateInitialState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.EDIT);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.isEditActive).toBeTruthy();\n expect(status.isNewActive).toBeFalsy();\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\nasync function validateInitialState(facade: TestableFacade): Promise<void> {\n const status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.isEditActive).toBeFalsy();\n expect(status.isNewActive).toBeFalsy();\n}\n\nasync function getEntityStatus<TFacade extends TestableFacade>(\n facade: TFacade,\n): Promise<{\n currentEntity: unknown;\n isEditActive: unknown;\n isNewActive: unknown;\n}> {\n return {\n currentEntity: await readFirst(facade.currentEntity$),\n isEditActive: await readFirst(facade.isEditActive$),\n isNewActive: await readFirst(facade.isNewActive$),\n };\n}\n\nexport interface TestableFacade {\n currentEntity$: Observable<unknown>;\n isEditActive$: Observable<boolean | null>;\n isNewActive$: Observable<boolean | null>;\n setCurrentEntity(entity: unknown, parentEntity?: unknown): void;\n clearCurrentEntity(): void;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testSaveCurrentEntity<\n TFacade extends { saveNewEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { name: '🆕' };\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.saveNewEntity(entity);\n expect(httpClient.post).toHaveBeenCalledTimes(1);\n expect(httpClient.put).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(0);\n}\n\nexport async function testUpdateCurrentEntity<\n TFacade extends { updateExistingEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn(() => of(entity));\n httpClient.put = jest.fn(() => of(entity));\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.updateExistingEntity(entity);\n expect(httpClient.put).toHaveBeenCalledTimes(1);\n expect(httpClient.post).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(0);\n}\n","import { HttpClient } from '@angular/common/http';\nimport { of } from 'rxjs';\n\nexport async function testDeleteCurrentEntity<\n TFacade extends { deleteExistingEntity(entity: unknown): void },\n>(facade: TFacade, httpClient: HttpClient): Promise<void> {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const entity: any = { id: '💃', name: '🧓👴👵' };\n\n httpClient.post = jest.fn();\n httpClient.put = jest.fn();\n httpClient.delete = jest.fn(() => of(entity));\n\n facade.deleteExistingEntity(entity);\n expect(httpClient.put).toHaveBeenCalledTimes(0);\n expect(httpClient.post).toHaveBeenCalledTimes(0);\n expect(httpClient.delete).toHaveBeenCalledTimes(1);\n}\n","// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { IDataDeleteFacade } from 'imng-kendo-data-entry';\n\nexport class DataDeleteMockFacade implements IDataDeleteFacade<unknown> {\n deleteExistingEntity = jest.fn();\n}\n\nexport function createDataDeleteMockFacade<T = unknown>(\n mockFacade?: T,\n): T & IDataDeleteFacade<unknown> {\n if (!mockFacade) {\n return new DataDeleteMockFacade() as T & IDataDeleteFacade<unknown>;\n }\n (\n mockFacade as unknown as { deleteExistingEntity: () => void }\n ).deleteExistingEntity =\n (mockFacade as unknown as { deleteExistingEntity: () => void })\n .deleteExistingEntity || jest.fn();\n return mockFacade as T & IDataDeleteFacade<unknown>;\n}\n","import { ComponentFixture } from '@angular/core/testing';\nimport { By } from '@angular/platform-browser';\n\nexport function triggerSaveClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnSave'));\n typeAhead.triggerEventHandler('click', {});\n}\nexport function triggerCancelClickEvent<TComponent>(fixture: ComponentFixture<TComponent>): void {\n const typeAhead = fixture.debugElement.query(By.css('#btnCancel'));\n typeAhead.triggerEventHandler('click', {});\n}\n","import { FormControl, FormGroup } from '@angular/forms';\n// eslint-disable-next-line @nx/enforce-module-boundaries\nimport { BaseDataEntryComponent } from 'imng-kendo-data-entry';\nimport { DataEntryMockFacade } from './data-entry-mock.facade';\n\nexport class MockDataEntryComponent extends BaseDataEntryComponent<DataEntryMockFacade> {\n public dialogTitle = 'MockDataEntryComponent';\n public override addEditForm = new FormGroup({\n id: new FormControl<string>(''),\n });\n public props = {};\n public initForm = jest.fn();\n public save = () => jest.fn();\n}\n","import { ModalStates } from 'imng-kendo-data-entry';\nimport { readFirst } from 'imng-ngrx-utils/testing';\nimport { Observable } from 'rxjs';\n\nexport async function testModalStateAddAndClearCurrentEntity<\n TFacade extends ModalStateTestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { name: '🆕' };\n await validateInitialModalState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.ADD);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.currentModalState).toBe(ModalStates.ADD);\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeUndefined();\n}\n\nexport async function testModalStateEditAndClearCurrentEntity<\n TFacade extends ModalStateTestableFacade,\n>(facade: TFacade): Promise<void> {\n const entity = { id: '💃', name: '🧓👴👵' };\n await validateInitialModalState(facade);\n\n facade.setCurrentEntity(entity, ModalStates.EDIT);\n let status = await getEntityStatus(facade);\n expect(status.currentEntity).toStrictEqual(entity);\n expect(status.currentModalState).toBe(ModalStates.EDIT);\n\n facade.clearCurrentEntity();\n status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeFalsy();\n}\nasync function validateInitialModalState(\n facade: ModalStateTestableFacade,\n): Promise<void> {\n const status = await getEntityStatus(facade);\n expect(status.currentEntity).toBeFalsy();\n expect(status.currentModalState).toBeFalsy();\n}\n\nasync function getEntityStatus<TFacade extends ModalStateTestableFacade>(\n facade: TFacade,\n): Promise<{\n currentEntity: unknown;\n currentModalState: unknown;\n}> {\n return {\n currentEntity: await readFirst(facade.currentEntity$),\n currentModalState: await readFirst(facade.currentModalState$),\n };\n}\n\nexport interface ModalStateTestableFacade {\n currentEntity$: Observable<unknown>;\n currentModalState$: Observable<string | undefined>;\n setCurrentEntity(entity: unknown, parentEntity?: unknown): void;\n clearCurrentEntity(): void;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getEntityStatus"],"mappings":"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"}
|
|
@@ -6,7 +6,7 @@ import { BehaviorSubject, of, map } from 'rxjs';
|
|
|
6
6
|
import { Subscriptions } from 'imng-ngrx-utils';
|
|
7
7
|
import { EnumProperties } from 'openapi-ts-generator/enums';
|
|
8
8
|
import * as i2 from '@progress/kendo-angular-dialog';
|
|
9
|
-
import { DialogModule } from '@progress/kendo-angular-dialog';
|
|
9
|
+
import { KENDO_DIALOG, DialogModule } from '@progress/kendo-angular-dialog';
|
|
10
10
|
import { filter, take, tap } from 'rxjs/operators';
|
|
11
11
|
|
|
12
12
|
/* eslint-disable @angular-eslint/prefer-inject */
|
|
@@ -108,13 +108,12 @@ class BaseDataEntryComponent {
|
|
|
108
108
|
return errors;
|
|
109
109
|
}
|
|
110
110
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: BaseDataEntryComponent, deps: [{ token: FACADE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
111
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: BaseDataEntryComponent, isStandalone:
|
|
111
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: BaseDataEntryComponent, isStandalone: true, selector: "ng-component", inputs: { width: "width", height: "height" }, ngImport: i0, template: '', isInline: true }); }
|
|
112
112
|
}
|
|
113
113
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: BaseDataEntryComponent, decorators: [{
|
|
114
114
|
type: Component,
|
|
115
115
|
args: [{
|
|
116
116
|
template: '',
|
|
117
|
-
standalone: false,
|
|
118
117
|
}]
|
|
119
118
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
|
120
119
|
type: Inject,
|
|
@@ -125,22 +124,21 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
125
124
|
type: Input
|
|
126
125
|
}] } });
|
|
127
126
|
|
|
128
|
-
class
|
|
127
|
+
class IMNG_KENDO_DIALOG_BUTTONS {
|
|
129
128
|
constructor() {
|
|
130
129
|
this.tpl = inject(TemplateRef);
|
|
131
130
|
}
|
|
132
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
133
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type:
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DIALOG_BUTTONS, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.0.8", type: IMNG_KENDO_DIALOG_BUTTONS, isStandalone: true, selector: "[imngDialogBtns]", ngImport: i0 }); }
|
|
134
133
|
}
|
|
135
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DIALOG_BUTTONS, decorators: [{
|
|
136
135
|
type: Directive,
|
|
137
136
|
args: [{
|
|
138
137
|
selector: '[imngDialogBtns]',
|
|
139
|
-
standalone: false,
|
|
140
138
|
}]
|
|
141
139
|
}] });
|
|
142
140
|
|
|
143
|
-
class
|
|
141
|
+
class IMNG_KENDO_DATA_ENTRY_DIALOG {
|
|
144
142
|
constructor() {
|
|
145
143
|
this.width = 800; //NOSONAR
|
|
146
144
|
this.height = 600; //NOSONAR
|
|
@@ -174,8 +172,8 @@ class DataEntryDialogComponent {
|
|
|
174
172
|
$implicit: { cancel: () => this.cancel(), submit: () => this.submit() },
|
|
175
173
|
};
|
|
176
174
|
}
|
|
177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type:
|
|
175
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DATA_ENTRY_DIALOG, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
176
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: IMNG_KENDO_DATA_ENTRY_DIALOG, isStandalone: true, selector: "imng-data-entry-dialog[parentComponent]", inputs: { minWidth: "minWidth", width: "width", height: "height", autoFocusedElement: "autoFocusedElement", parentComponent: "parentComponent", cancelButtonText: "cancelButtonText", submitButtonText: "submitButtonText" }, queries: [{ propertyName: "dialogBtnsTemplate", first: true, predicate: IMNG_KENDO_DIALOG_BUTTONS, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `<kendo-dialog
|
|
179
177
|
[width]="width"
|
|
180
178
|
[minWidth]="minWidth ?? width"
|
|
181
179
|
[height]="height"
|
|
@@ -186,7 +184,8 @@ class DataEntryDialogComponent {
|
|
|
186
184
|
}}</kendo-dialog-titlebar>
|
|
187
185
|
<ng-content />
|
|
188
186
|
<kendo-dialog-actions>
|
|
189
|
-
<ng-container
|
|
187
|
+
<ng-container
|
|
188
|
+
*ngTemplateOutlet="
|
|
190
189
|
dialogBtnsTemplate || defaultDialogActionsTpl;
|
|
191
190
|
context: dialogActionBtnsCtx
|
|
192
191
|
" />
|
|
@@ -194,6 +193,7 @@ class DataEntryDialogComponent {
|
|
|
194
193
|
</kendo-dialog>
|
|
195
194
|
<ng-template #defaultDialogActionsTpl>
|
|
196
195
|
<button
|
|
196
|
+
id="imngCancelDataEntry"
|
|
197
197
|
name="imngCancelDataEntry"
|
|
198
198
|
kendoButton
|
|
199
199
|
(click)="cancel()"
|
|
@@ -201,6 +201,7 @@ class DataEntryDialogComponent {
|
|
|
201
201
|
{{ cancelButtonText }}
|
|
202
202
|
</button>
|
|
203
203
|
<button
|
|
204
|
+
id="imngSubmitDataEntry"
|
|
204
205
|
name="imngSubmitDataEntry"
|
|
205
206
|
[attr.form]="formId"
|
|
206
207
|
type="submit"
|
|
@@ -209,12 +210,13 @@ class DataEntryDialogComponent {
|
|
|
209
210
|
class="btn btn-primary btn-sm">
|
|
210
211
|
{{ submitButtonText }}
|
|
211
212
|
</button>
|
|
212
|
-
</ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
213
|
+
</ng-template>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
213
214
|
}
|
|
214
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DATA_ENTRY_DIALOG, decorators: [{
|
|
215
216
|
type: Component,
|
|
216
217
|
args: [{
|
|
217
218
|
selector: 'imng-data-entry-dialog[parentComponent]',
|
|
219
|
+
imports: [CommonModule, KENDO_DIALOG],
|
|
218
220
|
template: `<kendo-dialog
|
|
219
221
|
[width]="width"
|
|
220
222
|
[minWidth]="minWidth ?? width"
|
|
@@ -226,7 +228,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
226
228
|
}}</kendo-dialog-titlebar>
|
|
227
229
|
<ng-content />
|
|
228
230
|
<kendo-dialog-actions>
|
|
229
|
-
<ng-container
|
|
231
|
+
<ng-container
|
|
232
|
+
*ngTemplateOutlet="
|
|
230
233
|
dialogBtnsTemplate || defaultDialogActionsTpl;
|
|
231
234
|
context: dialogActionBtnsCtx
|
|
232
235
|
" />
|
|
@@ -234,6 +237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
234
237
|
</kendo-dialog>
|
|
235
238
|
<ng-template #defaultDialogActionsTpl>
|
|
236
239
|
<button
|
|
240
|
+
id="imngCancelDataEntry"
|
|
237
241
|
name="imngCancelDataEntry"
|
|
238
242
|
kendoButton
|
|
239
243
|
(click)="cancel()"
|
|
@@ -241,6 +245,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
241
245
|
{{ cancelButtonText }}
|
|
242
246
|
</button>
|
|
243
247
|
<button
|
|
248
|
+
id="imngSubmitDataEntry"
|
|
244
249
|
name="imngSubmitDataEntry"
|
|
245
250
|
[attr.form]="formId"
|
|
246
251
|
type="submit"
|
|
@@ -251,7 +256,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
251
256
|
</button>
|
|
252
257
|
</ng-template>`,
|
|
253
258
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
254
|
-
standalone: false
|
|
255
259
|
}]
|
|
256
260
|
}], propDecorators: { minWidth: [{
|
|
257
261
|
type: Input
|
|
@@ -269,10 +273,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
269
273
|
type: Input
|
|
270
274
|
}], dialogBtnsTemplate: [{
|
|
271
275
|
type: ContentChild,
|
|
272
|
-
args: [
|
|
276
|
+
args: [IMNG_KENDO_DIALOG_BUTTONS, { static: true, read: TemplateRef }]
|
|
273
277
|
}] } });
|
|
274
278
|
|
|
275
|
-
class
|
|
279
|
+
class IMNG_KENDO_DELETE_DIALOG {
|
|
276
280
|
constructor() {
|
|
277
281
|
this.minWidth = input(undefined, ...(ngDevMode ? [{ debugName: "minWidth" }] : []));
|
|
278
282
|
this.width = input(450, ...(ngDevMode ? [{ debugName: "width" }] : []));
|
|
@@ -299,8 +303,8 @@ class DataDeleteDialogComponent {
|
|
|
299
303
|
$implicit: { cancel: () => this.cancel(), submit: () => this.delete() },
|
|
300
304
|
};
|
|
301
305
|
}
|
|
302
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
303
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type:
|
|
306
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DELETE_DIALOG, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
307
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: IMNG_KENDO_DELETE_DIALOG, isStandalone: true, selector: "imng-data-delete-dialog", inputs: { minWidth: { classPropertyName: "minWidth", publicName: "minWidth", isSignal: true, isRequired: false, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null }, dataItem: { classPropertyName: "dataItem", publicName: "dataItem", isSignal: true, isRequired: true, transformFunction: null }, dialogTitle: { classPropertyName: "dialogTitle", publicName: "dialogTitle", isSignal: true, isRequired: false, transformFunction: null }, facade: { classPropertyName: "facade", publicName: "facade", isSignal: true, isRequired: true, transformFunction: null }, cancelButtonText: { classPropertyName: "cancelButtonText", publicName: "cancelButtonText", isSignal: false, isRequired: false, transformFunction: null }, deleteButtonText: { classPropertyName: "deleteButtonText", publicName: "deleteButtonText", isSignal: false, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "dialogBtnsTemplate", first: true, predicate: IMNG_KENDO_DIALOG_BUTTONS, descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: `<kendo-dialog
|
|
304
308
|
[width]="width()"
|
|
305
309
|
[minWidth]="minWidth() ?? width()"
|
|
306
310
|
[height]="height()"
|
|
@@ -331,12 +335,13 @@ class DataDeleteDialogComponent {
|
|
|
331
335
|
class="btn btn-danger btn-sm">
|
|
332
336
|
{{ deleteButtonText }}
|
|
333
337
|
</button>
|
|
334
|
-
</ng-template>`, isInline: true, dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
338
|
+
</ng-template>`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.DialogComponent, selector: "kendo-dialog", inputs: ["actions", "actionsLayout", "autoFocusedElement", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation", "themeColor"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
335
339
|
}
|
|
336
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type:
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: IMNG_KENDO_DELETE_DIALOG, decorators: [{
|
|
337
341
|
type: Component,
|
|
338
342
|
args: [{
|
|
339
343
|
selector: 'imng-data-delete-dialog',
|
|
344
|
+
imports: [CommonModule, KENDO_DIALOG],
|
|
340
345
|
template: `<kendo-dialog
|
|
341
346
|
[width]="width()"
|
|
342
347
|
[minWidth]="minWidth() ?? width()"
|
|
@@ -370,7 +375,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
370
375
|
</button>
|
|
371
376
|
</ng-template>`,
|
|
372
377
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
373
|
-
standalone: false,
|
|
374
378
|
}]
|
|
375
379
|
}], propDecorators: { minWidth: [{ type: i0.Input, args: [{ isSignal: true, alias: "minWidth", required: false }] }], width: [{ type: i0.Input, args: [{ isSignal: true, alias: "width", required: false }] }], height: [{ type: i0.Input, args: [{ isSignal: true, alias: "height", required: false }] }], dataItem: [{ type: i0.Input, args: [{ isSignal: true, alias: "dataItem", required: true }] }], dialogTitle: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogTitle", required: false }] }], facade: [{ type: i0.Input, args: [{ isSignal: true, alias: "facade", required: true }] }], cancelButtonText: [{
|
|
376
380
|
type: Input
|
|
@@ -378,31 +382,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
378
382
|
type: Input
|
|
379
383
|
}], dialogBtnsTemplate: [{
|
|
380
384
|
type: ContentChild,
|
|
381
|
-
args: [
|
|
385
|
+
args: [IMNG_KENDO_DIALOG_BUTTONS, { static: true, read: TemplateRef }]
|
|
382
386
|
}] } });
|
|
383
387
|
|
|
384
388
|
class ImngDataEntryDialogModule {
|
|
385
389
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ImngDataEntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
386
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: ImngDataEntryDialogModule,
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
390
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.0.8", ngImport: i0, type: ImngDataEntryDialogModule, imports: [CommonModule,
|
|
391
|
+
DialogModule,
|
|
392
|
+
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
393
|
+
IMNG_KENDO_DIALOG_BUTTONS,
|
|
394
|
+
IMNG_KENDO_DELETE_DIALOG], exports: [IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
395
|
+
IMNG_KENDO_DIALOG_BUTTONS,
|
|
396
|
+
IMNG_KENDO_DELETE_DIALOG] }); }
|
|
397
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ImngDataEntryDialogModule, imports: [CommonModule,
|
|
398
|
+
DialogModule,
|
|
399
|
+
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
400
|
+
IMNG_KENDO_DELETE_DIALOG] }); }
|
|
392
401
|
}
|
|
393
402
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: ImngDataEntryDialogModule, decorators: [{
|
|
394
403
|
type: NgModule,
|
|
395
404
|
args: [{
|
|
396
|
-
imports: [
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
405
|
+
imports: [
|
|
406
|
+
CommonModule,
|
|
407
|
+
DialogModule,
|
|
408
|
+
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
409
|
+
IMNG_KENDO_DIALOG_BUTTONS,
|
|
410
|
+
IMNG_KENDO_DELETE_DIALOG,
|
|
401
411
|
],
|
|
402
412
|
exports: [
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
413
|
+
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
414
|
+
IMNG_KENDO_DIALOG_BUTTONS,
|
|
415
|
+
IMNG_KENDO_DELETE_DIALOG,
|
|
406
416
|
],
|
|
407
417
|
}]
|
|
408
418
|
}] });
|
|
@@ -447,5 +457,5 @@ function isModalState(facade, expectedModalState) {
|
|
|
447
457
|
* Generated bundle index. Do not edit.
|
|
448
458
|
*/
|
|
449
459
|
|
|
450
|
-
export { BaseDataEntryComponent,
|
|
460
|
+
export { BaseDataEntryComponent, IMNG_KENDO_DATA_ENTRY_DIALOG, IMNG_KENDO_DELETE_DIALOG, IMNG_KENDO_DIALOG_BUTTONS, ImngDataEntryDialogModule, ModalStates, addStateCollectionItem, formGroupPatcher, isModalState, removeStateCollectionItem, updateStateCollectionItem };
|
|
451
461
|
//# sourceMappingURL=imng-kendo-data-entry.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"imng-kendo-data-entry.mjs","sources":["../../../../libs/imng-kendo-data-entry/src/lib/base-data-entry.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/dialog-buttons.directive.ts","../../../../libs/imng-kendo-data-entry/src/lib/data-entry-dialog.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/data-delete-dialog.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/imng-kendo-data-entry.module.ts","../../../../libs/imng-kendo-data-entry/src/lib/reducer-collection-logic.ts","../../../../libs/imng-kendo-data-entry/src/lib/form-group-patcher.ts","../../../../libs/imng-kendo-data-entry/src/lib/modal-states.ts","../../../../libs/imng-kendo-data-entry/src/lib/is-modal-state.ts","../../../../libs/imng-kendo-data-entry/src/imng-kendo-data-entry.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/prefer-inject */\nimport {\n Component,\n Inject,\n InjectionToken,\n Input,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport {\n AbstractControl,\n ValidationErrors,\n FormGroup,\n FormArray,\n} from '@angular/forms';\nimport { IBaseDataEntryFacade } from './data-entry-facade';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\nimport { EnumProperties } from 'openapi-ts-generator/enums';\n\nconst FACADE = new InjectionToken<IBaseDataEntryFacade>(\n 'imng-data-entry-facade',\n);\n\n/**\n * The extending class has to implement the following properties on ngInit\n * dialogTitle: string - This will be the text displayed at the top of the modal title bar\n * props: enum - This is a helper property to make the html markup type safe\n *\n * Along with the requirements above, the extending class has to set values to the\n * following properties on ngInit\n * active$: Observable<boolean> - This typically would be assigned to the isNewActive$ or isEditActive on the facade\n * addEditForm: FormGroup - This will be created by your component\n *\n * @class BaseDataEntryComponent>\n */\n@Component({\n template: '',\n standalone: false,\n})\nexport abstract class BaseDataEntryComponent<\n FACADE extends IBaseDataEntryFacade,\n >\n implements OnInit, OnDestroy, Subscribable\n{\n @Input() public width: string | number = 800; //NOSONAR\n @Input() public height: string | number = 600; //NOSONAR\n\n public formId = 'imng-form';\n public cancelButtonText = 'Cancel';\n public submitButtonText = 'Submit';\n public readonly MinLengthError = 'minlength';\n public readonly RequiredError = 'required';\n public readonly EnumProperties = EnumProperties;\n public allSubscriptions = new Subscriptions();\n public abstract dialogTitle: string;\n public abstract props: unknown;\n public abstract addEditForm: FormGroup;\n public loading$: Observable<boolean>;\n public readonly submitted$: BehaviorSubject<boolean> = new BehaviorSubject(\n false as boolean,\n );\n\n constructor(@Inject(FACADE) public readonly facade: FACADE) {\n this.loading$ = this.facade.loading$;\n }\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n public ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n\n public closeForm(): void {\n this.initForm();\n this.facade.clearCurrentEntity();\n this.submitted$.next(false);\n }\n\n public onCancel(): void {\n this.closeForm();\n }\n\n public onSubmit(): boolean {\n this.submitted$.next(true);\n this.addEditForm.markAllAsTouched();\n // stop here if form is invalid\n if (!this.addEditForm.valid) {\n console.error('form validation errors.'); //NOSONAR\n console.error(JSON.stringify(this.getFormErrors())); //NOSONAR\n return false;\n }\n this.save();\n this.closeForm();\n return true;\n }\n\n public isDataInvalid(): boolean {\n return this.addEditForm.invalid;\n }\n\n // convenience getter for easy access to form fields\n public formControl(\n controlName: string,\n controls: { [key: string]: AbstractControl } = this.addEditForm.controls,\n ): AbstractControl {\n return controls[controlName];\n }\n\n public formControlErrors(\n control: string | AbstractControl,\n controls: { [key: string]: AbstractControl } | AbstractControl[] = this\n .addEditForm.controls,\n ): ValidationErrors | null {\n const tempControl =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof control === 'string' ? (controls as any)[control] : control;\n if (tempControl?.valid && !tempControl?.errors) {\n return null;\n }\n return tempControl?.errors;\n }\n public formMinLengthError(\n controlName: string,\n ): { requiredLength: number; actualLength: number } | null {\n return this.formControlErrors(controlName)?.[this.MinLengthError];\n }\n public getFormErrors(\n controls: { [key: string]: AbstractControl } | AbstractControl[] = this\n .addEditForm.controls,\n parentControlName?: string,\n ): { controlName: string; error: ValidationErrors }[] {\n const errors: { controlName: string; error: ValidationErrors }[] = [];\n for (const controlName of Object.keys(controls)) {\n const control = (controls as never)[controlName];\n const error = this.formControlErrors(control, controls);\n if (error) {\n errors.push({\n controlName: parentControlName\n ? `${parentControlName}.${controlName}`\n : controlName,\n error,\n });\n }\n if ((control as FormArray)?.controls) {\n errors.push(\n ...this.getFormErrors(\n (control as FormArray).controls,\n parentControlName\n ? `${parentControlName}.${controlName}`\n : controlName,\n ),\n );\n }\n }\n return errors;\n }\n\n public abstract initForm(): void;\n public abstract save(): void;\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[imngDialogBtns]',\n standalone: false,\n})\nexport class DialogButtonsDirective {\n tpl = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FormGroup } from '@angular/forms';\nimport { BaseDataEntryComponent } from './base-data-entry.component';\nimport { DialogButtonsDirective } from './dialog-buttons.directive';\n\n@Component({\n selector: 'imng-data-entry-dialog[parentComponent]',\n template: `<kendo-dialog\n [width]=\"width\"\n [minWidth]=\"minWidth ?? width\"\n [height]=\"height\"\n (close)=\"close()\"\n [autoFocusedElement]=\"autoFocusedElement || ''\">\n <kendo-dialog-titlebar class=\"bg-primary\">{{\n dialogTitle\n }}</kendo-dialog-titlebar>\n <ng-content />\n <kendo-dialog-actions>\n <ng-container *ngTemplateOutlet=\"\n dialogBtnsTemplate || defaultDialogActionsTpl;\n context: dialogActionBtnsCtx\n \" />\n </kendo-dialog-actions>\n </kendo-dialog>\n <ng-template #defaultDialogActionsTpl>\n <button\n name=\"imngCancelDataEntry\"\n kendoButton\n (click)=\"cancel()\"\n class=\"btn btn-secondary btn-sm\">\n {{ cancelButtonText }}\n </button>\n <button\n name=\"imngSubmitDataEntry\"\n [attr.form]=\"formId\"\n type=\"submit\"\n kendoButton\n (click)=\"submit()\"\n class=\"btn btn-primary btn-sm\">\n {{ submitButtonText }}\n </button>\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false\n})\nexport class DataEntryDialogComponent implements OnInit {\n @Input() public minWidth?: number; //NOSONAR\n @Input() public width = 800; //NOSONAR\n @Input() public height = 600; //NOSONAR\n /**\n * https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/initial-focus/\n */\n @Input() public autoFocusedElement?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() public parentComponent?: BaseDataEntryComponent<any>; //NOSONAR\n @Input() public cancelButtonText?: string = 'Cancel';\n @Input() public submitButtonText?: string = 'Submit';\n @ContentChild(DialogButtonsDirective, { static: true, read: TemplateRef })\n /**\n * Example Usage:\n * <imng-data-entry-dialog>\n * ......\n * <ng-template [imngDialogBtns] let-coreButtons>\n * <button id=\"btnCustom1\" class=\"k-button\" (click)=\"cancel()\">Close</button>\n * </ng-template>\n * </imng-data-entry-dialog>\n */\n public dialogBtnsTemplate?: TemplateRef<unknown>;\n public loading$?: Observable<boolean>;\n public addEditForm?: FormGroup;\n public formId?: string;\n public submitted = false;\n public dialogTitle?: string;\n public component?: NonNullable<unknown>;\n\n public ngOnInit(): void {\n if (!this.parentComponent) {\n throw new TypeError(`The input 'parentComponent' is required`);\n }\n this.dialogTitle = this.parentComponent.dialogTitle;\n this.loading$ = this.parentComponent.loading$;\n this.addEditForm = this.parentComponent.addEditForm;\n this.submitButtonText ??= this.parentComponent.submitButtonText ?? 'Submit';\n this.cancelButtonText ??= this.parentComponent.cancelButtonText ?? 'Cancel';\n this.formId ??= this.parentComponent.formId ?? 'imng-form';\n }\n\n public close(): void {\n this.parentComponent?.closeForm();\n }\n public cancel(): void {\n this.parentComponent?.onCancel();\n }\n public submit(): void {\n this.parentComponent?.onSubmit();\n }\n get dialogActionBtnsCtx(): object | null {\n //NOSONAR\n return {\n $implicit: { cancel: () => this.cancel(), submit: () => this.submit() },\n };\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n TemplateRef,\n ContentChild,\n input,\n} from '@angular/core';\nimport { DialogButtonsDirective } from './dialog-buttons.directive';\n\n@Component({\n selector: 'imng-data-delete-dialog',\n template: `<kendo-dialog\n [width]=\"width()\"\n [minWidth]=\"minWidth() ?? width()\"\n [height]=\"height()\"\n (close)=\"cancel()\">\n <kendo-dialog-titlebar>{{ dialogTitle() }}</kendo-dialog-titlebar>\n <ng-content />\n <kendo-dialog-actions>\n <ng-container\n *ngTemplateOutlet=\"\n dialogBtnsTemplate || defaultDialogActionsTpl;\n context: dialogActionBtnsCtx\n \" />\n </kendo-dialog-actions>\n </kendo-dialog>\n <ng-template #defaultDialogActionsTpl>\n <button\n name=\"imngCancelDataEntry\"\n kendoButton\n (click)=\"cancel()\"\n class=\"btn btn-secondary btn-sm\">\n {{ cancelButtonText }}\n </button>\n <button\n name=\"imngDeleteData\"\n type=\"submit\"\n kendoButton\n (click)=\"delete()\"\n class=\"btn btn-danger btn-sm\">\n {{ deleteButtonText }}\n </button>\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class DataDeleteDialogComponent {\n public readonly minWidth = input<number | undefined>(undefined);\n public readonly width = input(450);\n public readonly height = input(225);\n public readonly dataItem = input.required<unknown>();\n public readonly dialogTitle = input('Deletion Confirmation');\n public readonly facade = input.required<{\n clearCurrentEntity: () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n deleteExistingEntity: (x: any) => void;\n }>();\n /**\n * https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/initial-focus/\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() public cancelButtonText?: string = 'Cancel';\n @Input() public deleteButtonText?: string = 'Delete';\n @ContentChild(DialogButtonsDirective, { static: true, read: TemplateRef })\n /**\n * Example Usage:\n * <imng-data-delete-dialog>\n * ......\n * <ng-template [imngDialogBtns] let-coreButtons>\n * <button id=\"btnCustom1\" class=\"k-button\" (click)=\"cancel()\">Close</button>\n * </ng-template>\n * </imng-data-delete-dialog>\n */\n public dialogBtnsTemplate?: TemplateRef<unknown>;\n\n public cancel(): void {\n this.facade().clearCurrentEntity();\n }\n public delete(): void {\n this.facade().deleteExistingEntity(this.dataItem());\n }\n get dialogActionBtnsCtx(): object | null {\n //NOSONAR\n return {\n $implicit: { cancel: () => this.cancel(), submit: () => this.delete() },\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { DataEntryDialogComponent } from './data-entry-dialog.component';\nimport { DialogButtonsDirective } from './dialog-buttons.directive';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { DataDeleteDialogComponent } from './data-delete-dialog.component';\n\n@NgModule({\n imports: [CommonModule, DialogModule],\n declarations: [\n DataEntryDialogComponent,\n DialogButtonsDirective,\n DataDeleteDialogComponent,\n ],\n exports: [\n DataEntryDialogComponent,\n DialogButtonsDirective,\n DataDeleteDialogComponent,\n ],\n})\nexport class ImngDataEntryDialogModule {}\n","import { ValueType } from 'imng-nrsrx-client-utils';\nexport function updateStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const index = collection.findIndex((val) => val.id === item.id);\n if (index > -1) {\n const items = [...collection];\n items.splice(index, 1, item);\n return items;\n }\n return collection;\n}\n\nexport function removeStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const index = collection.findIndex((val) => val.id === item.id);\n if (index > -1) {\n const items = [...collection];\n items.splice(index, 1);\n return items;\n }\n return collection;\n}\n\nexport function addStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const items = [...collection];\n items.unshift(item);\n return items;\n}\n","import { FormGroup } from '@angular/forms';\nimport { take, tap, filter } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IdType } from 'imng-nrsrx-client-utils';\n\nexport const formGroupPatcher =\n <TEntity extends { id?: IdType | null | undefined } | undefined>(\n addEditForm: FormGroup,\n ) =>\n (source: Observable<TEntity>) =>\n source.pipe(\n filter((t) => !!t),\n take(1),\n tap((t) => addEditForm.patchValue(t as never)),\n );\n","export class ModalStates {\n public static readonly ADD = 'add';\n public static readonly EDIT = 'edit';\n public static readonly DELETE = 'delete';\n}\n","import { Observable, map, of } from 'rxjs';\n\nexport function isModalState(\n facade: { currentModalState$: Observable<string | undefined> },\n expectedModalState: string,\n): Observable<boolean> {\n return (\n facade.currentModalState$?.pipe(\n map((currentModalState) => currentModalState === expectedModalState),\n ) || of(false)\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"imng-kendo-data-entry.mjs","sources":["../../../../libs/imng-kendo-data-entry/src/lib/base-data-entry.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/dialog-buttons.directive.ts","../../../../libs/imng-kendo-data-entry/src/lib/data-entry-dialog.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/data-delete-dialog.component.ts","../../../../libs/imng-kendo-data-entry/src/lib/imng-kendo-data-entry.module.ts","../../../../libs/imng-kendo-data-entry/src/lib/reducer-collection-logic.ts","../../../../libs/imng-kendo-data-entry/src/lib/form-group-patcher.ts","../../../../libs/imng-kendo-data-entry/src/lib/modal-states.ts","../../../../libs/imng-kendo-data-entry/src/lib/is-modal-state.ts","../../../../libs/imng-kendo-data-entry/src/imng-kendo-data-entry.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/prefer-inject */\nimport {\n Component,\n Inject,\n InjectionToken,\n Input,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport { Observable, BehaviorSubject } from 'rxjs';\nimport {\n AbstractControl,\n ValidationErrors,\n FormGroup,\n FormArray,\n} from '@angular/forms';\nimport { IBaseDataEntryFacade } from './data-entry-facade';\nimport { Subscribable, Subscriptions } from 'imng-ngrx-utils';\nimport { EnumProperties } from 'openapi-ts-generator/enums';\n\nconst FACADE = new InjectionToken<IBaseDataEntryFacade>(\n 'imng-data-entry-facade',\n);\n\n/**\n * The extending class has to implement the following properties on ngInit\n * dialogTitle: string - This will be the text displayed at the top of the modal title bar\n * props: enum - This is a helper property to make the html markup type safe\n *\n * Along with the requirements above, the extending class has to set values to the\n * following properties on ngInit\n * active$: Observable<boolean> - This typically would be assigned to the isNewActive$ or isEditActive on the facade\n * addEditForm: FormGroup - This will be created by your component\n *\n * @class BaseDataEntryComponent>\n */\n@Component({\n template: '',\n})\nexport abstract class BaseDataEntryComponent<\n FACADE extends IBaseDataEntryFacade,\n>\n implements OnInit, OnDestroy, Subscribable\n{\n @Input() public width: string | number = 800; //NOSONAR\n @Input() public height: string | number = 600; //NOSONAR\n\n public formId = 'imng-form';\n public cancelButtonText = 'Cancel';\n public submitButtonText = 'Submit';\n public readonly MinLengthError = 'minlength';\n public readonly RequiredError = 'required';\n public readonly EnumProperties = EnumProperties;\n public allSubscriptions = new Subscriptions();\n public abstract dialogTitle: string;\n public abstract props: unknown;\n public abstract addEditForm: FormGroup;\n public loading$: Observable<boolean>;\n public readonly submitted$: BehaviorSubject<boolean> = new BehaviorSubject(\n false as boolean,\n );\n\n constructor(@Inject(FACADE) public readonly facade: FACADE) {\n this.loading$ = this.facade.loading$;\n }\n\n public ngOnInit(): void {\n this.initForm();\n }\n\n public ngOnDestroy(): void {\n this.allSubscriptions.unsubscribeAll();\n }\n\n public closeForm(): void {\n this.initForm();\n this.facade.clearCurrentEntity();\n this.submitted$.next(false);\n }\n\n public onCancel(): void {\n this.closeForm();\n }\n\n public onSubmit(): boolean {\n this.submitted$.next(true);\n this.addEditForm.markAllAsTouched();\n // stop here if form is invalid\n if (!this.addEditForm.valid) {\n console.error('form validation errors.'); //NOSONAR\n console.error(JSON.stringify(this.getFormErrors())); //NOSONAR\n return false;\n }\n this.save();\n this.closeForm();\n return true;\n }\n\n public isDataInvalid(): boolean {\n return this.addEditForm.invalid;\n }\n\n // convenience getter for easy access to form fields\n public formControl(\n controlName: string,\n controls: { [key: string]: AbstractControl } = this.addEditForm.controls,\n ): AbstractControl {\n return controls[controlName];\n }\n\n public formControlErrors(\n control: string | AbstractControl,\n controls: { [key: string]: AbstractControl } | AbstractControl[] = this\n .addEditForm.controls,\n ): ValidationErrors | null {\n const tempControl =\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n typeof control === 'string' ? (controls as any)[control] : control;\n if (tempControl?.valid && !tempControl?.errors) {\n return null;\n }\n return tempControl?.errors;\n }\n public formMinLengthError(\n controlName: string,\n ): { requiredLength: number; actualLength: number } | null {\n return this.formControlErrors(controlName)?.[this.MinLengthError];\n }\n public getFormErrors(\n controls: { [key: string]: AbstractControl } | AbstractControl[] = this\n .addEditForm.controls,\n parentControlName?: string,\n ): { controlName: string; error: ValidationErrors }[] {\n const errors: { controlName: string; error: ValidationErrors }[] = [];\n for (const controlName of Object.keys(controls)) {\n const control = (controls as never)[controlName];\n const error = this.formControlErrors(control, controls);\n if (error) {\n errors.push({\n controlName: parentControlName\n ? `${parentControlName}.${controlName}`\n : controlName,\n error,\n });\n }\n if ((control as FormArray)?.controls) {\n errors.push(\n ...this.getFormErrors(\n (control as FormArray).controls,\n parentControlName\n ? `${parentControlName}.${controlName}`\n : controlName,\n ),\n );\n }\n }\n return errors;\n }\n\n public abstract initForm(): void;\n public abstract save(): void;\n}\n","import { Directive, TemplateRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[imngDialogBtns]',\n})\nexport class IMNG_KENDO_DIALOG_BUTTONS {\n tpl = inject<TemplateRef<unknown>>(TemplateRef);\n}\n","import {\n Component,\n OnInit,\n Input,\n ChangeDetectionStrategy,\n TemplateRef,\n ContentChild,\n} from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FormGroup } from '@angular/forms';\nimport { BaseDataEntryComponent } from './base-data-entry.component';\nimport { IMNG_KENDO_DIALOG_BUTTONS } from './dialog-buttons.directive';\nimport { KENDO_DIALOG } from '@progress/kendo-angular-dialog';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'imng-data-entry-dialog[parentComponent]',\n imports: [CommonModule, KENDO_DIALOG],\n template: `<kendo-dialog\n [width]=\"width\"\n [minWidth]=\"minWidth ?? width\"\n [height]=\"height\"\n (close)=\"close()\"\n [autoFocusedElement]=\"autoFocusedElement || ''\">\n <kendo-dialog-titlebar class=\"bg-primary\">{{\n dialogTitle\n }}</kendo-dialog-titlebar>\n <ng-content />\n <kendo-dialog-actions>\n <ng-container\n *ngTemplateOutlet=\"\n dialogBtnsTemplate || defaultDialogActionsTpl;\n context: dialogActionBtnsCtx\n \" />\n </kendo-dialog-actions>\n </kendo-dialog>\n <ng-template #defaultDialogActionsTpl>\n <button\n id=\"imngCancelDataEntry\"\n name=\"imngCancelDataEntry\"\n kendoButton\n (click)=\"cancel()\"\n class=\"btn btn-secondary btn-sm\">\n {{ cancelButtonText }}\n </button>\n <button\n id=\"imngSubmitDataEntry\"\n name=\"imngSubmitDataEntry\"\n [attr.form]=\"formId\"\n type=\"submit\"\n kendoButton\n (click)=\"submit()\"\n class=\"btn btn-primary btn-sm\">\n {{ submitButtonText }}\n </button>\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IMNG_KENDO_DATA_ENTRY_DIALOG implements OnInit {\n @Input() public minWidth?: number; //NOSONAR\n @Input() public width = 800; //NOSONAR\n @Input() public height = 600; //NOSONAR\n /**\n * https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/initial-focus/\n */\n @Input() public autoFocusedElement?: string;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() public parentComponent?: BaseDataEntryComponent<any>; //NOSONAR\n @Input() public cancelButtonText?: string = 'Cancel';\n @Input() public submitButtonText?: string = 'Submit';\n @ContentChild(IMNG_KENDO_DIALOG_BUTTONS, { static: true, read: TemplateRef })\n /**\n * Example Usage:\n * <imng-data-entry-dialog>\n * ......\n * <ng-template [imngDialogBtns] let-coreButtons>\n * <button id=\"btnCustom1\" class=\"k-button\" (click)=\"cancel()\">Close</button>\n * </ng-template>\n * </imng-data-entry-dialog>\n */\n public dialogBtnsTemplate?: TemplateRef<unknown>;\n public loading$?: Observable<boolean>;\n public addEditForm?: FormGroup;\n public formId?: string;\n public submitted = false;\n public dialogTitle?: string;\n public component?: NonNullable<unknown>;\n\n public ngOnInit(): void {\n if (!this.parentComponent) {\n throw new TypeError(`The input 'parentComponent' is required`);\n }\n this.dialogTitle = this.parentComponent.dialogTitle;\n this.loading$ = this.parentComponent.loading$;\n this.addEditForm = this.parentComponent.addEditForm;\n this.submitButtonText ??= this.parentComponent.submitButtonText ?? 'Submit';\n this.cancelButtonText ??= this.parentComponent.cancelButtonText ?? 'Cancel';\n this.formId ??= this.parentComponent.formId ?? 'imng-form';\n }\n\n public close(): void {\n this.parentComponent?.closeForm();\n }\n public cancel(): void {\n this.parentComponent?.onCancel();\n }\n public submit(): void {\n this.parentComponent?.onSubmit();\n }\n get dialogActionBtnsCtx(): object | null {\n //NOSONAR\n return {\n $implicit: { cancel: () => this.cancel(), submit: () => this.submit() },\n };\n }\n}\n","import {\n Component,\n Input,\n ChangeDetectionStrategy,\n TemplateRef,\n ContentChild,\n input,\n} from '@angular/core';\nimport { IMNG_KENDO_DIALOG_BUTTONS } from './dialog-buttons.directive';\nimport { KENDO_DIALOG } from '@progress/kendo-angular-dialog';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'imng-data-delete-dialog',\n imports: [CommonModule, KENDO_DIALOG],\n template: `<kendo-dialog\n [width]=\"width()\"\n [minWidth]=\"minWidth() ?? width()\"\n [height]=\"height()\"\n (close)=\"cancel()\">\n <kendo-dialog-titlebar>{{ dialogTitle() }}</kendo-dialog-titlebar>\n <ng-content />\n <kendo-dialog-actions>\n <ng-container\n *ngTemplateOutlet=\"\n dialogBtnsTemplate || defaultDialogActionsTpl;\n context: dialogActionBtnsCtx\n \" />\n </kendo-dialog-actions>\n </kendo-dialog>\n <ng-template #defaultDialogActionsTpl>\n <button\n name=\"imngCancelDataEntry\"\n kendoButton\n (click)=\"cancel()\"\n class=\"btn btn-secondary btn-sm\">\n {{ cancelButtonText }}\n </button>\n <button\n name=\"imngDeleteData\"\n type=\"submit\"\n kendoButton\n (click)=\"delete()\"\n class=\"btn btn-danger btn-sm\">\n {{ deleteButtonText }}\n </button>\n </ng-template>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class IMNG_KENDO_DELETE_DIALOG {\n public readonly minWidth = input<number | undefined>(undefined);\n public readonly width = input(450);\n public readonly height = input(225);\n public readonly dataItem = input.required<unknown>();\n public readonly dialogTitle = input('Deletion Confirmation');\n public readonly facade = input.required<{\n clearCurrentEntity: () => void;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n deleteExistingEntity: (x: any) => void;\n }>();\n /**\n * https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/initial-focus/\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() public cancelButtonText?: string = 'Cancel';\n @Input() public deleteButtonText?: string = 'Delete';\n @ContentChild(IMNG_KENDO_DIALOG_BUTTONS, { static: true, read: TemplateRef })\n /**\n * Example Usage:\n * <imng-data-delete-dialog>\n * ......\n * <ng-template [imngDialogBtns] let-coreButtons>\n * <button id=\"btnCustom1\" class=\"k-button\" (click)=\"cancel()\">Close</button>\n * </ng-template>\n * </imng-data-delete-dialog>\n */\n public dialogBtnsTemplate?: TemplateRef<unknown>;\n\n public cancel(): void {\n this.facade().clearCurrentEntity();\n }\n public delete(): void {\n this.facade().deleteExistingEntity(this.dataItem());\n }\n get dialogActionBtnsCtx(): object | null {\n //NOSONAR\n return {\n $implicit: { cancel: () => this.cancel(), submit: () => this.delete() },\n };\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { IMNG_KENDO_DATA_ENTRY_DIALOG } from './data-entry-dialog.component';\nimport { IMNG_KENDO_DIALOG_BUTTONS } from './dialog-buttons.directive';\nimport { DialogModule } from '@progress/kendo-angular-dialog';\nimport { IMNG_KENDO_DELETE_DIALOG } from './data-delete-dialog.component';\n\n@NgModule({\n imports: [\n CommonModule,\n DialogModule,\n IMNG_KENDO_DATA_ENTRY_DIALOG,\n IMNG_KENDO_DIALOG_BUTTONS,\n IMNG_KENDO_DELETE_DIALOG,\n ],\n exports: [\n IMNG_KENDO_DATA_ENTRY_DIALOG,\n IMNG_KENDO_DIALOG_BUTTONS,\n IMNG_KENDO_DELETE_DIALOG,\n ],\n})\nexport class ImngDataEntryDialogModule {}\n","import { ValueType } from 'imng-nrsrx-client-utils';\nexport function updateStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const index = collection.findIndex((val) => val.id === item.id);\n if (index > -1) {\n const items = [...collection];\n items.splice(index, 1, item);\n return items;\n }\n return collection;\n}\n\nexport function removeStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const index = collection.findIndex((val) => val.id === item.id);\n if (index > -1) {\n const items = [...collection];\n items.splice(index, 1);\n return items;\n }\n return collection;\n}\n\nexport function addStateCollectionItem<Entity extends { id?: ValueType; }>(\n collection: Entity[],\n item: Entity\n): Entity[] {\n const items = [...collection];\n items.unshift(item);\n return items;\n}\n","import { FormGroup } from '@angular/forms';\nimport { take, tap, filter } from 'rxjs/operators';\nimport { Observable } from 'rxjs';\nimport { IdType } from 'imng-nrsrx-client-utils';\n\nexport const formGroupPatcher =\n <TEntity extends { id?: IdType | null | undefined } | undefined>(\n addEditForm: FormGroup,\n ) =>\n (source: Observable<TEntity>) =>\n source.pipe(\n filter((t) => !!t),\n take(1),\n tap((t) => addEditForm.patchValue(t as never)),\n );\n","export class ModalStates {\n public static readonly ADD = 'add';\n public static readonly EDIT = 'edit';\n public static readonly DELETE = 'delete';\n}\n","import { Observable, map, of } from 'rxjs';\n\nexport function isModalState(\n facade: { currentModalState$: Observable<string | undefined> },\n expectedModalState: string,\n): Observable<boolean> {\n return (\n facade.currentModalState$?.pipe(\n map((currentModalState) => currentModalState === expectedModalState),\n ) || of(false)\n );\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { OnInit, OnDestroy, TemplateRef } from '@angular/core';
|
|
3
|
+
import * as i1 from '@angular/common';
|
|
4
|
+
import * as i2 from '@progress/kendo-angular-dialog';
|
|
3
5
|
import { Observable, BehaviorSubject } from 'rxjs';
|
|
4
6
|
import { FormGroup, AbstractControl, ValidationErrors } from '@angular/forms';
|
|
5
7
|
import { Subscribable, Subscriptions } from 'imng-ngrx-utils';
|
|
6
8
|
import { EnumProperties } from 'openapi-ts-generator/enums';
|
|
7
|
-
import * as i4 from '@angular/common';
|
|
8
|
-
import * as i5 from '@progress/kendo-angular-dialog';
|
|
9
9
|
import { ValueType, IdType } from 'imng-nrsrx-client-utils';
|
|
10
10
|
|
|
11
11
|
interface IDataEntryFacade<Entity> extends IBaseDataEntryFacade {
|
|
@@ -74,10 +74,10 @@ declare abstract class BaseDataEntryComponent<FACADE extends IBaseDataEntryFacad
|
|
|
74
74
|
abstract initForm(): void;
|
|
75
75
|
abstract save(): void;
|
|
76
76
|
static ɵfac: i0.ɵɵFactoryDeclaration<BaseDataEntryComponent<any>, never>;
|
|
77
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<BaseDataEntryComponent<any>, "ng-component", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never,
|
|
77
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<BaseDataEntryComponent<any>, "ng-component", never, { "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; }, {}, never, never, true, never>;
|
|
78
78
|
}
|
|
79
79
|
|
|
80
|
-
declare class
|
|
80
|
+
declare class IMNG_KENDO_DATA_ENTRY_DIALOG implements OnInit {
|
|
81
81
|
minWidth?: number;
|
|
82
82
|
width: number;
|
|
83
83
|
height: number;
|
|
@@ -100,17 +100,17 @@ declare class DataEntryDialogComponent implements OnInit {
|
|
|
100
100
|
cancel(): void;
|
|
101
101
|
submit(): void;
|
|
102
102
|
get dialogActionBtnsCtx(): object | null;
|
|
103
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
104
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
103
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IMNG_KENDO_DATA_ENTRY_DIALOG, never>;
|
|
104
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IMNG_KENDO_DATA_ENTRY_DIALOG, "imng-data-entry-dialog[parentComponent]", never, { "minWidth": { "alias": "minWidth"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "autoFocusedElement": { "alias": "autoFocusedElement"; "required": false; }; "parentComponent": { "alias": "parentComponent"; "required": false; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; "submitButtonText": { "alias": "submitButtonText"; "required": false; }; }, {}, ["dialogBtnsTemplate"], ["*"], true, never>;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
declare class
|
|
107
|
+
declare class IMNG_KENDO_DIALOG_BUTTONS {
|
|
108
108
|
tpl: TemplateRef<unknown>;
|
|
109
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
110
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<
|
|
109
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IMNG_KENDO_DIALOG_BUTTONS, never>;
|
|
110
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<IMNG_KENDO_DIALOG_BUTTONS, "[imngDialogBtns]", never, {}, {}, never, never, true, never>;
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
declare class
|
|
113
|
+
declare class IMNG_KENDO_DELETE_DIALOG {
|
|
114
114
|
readonly minWidth: i0.InputSignal<number | undefined>;
|
|
115
115
|
readonly width: i0.InputSignal<number>;
|
|
116
116
|
readonly height: i0.InputSignal<number>;
|
|
@@ -129,13 +129,13 @@ declare class DataDeleteDialogComponent {
|
|
|
129
129
|
cancel(): void;
|
|
130
130
|
delete(): void;
|
|
131
131
|
get dialogActionBtnsCtx(): object | null;
|
|
132
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
133
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<
|
|
132
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<IMNG_KENDO_DELETE_DIALOG, never>;
|
|
133
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<IMNG_KENDO_DELETE_DIALOG, "imng-data-delete-dialog", never, { "minWidth": { "alias": "minWidth"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "dataItem": { "alias": "dataItem"; "required": true; "isSignal": true; }; "dialogTitle": { "alias": "dialogTitle"; "required": false; "isSignal": true; }; "facade": { "alias": "facade"; "required": true; "isSignal": true; }; "cancelButtonText": { "alias": "cancelButtonText"; "required": false; }; "deleteButtonText": { "alias": "deleteButtonText"; "required": false; }; }, {}, ["dialogBtnsTemplate"], ["*"], true, never>;
|
|
134
134
|
}
|
|
135
135
|
|
|
136
136
|
declare class ImngDataEntryDialogModule {
|
|
137
137
|
static ɵfac: i0.ɵɵFactoryDeclaration<ImngDataEntryDialogModule, never>;
|
|
138
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<ImngDataEntryDialogModule, [typeof
|
|
138
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<ImngDataEntryDialogModule, never, [typeof i1.CommonModule, typeof i2.DialogModule, typeof IMNG_KENDO_DATA_ENTRY_DIALOG, typeof IMNG_KENDO_DIALOG_BUTTONS, typeof IMNG_KENDO_DELETE_DIALOG], [typeof IMNG_KENDO_DATA_ENTRY_DIALOG, typeof IMNG_KENDO_DIALOG_BUTTONS, typeof IMNG_KENDO_DELETE_DIALOG]>;
|
|
139
139
|
static ɵinj: i0.ɵɵInjectorDeclaration<ImngDataEntryDialogModule>;
|
|
140
140
|
}
|
|
141
141
|
|
|
@@ -167,5 +167,5 @@ declare function isModalState(facade: {
|
|
|
167
167
|
currentModalState$: Observable<string | undefined>;
|
|
168
168
|
}, expectedModalState: string): Observable<boolean>;
|
|
169
169
|
|
|
170
|
-
export { BaseDataEntryComponent,
|
|
170
|
+
export { BaseDataEntryComponent, IMNG_KENDO_DATA_ENTRY_DIALOG, IMNG_KENDO_DELETE_DIALOG, IMNG_KENDO_DIALOG_BUTTONS, ImngDataEntryDialogModule, ModalStates, addStateCollectionItem, formGroupPatcher, isModalState, removeStateCollectionItem, updateStateCollectionItem };
|
|
171
171
|
export type { IBaseDataEntryFacade, IDataDeleteFacade, IDataEntryFacade };
|