imng-kendo-data-entry 9.218.2 → 9.220.3
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/data-entry-dialog-override.ts","../../../../libs/imng-kendo-data-entry/testing/src/imng-kendo-data-entry-testing.ts"],"sourcesContent":["import { jest } from '@jest/globals';\nimport { 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({});\n public currentModalState$?: Observable<string | undefined> = of('');\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, //NOSONAR\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 { expect } from '@jest/globals';\nimport { 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}\nexport async function validateInitialState(\n facade: TestableFacade,\n): 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\nexport async 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 { jest, expect } from '@jest/globals';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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 { jest, expect } from '@jest/globals';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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","import { jest } from '@jest/globals';\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 { jest } from '@jest/globals';\nimport { 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 { expect } from '@jest/globals';\nimport { 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\nexport async 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","import { Component } from '@angular/core';\nimport { MetadataOverride } from '@angular/core/testing';\nimport { KENDO_BUTTON } from '@progress/kendo-angular-buttons';\nimport { KENDO_DIALOG } from '@progress/kendo-angular-dialog';\nimport {\n IMNG_KENDO_BUTTON_STUB,\n IMNG_KENDO_DIALOG_STUBS,\n} from 'imng-kendo-testing-stubs';\n\nexport function getImngKendoDataEntryDialogOverride(): MetadataOverride<Component> {\n return {\n remove: { imports: [KENDO_DIALOG, KENDO_BUTTON] },\n add: { imports: [...IMNG_KENDO_DIALOG_STUBS, IMNG_KENDO_BUTTON_STUB] },\n };\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/data-entry-dialog-override.ts","../../../../libs/imng-kendo-data-entry/testing/src/imng-kendo-data-entry-testing.ts"],"sourcesContent":["import { jest } from '@jest/globals';\nimport { Observable, of } from 'rxjs';\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({});\n public currentModalState$?: Observable<string | undefined> = of('');\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, //NOSONAR\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 { expect } from '@jest/globals';\nimport { 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}\nexport async function validateInitialState(\n facade: TestableFacade,\n): 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\nexport async 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 { jest, expect } from '@jest/globals';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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 { jest, expect } from '@jest/globals';\nimport { HttpClient } from '@angular/common/http';\nimport { Observable, 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 as unknown as { post: () => Observable<unknown> }).post = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { put: () => Observable<unknown> }).put = jest.fn(\n () => of(entity),\n );\n (httpClient as unknown as { delete: () => Observable<unknown> }).delete =\n 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","import { jest } from '@jest/globals';\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 { jest } from '@jest/globals';\nimport { FormControl, FormGroup } from '@angular/forms';\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 { expect } from '@jest/globals';\nimport { 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\nexport async 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","import { Component } from '@angular/core';\nimport { MetadataOverride } from '@angular/core/testing';\nimport { KENDO_BUTTON } from '@progress/kendo-angular-buttons';\nimport { KENDO_DIALOG } from '@progress/kendo-angular-dialog';\nimport {\n IMNG_KENDO_BUTTON_STUB,\n IMNG_KENDO_DIALOG_STUBS,\n} from 'imng-kendo-testing-stubs';\n\nexport function getImngKendoDataEntryDialogOverride(): MetadataOverride<Component> {\n return {\n remove: { imports: [KENDO_DIALOG, KENDO_BUTTON] },\n add: { imports: [...IMNG_KENDO_DIALOG_STUBS, IMNG_KENDO_BUTTON_STUB] },\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["getEntityStatus"],"mappings":"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"}
|
|
@@ -109,10 +109,10 @@ class BaseDataEntryComponent {
|
|
|
109
109
|
}
|
|
110
110
|
return errors;
|
|
111
111
|
}
|
|
112
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
113
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
112
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BaseDataEntryComponent, deps: [{ token: FACADE }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BaseDataEntryComponent, isStandalone: true, selector: "ng-component", inputs: { width: "width", height: "height" }, ngImport: i0, template: '', isInline: true }); }
|
|
114
114
|
}
|
|
115
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
115
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BaseDataEntryComponent, decorators: [{
|
|
116
116
|
type: Component,
|
|
117
117
|
args: [{
|
|
118
118
|
template: '',
|
|
@@ -130,10 +130,10 @@ class IMNG_KENDO_DIALOG_BUTTONS {
|
|
|
130
130
|
constructor() {
|
|
131
131
|
this.tpl = inject(TemplateRef);
|
|
132
132
|
}
|
|
133
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
134
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
133
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DIALOG_BUTTONS, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
134
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: IMNG_KENDO_DIALOG_BUTTONS, isStandalone: true, selector: "[imngDialogBtns]", ngImport: i0 }); }
|
|
135
135
|
}
|
|
136
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
136
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DIALOG_BUTTONS, decorators: [{
|
|
137
137
|
type: Directive,
|
|
138
138
|
args: [{
|
|
139
139
|
selector: '[imngDialogBtns]',
|
|
@@ -174,8 +174,8 @@ class IMNG_KENDO_DATA_ENTRY_DIALOG {
|
|
|
174
174
|
$implicit: { cancel: () => this.cancel(), submit: () => this.submit() },
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
178
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
177
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DATA_ENTRY_DIALOG, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
178
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.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
179
|
[width]="width"
|
|
180
180
|
[minWidth]="minWidth ?? width"
|
|
181
181
|
[height]="height"
|
|
@@ -214,9 +214,9 @@ class IMNG_KENDO_DATA_ENTRY_DIALOG {
|
|
|
214
214
|
class="btn btn-primary btn-sm">
|
|
215
215
|
{{ submitButtonText }}
|
|
216
216
|
</button>
|
|
217
|
-
</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", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"
|
|
217
|
+
</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", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle", "closable"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }, { kind: "component", type: i3.ButtonComponent, selector: "button[kendoButton]", inputs: ["arrowIcon", "toggleable", "togglable", "selected", "tabIndex", "imageUrl", "iconPosition", "iconClass", "icon", "disabled", "size", "rounded", "fillMode", "themeColor", "svgIcon"], outputs: ["selectedChange", "click"], exportAs: ["kendoButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
218
218
|
}
|
|
219
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
219
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DATA_ENTRY_DIALOG, decorators: [{
|
|
220
220
|
type: Component,
|
|
221
221
|
args: [{
|
|
222
222
|
selector: 'imng-data-entry-dialog[parentComponent]',
|
|
@@ -284,12 +284,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
284
284
|
|
|
285
285
|
class IMNG_KENDO_DELETE_DIALOG {
|
|
286
286
|
constructor() {
|
|
287
|
-
this.minWidth = input(undefined,
|
|
288
|
-
|
|
289
|
-
this.
|
|
290
|
-
|
|
291
|
-
this.
|
|
292
|
-
|
|
287
|
+
this.minWidth = input(undefined, /* @ts-ignore */
|
|
288
|
+
...(ngDevMode ? [{ debugName: "minWidth" }] : /* istanbul ignore next */ []));
|
|
289
|
+
this.width = input(450, /* @ts-ignore */
|
|
290
|
+
...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
|
|
291
|
+
this.height = input(225, /* @ts-ignore */
|
|
292
|
+
...(ngDevMode ? [{ debugName: "height" }] : /* istanbul ignore next */ []));
|
|
293
|
+
this.dataItem = input.required(/* @ts-ignore */
|
|
294
|
+
...(ngDevMode ? [{ debugName: "dataItem" }] : /* istanbul ignore next */ []));
|
|
295
|
+
this.dialogTitle = input('Deletion Confirmation', /* @ts-ignore */
|
|
296
|
+
...(ngDevMode ? [{ debugName: "dialogTitle" }] : /* istanbul ignore next */ []));
|
|
297
|
+
this.facade = input.required(/* @ts-ignore */
|
|
298
|
+
...(ngDevMode ? [{ debugName: "facade" }] : /* istanbul ignore next */ []));
|
|
293
299
|
/**
|
|
294
300
|
* https://www.telerik.com/kendo-angular-ui/components/dialogs/dialog/initial-focus/
|
|
295
301
|
*/
|
|
@@ -309,8 +315,8 @@ class IMNG_KENDO_DELETE_DIALOG {
|
|
|
309
315
|
$implicit: { cancel: () => this.cancel(), submit: () => this.delete() },
|
|
310
316
|
};
|
|
311
317
|
}
|
|
312
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
313
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "
|
|
318
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DELETE_DIALOG, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
319
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.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
|
|
314
320
|
[width]="width()"
|
|
315
321
|
[minWidth]="minWidth() ?? width()"
|
|
316
322
|
[height]="height()"
|
|
@@ -341,9 +347,9 @@ class IMNG_KENDO_DELETE_DIALOG {
|
|
|
341
347
|
class="btn btn-danger btn-sm">
|
|
342
348
|
{{ deleteButtonText }}
|
|
343
349
|
</button>
|
|
344
|
-
</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", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"
|
|
350
|
+
</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", "closable", "title", "width", "minWidth", "maxWidth", "height", "minHeight", "maxHeight", "animation"], outputs: ["action", "close"], exportAs: ["kendoDialog"] }, { kind: "component", type: i2.DialogTitleBarComponent, selector: "kendo-dialog-titlebar", inputs: ["id", "closeTitle", "closable"], outputs: ["close"] }, { kind: "component", type: i2.DialogActionsComponent, selector: "kendo-dialog-actions", inputs: ["actions", "layout"], outputs: ["action"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
345
351
|
}
|
|
346
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
352
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: IMNG_KENDO_DELETE_DIALOG, decorators: [{
|
|
347
353
|
type: Component,
|
|
348
354
|
args: [{
|
|
349
355
|
selector: 'imng-data-delete-dialog',
|
|
@@ -392,20 +398,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.10", ngImpo
|
|
|
392
398
|
}] } });
|
|
393
399
|
|
|
394
400
|
class ImngDataEntryDialogModule {
|
|
395
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
396
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
401
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngDataEntryDialogModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
402
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.8", ngImport: i0, type: ImngDataEntryDialogModule, imports: [CommonModule,
|
|
397
403
|
DialogModule,
|
|
398
404
|
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
399
405
|
IMNG_KENDO_DIALOG_BUTTONS,
|
|
400
406
|
IMNG_KENDO_DELETE_DIALOG], exports: [IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
401
407
|
IMNG_KENDO_DIALOG_BUTTONS,
|
|
402
408
|
IMNG_KENDO_DELETE_DIALOG] }); }
|
|
403
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
409
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngDataEntryDialogModule, imports: [CommonModule,
|
|
404
410
|
DialogModule,
|
|
405
411
|
IMNG_KENDO_DATA_ENTRY_DIALOG,
|
|
406
412
|
IMNG_KENDO_DELETE_DIALOG] }); }
|
|
407
413
|
}
|
|
408
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
414
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: ImngDataEntryDialogModule, decorators: [{
|
|
409
415
|
type: NgModule,
|
|
410
416
|
args: [{
|
|
411
417
|
imports: [
|
|
@@ -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})\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';\nimport { KENDO_BUTTON } from '@progress/kendo-angular-buttons';\n\n@Component({\n selector: 'imng-data-entry-dialog[parentComponent]',\n imports: [CommonModule, KENDO_DIALOG, KENDO_BUTTON],\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 [title]=\"cancelButtonText\"\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 [title]=\"submitButtonText\"\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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"}
|
|
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';\nimport { KENDO_BUTTON } from '@progress/kendo-angular-buttons';\n\n@Component({\n selector: 'imng-data-entry-dialog[parentComponent]',\n imports: [CommonModule, KENDO_DIALOG, KENDO_BUTTON],\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 [title]=\"cancelButtonText\"\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 [title]=\"submitButtonText\"\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,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "imng-kendo-data-entry",
|
|
3
3
|
"description": "A library to make integrating Angular Kendo forms and NGRX a bit simpler.",
|
|
4
|
-
"version": "9.
|
|
4
|
+
"version": "9.220.3",
|
|
5
5
|
"peerDependencies": {
|
|
6
6
|
"@angular/common": "*",
|
|
7
7
|
"@angular/core": "*",
|
|
@@ -10,9 +10,9 @@
|
|
|
10
10
|
"@ngrx/store": "*",
|
|
11
11
|
"@progress/kendo-angular-buttons": "*",
|
|
12
12
|
"@progress/kendo-angular-dialog": "*",
|
|
13
|
-
"imng-ngrx-utils": "9.
|
|
14
|
-
"imng-nrsrx-client-utils": "9.
|
|
15
|
-
"imng-kendo-testing-stubs": "9.
|
|
13
|
+
"imng-ngrx-utils": "9.220.3",
|
|
14
|
+
"imng-nrsrx-client-utils": "9.220.3",
|
|
15
|
+
"imng-kendo-testing-stubs": "9.220.3",
|
|
16
16
|
"openapi-ts-generator": ">=10.0.0",
|
|
17
17
|
"rxjs": "*"
|
|
18
18
|
},
|