bpm-core 0.0.128 → 0.0.129
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 +22 -5
- package/cli/generate/index.js +8 -0
- package/cli/generate/mock/form-node.js +77 -0
- package/cli/generate/mock/index.js +207 -0
- package/cli/generate/mock/lov.js +18 -0
- package/cli/index.js +2 -0
- package/fesm2022/bpm-core.mjs +6 -5
- package/fesm2022/bpm-core.mjs.map +1 -1
- package/lib/components/shared-components/form-field/shared-imports.d.ts +1 -1
- package/lib/testComponent/request-details-section/request-details-section.component.d.ts +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
To see all available commands, run:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
bpm-core --help
|
|
14
|
+
npx bpm-core --help
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
The BPM Core CLI includes several helper scripts. You can run any script using its corresponding command.
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
|
|
21
21
|
---
|
|
22
22
|
|
|
23
|
-
- `deploy`
|
|
24
|
-
Use this command to deploy your service
|
|
23
|
+
- `deploy` (supports only library services)
|
|
24
|
+
Use this command to deploy your service to one of the following environments: `dev`, `sit`, or `bat`.
|
|
25
25
|
|
|
26
26
|
The deployment process includes:
|
|
27
27
|
- Running the Angular build
|
|
@@ -32,14 +32,26 @@
|
|
|
32
32
|
In your terminal, navigate to the service directory and run the following command:
|
|
33
33
|
|
|
34
34
|
```bash
|
|
35
|
-
bpm-core deploy --env sit --repo-path D:\stc\build\sit --commit-msg "COW: correct typo in Arabic translation" --remote-dir "cow-new" --username jenkinsUserName --token jenkinsTokenOrPassword
|
|
35
|
+
npx bpm-core deploy --env sit --repo-path D:\stc\build\sit --commit-msg "COW: correct typo in Arabic translation" --remote-dir "cow-new" --username jenkinsUserName --token jenkinsTokenOrPassword
|
|
36
36
|
```
|
|
37
37
|
|
|
38
38
|
**For more details about available options**, run:
|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
bpm-core deploy --help
|
|
41
|
+
npx bpm-core deploy --help
|
|
42
42
|
```
|
|
43
|
+
- `generate` (alias: `g`) — *Supports only library services* Provides subcommands for generating development utilities used in your service.
|
|
44
|
+
- `mock` (alias: `m`) Use this subcommand to generate mock data for your service. The generated mock data will be saved in your service root as a file named `mock-output.json`.
|
|
45
|
+
|
|
46
|
+
**Example usage**
|
|
47
|
+
In your terminal, navigate to the service directory and run the following command:
|
|
48
|
+
|
|
49
|
+
```bash
|
|
50
|
+
npx bpm-core generate mock
|
|
51
|
+
# or using aliases
|
|
52
|
+
npx bpm-core g m
|
|
53
|
+
```
|
|
54
|
+
|
|
43
55
|
|
|
44
56
|
|
|
45
57
|
- ### [Input Mapping and Filtering](#input-mapping-and-filtering)
|
|
@@ -200,6 +212,11 @@
|
|
|
200
212
|
|
|
201
213
|
## [Changes Log](#changes-log)
|
|
202
214
|
|
|
215
|
+
<a id="bpm-core00129-2025-09-01"></a>
|
|
216
|
+
### [bpm-core@0.0.129 — 2025-09-01](#bpm-core00129-2025-09-01)
|
|
217
|
+
- feat(cli): add generate command with mock subcommand to produce mock data
|
|
218
|
+
- fix(file-uploader): update max length error visibility when removing an attachment from multiple files.
|
|
219
|
+
|
|
203
220
|
<a id="bpm-core00128-2025-08-25"></a>
|
|
204
221
|
### [bpm-core@0.0.128 — 2025-08-25](#bpm-core00128-2025-08-25)
|
|
205
222
|
- feat(cli): implement BPM Core CLI with deploy command.
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.generateCommand = void 0;
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const mock_1 = require("./mock");
|
|
6
|
+
exports.generateCommand = new commander_1.Command('generate');
|
|
7
|
+
exports.generateCommand.alias('g');
|
|
8
|
+
exports.generateCommand.addCommand(mock_1.generateMockDataCommand);
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ControlNode = exports.GroupNode = void 0;
|
|
4
|
+
const lov_1 = require("./lov");
|
|
5
|
+
const randomNumber = () => Math.floor(Math.random() * 100);
|
|
6
|
+
const CONTROL_MOCK_MAP = {
|
|
7
|
+
'app-input': () => `Sample text ${randomNumber()}`,
|
|
8
|
+
'app-textarea': () => `Multiline ${randomNumber()}\nText ${randomNumber()}\nHere ${randomNumber()}`,
|
|
9
|
+
'app-datepicker': () => new Date().toISOString(),
|
|
10
|
+
'app-input-number': () => randomNumber().toString(),
|
|
11
|
+
'app-custom-searchable': (control) => {
|
|
12
|
+
const lovName = control.options?.options?.match(/lov\??\.(?<lovName>\w+?)\??\.options/)?.groups?.lovName || control.name;
|
|
13
|
+
return (0, lov_1.getLOVFieldValue)(lovName);
|
|
14
|
+
},
|
|
15
|
+
'app-checkbox': () => "false",
|
|
16
|
+
'app-search-employee': () => ({
|
|
17
|
+
"personName": "Jehad Saleh A Alluhayd",
|
|
18
|
+
"personEmail": "jsalluhayd@stc.com.sa"
|
|
19
|
+
}),
|
|
20
|
+
'app-file-uploader': (control) => {
|
|
21
|
+
const attachment = () => ({
|
|
22
|
+
"fileName": `ajm_location_issue_${randomNumber()}.png`,
|
|
23
|
+
"attachmentId": `b7d2915d-930e-4e93-930e-3675a5959ba8${randomNumber()}`,
|
|
24
|
+
"mimeType": "image\/png"
|
|
25
|
+
});
|
|
26
|
+
control.options?.multiple === 'true' ? [attachment(), attachment()] : attachment();
|
|
27
|
+
},
|
|
28
|
+
'app-input-currency': () => '123' + randomNumber().toString(),
|
|
29
|
+
'app-attachment-section': () => {
|
|
30
|
+
const attachment = () => ({
|
|
31
|
+
"fileDescription": "desc " + randomNumber(),
|
|
32
|
+
"attachmentcomment": "comm " + randomNumber(),
|
|
33
|
+
"fileComments": "comm " + randomNumber(),
|
|
34
|
+
"fileName": `dummy_${randomNumber()}.pdf`,
|
|
35
|
+
"attachmentId": "idd_40910B7B-0000-CE16-BD92-EC800D2FDFC6" + randomNumber(),
|
|
36
|
+
"mimeType": "application/pdf"
|
|
37
|
+
});
|
|
38
|
+
return [attachment(), attachment()];
|
|
39
|
+
},
|
|
40
|
+
'app-radio': (control) => {
|
|
41
|
+
const lovName = control.options?.options?.match(/lov\??\.(?<lovName>\w+?)\??\.options/)?.groups?.lovName || control.name;
|
|
42
|
+
return (0, lov_1.getLOVFieldValue)(lovName);
|
|
43
|
+
},
|
|
44
|
+
};
|
|
45
|
+
class FormNode {
|
|
46
|
+
}
|
|
47
|
+
class GroupNode extends FormNode {
|
|
48
|
+
constructor(name, children = {}) {
|
|
49
|
+
super();
|
|
50
|
+
this.name = name;
|
|
51
|
+
this.children = children;
|
|
52
|
+
}
|
|
53
|
+
getValue() {
|
|
54
|
+
const output = {};
|
|
55
|
+
for (const key in this.children) {
|
|
56
|
+
output[key] = this.children[key].getValue();
|
|
57
|
+
}
|
|
58
|
+
return output;
|
|
59
|
+
}
|
|
60
|
+
addChild(child) {
|
|
61
|
+
this.children[child.name] = child;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
exports.GroupNode = GroupNode;
|
|
65
|
+
class ControlNode extends FormNode {
|
|
66
|
+
constructor(name, tag, options) {
|
|
67
|
+
super();
|
|
68
|
+
this.name = name;
|
|
69
|
+
this.tag = tag;
|
|
70
|
+
this.options = options;
|
|
71
|
+
}
|
|
72
|
+
getValue() {
|
|
73
|
+
const generator = CONTROL_MOCK_MAP[this.tag] || (() => 'Unknown');
|
|
74
|
+
return generator(this);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.ControlNode = ControlNode;
|
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.generateMockDataCommand = void 0;
|
|
27
|
+
const fs = __importStar(require("fs"));
|
|
28
|
+
const path = __importStar(require("path"));
|
|
29
|
+
const cheerio = __importStar(require("cheerio"));
|
|
30
|
+
const commander_1 = require("commander");
|
|
31
|
+
const form_node_1 = require("./form-node");
|
|
32
|
+
const lov_1 = require("./lov");
|
|
33
|
+
exports.generateMockDataCommand = new commander_1.Command('mock');
|
|
34
|
+
exports.generateMockDataCommand.alias('m');
|
|
35
|
+
exports.generateMockDataCommand.action((options) => {
|
|
36
|
+
main();
|
|
37
|
+
});
|
|
38
|
+
const projectRoot = process.cwd();
|
|
39
|
+
const serviceName = path.basename(projectRoot);
|
|
40
|
+
const configDir = path.join(projectRoot, 'src', 'app', 'config');
|
|
41
|
+
const configFile = path.join(configDir, 'segment-dynamic-loader.config.ts');
|
|
42
|
+
function extractComponentPaths(configContent) {
|
|
43
|
+
const importRegex = /import\s*{\s*(?<name>\w+)\s*}\s+from\s+['"](?<path>.+?)['"]/g;
|
|
44
|
+
const imports = [...configContent.matchAll(importRegex)].reduce((prev, curr) => {
|
|
45
|
+
prev.push(curr.groups);
|
|
46
|
+
return prev;
|
|
47
|
+
}, []);
|
|
48
|
+
const exportRegex = /roleToApprovalSectionMapping\s*:\s*{([^}]+)}/s;
|
|
49
|
+
const exportMatch = configContent.match(exportRegex);
|
|
50
|
+
const body = exportMatch[1];
|
|
51
|
+
const usageRegex = /\s*(?<role>\w+)\s*:\s*(?<name>\w+)/g;
|
|
52
|
+
const roleToCompClassName = [...body.matchAll(usageRegex)].reduce((prev, curr) => {
|
|
53
|
+
prev.push(curr.groups);
|
|
54
|
+
return prev;
|
|
55
|
+
}, []);
|
|
56
|
+
const roleToRealCompPath = roleToCompClassName.reduce((prev, curr) => {
|
|
57
|
+
const importPathInConfigFile = imports.find((imp) => imp.name === curr.name).path;
|
|
58
|
+
const realPath = path.join(configDir, importPathInConfigFile + '.ts');
|
|
59
|
+
prev.push({ role: curr.role, path: realPath });
|
|
60
|
+
return prev;
|
|
61
|
+
}, []);
|
|
62
|
+
return roleToRealCompPath;
|
|
63
|
+
}
|
|
64
|
+
function getTemplatePath(componentTsPath) {
|
|
65
|
+
if (!fs.existsSync(componentTsPath))
|
|
66
|
+
return null;
|
|
67
|
+
const content = fs.readFileSync(componentTsPath, 'utf-8');
|
|
68
|
+
const match = content.match(/templateUrl\s*:\s*['"](.+?)['"]/);
|
|
69
|
+
if (!match)
|
|
70
|
+
return null;
|
|
71
|
+
return path.resolve(path.dirname(componentTsPath), match[1]);
|
|
72
|
+
}
|
|
73
|
+
function parseAttributesWithoutBinding(attributes) {
|
|
74
|
+
const attrAsString = JSON.stringify(attributes);
|
|
75
|
+
const output = [...attrAsString.matchAll(/"\[?(?<name>[^"]+?)\]?"\s*?:\s*?"(?<value>[^"]+?)"/g)].reduce((prev, curr) => {
|
|
76
|
+
prev[curr.groups.name] = curr.groups.value;
|
|
77
|
+
return prev;
|
|
78
|
+
}, {});
|
|
79
|
+
return output;
|
|
80
|
+
}
|
|
81
|
+
function parseFormControls($, $el, groupNode) {
|
|
82
|
+
$el.children().each((_, child) => {
|
|
83
|
+
const tagName = child.tagName.toLowerCase();
|
|
84
|
+
const formGroup = child.attribs?.formgroupname;
|
|
85
|
+
const formControl = child.attribs?.formcontrolname;
|
|
86
|
+
if (formGroup) {
|
|
87
|
+
const childGroup = new form_node_1.GroupNode(formGroup);
|
|
88
|
+
groupNode.addChild(childGroup);
|
|
89
|
+
parseFormControls($, $(child), childGroup);
|
|
90
|
+
}
|
|
91
|
+
if (formControl) {
|
|
92
|
+
const options = parseAttributesWithoutBinding(child.attribs);
|
|
93
|
+
groupNode.addChild(new form_node_1.ControlNode(formControl, tagName, options));
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
return groupNode;
|
|
97
|
+
}
|
|
98
|
+
function getTemplateMockData(templatePath) {
|
|
99
|
+
if (!fs.existsSync(templatePath)) {
|
|
100
|
+
throw new Error(`Template not found: ${templatePath}`);
|
|
101
|
+
}
|
|
102
|
+
const html = fs.readFileSync(templatePath, 'utf-8');
|
|
103
|
+
const $ = cheerio.load(html);
|
|
104
|
+
const $form = $('form');
|
|
105
|
+
const controlsTree = parseFormControls($, $form, new form_node_1.GroupNode(''));
|
|
106
|
+
return controlsTree.getValue();
|
|
107
|
+
}
|
|
108
|
+
function buildPayloadWithMockData(roleToStageMockMap, requestMock) {
|
|
109
|
+
const workflowSteps = Object.entries(roleToStageMockMap).map(([role, stageMock]) => {
|
|
110
|
+
return {
|
|
111
|
+
"actor": {
|
|
112
|
+
"delegate": null,
|
|
113
|
+
"recipient": {
|
|
114
|
+
"role": role.toUpperCase(),
|
|
115
|
+
"name": "Sami Sulaiman M Alfayez",
|
|
116
|
+
"shortName": null,
|
|
117
|
+
"email": "sfayez@stc.com.sa",
|
|
118
|
+
"employeeNumber": null
|
|
119
|
+
},
|
|
120
|
+
"email": "sfayez@stc.com.sa",
|
|
121
|
+
"status": "COMPLETED"
|
|
122
|
+
},
|
|
123
|
+
"date": "2025-07-31T13:11:28.584+03:00",
|
|
124
|
+
"details": {
|
|
125
|
+
...stageMock,
|
|
126
|
+
"decision": {
|
|
127
|
+
"value": "Pending",
|
|
128
|
+
"key": "PENDING"
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
};
|
|
132
|
+
});
|
|
133
|
+
const output = {
|
|
134
|
+
"data": {
|
|
135
|
+
"requester": {
|
|
136
|
+
"departmentName": "Enterprise HR Business Partner Section_Private",
|
|
137
|
+
"directManagerName": "Hissah Ibrahim M Bin Zuayr",
|
|
138
|
+
"generalDepartmentName": "",
|
|
139
|
+
"generalDepartmentCode": "",
|
|
140
|
+
"onBehalfAuthorized": "false",
|
|
141
|
+
"employeeEmail": "iimran@stc.com.sa",
|
|
142
|
+
"fullName": "Ibrahim A. Alimran",
|
|
143
|
+
"employeeId": "",
|
|
144
|
+
"sectorName": "",
|
|
145
|
+
"seniorSectorName": "",
|
|
146
|
+
"humanResourceLocation": "",
|
|
147
|
+
"jobPosition": "",
|
|
148
|
+
"nationality": "",
|
|
149
|
+
"businessPhone": "966555008873"
|
|
150
|
+
},
|
|
151
|
+
workflowSteps,
|
|
152
|
+
"request": {
|
|
153
|
+
"details": requestMock
|
|
154
|
+
},
|
|
155
|
+
"form": {
|
|
156
|
+
"formId": `${serviceName.toUpperCase()}5000015`,
|
|
157
|
+
"currentActor": {
|
|
158
|
+
"name": "Ibrahim Ahmed M Alimran",
|
|
159
|
+
"email": "iimran@stc.com.sa"
|
|
160
|
+
},
|
|
161
|
+
"formName": serviceName.toUpperCase(),
|
|
162
|
+
"formStatus": {
|
|
163
|
+
"value": "Pending",
|
|
164
|
+
"key": "PENDING"
|
|
165
|
+
},
|
|
166
|
+
"readOnly": "false",
|
|
167
|
+
"formStep": workflowSteps[workflowSteps.length - 1].actor.recipient.role,
|
|
168
|
+
"creationDate": "2025-07-28T20:13:11.650+03:00"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"meta": {
|
|
172
|
+
"decision": {
|
|
173
|
+
"options": [
|
|
174
|
+
{
|
|
175
|
+
"description": "Submit to Account manager",
|
|
176
|
+
"value": "SUBMIT_TO_ACCOUNT_MANAGER",
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
"description": "Send Back",
|
|
180
|
+
"value": "SENDBACK",
|
|
181
|
+
}
|
|
182
|
+
],
|
|
183
|
+
"type": "button"
|
|
184
|
+
},
|
|
185
|
+
...(0, lov_1.getLOVs)()
|
|
186
|
+
}
|
|
187
|
+
};
|
|
188
|
+
return output;
|
|
189
|
+
}
|
|
190
|
+
function main() {
|
|
191
|
+
if (!fs.existsSync(configFile)) {
|
|
192
|
+
throw new Error(`Config file not found: ${configFile}`);
|
|
193
|
+
}
|
|
194
|
+
const configContent = fs.readFileSync(configFile, 'utf-8');
|
|
195
|
+
const componentPaths = extractComponentPaths(configContent);
|
|
196
|
+
const stageMocks = {};
|
|
197
|
+
for (const { role, path: tsPath } of componentPaths) {
|
|
198
|
+
const templatePath = getTemplatePath(tsPath);
|
|
199
|
+
stageMocks[role] = getTemplateMockData(templatePath);
|
|
200
|
+
}
|
|
201
|
+
const requestTemplatePath = path.join(projectRoot, '/src/app/page-components/request-details-section/request-details-section.component.html');
|
|
202
|
+
const requestMock = getTemplateMockData(requestTemplatePath);
|
|
203
|
+
const payload = buildPayloadWithMockData(stageMocks, requestMock);
|
|
204
|
+
const outputPath = projectRoot + '/mock-output.json';
|
|
205
|
+
fs.writeFileSync(outputPath, JSON.stringify(payload, null, 2), 'utf-8');
|
|
206
|
+
console.log(`Mock data written to: ${outputPath}`);
|
|
207
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getLOVFieldValue = getLOVFieldValue;
|
|
4
|
+
exports.getLOVs = getLOVs;
|
|
5
|
+
const lovs = {};
|
|
6
|
+
function getLOVFieldValue(lovName) {
|
|
7
|
+
if (!lovs[lovName]) {
|
|
8
|
+
const randomNumber = () => Math.floor(Math.random() * 100);
|
|
9
|
+
lovs[lovName] = {
|
|
10
|
+
type: 'combo',
|
|
11
|
+
options: Array.from({ length: 5 }).map((_, index) => ({ description: `Op_${index + 1} ${randomNumber()}`, value: (index + 1).toString() }))
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
return { key: lovs[lovName].options[0].value, value: lovs[lovName].options[0].description };
|
|
15
|
+
}
|
|
16
|
+
function getLOVs() {
|
|
17
|
+
return lovs;
|
|
18
|
+
}
|
package/cli/index.js
CHANGED
|
@@ -3,10 +3,12 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
const commander_1 = require("commander");
|
|
5
5
|
const deploy_1 = require("./deploy");
|
|
6
|
+
const generate_1 = require("./generate");
|
|
6
7
|
const program = new commander_1.Command();
|
|
7
8
|
program
|
|
8
9
|
.name("bpm-core")
|
|
9
10
|
.description("BPM Core CLI tool.")
|
|
10
11
|
.version("1.0.0");
|
|
11
12
|
program.addCommand(deploy_1.deployCommand);
|
|
13
|
+
program.addCommand(generate_1.generateCommand);
|
|
12
14
|
program.parse(process.argv);
|
package/fesm2022/bpm-core.mjs
CHANGED
|
@@ -4427,6 +4427,7 @@ class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
4427
4427
|
removeMulti(index) {
|
|
4428
4428
|
this.displayedFiles.splice(index, 1);
|
|
4429
4429
|
this.allAttachments.splice(index, 1);
|
|
4430
|
+
this.lengthError = this.displayedFiles?.length >= +this.maxLength;
|
|
4430
4431
|
}
|
|
4431
4432
|
downloadFileNew(fileData) {
|
|
4432
4433
|
const fileType = this.getFileType(fileData);
|
|
@@ -4464,7 +4465,7 @@ class DocsUploaderComponent extends ControlValueAccessorDirective {
|
|
|
4464
4465
|
this.uploadValidAndNonDuplicateFile(input, fileData);
|
|
4465
4466
|
}
|
|
4466
4467
|
else {
|
|
4467
|
-
this.allowedFileSize =
|
|
4468
|
+
this.allowedFileSize = +this.filesize < +this.maxSize;
|
|
4468
4469
|
}
|
|
4469
4470
|
input.value = '';
|
|
4470
4471
|
}
|
|
@@ -8261,10 +8262,10 @@ class RequestDetailsSectionComponent {
|
|
|
8261
8262
|
this.pageNumber = event.pageIndex;
|
|
8262
8263
|
this.pageSize = event.pageSize;
|
|
8263
8264
|
}
|
|
8264
|
-
|
|
8265
|
-
|
|
8265
|
+
filterFn = InputFilters.buildPattern().allowEnglishAlphabets().allowDigits().allowSpace().build();
|
|
8266
|
+
mapFn = InputMappers.toUpperCase;
|
|
8266
8267
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestDetailsSectionComponent, deps: [{ token: CoreI18nService }, { token: i4.FormBuilder }, { token: ActionStateService }], target: i0.ɵɵFactoryTarget.Component });
|
|
8267
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" \r\n [isReadOnly]=\"isReadOnly\" \r\n formControlName=\"test\" \r\n label=\"Input\"\r\n [filterFn]=\"filterFn\">\r\n </app-input>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [maxLength]=\"2\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\" [multiple]=\"true\"\r\n [displayedFiles]=\"formGroup.controls.attachment.value\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n \r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n formControlName=\"timePicker\" \r\n [isReadOnly]=\"false\" placeholder=\"Select time\">\r\n </app-timepicker> -->\r\n <!-- <div class=\"table-responsive full\">\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>time</th>\r\n </tr>\r\n </thead>\r\n <tbody formArrayName=\"candidates\">\r\n <tr>\r\n <td>\r\n <app-timepicker\r\n [ngModel]=\"timePicker\" \r\n (ngModelChange)=\"timePickerChange($event)\"\r\n [isReadOnly]=\"false\" placeholder=\"Select time\"\r\n [insideTable]=\"true\">\r\n </app-timepicker>\r\n </td>\r\n </tbody>\r\n </table>\r\n </div> -->\r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n [(ngModel)]=\"timePicker\" (ngModelChange)=\"timePickerChange($event)\" [ngModelOptions]=\"{standalone: true}\"\r\n placeholder=\"test placeholder\"></app-timepicker> -->\r\n\r\n<!-- {{formGroup.valid}}-->\r\n<!-- <app-input class=\"section-item full\" [isReadOnly]=\"false\" [mandatory]=\"true\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>-->\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n <app-timepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"false\"\r\n formControlName=\"test\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"/>\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "emitedChangedValue1", "mapFn", "filterFn"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "allAttachments", "signType", "customDownload", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize", "maxLength"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "component", type: AttachmentSectionComponent, selector: "app-attachment-section", inputs: ["className", "customDownload", "attachmentsMax", "isSortable", "downloadAll", "isRequired", "descriptionRequired", "commentsRequired", "allowedExtensions"], outputs: ["downloadActionClicked", "emitedValue"] }, { kind: "component", type: TimepickerComponent, selector: "app-timepicker" }, { kind: "ngmodule", type: FormsModule }] });
|
|
8268
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: RequestDetailsSectionComponent, isStandalone: true, selector: "app-request-details-section", inputs: { isReadOnly: "isReadOnly", section: "section", form: "form", lov: "lov", className: "className" }, ngImport: i0, template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" \r\n [isReadOnly]=\"isReadOnly\" \r\n formControlName=\"test\" \r\n label=\"Input\"\r\n [filterFn]=\"filterFn\"\r\n [mapFn]=\"mapFn\">\r\n </app-input>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [maxLength]=\"2\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\" [multiple]=\"true\"\r\n [displayedFiles]=\"formGroup.controls.attachment.value\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n \r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n formControlName=\"timePicker\" \r\n [isReadOnly]=\"false\" placeholder=\"Select time\">\r\n </app-timepicker> -->\r\n <!-- <div class=\"table-responsive full\">\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>time</th>\r\n </tr>\r\n </thead>\r\n <tbody formArrayName=\"candidates\">\r\n <tr>\r\n <td>\r\n <app-timepicker\r\n [ngModel]=\"timePicker\" \r\n (ngModelChange)=\"timePickerChange($event)\"\r\n [isReadOnly]=\"false\" placeholder=\"Select time\"\r\n [insideTable]=\"true\">\r\n </app-timepicker>\r\n </td>\r\n </tbody>\r\n </table>\r\n </div> -->\r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n [(ngModel)]=\"timePicker\" (ngModelChange)=\"timePickerChange($event)\" [ngModelOptions]=\"{standalone: true}\"\r\n placeholder=\"test placeholder\"></app-timepicker> -->\r\n\r\n<!-- {{formGroup.valid}}-->\r\n<!-- <app-input class=\"section-item full\" [isReadOnly]=\"false\" [mandatory]=\"true\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>-->\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n <app-timepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"false\"\r\n formControlName=\"test\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"/>\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: InputComponent, selector: "app-input", inputs: ["floatLabel", "className", "iconPrefixName", "iconSuffixName", "emitedChangedValue1", "mapFn", "filterFn"] }, { kind: "component", type: ActionButtonsComponent, selector: "lib-action-buttons", inputs: ["lovOptions", "lovType", "fieldsForm", "form", "section", "sections", "showApprovalCycle", "customCall"], outputs: ["resetFormEmit", "customCallEmit"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: DocsUploaderComponent, selector: "app-file-uploader", inputs: ["useCrop", "formKey", "showLabel", "downloadLink", "showActions", "styleHeight", "fileInputHeight", "styleWidth", "hints", "allowedExtensions", "callApi", "display", "attachType", "error", "displayedFiles", "getDataFromTemplate", "allowFileContentsWithMultiAttachments", "accept", "allAttachments", "signType", "customDownload", "showSignButton", "printType", "showPrintButton", "downloadType", "showDownloadButton", "preventFileContents", "maxSize", "maxLength"], outputs: ["selectedTemplateAttachment", "addSignatureClicked", "printActionClicked", "emitedValue", "downloadActionClicked"] }, { kind: "component", type: AttachmentSectionComponent, selector: "app-attachment-section", inputs: ["className", "customDownload", "attachmentsMax", "isSortable", "downloadAll", "isRequired", "descriptionRequired", "commentsRequired", "allowedExtensions"], outputs: ["downloadActionClicked", "emitedValue"] }, { kind: "component", type: TimepickerComponent, selector: "app-timepicker" }, { kind: "ngmodule", type: FormsModule }] });
|
|
8268
8269
|
}
|
|
8269
8270
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RequestDetailsSectionComponent, decorators: [{
|
|
8270
8271
|
type: Component,
|
|
@@ -8293,7 +8294,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
|
|
|
8293
8294
|
FormsModule,
|
|
8294
8295
|
InputMaskComponent,
|
|
8295
8296
|
MultiselectComponent
|
|
8296
|
-
], template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" \r\n [isReadOnly]=\"isReadOnly\" \r\n formControlName=\"test\" \r\n label=\"Input\"\r\n [filterFn]=\"filterFn\">\r\n </app-input>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [maxLength]=\"2\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\" [multiple]=\"true\"\r\n [displayedFiles]=\"formGroup.controls.attachment.value\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n \r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n formControlName=\"timePicker\" \r\n [isReadOnly]=\"false\" placeholder=\"Select time\">\r\n </app-timepicker> -->\r\n <!-- <div class=\"table-responsive full\">\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>time</th>\r\n </tr>\r\n </thead>\r\n <tbody formArrayName=\"candidates\">\r\n <tr>\r\n <td>\r\n <app-timepicker\r\n [ngModel]=\"timePicker\" \r\n (ngModelChange)=\"timePickerChange($event)\"\r\n [isReadOnly]=\"false\" placeholder=\"Select time\"\r\n [insideTable]=\"true\">\r\n </app-timepicker>\r\n </td>\r\n </tbody>\r\n </table>\r\n </div> -->\r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n [(ngModel)]=\"timePicker\" (ngModelChange)=\"timePickerChange($event)\" [ngModelOptions]=\"{standalone: true}\"\r\n placeholder=\"test placeholder\"></app-timepicker> -->\r\n\r\n<!-- {{formGroup.valid}}-->\r\n<!-- <app-input class=\"section-item full\" [isReadOnly]=\"false\" [mandatory]=\"true\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>-->\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n <app-timepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"false\"\r\n formControlName=\"test\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"/>\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"] }]
|
|
8297
|
+
], template: "<div>\r\n <form [ngClass]=\"{'form-section-divide form-section':!section?.header?.readOnly,'info-section':section?.header?.readOnly}\" [formGroup]=\"formGroup\">\r\n <app-input class=\"section-item full\" \r\n [isReadOnly]=\"isReadOnly\" \r\n formControlName=\"test\" \r\n label=\"Input\"\r\n [filterFn]=\"filterFn\"\r\n [mapFn]=\"mapFn\">\r\n </app-input>\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [maxLength]=\"2\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\" [multiple]=\"true\"\r\n [displayedFiles]=\"formGroup.controls.attachment.value\"></app-file-uploader>\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n \r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n formControlName=\"timePicker\" \r\n [isReadOnly]=\"false\" placeholder=\"Select time\">\r\n </app-timepicker> -->\r\n <!-- <div class=\"table-responsive full\">\r\n <table>\r\n <thead>\r\n <tr>\r\n <th>time</th>\r\n </tr>\r\n </thead>\r\n <tbody formArrayName=\"candidates\">\r\n <tr>\r\n <td>\r\n <app-timepicker\r\n [ngModel]=\"timePicker\" \r\n (ngModelChange)=\"timePickerChange($event)\"\r\n [isReadOnly]=\"false\" placeholder=\"Select time\"\r\n [insideTable]=\"true\">\r\n </app-timepicker>\r\n </td>\r\n </tbody>\r\n </table>\r\n </div> -->\r\n <!-- <app-timepicker\r\n label=\"time picker\"\r\n [(ngModel)]=\"timePicker\" (ngModelChange)=\"timePickerChange($event)\" [ngModelOptions]=\"{standalone: true}\"\r\n placeholder=\"test placeholder\"></app-timepicker> -->\r\n\r\n<!-- {{formGroup.valid}}-->\r\n<!-- <app-input class=\"section-item full\" [isReadOnly]=\"false\" [mandatory]=\"true\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>-->\r\n<!-- <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>-->\r\n <!--\r\n <app-search-employee\r\n class=\"section-item full\"\r\n [multiple]=\"true\"\r\n [arrayList]=\"formGroup.get('searchEmployee').value\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"searchEmployee\"\r\n label=\"Search-employee\"></app-search-employee>\r\n <app-input class=\"section-item full\" [isReadOnly]=\"isReadOnly\" [loading]=\"true\" type=\"enOnly\" formControlName=\"input\" label=\"Input\"></app-input>\r\n <app-input-currency class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"currencyInput\" label=\"currency\"></app-input-currency>\r\n <app-input-email class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"emailInput\" label=\"email\"></app-input-email>\r\n <app-input-number class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"numberInput\" label=\"number\"></app-input-number>\r\n <app-custom-searchable\r\n class=\"section-item mb-0 full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"customSearchable\"\r\n label=\"Custom-searchable\"\r\n [options]=\"lov?.['approverActions']?.options\"\r\n [displayedLabel]=\"'name'\"\r\n [key]=\"'name'\"></app-custom-searchable>\r\n <app-checkbox\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"checkbox\"\r\n termsLabel=\"Terms and conditions\"\r\n label=\"check-box\"\r\n [containTerms]=\"true\"></app-checkbox>\r\n <app-textarea class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"textArea\" label=\"Text-area\"></app-textarea>\r\n\r\n <app-date-range-picker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"datePickerRange\"\r\n label=\"Date-picker-range\"\r\n [matSuffix]=\"true\"></app-date-range-picker>\r\n <app-radio class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"radio\" [options]=\"options\" label=\"Radio\"></app-radio>-->\r\n <!-- <app-toggle-button\r\n class=\"section-item full\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"toggle\"\r\n [options]=\"lov?.['decision']?.options\"\r\n label=\"Toggle-button\"\r\n [displayedLabel]=\"'description'\"\r\n [key]=\"'value'\"></app-toggle-button>-->\r\n <!--<app-input-telephone class=\"section-item full\" [isReadOnly]=\"isReadOnly\" formControlName=\"telephone\" label=\"Telephone\"></app-input-telephone>\r\n\r\n <app-file-uploader\r\n class=\"section-item full\"\r\n [callApi]=\"true\"\r\n [isReadOnly]=\"isReadOnly\"\r\n [multiple]=\"false\"\r\n label=\"attachment\"\r\n formControlName=\"attachment\"></app-file-uploader>\r\n\r\n <app-attachment-section\r\n class=\"section-item full\"\r\n [descriptionRequired]=\"false\"\r\n label=\"Attachment section\"\r\n [commentsRequired]=\"false\"\r\n [isReadOnly]=\"isReadOnly\"\r\n formControlName=\"attachmentSection\"></app-attachment-section>\r\n-->\r\n\r\n\r\n\r\n <!-- <app-table\r\n [columnsConfig]=\"columnsConfig\"\r\n [columns]=\"columns\"\r\n [isError]=\"isError\"\r\n [isLoading]=\"isLoading\"\r\n [rows]=\"categoryData\" [hasPaginator]=\"true\"\r\n [pageSize]=\"pageSize\" [currentPage]=\"pageNumber\"\r\n [totalElements]=\"totalElements\"\r\n (pageChange)=\"pageChanged($event)\"\r\n class=\"new-primary-table full\">\r\n </app-table> -->\r\n\r\n <app-timepicker\r\n class=\"section-item full\"\r\n [isReadOnly]=\"false\"\r\n formControlName=\"test\"\r\n [matSuffix]=\"true\"\r\n label=\"Date-picker\"/>\r\n\r\n\r\n </form>\r\n\r\n\r\n</div>\r\n@if (!section?.header?.readOnly) {\r\n <div class=\"mt-4\">\r\n <lib-action-buttons\r\n [lovOptions]=\"lov?.['decision']?.options\"\r\n [lovType]=\"lov?.['decision']?.type\"\r\n [section]=\"section\"\r\n [form]=\"form\"\r\n [sections]=\"form.sections\"\r\n [showApprovalCycle]=\"true\"\r\n [customCall]=\"false\"\r\n [fieldsForm]=\"formGroup\"\r\n (customCallEmit)=\"customCallSubmit($event)\"\r\n (resetFormEmit)=\"resetForm()\"\r\n />\r\n </div>\r\n}\r\n", styles: [".form-section-divide{--form-section-columns: 1fr 1fr}@media (max-width: 756px){.form-section-divide{--form-section-columns: 100%}}.form-section-divide .full{grid-column:1/-1}.head-title{position:relative;margin-bottom:12px}.head-title h3{display:inline-block;color:#8e9aa0;font-size:14px;font-weight:500;background-color:#fff;padding-inline-end:20px;position:relative;z-index:2;margin:0}.head-title:after{content:\"\";position:absolute;width:100%;height:1px;background-color:#dee0e2;top:50%;left:0;right:0;transform:translateY(-50%);z-index:1}.chamber{margin-bottom:20px}.chamber .chamber-content{background-color:#f8f8f8;padding:20px}.chamber .chamber-content .chamber-select{display:flex}.chamber .chamber-content mat-checkbox{font-size:14px}.section-item{margin-bottom:20px}\n"] }]
|
|
8297
8298
|
}], ctorParameters: () => [{ type: CoreI18nService }, { type: i4.FormBuilder }, { type: ActionStateService }], propDecorators: { isReadOnly: [{
|
|
8298
8299
|
type: Input
|
|
8299
8300
|
}], section: [{
|