bpm-core 0.0.129 → 0.0.131
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +57 -4
- package/fesm2022/bpm-core.mjs +354 -304
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/shared-components/form-field/attachment-section/attachment-section.component.d.ts +1 -2
- package/lib/components/shared-components/form-field/control-value-accessor.directive.d.ts +4 -4
- package/lib/components/shared-components/form-field/index.d.ts +0 -1
- package/lib/components/shared-components/form-field/input/input.component.d.ts +3 -2
- package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts +2 -0
- package/lib/components/shared-components/form-field/radio/radio.component.d.ts +39 -2
- package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts +5 -5
- package/lib/components/shared-components/form-field/shared-imports.d.ts +3 -6
- package/lib/components/shared-components/form-field/textarea/textarea.component.d.ts +76 -1
- package/lib/components/shared-components/table/table.component.d.ts +3 -3
- package/lib/{components/shared-components/form-field/input → directives}/input-map-filter/input-filters.d.ts +1 -0
- package/lib/{components/shared-components/form-field/input → directives}/input-map-filter/input-map-filter.directive.d.ts +4 -1
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +2 -5
- package/package.json +8 -3
- package/public-api.d.ts +1 -0
- package/src/lib/assets/scss/_general.scss +0 -205
- package/src/lib/assets/scss/base.scss +0 -2
- package/cli/deploy/build.js +0 -62
- package/cli/deploy/git-operations-handler.js +0 -104
- package/cli/deploy/index.js +0 -61
- package/cli/deploy/jenkins-manager.js +0 -107
- package/cli/deploy/utilities.js +0 -114
- package/cli/generate/index.js +0 -8
- package/cli/generate/mock/form-node.js +0 -77
- package/cli/generate/mock/index.js +0 -207
- package/cli/generate/mock/lov.js +0 -18
- package/cli/index.js +0 -14
- package/lib/directives/ar.directive.d.ts +0 -11
- package/lib/directives/en.directive.d.ts +0 -11
- package/lib/directives/number.directive.d.ts +0 -14
- package/src/lib/assets/scss/_charts.scss +0 -190
- /package/lib/{components/shared-components/form-field/input → directives}/input-map-filter/index.d.ts +0 -0
- /package/lib/{components/shared-components/form-field/input → directives}/input-map-filter/input-mappers.d.ts +0 -0
- /package/lib/{components/shared-components/form-field/input → directives}/input-map-filter/types.d.ts +0 -0
|
@@ -16,7 +16,6 @@ export declare class AttachmentSectionComponent extends ControlValueAccessorDire
|
|
|
16
16
|
isSortable: boolean;
|
|
17
17
|
downloadAll: boolean;
|
|
18
18
|
popupData: any;
|
|
19
|
-
isRequired: boolean;
|
|
20
19
|
descriptionRequired: boolean;
|
|
21
20
|
commentsRequired: boolean;
|
|
22
21
|
allowedExtensions: string;
|
|
@@ -44,5 +43,5 @@ export declare class AttachmentSectionComponent extends ControlValueAccessorDire
|
|
|
44
43
|
downloadFile(event: any, field: any): Promise<void>;
|
|
45
44
|
customDownloadAction(event: any): void;
|
|
46
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<AttachmentSectionComponent, never>;
|
|
47
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentSectionComponent, "app-attachment-section", never, { "className": { "alias": "className"; "required": false; }; "customDownload": { "alias": "customDownload"; "required": false; }; "attachmentsMax": { "alias": "attachmentsMax"; "required": false; }; "isSortable": { "alias": "isSortable"; "required": false; }; "downloadAll": { "alias": "downloadAll"; "required": false; }; "
|
|
46
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AttachmentSectionComponent, "app-attachment-section", never, { "className": { "alias": "className"; "required": false; }; "customDownload": { "alias": "customDownload"; "required": false; }; "attachmentsMax": { "alias": "attachmentsMax"; "required": false; }; "isSortable": { "alias": "isSortable"; "required": false; }; "downloadAll": { "alias": "downloadAll"; "required": false; }; "descriptionRequired": { "alias": "descriptionRequired"; "required": false; }; "commentsRequired": { "alias": "commentsRequired"; "required": false; }; "allowedExtensions": { "alias": "allowedExtensions"; "required": false; }; }, { "downloadActionClicked": "downloadActionClicked"; "emitedValue": "emitedValue"; }, never, never, true, never>;
|
|
48
47
|
}
|
|
@@ -41,11 +41,11 @@ export declare class ControlValueAccessorDirective<Type> implements ControlValue
|
|
|
41
41
|
Validators: typeof Validators;
|
|
42
42
|
minDateValue: any;
|
|
43
43
|
maxDateValue: any;
|
|
44
|
-
maxDate:
|
|
44
|
+
maxDate: 'today' | 'oneYear';
|
|
45
45
|
datepickerObj: any;
|
|
46
|
-
minDate:
|
|
47
|
-
customMaxDate:
|
|
48
|
-
customMinDate:
|
|
46
|
+
minDate: 'today';
|
|
47
|
+
customMaxDate: string;
|
|
48
|
+
customMinDate: string;
|
|
49
49
|
value: any;
|
|
50
50
|
control: FormControl | undefined;
|
|
51
51
|
required: boolean;
|
|
@@ -6,7 +6,6 @@ export * from './date-range-picker/date-range-picker.component';
|
|
|
6
6
|
export * from './form-label/form-label.component';
|
|
7
7
|
export * from './info-item/info-item.component';
|
|
8
8
|
export * from './input/input.component';
|
|
9
|
-
export * from './input/input-map-filter';
|
|
10
9
|
export * from './input-number/input-number.component';
|
|
11
10
|
export * from './input-email/input-email.component';
|
|
12
11
|
export * from './input-mask/input-mask.component';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventEmitter, DestroyRef } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
3
|
-
import type { InputMapFn, InputFilterFn } from '
|
|
3
|
+
import type { InputMapFn, InputFilterFn } from '../../../../directives/input-map-filter/types';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class InputComponent<Type> extends ControlValueAccessorDirective<Type> {
|
|
6
6
|
floatLabel: any;
|
|
@@ -8,6 +8,7 @@ export declare class InputComponent<Type> extends ControlValueAccessorDirective<
|
|
|
8
8
|
iconPrefixName: string;
|
|
9
9
|
iconSuffixName: string;
|
|
10
10
|
emitedChangedValue1: EventEmitter<any>;
|
|
11
|
+
maxLength: number | string;
|
|
11
12
|
/**
|
|
12
13
|
* A mapping function that modifies the input value during typing, pasting, or dropping text.
|
|
13
14
|
* You can use it to modify the full input value **before it appears** (e.g., for auto-capitalization,
|
|
@@ -85,5 +86,5 @@ export declare class InputComponent<Type> extends ControlValueAccessorDirective<
|
|
|
85
86
|
destroyRef: DestroyRef;
|
|
86
87
|
ngOnInit(): void;
|
|
87
88
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputComponent<any>, never>;
|
|
88
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent<any>, "app-input", never, { "floatLabel": { "alias": "floatLabel"; "required": false; }; "className": { "alias": "className"; "required": false; }; "iconPrefixName": { "alias": "iconPrefixName"; "required": false; }; "iconSuffixName": { "alias": "iconSuffixName"; "required": false; }; "emitedChangedValue1": { "alias": "emitedChangedValue1"; "required": false; }; "mapFn": { "alias": "mapFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; }, {}, never, never, true, never>;
|
|
89
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<InputComponent<any>, "app-input", never, { "floatLabel": { "alias": "floatLabel"; "required": false; }; "className": { "alias": "className"; "required": false; }; "iconPrefixName": { "alias": "iconPrefixName"; "required": false; }; "iconSuffixName": { "alias": "iconSuffixName"; "required": false; }; "emitedChangedValue1": { "alias": "emitedChangedValue1"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "mapFn": { "alias": "mapFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; }, {}, never, never, true, never>;
|
|
89
90
|
}
|
package/lib/components/shared-components/form-field/input-number/input-number.component.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { DestroyRef, EventEmitter } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
3
|
+
import { InputFilterFn } from '../../../../directives/input-map-filter';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class InputNumberComponent<Type> extends ControlValueAccessorDirective<Type> {
|
|
5
6
|
floatLabel: any;
|
|
@@ -10,6 +11,7 @@ export declare class InputNumberComponent<Type> extends ControlValueAccessorDire
|
|
|
10
11
|
allowedPattern: string;
|
|
11
12
|
destroyRef: DestroyRef;
|
|
12
13
|
emitedChangedValue: EventEmitter<any>;
|
|
14
|
+
onlyNumbers: InputFilterFn;
|
|
13
15
|
ngOnInit(): void;
|
|
14
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputNumberComponent<any>, never>;
|
|
15
17
|
static ɵcmp: i0.ɵɵComponentDeclaration<InputNumberComponent<any>, "app-input-number", never, { "floatLabel": { "alias": "floatLabel"; "required": false; }; "className": { "alias": "className"; "required": false; }; "iconPrefixName": { "alias": "iconPrefixName"; "required": false; }; "iconSuffixName": { "alias": "iconSuffixName"; "required": false; }; "numberSuffixName": { "alias": "numberSuffixName"; "required": false; }; "allowedPattern": { "alias": "allowedPattern"; "required": false; }; }, { "emitedChangedValue": "emitedChangedValue"; }, never, never, true, never>;
|
|
@@ -1,10 +1,47 @@
|
|
|
1
1
|
import { DestroyRef } from '@angular/core';
|
|
2
|
+
import { MatRadioChange } from '@angular/material/radio';
|
|
2
3
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
5
|
+
/**
|
|
6
|
+
* Radio Component for selecting a single option from a list of options.
|
|
7
|
+
*
|
|
8
|
+
* Supports both Reactive Forms and Template-driven forms.
|
|
9
|
+
*
|
|
10
|
+
* Inputs:
|
|
11
|
+
* - `options`: Accepts an array of objects used as the selection list.
|
|
12
|
+
* - `displayedLabel`: Property name from the option object to display in the UI (default: `'description'`).
|
|
13
|
+
* - `key`: Property name from the option object used as the value (default: `'value'`).
|
|
14
|
+
* - `label`: Defines the label text shown above the radio buttons.
|
|
15
|
+
* - `isReadOnly`: Disables interaction and renders the component in a read-only display mode.
|
|
16
|
+
* - `mandatory`: Hides the "optional" label visually. Does not add validation.
|
|
17
|
+
* - `required`: Hides the "optional" label and also adds Angular's required validator.
|
|
18
|
+
* - `tooltip`: Displays a tooltip beside the label.
|
|
19
|
+
*
|
|
20
|
+
* Emits:
|
|
21
|
+
* - The selected value is emitted as an object with `key` and `value` properties:
|
|
22
|
+
* ```ts
|
|
23
|
+
* { key: option[key], value: option[displayedLabel] }
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* Example usage:
|
|
27
|
+
* ```html
|
|
28
|
+
*<app-radio
|
|
29
|
+
* class="section-item"
|
|
30
|
+
* [isReadOnly]="isReadOnly"
|
|
31
|
+
* formControlName="radio"
|
|
32
|
+
* [options]="[]"
|
|
33
|
+
* label="Radio"
|
|
34
|
+
*>
|
|
35
|
+
*</app-radio>
|
|
36
|
+
* ```
|
|
37
|
+
*/
|
|
4
38
|
export declare class RadioComponent<Type> extends ControlValueAccessorDirective<Type> {
|
|
5
|
-
options: any
|
|
39
|
+
options: Array<Record<string, any>>;
|
|
40
|
+
displayedLabel: string;
|
|
41
|
+
key: string;
|
|
6
42
|
destroyRef: DestroyRef;
|
|
7
43
|
ngOnInit(): void;
|
|
44
|
+
onChange(event: MatRadioChange): void;
|
|
8
45
|
static ɵfac: i0.ɵɵFactoryDeclaration<RadioComponent<any>, never>;
|
|
9
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent<any>, "app-radio", never, { "options": { "alias": "options"; "required": false; }; }, {}, never, never, true, never>;
|
|
46
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<RadioComponent<any>, "app-radio", never, { "options": { "alias": "options"; "required": false; }; "displayedLabel": { "alias": "displayedLabel"; "required": false; }; "key": { "alias": "key"; "required": false; }; }, {}, never, never, true, never>;
|
|
10
47
|
}
|
package/lib/components/shared-components/form-field/search-employee/search-employee.component.d.ts
CHANGED
|
@@ -9,11 +9,11 @@ export declare class SearchEmployeeComponent<Type> extends ControlValueAccessorD
|
|
|
9
9
|
floatLabel: any;
|
|
10
10
|
error: string;
|
|
11
11
|
selected: boolean;
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* Emits the full details of the selected employee.
|
|
14
|
+
*/
|
|
15
|
+
selectedEmployee: EventEmitter<any>;
|
|
14
16
|
showEdit: boolean;
|
|
15
|
-
editDirectManger: EventEmitter<any>;
|
|
16
|
-
deleteDirectManger: EventEmitter<any>;
|
|
17
17
|
arrayList: any[];
|
|
18
18
|
isUniqueUsers: boolean;
|
|
19
19
|
userAlreadyExist: boolean;
|
|
@@ -26,7 +26,7 @@ export declare class SearchEmployeeComponent<Type> extends ControlValueAccessorD
|
|
|
26
26
|
getImage(id: string): string;
|
|
27
27
|
selectOption(object: any, ev: any): void;
|
|
28
28
|
static ɵfac: i0.ɵɵFactoryDeclaration<SearchEmployeeComponent<any>, never>;
|
|
29
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<SearchEmployeeComponent<any>, "app-search-employee", never, { "valueName": { "alias": "valueName"; "required": false; }; "className": { "alias": "className"; "required": false; }; "optional": { "alias": "optional"; "required": false; }; "data": { "alias": "data"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "showEdit": { "alias": "showEdit"; "required": false; }; "arrayList": { "alias": "arrayList"; "required": false; }; "isUniqueUsers": { "alias": "isUniqueUsers"; "required": false; }; }, { "
|
|
29
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<SearchEmployeeComponent<any>, "app-search-employee", never, { "valueName": { "alias": "valueName"; "required": false; }; "className": { "alias": "className"; "required": false; }; "optional": { "alias": "optional"; "required": false; }; "data": { "alias": "data"; "required": false; }; "floatLabel": { "alias": "floatLabel"; "required": false; }; "error": { "alias": "error"; "required": false; }; "showEdit": { "alias": "showEdit"; "required": false; }; "arrayList": { "alias": "arrayList"; "required": false; }; "isUniqueUsers": { "alias": "isUniqueUsers"; "required": false; }; }, { "selectedEmployee": "selectedEmployee"; "emitedDeletedValue": "emitedDeletedValue"; }, never, never, true, never>;
|
|
30
30
|
}
|
|
31
31
|
export interface searchEmp {
|
|
32
32
|
personName?: string;
|
|
@@ -5,11 +5,8 @@ import { FormLabelComponent } from "./form-label/form-label.component";
|
|
|
5
5
|
import { ValidationErrorsComponent } from "./validation-errors/validation-errors.component";
|
|
6
6
|
import { ReactiveFormsModule } from "@angular/forms";
|
|
7
7
|
import { InfoItemComponent } from "./info-item/info-item.component";
|
|
8
|
-
import { EnOnlyDirective } from "../../../directives/en.directive";
|
|
9
|
-
import { ArOnlyDirective } from "../../../directives/ar.directive";
|
|
10
8
|
import { NgClass } from "@angular/common";
|
|
11
9
|
import { TranslatePipe } from "../../../pipes/translate.pipe";
|
|
12
|
-
export declare const MatDatePickerImports: (typeof
|
|
13
|
-
export declare const MatFormImports: (typeof
|
|
14
|
-
export declare const Shareds: (typeof
|
|
15
|
-
export declare const TextLanguageDirectives: (typeof EnOnlyDirective | typeof ArOnlyDirective)[];
|
|
10
|
+
export declare const MatDatePickerImports: (typeof MatDatepickerToggle | typeof MatDatepickerInput | typeof MatDatepickerModule)[];
|
|
11
|
+
export declare const MatFormImports: (typeof MatFormFieldModule | typeof MatFormField | typeof MatInput)[];
|
|
12
|
+
export declare const Shareds: (typeof FormLabelComponent | typeof ValidationErrorsComponent | typeof InfoItemComponent | typeof ReactiveFormsModule | typeof NgClass | typeof TranslatePipe)[];
|
|
@@ -1,12 +1,87 @@
|
|
|
1
1
|
import { DestroyRef } from '@angular/core';
|
|
2
2
|
import { ControlValueAccessorDirective } from '../control-value-accessor.directive';
|
|
3
|
+
import type { InputMapFn, InputFilterFn } from '../../../../directives/input-map-filter/types';
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
export declare class TextareaComponent<Type> extends ControlValueAccessorDirective<Type> {
|
|
5
6
|
className: string;
|
|
6
7
|
preventSpecailChar: boolean;
|
|
7
8
|
maxLength: number | string;
|
|
9
|
+
/**
|
|
10
|
+
* A mapping function that modifies the input value during typing, pasting, or dropping text.
|
|
11
|
+
* You can use it to modify the full input value **before it appears** (e.g., for auto-capitalization,
|
|
12
|
+
* formatting, or custom replacements).
|
|
13
|
+
*
|
|
14
|
+
* This function is called:
|
|
15
|
+
* - On each **key press**, to determine how the input value should change when a character is typed.
|
|
16
|
+
* - On **paste**, to transform the pasted content before it’s applied.
|
|
17
|
+
* - On **drop**, to transform the dropped text before it’s applied.
|
|
18
|
+
*
|
|
19
|
+
* **Built-in mappers are available via the `InputMappers` utility class:**
|
|
20
|
+
*
|
|
21
|
+
* - `InputMappers.toUpperCase` — Transforms all input to UPPERCASE.
|
|
22
|
+
* - `InputMappers.toLowerCase` — Transforms all input to lowercase.
|
|
23
|
+
*
|
|
24
|
+
* @param char - The character(s) being inserted. This is:
|
|
25
|
+
* - A single character (e.g., `'a'`) during typing.
|
|
26
|
+
* - The full pasted string during paste events.
|
|
27
|
+
* - The full dropped string during drop events.
|
|
28
|
+
* @param currentValue - The current value of the input **before** the change is applied.
|
|
29
|
+
* @param nextValue - The simulated value of the input **after** the character, paste, or drop is inserted, but before transformation.
|
|
30
|
+
*
|
|
31
|
+
* @returns The final string to use as the new input value.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* // Use a built-in mapper to force UPPERCASE input:
|
|
35
|
+
* this.mapFn = InputMappers.toUpperCase;
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* // Custom mapper: Capitalize the first letter of each word
|
|
39
|
+
* this.mapFn = (char, current, next) =>
|
|
40
|
+
* typeof next === 'string' ? next.replace(/\b\w/g, c => c.toUpperCase()) : next;
|
|
41
|
+
*/
|
|
42
|
+
mapFn: InputMapFn;
|
|
43
|
+
/**
|
|
44
|
+
* A filtering function that determines whether a character or string should be allowed into the input.
|
|
45
|
+
*
|
|
46
|
+
* This function is called during:
|
|
47
|
+
* - **Typing**: When a key is pressed to decide if the character should be accepted.
|
|
48
|
+
* - **Paste**: When text is pasted to decide if the entire pasted string should be accepted.
|
|
49
|
+
* - **Drop**: When text is dropped into the input to decide if it should be allowed.
|
|
50
|
+
*
|
|
51
|
+
* You can use it to reject unwanted characters (e.g. numbers, symbols) or block input entirely based
|
|
52
|
+
* on the current or predicted value.
|
|
53
|
+
*
|
|
54
|
+
* **Built-in filters are available via the `InputFilters` utility class:**
|
|
55
|
+
*
|
|
56
|
+
* - `InputFilters.arabicOnly` — Allows Arabic letters and digits, as well as common symbols.
|
|
57
|
+
* - `InputFilters.englishOnly` — Allows English letters and digits, as well as common symbols.
|
|
58
|
+
* - `InputFilters.digitsOnly` — Allows digits only (`0–9`), no letters or symbols.
|
|
59
|
+
* - You can also use `InputFilters.buildPattern()` to define a custom filter.
|
|
60
|
+
*
|
|
61
|
+
* @param char - The character(s) being inserted:
|
|
62
|
+
* - A single typed character (e.g., `'a'`) during key presses
|
|
63
|
+
* - The full pasted or dropped string during paste/drop
|
|
64
|
+
* @param currentValue - The current value of the input before the character or string is applied.
|
|
65
|
+
* @param nextValue - The simulated next value if the character or string were applied.
|
|
66
|
+
* @param event - The originating event triggering the input change. This can be a
|
|
67
|
+
* `KeyboardEvent` (for typing), `ClipboardEvent` (for paste), or `DragEvent` (for drop).
|
|
68
|
+
*
|
|
69
|
+
* @returns `true` to allow the input, or `false` to block it.
|
|
70
|
+
*
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* // Use a built-in filter to restrict to digits only
|
|
74
|
+
* this.filterFn = InputFilters.digitsOnly;
|
|
75
|
+
*
|
|
76
|
+
* @example
|
|
77
|
+
* // Custom filter: Allow only letters (no numbers or symbols)
|
|
78
|
+
* this.filterFn = (char, current, next, event) => {
|
|
79
|
+
* return /^[a-zA-Z]+$/.test(char);
|
|
80
|
+
* };
|
|
81
|
+
*/
|
|
82
|
+
filterFn: InputFilterFn;
|
|
8
83
|
destroyRef: DestroyRef;
|
|
9
84
|
ngOnInit(): void;
|
|
10
85
|
static ɵfac: i0.ɵɵFactoryDeclaration<TextareaComponent<any>, never>;
|
|
11
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent<any>, "app-textarea", never, { "className": { "alias": "className"; "required": false; }; "preventSpecailChar": { "alias": "preventSpecailChar"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; }, {}, never, never, true, never>;
|
|
86
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<TextareaComponent<any>, "app-textarea", never, { "className": { "alias": "className"; "required": false; }; "preventSpecailChar": { "alias": "preventSpecailChar"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; "mapFn": { "alias": "mapFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
87
|
}
|
|
@@ -4,13 +4,13 @@ import { MatDialog } from '@angular/material/dialog';
|
|
|
4
4
|
import { MatPaginator, PageEvent } from '@angular/material/paginator';
|
|
5
5
|
import { MatSort, Sort } from '@angular/material/sort';
|
|
6
6
|
import { MatTableDataSource } from '@angular/material/table';
|
|
7
|
-
import { TranslateService } from '@ngx-translate/core';
|
|
8
7
|
import { ActionModel } from '../../../interfaces/action.interface';
|
|
9
8
|
import { Actions } from '../../../enums/actions.enum';
|
|
9
|
+
import { CoreI18nService } from '../../../services';
|
|
10
10
|
import * as i0 from "@angular/core";
|
|
11
11
|
export declare class TableComponent implements OnInit {
|
|
12
12
|
dialog: MatDialog;
|
|
13
|
-
|
|
13
|
+
i18Service: CoreI18nService;
|
|
14
14
|
private fb;
|
|
15
15
|
matTableRef: ElementRef;
|
|
16
16
|
control: FormControl<any>;
|
|
@@ -51,7 +51,7 @@ export declare class TableComponent implements OnInit {
|
|
|
51
51
|
currentPage: number;
|
|
52
52
|
pageChange: EventEmitter<any>;
|
|
53
53
|
form: FormGroup;
|
|
54
|
-
constructor(dialog: MatDialog,
|
|
54
|
+
constructor(dialog: MatDialog, i18Service: CoreI18nService, fb: FormBuilder);
|
|
55
55
|
set keyWord(value: string);
|
|
56
56
|
_rows: any;
|
|
57
57
|
get rows(): any;
|
|
@@ -19,6 +19,7 @@ export declare class InputFilters {
|
|
|
19
19
|
* @returns `true` if the character is a digit; otherwise, `false`
|
|
20
20
|
*/
|
|
21
21
|
static digitsOnly(char: string, current: string, next: string, event: KeyboardEvent | ClipboardEvent | DragEvent): boolean;
|
|
22
|
+
static decimalDigitsOnly(char: string, current: string, next: string, event: KeyboardEvent | ClipboardEvent | DragEvent): boolean;
|
|
22
23
|
/**
|
|
23
24
|
* Creates a new `PatternBuilder` instance for building a custom input filter.
|
|
24
25
|
*
|
|
@@ -5,11 +5,14 @@ export declare class InputMapFilterDirective {
|
|
|
5
5
|
private ngControl;
|
|
6
6
|
mapFn: InputMapFn;
|
|
7
7
|
filterFn: InputFilterFn;
|
|
8
|
+
maxLength: number | string;
|
|
8
9
|
constructor(ngControl: NgControl);
|
|
9
10
|
handleKeydown(event: KeyboardEvent): boolean;
|
|
10
11
|
handlePaste(event: ClipboardEvent): void;
|
|
11
12
|
handleDrop(event: DragEvent): void;
|
|
13
|
+
private shouldProceed;
|
|
14
|
+
private hasMaxLength;
|
|
12
15
|
private updateValue;
|
|
13
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<InputMapFilterDirective, [{ optional: true; self: true; }]>;
|
|
14
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<InputMapFilterDirective, "[inputMapFilter]", never, { "mapFn": { "alias": "mapFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; }, {}, never, never, true, never>;
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<InputMapFilterDirective, "[inputMapFilter]", never, { "mapFn": { "alias": "mapFn"; "required": false; }; "filterFn": { "alias": "filterFn"; "required": false; }; "maxLength": { "alias": "maxLength"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
18
|
}
|
|
@@ -2,7 +2,6 @@ import { DestroyRef, OnInit } from '@angular/core';
|
|
|
2
2
|
import { Form, Section } from "../../interfaces";
|
|
3
3
|
import { ActionStateService, CoreI18nService } from "../../services";
|
|
4
4
|
import { FormBuilder, FormGroup, ValidatorFn } from "@angular/forms";
|
|
5
|
-
import { InputMappers } from '../../components/shared-components/form-field/input/input-map-filter/input-mappers';
|
|
6
5
|
import * as i0 from "@angular/core";
|
|
7
6
|
export declare class RequestDetailsSectionComponent implements OnInit {
|
|
8
7
|
i18n: CoreI18nService;
|
|
@@ -54,12 +53,12 @@ export declare class RequestDetailsSectionComponent implements OnInit {
|
|
|
54
53
|
totalElements: number;
|
|
55
54
|
constructor(i18n: CoreI18nService, fb: FormBuilder, actionStateService: ActionStateService);
|
|
56
55
|
ngOnInit(): void;
|
|
57
|
-
timePicker: string;
|
|
58
|
-
timePickerChange(e: any): void;
|
|
59
56
|
initializeTableConfig(): void;
|
|
60
57
|
initializeColumns(): void;
|
|
61
58
|
initializeColumnConfig(): void;
|
|
62
59
|
createForm(): void;
|
|
60
|
+
onAddRow(event: any): void;
|
|
61
|
+
onRemoveRow(event: any): void;
|
|
63
62
|
editAsset(asset: any): void;
|
|
64
63
|
startsWithDMOEOrCR(): ValidatorFn;
|
|
65
64
|
deleteAsset(asset: any): void;
|
|
@@ -68,8 +67,6 @@ export declare class RequestDetailsSectionComponent implements OnInit {
|
|
|
68
67
|
customCallSubmit(action: string): void;
|
|
69
68
|
resetForm(): void;
|
|
70
69
|
pageChanged(event: any): void;
|
|
71
|
-
filterFn: import("../../components/shared-components").InputFilterFn;
|
|
72
|
-
mapFn: typeof InputMappers.toUpperCase;
|
|
73
70
|
static ɵfac: i0.ɵɵFactoryDeclaration<RequestDetailsSectionComponent, never>;
|
|
74
71
|
static ɵcmp: i0.ɵɵComponentDeclaration<RequestDetailsSectionComponent, "app-request-details-section", never, { "isReadOnly": { "alias": "isReadOnly"; "required": false; }; "section": { "alias": "section"; "required": false; }; "form": { "alias": "form"; "required": false; }; "lov": { "alias": "lov"; "required": false; }; "className": { "alias": "className"; "required": false; }; }, {}, never, never, true, never>;
|
|
75
72
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bpm-core",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.131",
|
|
4
4
|
"bin": {
|
|
5
5
|
"bpm-core": "./cli/index.js"
|
|
6
6
|
},
|
|
@@ -11,7 +11,12 @@
|
|
|
11
11
|
"ngx-intl-tel-input-gg": "^1.0.12"
|
|
12
12
|
},
|
|
13
13
|
"dependencies": {
|
|
14
|
-
"tslib": "^2.3.0"
|
|
14
|
+
"tslib": "^2.3.0",
|
|
15
|
+
"cheerio": "^1.1.2",
|
|
16
|
+
"prettier": "^3.6.2",
|
|
17
|
+
"change-case": "^5.4.4",
|
|
18
|
+
"ejs": "^3.1.10",
|
|
19
|
+
"commander": "^13.0.0"
|
|
15
20
|
},
|
|
16
21
|
"sideEffects": false,
|
|
17
22
|
"module": "fesm2022/bpm-core.mjs",
|
|
@@ -25,4 +30,4 @@
|
|
|
25
30
|
"default": "./fesm2022/bpm-core.mjs"
|
|
26
31
|
}
|
|
27
32
|
}
|
|
28
|
-
}
|
|
33
|
+
}
|
package/public-api.d.ts
CHANGED
|
@@ -1335,205 +1335,6 @@ div.mat-mdc-select-panel {
|
|
|
1335
1335
|
overflow: auto !important;
|
|
1336
1336
|
}
|
|
1337
1337
|
|
|
1338
|
-
full-calendar.fc .fc-scroller-liquid-absolute,
|
|
1339
|
-
full-calendar.fc .fc-scroller {
|
|
1340
|
-
overflow: auto !important;
|
|
1341
|
-
}
|
|
1342
|
-
|
|
1343
|
-
full-calendar.fc {
|
|
1344
|
-
--fc-padding: 12px;
|
|
1345
|
-
--fc-header-bc: var(--light-gray);
|
|
1346
|
-
--fc-border-color: #dee0e2;
|
|
1347
|
-
--fc-day-size: 30px;
|
|
1348
|
-
--fc-day-fs: 14px;
|
|
1349
|
-
--fc-toolbar-button-size: 33px;
|
|
1350
|
-
--fc-toolbar-button-radius: 0;
|
|
1351
|
-
--fc-toolbar-button-shadow: 0px 7px 10px 0px rgba(0, 0, 0, 0.03);
|
|
1352
|
-
--fc-toolbar-fs: 16px;
|
|
1353
|
-
--fc-toolbar-fw: var(--font-medium);
|
|
1354
|
-
--fc-highlight-color: transparent;
|
|
1355
|
-
//--fc-daygrid-event-dot-width: 9px;
|
|
1356
|
-
--fc-event-height: auto;
|
|
1357
|
-
--fc-toolbar-button-bc: var(--light-gray);
|
|
1358
|
-
--fc-toolbar-button-radius: 100%;
|
|
1359
|
-
--fc-toolbar-button-size: 30px;
|
|
1360
|
-
--fc-toolbar-button-shadow: none;
|
|
1361
|
-
--fc-border: 1px var(--gray);
|
|
1362
|
-
--fc-shadow: none;
|
|
1363
|
-
--fc-event-text-color: var(--black);
|
|
1364
|
-
|
|
1365
|
-
.fc-view table {
|
|
1366
|
-
.fc-col-header {
|
|
1367
|
-
--fc-header-fc: #00;
|
|
1368
|
-
--fc-header-fs: 12px;
|
|
1369
|
-
--fc-header-fw: 400;
|
|
1370
|
-
border: 1px solid;
|
|
1371
|
-
|
|
1372
|
-
th {
|
|
1373
|
-
// text-align: center;
|
|
1374
|
-
// border-right: 0px;
|
|
1375
|
-
// border-left: 0px;
|
|
1376
|
-
a {
|
|
1377
|
-
color: var(--dark-gray);
|
|
1378
|
-
font-size: 14px;
|
|
1379
|
-
font-weight: 500;
|
|
1380
|
-
}
|
|
1381
|
-
}
|
|
1382
|
-
}
|
|
1383
|
-
|
|
1384
|
-
tbody .fc-scroller-harness {
|
|
1385
|
-
td {
|
|
1386
|
-
height: 122px;
|
|
1387
|
-
|
|
1388
|
-
&.fc-day-other {
|
|
1389
|
-
// background: var(--light-gray) !important;
|
|
1390
|
-
}
|
|
1391
|
-
|
|
1392
|
-
.fc-daygrid-day-frame {
|
|
1393
|
-
// background-color: initial;
|
|
1394
|
-
}
|
|
1395
|
-
|
|
1396
|
-
&:hover {
|
|
1397
|
-
.fc-daygrid-event-harness {
|
|
1398
|
-
// display: none;
|
|
1399
|
-
}
|
|
1400
|
-
|
|
1401
|
-
.fc-daygrid-day-bottom:empty {
|
|
1402
|
-
// background-image: url(../images/plus.svg);
|
|
1403
|
-
display: block;
|
|
1404
|
-
width: 100%;
|
|
1405
|
-
height: 100%;
|
|
1406
|
-
background-position: center center;
|
|
1407
|
-
background-repeat: no-repeat;
|
|
1408
|
-
cursor: pointer;
|
|
1409
|
-
position: absolute;
|
|
1410
|
-
z-index: 140;
|
|
1411
|
-
top: 0;
|
|
1412
|
-
}
|
|
1413
|
-
}
|
|
1414
|
-
|
|
1415
|
-
.fc-daygrid-event-harness {
|
|
1416
|
-
width: 100%;
|
|
1417
|
-
display: flex;
|
|
1418
|
-
justify-content: end;
|
|
1419
|
-
// background: white;
|
|
1420
|
-
height: 100%;
|
|
1421
|
-
z-index: 20;
|
|
1422
|
-
align-items: start;
|
|
1423
|
-
}
|
|
1424
|
-
|
|
1425
|
-
.fc-daygrid-day-events {
|
|
1426
|
-
position: initial;
|
|
1427
|
-
height: 100%;
|
|
1428
|
-
}
|
|
1429
|
-
|
|
1430
|
-
.fc-daygrid-day-frame {
|
|
1431
|
-
height: 100%;
|
|
1432
|
-
}
|
|
1433
|
-
|
|
1434
|
-
.fc-event {
|
|
1435
|
-
padding: 8px 12px;
|
|
1436
|
-
border-radius: 4px;
|
|
1437
|
-
margin: 0;
|
|
1438
|
-
gap: 8px;
|
|
1439
|
-
// width: 100%;
|
|
1440
|
-
text-align: center;
|
|
1441
|
-
cursor: pointer;
|
|
1442
|
-
overflow: hidden;
|
|
1443
|
-
text-overflow: ellipsis;
|
|
1444
|
-
white-space: nowrap;
|
|
1445
|
-
|
|
1446
|
-
.fc-event-time {
|
|
1447
|
-
display: none;
|
|
1448
|
-
}
|
|
1449
|
-
|
|
1450
|
-
.fc-event-title {
|
|
1451
|
-
font-weight: 400;
|
|
1452
|
-
font-size: 12px;
|
|
1453
|
-
}
|
|
1454
|
-
|
|
1455
|
-
.fc-daygrid-event-dot {
|
|
1456
|
-
margin: 0 !important;
|
|
1457
|
-
}
|
|
1458
|
-
|
|
1459
|
-
&.created {
|
|
1460
|
-
background: #007bff;
|
|
1461
|
-
}
|
|
1462
|
-
|
|
1463
|
-
&.submit {
|
|
1464
|
-
background: #868e96;
|
|
1465
|
-
}
|
|
1466
|
-
|
|
1467
|
-
&.progress {
|
|
1468
|
-
background: #ffc107;
|
|
1469
|
-
}
|
|
1470
|
-
|
|
1471
|
-
&.executed {
|
|
1472
|
-
background: #dc3545;
|
|
1473
|
-
}
|
|
1474
|
-
|
|
1475
|
-
&.closed {
|
|
1476
|
-
background: #28a745;
|
|
1477
|
-
}
|
|
1478
|
-
|
|
1479
|
-
&.type {
|
|
1480
|
-
margin-bottom: 8px;
|
|
1481
|
-
padding: 0;
|
|
1482
|
-
display: flex;
|
|
1483
|
-
align-items: center;
|
|
1484
|
-
justify-content: center;
|
|
1485
|
-
width: 30px !important;
|
|
1486
|
-
height: 30px;
|
|
1487
|
-
|
|
1488
|
-
.fc-event-title-container {
|
|
1489
|
-
.fc-event-title {
|
|
1490
|
-
margin-bottom: 0;
|
|
1491
|
-
font-size: 14px;
|
|
1492
|
-
line-height: 14px;
|
|
1493
|
-
}
|
|
1494
|
-
|
|
1495
|
-
&::after {
|
|
1496
|
-
display: none;
|
|
1497
|
-
}
|
|
1498
|
-
}
|
|
1499
|
-
}
|
|
1500
|
-
}
|
|
1501
|
-
|
|
1502
|
-
.fc-daygrid-day-bottom {
|
|
1503
|
-
color: var(--coral);
|
|
1504
|
-
justify-content: end;
|
|
1505
|
-
display: flex;
|
|
1506
|
-
|
|
1507
|
-
a {
|
|
1508
|
-
padding: 5px;
|
|
1509
|
-
}
|
|
1510
|
-
}
|
|
1511
|
-
}
|
|
1512
|
-
}
|
|
1513
|
-
}
|
|
1514
|
-
|
|
1515
|
-
.fc-daygrid-body {
|
|
1516
|
-
border-right: 1px solid rgb(222, 224, 226);
|
|
1517
|
-
border-left: 1px solid rgb(222, 224, 226);
|
|
1518
|
-
}
|
|
1519
|
-
|
|
1520
|
-
.fc-toolbar.fc-header-toolbar {
|
|
1521
|
-
margin-bottom: 20px;
|
|
1522
|
-
|
|
1523
|
-
.fc-toolbar-chunk {
|
|
1524
|
-
gap: 35px;
|
|
1525
|
-
|
|
1526
|
-
.fc-toolbar-title {
|
|
1527
|
-
min-width: auto;
|
|
1528
|
-
}
|
|
1529
|
-
|
|
1530
|
-
.fc-prev-button,
|
|
1531
|
-
.fc-next-button {
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
}
|
|
1535
|
-
}
|
|
1536
|
-
|
|
1537
1338
|
.fc-theme-standard .fc-popover {
|
|
1538
1339
|
border-radius: 5px;
|
|
1539
1340
|
|
|
@@ -1574,12 +1375,6 @@ full-calendar.fc {
|
|
|
1574
1375
|
line-height: 1;
|
|
1575
1376
|
}
|
|
1576
1377
|
|
|
1577
|
-
full-calendar.fc .fc-view table {
|
|
1578
|
-
// border-left-width: 1px;
|
|
1579
|
-
// border-top-width: 1px;
|
|
1580
|
-
// border-radius: 8px;
|
|
1581
|
-
}
|
|
1582
|
-
|
|
1583
1378
|
.CustomType {
|
|
1584
1379
|
margin-bottom: 8px !important;
|
|
1585
1380
|
// padding: 12px !important;
|