nuxeo-development-framework 6.1.3 → 6.1.5
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/bundles/nuxeo-development-framework.umd.js +390 -350
- package/bundles/nuxeo-development-framework.umd.js.map +1 -1
- package/esm2015/lib/components/ndf-filters/components/__parts/filter-option-text/filter-option-text.component.js +4 -3
- package/esm2015/lib/components/ndf-filters/models/base-field-config.js +1 -1
- package/esm2015/lib/components/ndf-filters/models/filter-option.model.js +1 -1
- package/esm2015/lib/components/ndf-filters/ndf-filters-panel.module.js +5 -3
- package/esm2015/lib/components/ndf-filters/pipes/evaluate-label.pipe.js +40 -0
- package/esm2015/lib/components/ndf-filters/pipes/index.js +4 -3
- package/esm2015/lib/components/ndf-filters/services/aggregation-field.service.js +2 -1
- package/esm2015/lib/components/reports/ndf-reports/containers/ndf-reports/ndf-reports.component.js +2 -2
- package/esm2015/lib/shared/evaluator/types.js +1 -1
- package/fesm2015/nuxeo-development-framework.js +360 -322
- package/fesm2015/nuxeo-development-framework.js.map +1 -1
- package/lib/components/ndf-filters/models/base-field-config.d.ts +2 -1
- package/lib/components/ndf-filters/models/filter-option.model.d.ts +3 -0
- package/lib/components/ndf-filters/ndf-filters-panel.module.d.ts +31 -30
- package/lib/components/ndf-filters/pipes/evaluate-label.pipe.d.ts +14 -0
- package/lib/components/ndf-filters/pipes/index.d.ts +3 -2
- package/lib/shared/evaluator/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -32,7 +32,7 @@ import * as i7 from '@angular/material/tooltip';
|
|
|
32
32
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
33
33
|
import { merge } from 'lodash-es';
|
|
34
34
|
import * as _ from 'lodash';
|
|
35
|
-
import ___default, { cloneDeep, filter, sortBy, each, unionWith, isEqual, isNil, isObject as isObject$1, isDate, isBoolean, isNumber,
|
|
35
|
+
import ___default, { cloneDeep, filter, sortBy, each, unionWith, isEqual, isNil, keys, trim, get, set, values, isObject as isObject$1, isDate, isBoolean, isNumber, union, assign, keyBy, flatMap, map as map$1 } from 'lodash';
|
|
36
36
|
import * as moment$6 from 'moment';
|
|
37
37
|
import moment__default, { isMoment } from 'moment';
|
|
38
38
|
import _omit from 'lodash/omit';
|
|
@@ -96,10 +96,10 @@ import * as i7$3 from '@angular/cdk/drag-drop';
|
|
|
96
96
|
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
97
97
|
import * as i5$3 from '@angular/material/autocomplete';
|
|
98
98
|
import { MatAutocompleteModule } from '@angular/material/autocomplete';
|
|
99
|
+
import stringHash from 'string-hash';
|
|
99
100
|
import * as i5$4 from 'ngx-mask';
|
|
100
101
|
import { NgxMaskModule } from 'ngx-mask';
|
|
101
102
|
import * as moment$7 from 'moment/moment';
|
|
102
|
-
import stringHash from 'string-hash';
|
|
103
103
|
import * as i5$5 from '@angular/cdk/layout';
|
|
104
104
|
import { LayoutModule } from '@angular/cdk/layout';
|
|
105
105
|
import Dynamsoft from 'dwt';
|
|
@@ -14793,6 +14793,7 @@ class AggregationFieldService {
|
|
|
14793
14793
|
en: ___default.get(item, config === null || config === void 0 ? void 0 : config.bindLabel.en),
|
|
14794
14794
|
}
|
|
14795
14795
|
: null,
|
|
14796
|
+
labelTemplate: config === null || config === void 0 ? void 0 : config.labelTemplate,
|
|
14796
14797
|
};
|
|
14797
14798
|
if (config === null || config === void 0 ? void 0 : config.tooltip) {
|
|
14798
14799
|
const _a = config === null || config === void 0 ? void 0 : config.tooltip, { properties } = _a, tooltipConfig = __rest(_a, ["properties"]);
|
|
@@ -14933,6 +14934,357 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
14933
14934
|
}]
|
|
14934
14935
|
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
14935
14936
|
|
|
14937
|
+
/**
|
|
14938
|
+
* Creates a secure context for function evaluation that prevents access to the window object.
|
|
14939
|
+
* @returns {Record<string, any>} A secure context object with safe properties.
|
|
14940
|
+
*/
|
|
14941
|
+
function createSecureContext() {
|
|
14942
|
+
// Create a secure context with only safe properties
|
|
14943
|
+
return {
|
|
14944
|
+
// Add any safe globals here that should be accessible
|
|
14945
|
+
console: {
|
|
14946
|
+
log: console.log,
|
|
14947
|
+
warn: console.warn,
|
|
14948
|
+
error: console.error
|
|
14949
|
+
},
|
|
14950
|
+
// Add other safe objects/functions as needed
|
|
14951
|
+
Math,
|
|
14952
|
+
Date,
|
|
14953
|
+
Number,
|
|
14954
|
+
String,
|
|
14955
|
+
Boolean,
|
|
14956
|
+
Array,
|
|
14957
|
+
Object,
|
|
14958
|
+
JSON,
|
|
14959
|
+
// Prevent access to window
|
|
14960
|
+
window: undefined,
|
|
14961
|
+
self: undefined,
|
|
14962
|
+
globalThis: undefined,
|
|
14963
|
+
_: ___default // Include lodash if needed, but ensure it's used safely
|
|
14964
|
+
};
|
|
14965
|
+
}
|
|
14966
|
+
/**
|
|
14967
|
+
* A utility class for evaluating expressions, interpolating strings, and working with templates.
|
|
14968
|
+
* This class provides static methods for dynamic evaluation of code, string interpolation,
|
|
14969
|
+
* and template processing with caching capabilities.
|
|
14970
|
+
*/
|
|
14971
|
+
class Evaluator {
|
|
14972
|
+
/**
|
|
14973
|
+
* Creates a function from a string or returns the function if already provided.
|
|
14974
|
+
* Uses a secure context to prevent access to the window object by default.
|
|
14975
|
+
* @param {string|Function} func - The function or string to convert to a function.
|
|
14976
|
+
* @param {...any} params - The parameters to pass to the function.
|
|
14977
|
+
* @param {EvaluatorOptions} [options={}] - Optional configuration for the evaluation.
|
|
14978
|
+
* @returns {Function} - The resulting function.
|
|
14979
|
+
*/
|
|
14980
|
+
static evaluator(func, ...params) {
|
|
14981
|
+
// Extract options if the last parameter is an options object
|
|
14982
|
+
let options = {};
|
|
14983
|
+
if (params.length > 0 &&
|
|
14984
|
+
params[params.length - 1] &&
|
|
14985
|
+
typeof params[params.length - 1] === 'object' &&
|
|
14986
|
+
'securityMode' in params[params.length - 1]) {
|
|
14987
|
+
options = params.pop();
|
|
14988
|
+
}
|
|
14989
|
+
if (typeof func === 'function') {
|
|
14990
|
+
return func;
|
|
14991
|
+
}
|
|
14992
|
+
if (typeof params[0] === 'object') {
|
|
14993
|
+
params = keys(params[0]);
|
|
14994
|
+
}
|
|
14995
|
+
// Check if we should use secure mode (default) or unsafe mode
|
|
14996
|
+
const securityMode = options.securityMode || 'secure';
|
|
14997
|
+
if (securityMode === 'unsafe') {
|
|
14998
|
+
// In unsafe mode, create a function with access to all globals
|
|
14999
|
+
return new Function(...params, func);
|
|
15000
|
+
}
|
|
15001
|
+
const sandbox = createSecureContext();
|
|
15002
|
+
const sandboxKeys = Object.keys(sandbox);
|
|
15003
|
+
const sandboxAssignments = sandboxKeys.map((key) => `const ${key} = sandbox.${key};`).join('');
|
|
15004
|
+
const wrapper = new Function(...params, 'sandbox', `${sandboxAssignments}${func}`);
|
|
15005
|
+
return (...args) => wrapper(...args, sandbox);
|
|
15006
|
+
}
|
|
15007
|
+
/**
|
|
15008
|
+
* Replaces template expressions in a string with values from data.
|
|
15009
|
+
* Supports function calls within templates and fallback values using || syntax.
|
|
15010
|
+
* By default, ensures evaluation happens in a secure context to prevent access to window object.
|
|
15011
|
+
* @param {string} rawTemplate - The template string containing expressions to interpolate.
|
|
15012
|
+
* @param {Record<string, any>} data - The data object containing values to use for interpolation.
|
|
15013
|
+
* @param {EvaluatorOptions} [options={}] - Optional configuration for the interpolation process.
|
|
15014
|
+
* @returns {string} - The interpolated string with all expressions replaced with actual values.
|
|
15015
|
+
*/
|
|
15016
|
+
static interpolateString(rawTemplate, data, options = {}) {
|
|
15017
|
+
if (!rawTemplate) {
|
|
15018
|
+
return '';
|
|
15019
|
+
}
|
|
15020
|
+
if (typeof rawTemplate !== 'string') {
|
|
15021
|
+
return rawTemplate.toString();
|
|
15022
|
+
}
|
|
15023
|
+
// Check if we should use secure mode (default) or unsafe mode
|
|
15024
|
+
const securityMode = options.securityMode || 'secure';
|
|
15025
|
+
// Create a secure data object if needed
|
|
15026
|
+
const secureData = securityMode === 'unsafe'
|
|
15027
|
+
? data
|
|
15028
|
+
: Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), {
|
|
15029
|
+
// Ensure these remain undefined
|
|
15030
|
+
window: undefined, self: undefined, globalThis: undefined });
|
|
15031
|
+
return rawTemplate.replace(/({{\s*(.*?)\s*}})/g, (match, $1, expression) => {
|
|
15032
|
+
if (expression.indexOf('(') !== -1) {
|
|
15033
|
+
return expression.replace(/([^(]+)\(([^)]+)\s*\);?/, (_, fnName, argsStr) => {
|
|
15034
|
+
fnName = trim(fnName);
|
|
15035
|
+
const func = get(secureData, fnName);
|
|
15036
|
+
if (func) {
|
|
15037
|
+
if (argsStr) {
|
|
15038
|
+
const args = argsStr.split(',').map((arg) => {
|
|
15039
|
+
const trimmed = trim(arg);
|
|
15040
|
+
if (/^['"]/.test(trimmed))
|
|
15041
|
+
return trimmed.slice(1, -1);
|
|
15042
|
+
return get(secureData, trimmed);
|
|
15043
|
+
});
|
|
15044
|
+
return Evaluator.evaluate(func, args, '', false, secureData, options);
|
|
15045
|
+
}
|
|
15046
|
+
return Evaluator.evaluate(func, [], '', false, secureData, options);
|
|
15047
|
+
}
|
|
15048
|
+
return '';
|
|
15049
|
+
});
|
|
15050
|
+
}
|
|
15051
|
+
else {
|
|
15052
|
+
let dataPath = expression;
|
|
15053
|
+
if (expression.indexOf('?') !== -1) {
|
|
15054
|
+
dataPath = expression.replace(/\?\./g, '.');
|
|
15055
|
+
}
|
|
15056
|
+
const parts = dataPath.split('||').map((item) => item.trim());
|
|
15057
|
+
let value = '';
|
|
15058
|
+
let path = '';
|
|
15059
|
+
for (let i = 0; i < parts.length; i++) {
|
|
15060
|
+
path = parts[i];
|
|
15061
|
+
if (___default.has(secureData, path)) {
|
|
15062
|
+
value = ___default.get(secureData, path);
|
|
15063
|
+
break;
|
|
15064
|
+
}
|
|
15065
|
+
}
|
|
15066
|
+
if (options.data) {
|
|
15067
|
+
set(options.data, path, value);
|
|
15068
|
+
}
|
|
15069
|
+
return value;
|
|
15070
|
+
}
|
|
15071
|
+
});
|
|
15072
|
+
}
|
|
15073
|
+
/**
|
|
15074
|
+
* Performs an evaluation using the evaluation context of this component.
|
|
15075
|
+
* By default, ensures evaluation happens in a secure context to prevent access to window object.
|
|
15076
|
+
* @param {string|Function|object} func - The function or string to evaluate.
|
|
15077
|
+
* @param {object} args - The arguments to pass to the evaluation.
|
|
15078
|
+
* @param {string} ret - The name of the variable within the evaluation context to return.
|
|
15079
|
+
* @param {boolean} interpolate - Determines if it should replace all {{ }} token references with actual data.
|
|
15080
|
+
* @param {object} context - - The evaluation context.
|
|
15081
|
+
* @param {EvaluatorOptions } options - The options to pass to the evaluation.
|
|
15082
|
+
* @returns {*} - The result of the evaluation.
|
|
15083
|
+
*/
|
|
15084
|
+
static evaluate(func, args = {}, ret = 'show', interpolate = false, context = {}, options = {}) {
|
|
15085
|
+
let returnVal = null;
|
|
15086
|
+
const field = args.field ? args.field : { key: 'unknown' };
|
|
15087
|
+
const fieldKey = field.key;
|
|
15088
|
+
if (typeof func === 'string') {
|
|
15089
|
+
if (ret) {
|
|
15090
|
+
func = `var ${ret};${func};return ${ret}`;
|
|
15091
|
+
}
|
|
15092
|
+
if (interpolate) {
|
|
15093
|
+
func = Evaluator.interpolate(func, args, options);
|
|
15094
|
+
}
|
|
15095
|
+
try {
|
|
15096
|
+
// Pass the security mode option to the evaluator
|
|
15097
|
+
const evaluatorOptions = { securityMode: options.securityMode || 'secure' };
|
|
15098
|
+
func = Evaluator.evaluator(func, args, context, evaluatorOptions);
|
|
15099
|
+
args = Array.isArray(args) ? args : values(args);
|
|
15100
|
+
}
|
|
15101
|
+
catch (err) {
|
|
15102
|
+
console.warn(`An error occured within the custom function for ${fieldKey}`, err);
|
|
15103
|
+
returnVal = null;
|
|
15104
|
+
func = false;
|
|
15105
|
+
}
|
|
15106
|
+
}
|
|
15107
|
+
if (typeof func === 'function') {
|
|
15108
|
+
try {
|
|
15109
|
+
returnVal = Evaluator.execute(func, args, context, options);
|
|
15110
|
+
}
|
|
15111
|
+
catch (err) {
|
|
15112
|
+
returnVal = null;
|
|
15113
|
+
console.warn(`An error occured within custom function for ${fieldKey}`, err);
|
|
15114
|
+
}
|
|
15115
|
+
}
|
|
15116
|
+
else if (func) {
|
|
15117
|
+
console.warn(`Unknown function type for ${fieldKey}`);
|
|
15118
|
+
}
|
|
15119
|
+
return returnVal;
|
|
15120
|
+
}
|
|
15121
|
+
/**
|
|
15122
|
+
* Executes a function with provided arguments and context.
|
|
15123
|
+
* By default, ensures execution happens in a secure context to prevent access to window object.
|
|
15124
|
+
* @param {Function} func - The function to execute.
|
|
15125
|
+
* @param {any[]|Record<string, any>} args - The arguments to pass to the function, either as an array or object.
|
|
15126
|
+
* @param {Record<string, any>} [context={}] - The context (this) to use when executing the function.
|
|
15127
|
+
* @param {EvaluatorOptions} [options={}] - Optional configuration for the execution.
|
|
15128
|
+
* @returns {any} - The result of the function execution.
|
|
15129
|
+
*/
|
|
15130
|
+
static execute(func, args, context = {}, options = {}) {
|
|
15131
|
+
// Check if we should use secure mode (default) or unsafe mode
|
|
15132
|
+
const securityMode = options.securityMode || 'secure';
|
|
15133
|
+
if (securityMode === 'unsafe') {
|
|
15134
|
+
// In unsafe mode, execute with the original context
|
|
15135
|
+
return Array.isArray(args) ? func.apply(context, args) : func.call(context, args);
|
|
15136
|
+
}
|
|
15137
|
+
else {
|
|
15138
|
+
// In secure mode, create a secure context by merging the provided context with our secure context
|
|
15139
|
+
const secureContext = Object.assign(Object.assign(Object.assign({}, createSecureContext()), context), {
|
|
15140
|
+
// Ensure these remain undefined even if they were in the provided context
|
|
15141
|
+
window: undefined, self: undefined, globalThis: undefined });
|
|
15142
|
+
// Execute the function with the secure context
|
|
15143
|
+
return Array.isArray(args) ? func.apply(secureContext, args) : func.call(secureContext, args);
|
|
15144
|
+
}
|
|
15145
|
+
}
|
|
15146
|
+
/**
|
|
15147
|
+
* Creates a template function from a string with caching for performance.
|
|
15148
|
+
* By default, ensures the template function executes in a secure context.
|
|
15149
|
+
* @param {string} template - The template string to compile into a function.
|
|
15150
|
+
* @param {string} [hash] - Optional hash to use as cache key. If not provided, a hash will be generated from the template.
|
|
15151
|
+
* @param {EvaluatorOptions} [options={}] - Optional configuration for the template.
|
|
15152
|
+
* @returns {Function|undefined} - The compiled template function, or undefined if compilation fails.
|
|
15153
|
+
*/
|
|
15154
|
+
static template(template, hash, options = {}) {
|
|
15155
|
+
hash = hash || stringHash(template).toString();
|
|
15156
|
+
// If hash contains options object, extract it
|
|
15157
|
+
if (typeof hash === 'object' && 'securityMode' in hash) {
|
|
15158
|
+
options = hash;
|
|
15159
|
+
hash = stringHash(template).toString();
|
|
15160
|
+
}
|
|
15161
|
+
// Check if we have a cached version
|
|
15162
|
+
const cacheKey = hash + (options.securityMode || 'secure');
|
|
15163
|
+
if (Evaluator.cache[cacheKey]) {
|
|
15164
|
+
return Evaluator.cache[cacheKey];
|
|
15165
|
+
}
|
|
15166
|
+
try {
|
|
15167
|
+
template = template.replace(/ctx\./g, '');
|
|
15168
|
+
// Create the template function using lodash
|
|
15169
|
+
const templateFunc = ___default.template(template, Evaluator.templateSettings);
|
|
15170
|
+
// Check if we should use secure mode (default) or unsafe mode
|
|
15171
|
+
const securityMode = options.securityMode || 'secure';
|
|
15172
|
+
if (securityMode === 'unsafe') {
|
|
15173
|
+
// In unsafe mode, return the original template function
|
|
15174
|
+
return (Evaluator.cache[cacheKey] = templateFunc);
|
|
15175
|
+
}
|
|
15176
|
+
else {
|
|
15177
|
+
// In secure mode, wrap the template function to ensure it runs in a secure context
|
|
15178
|
+
const secureTemplateFunc = (data) => {
|
|
15179
|
+
// Create a secure context for the template
|
|
15180
|
+
const secureData = Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), {
|
|
15181
|
+
// Ensure these remain undefined
|
|
15182
|
+
window: undefined, self: undefined, globalThis: undefined });
|
|
15183
|
+
return templateFunc(secureData);
|
|
15184
|
+
};
|
|
15185
|
+
// Cache and return the secure template function
|
|
15186
|
+
return (Evaluator.cache[cacheKey] = secureTemplateFunc);
|
|
15187
|
+
}
|
|
15188
|
+
}
|
|
15189
|
+
catch (err) {
|
|
15190
|
+
console.warn('Error while processing template', err, template);
|
|
15191
|
+
return undefined;
|
|
15192
|
+
}
|
|
15193
|
+
}
|
|
15194
|
+
/**
|
|
15195
|
+
* Interpolates a template with data, handling both function templates and string templates.
|
|
15196
|
+
* By default, ensures interpolation happens in a secure context to prevent access to window object.
|
|
15197
|
+
* @param {string|Function} rawTemplate - The template to interpolate, either as a string or a function.
|
|
15198
|
+
* @param {Record<string, any>} data - The data object to use for interpolation.
|
|
15199
|
+
* @param {EvaluatorOptions} options - Options for the interpolation process.
|
|
15200
|
+
* @returns {string|any} - The result of the interpolation, typically a string but could be any type depending on the template.
|
|
15201
|
+
*/
|
|
15202
|
+
static interpolate(rawTemplate, data, options = {}) {
|
|
15203
|
+
if (typeof rawTemplate === 'function') {
|
|
15204
|
+
try {
|
|
15205
|
+
// If the template is a function, execute it with the data
|
|
15206
|
+
// We can't directly secure a provided function, but we can use execute
|
|
15207
|
+
// to run it in a secure context if needed
|
|
15208
|
+
if (options.securityMode !== 'unsafe') {
|
|
15209
|
+
const secureData = Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), { window: undefined, self: undefined, globalThis: undefined });
|
|
15210
|
+
return rawTemplate(secureData);
|
|
15211
|
+
}
|
|
15212
|
+
else {
|
|
15213
|
+
return rawTemplate(data);
|
|
15214
|
+
}
|
|
15215
|
+
}
|
|
15216
|
+
catch (err) {
|
|
15217
|
+
console.warn('Error interpolating template', err, data);
|
|
15218
|
+
return err.message;
|
|
15219
|
+
}
|
|
15220
|
+
}
|
|
15221
|
+
rawTemplate = String(rawTemplate);
|
|
15222
|
+
// Pass the security mode option to the template method
|
|
15223
|
+
const template = Evaluator.template(rawTemplate, undefined, options);
|
|
15224
|
+
if (typeof template === 'function') {
|
|
15225
|
+
try {
|
|
15226
|
+
return template(data);
|
|
15227
|
+
}
|
|
15228
|
+
catch (err) {
|
|
15229
|
+
console.warn('Error interpolating template', err, rawTemplate, data);
|
|
15230
|
+
return err.message;
|
|
15231
|
+
}
|
|
15232
|
+
}
|
|
15233
|
+
return template;
|
|
15234
|
+
}
|
|
15235
|
+
}
|
|
15236
|
+
/**
|
|
15237
|
+
* Cache for storing compiled template functions to improve performance.
|
|
15238
|
+
* Keys are string hashes of the template, values are the compiled functions.
|
|
15239
|
+
*/
|
|
15240
|
+
Evaluator.cache = {};
|
|
15241
|
+
/**
|
|
15242
|
+
* Settings for template processing, defining regex patterns for different template operations.
|
|
15243
|
+
* - interpolate: Pattern for variable interpolation ({{ variable }})
|
|
15244
|
+
* - evaluate: Pattern for code evaluation ({% code %})
|
|
15245
|
+
* - escape: Pattern for HTML escaping ({{{ variable }}})
|
|
15246
|
+
*/
|
|
15247
|
+
Evaluator.templateSettings = {
|
|
15248
|
+
interpolate: /{{([\s\S]+?)}}/g,
|
|
15249
|
+
evaluate: /\{%([\s\S]+?)%\}/g,
|
|
15250
|
+
escape: /\{\{\{([\s\S]+?)\}\}\}/g
|
|
15251
|
+
};
|
|
15252
|
+
|
|
15253
|
+
class EvaluatorLabelPipe {
|
|
15254
|
+
/**
|
|
15255
|
+
*
|
|
15256
|
+
*/
|
|
15257
|
+
constructor(translate) {
|
|
15258
|
+
this.translate = translate;
|
|
15259
|
+
}
|
|
15260
|
+
transform(option, language) {
|
|
15261
|
+
if (!option || !(option === null || option === void 0 ? void 0 : option.labelTemplate)) {
|
|
15262
|
+
return '';
|
|
15263
|
+
}
|
|
15264
|
+
try {
|
|
15265
|
+
const text = Evaluator.interpolate(option.labelTemplate, {
|
|
15266
|
+
language,
|
|
15267
|
+
option,
|
|
15268
|
+
moment: moment$6,
|
|
15269
|
+
translate: this.translate,
|
|
15270
|
+
value: option.value,
|
|
15271
|
+
});
|
|
15272
|
+
return text;
|
|
15273
|
+
}
|
|
15274
|
+
catch (error) {
|
|
15275
|
+
return option.label;
|
|
15276
|
+
}
|
|
15277
|
+
}
|
|
15278
|
+
}
|
|
15279
|
+
EvaluatorLabelPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvaluatorLabelPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe });
|
|
15280
|
+
EvaluatorLabelPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvaluatorLabelPipe, name: "evaluateLabel" });
|
|
15281
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: EvaluatorLabelPipe, decorators: [{
|
|
15282
|
+
type: Pipe,
|
|
15283
|
+
args: [{
|
|
15284
|
+
name: 'evaluateLabel',
|
|
15285
|
+
}]
|
|
15286
|
+
}], ctorParameters: function () { return [{ type: i1.TranslateService }]; } });
|
|
15287
|
+
|
|
14936
15288
|
class LocalizedLabelPipe {
|
|
14937
15289
|
/**
|
|
14938
15290
|
*
|
|
@@ -14964,7 +15316,7 @@ class FilterOptionTextComponent {
|
|
|
14964
15316
|
}
|
|
14965
15317
|
}
|
|
14966
15318
|
FilterOptionTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilterOptionTextComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
14967
|
-
FilterOptionTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterOptionTextComponent, selector: "filter-option-text", inputs: { option: "option", showCount: "showCount", language: "language" }, host: { classAttribute: "fot" }, ngImport: i0, template: "<span
|
|
15319
|
+
FilterOptionTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: FilterOptionTextComponent, selector: "filter-option-text", inputs: { option: "option", showCount: "showCount", language: "language" }, host: { classAttribute: "fot" }, ngImport: i0, template: "<span\r\n class=\"fot__label\"\r\n [matTooltip]=\"option?.tooltip | optionTooltip : language\"\r\n>\r\n {{\r\n option?.labelTemplate\r\n ? (option | evaluateLabel : language)\r\n : (option | localizedLabel : language)\r\n }}\r\n</span>\r\n\r\n<small class=\"fot__count\" *ngIf=\"showCount\">{{ option.count }}</small>\r\n", styles: [".fot{display:grid;grid-template-columns:1fr auto;align-items:center;grid-gap:.3rem;gap:.3rem;margin-inline:var(--fot-margin-inline, 0);font-size:var(--fot-font-size, .8rem);line-height:var(--fot-line-height, 1.3);width:var(--fot-width, 100%)}.fot__label{color:var(--fot-label-color, currentColor);white-space:var(--fot-label-white-space, pre-wrap);word-break:var(--fot-label-word-break, break-word);max-width:var(--fot-label-width, 100%)}.fot__count{color:var(--fot-count-color, var(--secondary, currentColor));background:var(--fot-count-background, #eee);border-radius:var(--fot-count-radius, 9px);padding:var(--fot-count-padding, .2rem .3rem);min-width:var(--fot-count-min-width, 1.8rem);text-align:center}\n"], directives: [{ type: i7.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltipPosition", "matTooltipDisabled", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "optionTooltip": TooltipPipe, "evaluateLabel": EvaluatorLabelPipe, "localizedLabel": LocalizedLabelPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
14968
15320
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: FilterOptionTextComponent, decorators: [{
|
|
14969
15321
|
type: Component,
|
|
14970
15322
|
args: [{
|
|
@@ -18679,322 +19031,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
18679
19031
|
type: Input
|
|
18680
19032
|
}] } });
|
|
18681
19033
|
|
|
18682
|
-
/**
|
|
18683
|
-
* Creates a secure context for function evaluation that prevents access to the window object.
|
|
18684
|
-
* @returns {Record<string, any>} A secure context object with safe properties.
|
|
18685
|
-
*/
|
|
18686
|
-
function createSecureContext() {
|
|
18687
|
-
// Create a secure context with only safe properties
|
|
18688
|
-
return {
|
|
18689
|
-
// Add any safe globals here that should be accessible
|
|
18690
|
-
console: {
|
|
18691
|
-
log: console.log,
|
|
18692
|
-
warn: console.warn,
|
|
18693
|
-
error: console.error
|
|
18694
|
-
},
|
|
18695
|
-
// Add other safe objects/functions as needed
|
|
18696
|
-
Math,
|
|
18697
|
-
Date,
|
|
18698
|
-
Number,
|
|
18699
|
-
String,
|
|
18700
|
-
Boolean,
|
|
18701
|
-
Array,
|
|
18702
|
-
Object,
|
|
18703
|
-
JSON,
|
|
18704
|
-
// Prevent access to window
|
|
18705
|
-
window: undefined,
|
|
18706
|
-
self: undefined,
|
|
18707
|
-
globalThis: undefined,
|
|
18708
|
-
_: ___default // Include lodash if needed, but ensure it's used safely
|
|
18709
|
-
};
|
|
18710
|
-
}
|
|
18711
|
-
/**
|
|
18712
|
-
* A utility class for evaluating expressions, interpolating strings, and working with templates.
|
|
18713
|
-
* This class provides static methods for dynamic evaluation of code, string interpolation,
|
|
18714
|
-
* and template processing with caching capabilities.
|
|
18715
|
-
*/
|
|
18716
|
-
class Evaluator {
|
|
18717
|
-
/**
|
|
18718
|
-
* Creates a function from a string or returns the function if already provided.
|
|
18719
|
-
* Uses a secure context to prevent access to the window object by default.
|
|
18720
|
-
* @param {string|Function} func - The function or string to convert to a function.
|
|
18721
|
-
* @param {...any} params - The parameters to pass to the function.
|
|
18722
|
-
* @param {EvaluatorOptions} [options={}] - Optional configuration for the evaluation.
|
|
18723
|
-
* @returns {Function} - The resulting function.
|
|
18724
|
-
*/
|
|
18725
|
-
static evaluator(func, ...params) {
|
|
18726
|
-
// Extract options if the last parameter is an options object
|
|
18727
|
-
let options = {};
|
|
18728
|
-
if (params.length > 0 &&
|
|
18729
|
-
params[params.length - 1] &&
|
|
18730
|
-
typeof params[params.length - 1] === 'object' &&
|
|
18731
|
-
'securityMode' in params[params.length - 1]) {
|
|
18732
|
-
options = params.pop();
|
|
18733
|
-
}
|
|
18734
|
-
if (typeof func === 'function') {
|
|
18735
|
-
return func;
|
|
18736
|
-
}
|
|
18737
|
-
if (typeof params[0] === 'object') {
|
|
18738
|
-
params = keys(params[0]);
|
|
18739
|
-
}
|
|
18740
|
-
// Check if we should use secure mode (default) or unsafe mode
|
|
18741
|
-
const securityMode = options.securityMode || 'secure';
|
|
18742
|
-
if (securityMode === 'unsafe') {
|
|
18743
|
-
// In unsafe mode, create a function with access to all globals
|
|
18744
|
-
return new Function(...params, func);
|
|
18745
|
-
}
|
|
18746
|
-
const sandbox = createSecureContext();
|
|
18747
|
-
const sandboxKeys = Object.keys(sandbox);
|
|
18748
|
-
const sandboxAssignments = sandboxKeys.map((key) => `const ${key} = sandbox.${key};`).join('');
|
|
18749
|
-
const wrapper = new Function(...params, 'sandbox', `${sandboxAssignments}${func}`);
|
|
18750
|
-
return (...args) => wrapper(...args, sandbox);
|
|
18751
|
-
}
|
|
18752
|
-
/**
|
|
18753
|
-
* Replaces template expressions in a string with values from data.
|
|
18754
|
-
* Supports function calls within templates and fallback values using || syntax.
|
|
18755
|
-
* By default, ensures evaluation happens in a secure context to prevent access to window object.
|
|
18756
|
-
* @param {string} rawTemplate - The template string containing expressions to interpolate.
|
|
18757
|
-
* @param {Record<string, any>} data - The data object containing values to use for interpolation.
|
|
18758
|
-
* @param {EvaluatorOptions} [options={}] - Optional configuration for the interpolation process.
|
|
18759
|
-
* @returns {string} - The interpolated string with all expressions replaced with actual values.
|
|
18760
|
-
*/
|
|
18761
|
-
static interpolateString(rawTemplate, data, options = {}) {
|
|
18762
|
-
if (!rawTemplate) {
|
|
18763
|
-
return '';
|
|
18764
|
-
}
|
|
18765
|
-
if (typeof rawTemplate !== 'string') {
|
|
18766
|
-
return rawTemplate.toString();
|
|
18767
|
-
}
|
|
18768
|
-
// Check if we should use secure mode (default) or unsafe mode
|
|
18769
|
-
const securityMode = options.securityMode || 'secure';
|
|
18770
|
-
// Create a secure data object if needed
|
|
18771
|
-
const secureData = securityMode === 'unsafe'
|
|
18772
|
-
? data
|
|
18773
|
-
: Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), {
|
|
18774
|
-
// Ensure these remain undefined
|
|
18775
|
-
window: undefined, self: undefined, globalThis: undefined });
|
|
18776
|
-
return rawTemplate.replace(/({{\s*(.*?)\s*}})/g, (match, $1, expression) => {
|
|
18777
|
-
if (expression.indexOf('(') !== -1) {
|
|
18778
|
-
return expression.replace(/([^(]+)\(([^)]+)\s*\);?/, (_, fnName, argsStr) => {
|
|
18779
|
-
fnName = trim(fnName);
|
|
18780
|
-
const func = get(secureData, fnName);
|
|
18781
|
-
if (func) {
|
|
18782
|
-
if (argsStr) {
|
|
18783
|
-
const args = argsStr.split(',').map((arg) => {
|
|
18784
|
-
const trimmed = trim(arg);
|
|
18785
|
-
if (/^['"]/.test(trimmed))
|
|
18786
|
-
return trimmed.slice(1, -1);
|
|
18787
|
-
return get(secureData, trimmed);
|
|
18788
|
-
});
|
|
18789
|
-
return Evaluator.evaluate(func, args, '', false, secureData, options);
|
|
18790
|
-
}
|
|
18791
|
-
return Evaluator.evaluate(func, [], '', false, secureData, options);
|
|
18792
|
-
}
|
|
18793
|
-
return '';
|
|
18794
|
-
});
|
|
18795
|
-
}
|
|
18796
|
-
else {
|
|
18797
|
-
let dataPath = expression;
|
|
18798
|
-
if (expression.indexOf('?') !== -1) {
|
|
18799
|
-
dataPath = expression.replace(/\?\./g, '.');
|
|
18800
|
-
}
|
|
18801
|
-
const parts = dataPath.split('||').map((item) => item.trim());
|
|
18802
|
-
let value = '';
|
|
18803
|
-
let path = '';
|
|
18804
|
-
for (let i = 0; i < parts.length; i++) {
|
|
18805
|
-
path = parts[i];
|
|
18806
|
-
if (___default.has(secureData, path)) {
|
|
18807
|
-
value = ___default.get(secureData, path);
|
|
18808
|
-
break;
|
|
18809
|
-
}
|
|
18810
|
-
}
|
|
18811
|
-
if (options.data) {
|
|
18812
|
-
set(options.data, path, value);
|
|
18813
|
-
}
|
|
18814
|
-
return value;
|
|
18815
|
-
}
|
|
18816
|
-
});
|
|
18817
|
-
}
|
|
18818
|
-
/**
|
|
18819
|
-
* Performs an evaluation using the evaluation context of this component.
|
|
18820
|
-
* By default, ensures evaluation happens in a secure context to prevent access to window object.
|
|
18821
|
-
* @param {string|Function|object} func - The function or string to evaluate.
|
|
18822
|
-
* @param {object} args - The arguments to pass to the evaluation.
|
|
18823
|
-
* @param {string} ret - The name of the variable within the evaluation context to return.
|
|
18824
|
-
* @param {boolean} interpolate - Determines if it should replace all {{ }} token references with actual data.
|
|
18825
|
-
* @param {object} context - - The evaluation context.
|
|
18826
|
-
* @param {EvaluatorOptions } options - The options to pass to the evaluation.
|
|
18827
|
-
* @returns {*} - The result of the evaluation.
|
|
18828
|
-
*/
|
|
18829
|
-
static evaluate(func, args = {}, ret = 'show', interpolate = false, context = {}, options = {}) {
|
|
18830
|
-
let returnVal = null;
|
|
18831
|
-
const field = args.field ? args.field : { key: 'unknown' };
|
|
18832
|
-
const fieldKey = field.key;
|
|
18833
|
-
if (typeof func === 'string') {
|
|
18834
|
-
if (ret) {
|
|
18835
|
-
func = `var ${ret};${func};return ${ret}`;
|
|
18836
|
-
}
|
|
18837
|
-
if (interpolate) {
|
|
18838
|
-
func = Evaluator.interpolate(func, args, options);
|
|
18839
|
-
}
|
|
18840
|
-
try {
|
|
18841
|
-
// Pass the security mode option to the evaluator
|
|
18842
|
-
const evaluatorOptions = { securityMode: options.securityMode || 'secure' };
|
|
18843
|
-
func = Evaluator.evaluator(func, args, context, evaluatorOptions);
|
|
18844
|
-
args = Array.isArray(args) ? args : values(args);
|
|
18845
|
-
}
|
|
18846
|
-
catch (err) {
|
|
18847
|
-
console.warn(`An error occured within the custom function for ${fieldKey}`, err);
|
|
18848
|
-
returnVal = null;
|
|
18849
|
-
func = false;
|
|
18850
|
-
}
|
|
18851
|
-
}
|
|
18852
|
-
if (typeof func === 'function') {
|
|
18853
|
-
try {
|
|
18854
|
-
returnVal = Evaluator.execute(func, args, context, options);
|
|
18855
|
-
}
|
|
18856
|
-
catch (err) {
|
|
18857
|
-
returnVal = null;
|
|
18858
|
-
console.warn(`An error occured within custom function for ${fieldKey}`, err);
|
|
18859
|
-
}
|
|
18860
|
-
}
|
|
18861
|
-
else if (func) {
|
|
18862
|
-
console.warn(`Unknown function type for ${fieldKey}`);
|
|
18863
|
-
}
|
|
18864
|
-
return returnVal;
|
|
18865
|
-
}
|
|
18866
|
-
/**
|
|
18867
|
-
* Executes a function with provided arguments and context.
|
|
18868
|
-
* By default, ensures execution happens in a secure context to prevent access to window object.
|
|
18869
|
-
* @param {Function} func - The function to execute.
|
|
18870
|
-
* @param {any[]|Record<string, any>} args - The arguments to pass to the function, either as an array or object.
|
|
18871
|
-
* @param {Record<string, any>} [context={}] - The context (this) to use when executing the function.
|
|
18872
|
-
* @param {EvaluatorOptions} [options={}] - Optional configuration for the execution.
|
|
18873
|
-
* @returns {any} - The result of the function execution.
|
|
18874
|
-
*/
|
|
18875
|
-
static execute(func, args, context = {}, options = {}) {
|
|
18876
|
-
// Check if we should use secure mode (default) or unsafe mode
|
|
18877
|
-
const securityMode = options.securityMode || 'secure';
|
|
18878
|
-
if (securityMode === 'unsafe') {
|
|
18879
|
-
// In unsafe mode, execute with the original context
|
|
18880
|
-
return Array.isArray(args) ? func.apply(context, args) : func.call(context, args);
|
|
18881
|
-
}
|
|
18882
|
-
else {
|
|
18883
|
-
// In secure mode, create a secure context by merging the provided context with our secure context
|
|
18884
|
-
const secureContext = Object.assign(Object.assign(Object.assign({}, createSecureContext()), context), {
|
|
18885
|
-
// Ensure these remain undefined even if they were in the provided context
|
|
18886
|
-
window: undefined, self: undefined, globalThis: undefined });
|
|
18887
|
-
// Execute the function with the secure context
|
|
18888
|
-
return Array.isArray(args) ? func.apply(secureContext, args) : func.call(secureContext, args);
|
|
18889
|
-
}
|
|
18890
|
-
}
|
|
18891
|
-
/**
|
|
18892
|
-
* Creates a template function from a string with caching for performance.
|
|
18893
|
-
* By default, ensures the template function executes in a secure context.
|
|
18894
|
-
* @param {string} template - The template string to compile into a function.
|
|
18895
|
-
* @param {string} [hash] - Optional hash to use as cache key. If not provided, a hash will be generated from the template.
|
|
18896
|
-
* @param {EvaluatorOptions} [options={}] - Optional configuration for the template.
|
|
18897
|
-
* @returns {Function|undefined} - The compiled template function, or undefined if compilation fails.
|
|
18898
|
-
*/
|
|
18899
|
-
static template(template, hash, options = {}) {
|
|
18900
|
-
hash = hash || stringHash(template).toString();
|
|
18901
|
-
// If hash contains options object, extract it
|
|
18902
|
-
if (typeof hash === 'object' && 'securityMode' in hash) {
|
|
18903
|
-
options = hash;
|
|
18904
|
-
hash = stringHash(template).toString();
|
|
18905
|
-
}
|
|
18906
|
-
// Check if we have a cached version
|
|
18907
|
-
const cacheKey = hash + (options.securityMode || 'secure');
|
|
18908
|
-
if (Evaluator.cache[cacheKey]) {
|
|
18909
|
-
return Evaluator.cache[cacheKey];
|
|
18910
|
-
}
|
|
18911
|
-
try {
|
|
18912
|
-
template = template.replace(/ctx\./g, '');
|
|
18913
|
-
// Create the template function using lodash
|
|
18914
|
-
const templateFunc = ___default.template(template, Evaluator.templateSettings);
|
|
18915
|
-
// Check if we should use secure mode (default) or unsafe mode
|
|
18916
|
-
const securityMode = options.securityMode || 'secure';
|
|
18917
|
-
if (securityMode === 'unsafe') {
|
|
18918
|
-
// In unsafe mode, return the original template function
|
|
18919
|
-
return (Evaluator.cache[cacheKey] = templateFunc);
|
|
18920
|
-
}
|
|
18921
|
-
else {
|
|
18922
|
-
// In secure mode, wrap the template function to ensure it runs in a secure context
|
|
18923
|
-
const secureTemplateFunc = (data) => {
|
|
18924
|
-
// Create a secure context for the template
|
|
18925
|
-
const secureData = Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), {
|
|
18926
|
-
// Ensure these remain undefined
|
|
18927
|
-
window: undefined, self: undefined, globalThis: undefined });
|
|
18928
|
-
return templateFunc(secureData);
|
|
18929
|
-
};
|
|
18930
|
-
// Cache and return the secure template function
|
|
18931
|
-
return (Evaluator.cache[cacheKey] = secureTemplateFunc);
|
|
18932
|
-
}
|
|
18933
|
-
}
|
|
18934
|
-
catch (err) {
|
|
18935
|
-
console.warn('Error while processing template', err, template);
|
|
18936
|
-
return undefined;
|
|
18937
|
-
}
|
|
18938
|
-
}
|
|
18939
|
-
/**
|
|
18940
|
-
* Interpolates a template with data, handling both function templates and string templates.
|
|
18941
|
-
* By default, ensures interpolation happens in a secure context to prevent access to window object.
|
|
18942
|
-
* @param {string|Function} rawTemplate - The template to interpolate, either as a string or a function.
|
|
18943
|
-
* @param {Record<string, any>} data - The data object to use for interpolation.
|
|
18944
|
-
* @param {EvaluatorOptions} options - Options for the interpolation process.
|
|
18945
|
-
* @returns {string|any} - The result of the interpolation, typically a string but could be any type depending on the template.
|
|
18946
|
-
*/
|
|
18947
|
-
static interpolate(rawTemplate, data, options = {}) {
|
|
18948
|
-
if (typeof rawTemplate === 'function') {
|
|
18949
|
-
try {
|
|
18950
|
-
// If the template is a function, execute it with the data
|
|
18951
|
-
// We can't directly secure a provided function, but we can use execute
|
|
18952
|
-
// to run it in a secure context if needed
|
|
18953
|
-
if (options.securityMode !== 'unsafe') {
|
|
18954
|
-
const secureData = Object.assign(Object.assign(Object.assign({}, createSecureContext()), data), { window: undefined, self: undefined, globalThis: undefined });
|
|
18955
|
-
return rawTemplate(secureData);
|
|
18956
|
-
}
|
|
18957
|
-
else {
|
|
18958
|
-
return rawTemplate(data);
|
|
18959
|
-
}
|
|
18960
|
-
}
|
|
18961
|
-
catch (err) {
|
|
18962
|
-
console.warn('Error interpolating template', err, data);
|
|
18963
|
-
return err.message;
|
|
18964
|
-
}
|
|
18965
|
-
}
|
|
18966
|
-
rawTemplate = String(rawTemplate);
|
|
18967
|
-
// Pass the security mode option to the template method
|
|
18968
|
-
const template = Evaluator.template(rawTemplate, undefined, options);
|
|
18969
|
-
if (typeof template === 'function') {
|
|
18970
|
-
try {
|
|
18971
|
-
return template(data);
|
|
18972
|
-
}
|
|
18973
|
-
catch (err) {
|
|
18974
|
-
console.warn('Error interpolating template', err, rawTemplate, data);
|
|
18975
|
-
return err.message;
|
|
18976
|
-
}
|
|
18977
|
-
}
|
|
18978
|
-
return template;
|
|
18979
|
-
}
|
|
18980
|
-
}
|
|
18981
|
-
/**
|
|
18982
|
-
* Cache for storing compiled template functions to improve performance.
|
|
18983
|
-
* Keys are string hashes of the template, values are the compiled functions.
|
|
18984
|
-
*/
|
|
18985
|
-
Evaluator.cache = {};
|
|
18986
|
-
/**
|
|
18987
|
-
* Settings for template processing, defining regex patterns for different template operations.
|
|
18988
|
-
* - interpolate: Pattern for variable interpolation ({{ variable }})
|
|
18989
|
-
* - evaluate: Pattern for code evaluation ({% code %})
|
|
18990
|
-
* - escape: Pattern for HTML escaping ({{{ variable }}})
|
|
18991
|
-
*/
|
|
18992
|
-
Evaluator.templateSettings = {
|
|
18993
|
-
interpolate: /{{([\s\S]+?)}}/g,
|
|
18994
|
-
evaluate: /\{%([\s\S]+?)%\}/g,
|
|
18995
|
-
escape: /\{\{\{([\s\S]+?)\}\}\}/g
|
|
18996
|
-
};
|
|
18997
|
-
|
|
18998
19034
|
const NDF_EDITOR_TYPE = {
|
|
18999
19035
|
REPORTS: 'report',
|
|
19000
19036
|
TABLES: 'table'
|
|
@@ -19742,6 +19778,7 @@ const PIPES = [
|
|
|
19742
19778
|
TooltipPipe,
|
|
19743
19779
|
FiltersByRolesPipe,
|
|
19744
19780
|
CheckConditionPipe$1,
|
|
19781
|
+
EvaluatorLabelPipe
|
|
19745
19782
|
];
|
|
19746
19783
|
class NdfFiltersPanelModule {
|
|
19747
19784
|
/**
|
|
@@ -19811,7 +19848,8 @@ NdfFiltersPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", v
|
|
|
19811
19848
|
SortListPipe,
|
|
19812
19849
|
TooltipPipe,
|
|
19813
19850
|
FiltersByRolesPipe,
|
|
19814
|
-
CheckConditionPipe$1,
|
|
19851
|
+
CheckConditionPipe$1,
|
|
19852
|
+
EvaluatorLabelPipe, FilterOptionTextComponent,
|
|
19815
19853
|
FilterSearchInputComponent,
|
|
19816
19854
|
FilterCollapseControlComponent,
|
|
19817
19855
|
FieldHeaderComponent,
|
|
@@ -45598,7 +45636,7 @@ class NdfReportsComponent extends DestroySubject {
|
|
|
45598
45636
|
}
|
|
45599
45637
|
}
|
|
45600
45638
|
NdfReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, deps: [{ token: i1.TranslateService }, { token: FiltersMapperService }, { token: NdfReportsService }, { token: ChartManagerService }, { token: ReportTransformService }, { token: i0.ChangeDetectorRef }, { token: FilterQueryService }, { token: ReportsStateService }, { token: ReportConfigurationService }, { token: i1$5.Router }, { token: i0.NgZone }, { token: ReportsHooksService }], target: i0.ɵɵFactoryTarget.Component });
|
|
45601
|
-
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", loadCondition: "loadCondition", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div\r\n class=\"absolute flex justify-center items-center loading-result\"\r\n *ngIf=\"isLoadingResult && callLoadCondition()\"\r\n >\r\n <mat-spinner class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n </div>\r\n\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n triggerUpdate: triggerUpdate,\r\n reset: resetFilters,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length && callLoadCondition()\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container *ngIf=\"callLoadCondition(); else emptyContent\">\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.loading-result{background:var(--loading-result-background, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--loading-result-filter, blur(3px));backdrop-filter:var(--loading-result-filter, blur(3px));width:100%;height:100%;z-index:3}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc( var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5) ));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1$c.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
45639
|
+
NdfReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.17", type: NdfReportsComponent, selector: "app-ndf-reports", inputs: { jsonEditorEnabled: "jsonEditorEnabled", reportsKey: "reportsKey", navigateRoute: "navigateRoute", loadCondition: "loadCondition", config: "config" }, outputs: { onQueryChange: "onQueryChange" }, host: { properties: { "dir": "direction" }, classAttribute: "ndf-reports" }, queries: [{ propertyName: "filterCustomTemplate", first: true, predicate: CUSTOM_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "headerPanelTemplate", first: true, predicate: HEADER_PANEL_TEMPLATE, descendants: true, read: TemplateRef }, { propertyName: "emptyContentTemplate", first: true, predicate: EMPTY_CONTENT_TEMPLATE, descendants: true, read: TemplateRef }], viewQueries: [{ propertyName: "fluidDirective", first: true, predicate: FluidHeightDirective, descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"ndf-reports__container\"\r\n [class.panel-opened]=\"isPanelOpened && filtersConfig\"\r\n [dir]=\"direction\"\r\n ndfFluidHeight\r\n>\r\n <div\r\n class=\"absolute flex justify-center items-center loading-result\"\r\n *ngIf=\"isLoadingResult && callLoadCondition()\"\r\n >\r\n <mat-spinner class=\"mt-5 mx-auto\" [diameter]=\"48\"></mat-spinner>\r\n </div>\r\n\r\n <div class=\"ndf-reports__panel print:hidden\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"headerPanelTemplate\"\r\n [ngTemplateOutletContext]=\"{\r\n $implicit: aggregations,\r\n filterChanged: filterChanged,\r\n activeQuery: activeQuery,\r\n triggerUpdate: triggerUpdate,\r\n reset: resetFilters,\r\n config: config\r\n }\"\r\n ></ng-container>\r\n\r\n <app-filters-panel\r\n *ngIf=\"!!filtersConfig?.fields?.length && callLoadCondition()\"\r\n [fields]=\"filtersConfig?.fields\"\r\n [aggregations]=\"aggregations\"\r\n (filterChanged)=\"filterChanged($event)\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n class=\"ndf-reports__filters\"\r\n [customTemplateRef]=\"filterCustomTemplate\"\r\n ></app-filters-panel>\r\n </div>\r\n\r\n <ng-container *ngIf=\"callLoadCondition(); else emptyContent\">\r\n <div\r\n class=\"ndf-reports__content\"\r\n (scrolled)=\"onContentScroll($event)\"\r\n *ngIf=\"reportsData$ | async as reports\"\r\n >\r\n <div class=\"ndf-reports__header flex pt-4 print:hidden\">\r\n <button\r\n mat-stroked-button\r\n class=\"toggle-button\"\r\n (click)=\"togglePanel()\"\r\n >\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <app-editor-button\r\n *ngIf=\"jsonEditorEnabled && reportsKey\"\r\n [key]=\"reportsKey\"\r\n [type]=\"editorType\"\r\n ></app-editor-button>\r\n <button\r\n mat-stroked-button\r\n *ngIf=\"config?.options?.print\"\r\n class=\"print-button\"\r\n (click)=\"printAll()\"\r\n >\r\n <mat-icon> print</mat-icon>\r\n </button>\r\n </div>\r\n\r\n <div class=\"reports-grid\" *ngIf=\"!isLoadingResult\">\r\n <app-ndf-report\r\n *ngFor=\"let config of reportConfig.items; trackBy: trackByFn\"\r\n [config]=\"config\"\r\n [data]=\"reports?.response\"\r\n [criteria]=\"filtersParams$ | async\"\r\n [direction]=\"direction\"\r\n [attr.data-width]=\"config?.layout?.width || 4\"\r\n [attr.data-height]=\"config?.layout?.height || 'auto'\"\r\n [attr.data-start-column]=\"config?.layout?.columnPosition || 'auto'\"\r\n [attr.data-start-row]=\"config?.layout?.rowPosition || 'auto'\"\r\n [class.wide]=\"config?.layout?.width >= 6\"\r\n [style]=\"config?.layout?.style\"\r\n class=\"reports-grid__item {{ config?.layout?.styleClass }} \"\r\n (onNavigate)=\"onNavigate($event)\"\r\n (onOpen)=\"openReportDetails($event, config)\"\r\n ></app-ndf-report>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div\r\n class=\"ndf-reports__details print:hidden\"\r\n [class.opened]=\"showDetails\"\r\n [@slideInOut]=\"showDetails ? 'open' : 'closed'\"\r\n (@slideInOut.done)=\"onDetailsAnimationEnd($event)\"\r\n >\r\n <app-ndf-table\r\n *ngIf=\"reportDetails$ | async as report\"\r\n [config]=\"report.config\"\r\n [activeQuery]=\"activeFiltersQuery$ | async\"\r\n [customCriteria]=\"detailsFiltersParams$ | async\"\r\n >\r\n <ng-template searchTableTemplate let-toggle=\"togglePanel\">\r\n <div class=\"ndf-reports__details__header flex gap-2\">\r\n <button mat-stroked-button class=\"toggle-button\" (click)=\"toggle()\">\r\n <mat-icon> filter_alt</mat-icon>\r\n </button>\r\n <button\r\n mat-stroked-button\r\n class=\"close-button\"\r\n (click)=\"closeDetailsPanel()\"\r\n >\r\n <mat-icon> close</mat-icon>\r\n </button>\r\n </div>\r\n <h3>\r\n {{ report.label | translate }}\r\n </h3>\r\n </ng-template>\r\n </app-ndf-table>\r\n </div>\r\n</div>\r\n\r\n<ng-template #emptyContent>\r\n <div class=\"ndf-reports__content flex items-center flex-grow-1\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"emptyContentTemplate || defaultEmptyContent\"\r\n ></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #defaultEmptyContent>\r\n <div class=\"no-data mt-26\">\r\n {{ 'noData' | translate }}\r\n </div>\r\n</ng-template>\r\n", styles: [":host{--table-dev-height: var(--ndf-reports-table-dev-height, auto);--report-height: var(--ndf-reports-report-height, 430px);--cp-height: var(--report-height);padding-inline:var(--ndf-reports-inline-padding, 0);padding-block:var(--ndf-reports-block-padding, .5rem 0);height:100%;position:relative;display:flex;flex-direction:column;background-color:var(--ndf-reports-background, #fff);box-sizing:border-box;max-width:100%;flex:0 0 100%}:host:before,:host:after{box-sizing:border-box}:host[dir=ltr]{--ndf-reports-panel-translateX: -100%;--ndf-reports-details-translateX: 100%}@media print{:host{--report-height: auto;--cp-print-min-height: 80mm;padding:0}}.loading-result{background:var(--loading-result-background, rgba(255, 255, 255, .5));-webkit-backdrop-filter:var(--loading-result-filter, blur(3px));backdrop-filter:var(--loading-result-filter, blur(3px));width:100%;height:100%;z-index:3}.ndf-reports *{box-sizing:border-box;min-height:0}.ndf-reports__header{background-color:var(--ndf-reports-background, #fff);flex-direction:var(--ndf-reports-header-direction, row);justify-content:var(--ndf-reports-header-justify, space-between);align-items:var(--ndf-reports-header-items, center);padding-inline:var(--ndf-reports-header-padding-inline, .5rem);padding-block:var(--ndf-reports-header-padding-block, 0 .5rem);position:var(--ndf-reports-header-position, sticky);top:0;z-index:1}.ndf-reports__header__actions{justify-content:var(--ndf-reports-actions-justify, flex-end)}.ndf-reports__header__custom-actions .toggle-button{min-width:0;padding:0 10px}.ndf-reports__container{--panel-width: var(--ndf-reports-panel-width, 18rem);position:relative;overflow:var(--ndf-reports-container-overflow, hidden);display:grid;transition:all .2s;max-width:100%;width:100%;height:var(--ndf-reports-height, calc( var(--ndf-fluid-height) - calc(var(--ndf-reports-block-padding, 1rem) * 2.5) ));flex-grow:1;grid-gap:var(--ndf-table-container-gap, .5rem);gap:var(--ndf-table-container-gap, .5rem)}.ndf-reports__container.panel-opened{--ndf-details-margin: var(--panel-width);--ndf-reports-panel-translateX: 0;--ndf-reports-content-pis: var(--panel-width)}@media print{.ndf-reports__container{--ndf-reports-container-overflow: visible;height:100%}}.ndf-reports__panel,.ndf-reports__content .ndf-reports__details{overflow:auto;transition:all .2s}.ndf-reports__panel{position:absolute;width:var(--panel-width);height:100%;transform:translate(var(--ndf-reports-panel-translateX, 100%));padding-inline:var(--ndf-reports-panel-inline-padding, .5rem);padding-block:var(--ndf-reports-panel-block-padding, .5rem);background:var(--ndf-reports-panel-background, #fff);z-index:1}.ndf-reports__content{flex-grow:1;padding-inline-start:var(--ndf-reports-content-pis, 1rem);padding-inline-end:var(--ndf-reports-content-pie, 1rem);padding-block:var(--ndf-reports-content-pb, 0 1rem);overflow-y:var(--ndf-reports-content-overflow-y, auto);position:relative;display:flex;flex-direction:column}@media print{.ndf-reports__content{--ndf-reports-content-overflow-y: visible;width:100%;margin:0;padding:0;page-break-after:avoid}}.ndf-reports__details{position:absolute;inset-inline-end:0;width:calc(100% - var(--ndf-details-margin, 0px));height:100%;transform:translate(var(--ndf-reports-details-translateX, -100%));padding-inline:var(--ndf-reports-details-inline-padding, 0rem);flex-grow:1;padding-block:var(--ndf-reports-details-block-padding, 0rem);background:var(--ndf-reports-details-background, #fff);z-index:1;transition:all .2s}.reports-grid{--grid-columns: 12;--column-width: calc(100% / var(--grid-columns));display:grid;grid-gap:var(--reports-grid-gap, 1.5rem);gap:var(--reports-grid-gap, 1.5rem);grid-template-columns:var(--rg-columns, repeat(var(--grid-columns), 1fr));grid-template-rows:var(--reports-grid-rows, auto);margin-block:var(--reports-grid-margin-block, 1.25rem 0);padding-inline:var(--reports-grid-padding-inline, .5rem)}.reports-grid__item{display:grid;grid-gap:.3rem;gap:.3rem;min-width:0;text-align:center;vertical-align:middle}.reports-grid__item[data-width=\"1\"]{--col-span: span 1}.reports-grid__item[data-start-column=\"1\"]{--col-start: 1}.reports-grid__item[data-start-row=\"1\"]{--row-start: 1}.reports-grid__item[data-height=\"1\"]{--row-span: 1}.reports-grid__item[data-width=\"2\"]{--col-span: span 2}.reports-grid__item[data-start-column=\"2\"]{--col-start: 2}.reports-grid__item[data-start-row=\"2\"]{--row-start: 2}.reports-grid__item[data-height=\"2\"]{--row-span: 2}.reports-grid__item[data-width=\"3\"]{--col-span: span 3}.reports-grid__item[data-start-column=\"3\"]{--col-start: 3}.reports-grid__item[data-start-row=\"3\"]{--row-start: 3}.reports-grid__item[data-height=\"3\"]{--row-span: 3}.reports-grid__item[data-width=\"4\"]{--col-span: span 4}.reports-grid__item[data-start-column=\"4\"]{--col-start: 4}.reports-grid__item[data-start-row=\"4\"]{--row-start: 4}.reports-grid__item[data-height=\"4\"]{--row-span: 4}.reports-grid__item[data-width=\"5\"]{--col-span: span 5}.reports-grid__item[data-start-column=\"5\"]{--col-start: 5}.reports-grid__item[data-start-row=\"5\"]{--row-start: 5}.reports-grid__item[data-height=\"5\"]{--row-span: 5}.reports-grid__item[data-width=\"6\"]{--col-span: span 6}.reports-grid__item[data-start-column=\"6\"]{--col-start: 6}.reports-grid__item[data-start-row=\"6\"]{--row-start: 6}.reports-grid__item[data-height=\"6\"]{--row-span: 6}.reports-grid__item[data-width=\"7\"]{--col-span: span 7}.reports-grid__item[data-start-column=\"7\"]{--col-start: 7}.reports-grid__item[data-start-row=\"7\"]{--row-start: 7}.reports-grid__item[data-height=\"7\"]{--row-span: 7}.reports-grid__item[data-width=\"8\"]{--col-span: span 8}.reports-grid__item[data-start-column=\"8\"]{--col-start: 8}.reports-grid__item[data-start-row=\"8\"]{--row-start: 8}.reports-grid__item[data-height=\"8\"]{--row-span: 8}.reports-grid__item[data-width=\"9\"]{--col-span: span 9}.reports-grid__item[data-start-column=\"9\"]{--col-start: 9}.reports-grid__item[data-start-row=\"9\"]{--row-start: 9}.reports-grid__item[data-height=\"9\"]{--row-span: 9}.reports-grid__item[data-width=\"10\"]{--col-span: span 10}.reports-grid__item[data-start-column=\"10\"]{--col-start: 10}.reports-grid__item[data-start-row=\"10\"]{--row-start: 10}.reports-grid__item[data-height=\"10\"]{--row-span: 10}.reports-grid__item[data-width=\"11\"]{--col-span: span 11}.reports-grid__item[data-start-column=\"11\"]{--col-start: 11}.reports-grid__item[data-start-row=\"11\"]{--row-start: 11}.reports-grid__item[data-height=\"11\"]{--row-span: 11}.reports-grid__item[data-width=\"12\"]{--col-span: span 12}.reports-grid__item[data-start-column=\"12\"]{--col-start: 12}.reports-grid__item[data-start-row=\"12\"]{--row-start: 12}.reports-grid__item[data-height=\"12\"]{--row-span: 12}@media screen{.reports-grid__item{grid-column:var(--col-start, auto)/var(--col-span, span var(--grid-column, 2));grid-row:var(--row-start, auto)/span var(--row-span, 1);grid-template-rows:subgrid}}@media print{.reports-grid{--reports-grid-gap: 10mm;--reports-grid-margin-top: 0;padding:0;margin:0;--rg-columns: repeat(2, 1fr)}.reports-grid__item{--col-start: auto;--col-span: span 1;border:1px solid #f5f5f5;border-radius:var(--cp-radius, 1rem);page-break-inside:avoid;break-inside:avoid-page}}@media screen and (max-width: 1199px){.reports-grid__item[data-width=\"1\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"2\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"3\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"4\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"5\"]{--col-start: auto;--col-span: span 6}.reports-grid__item[data-width=\"6\"]{--col-start: auto;--col-span: span 6}.reports-grid__item.wide{--col-start: 1;--col-span: -1}}@media screen and (max-width: 767px){.reports-grid__item[data-width]{--col-start: 1;--col-span: -1}}\n"], components: [{ type: i6.MatSpinner, selector: "mat-spinner", inputs: ["color"] }, { type: FiltersPanelComponent, selector: "app-filters-panel", inputs: ["aggregations", "fields", "activeQuery"], outputs: ["filterChanged"] }, { type: i1$c.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i2$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: EditorButtonComponent, selector: "app-editor-button", inputs: ["type", "key"] }, { type: NdfReportComponent, selector: "app-ndf-report", inputs: ["config", "direction", "data", "criteria"], outputs: ["onNavigate", "onOpen"] }, { type: NdfTableComponent, selector: "app-ndf-table", inputs: ["rows", "totalRecords", "autoCalculateHeight", "emptyMessage", "activeQuery", "configPath", "styleClass", "configTransformer", "tableKey", "jsonEditorEnabled", "config", "customCriteria", "searchTerm"], outputs: ["onRowSelected", "onRowIndexSelected", "actionOnRow", "onGettingData", "onMultiRowSelected", "onLoading", "onPage", "onInitialized", "onLoaded", "onQueryChange", "onSort"] }], directives: [{ type: FluidHeightDirective, selector: "[ndfFluidHeight]", inputs: ["minHeight", "ndfFluidHeight", "subtractItems", "decrease", "delay", "cssVar", "calculate", "inlineStyle"], exportAs: ["ndfFluidHeight"] }, { type: i4.Dir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { type: i4$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: ScrollableDivDirective, selector: "[scrolled]", inputs: ["scrollTop"], outputs: ["scrolled"] }, { type: i4$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: SearchTableTemplateDirective, selector: "[searchTableTemplate]" }], pipes: { "async": i4$1.AsyncPipe, "translate": i1.TranslatePipe }, animations: [slideAnimation] });
|
|
45602
45640
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImport: i0, type: NdfReportsComponent, decorators: [{
|
|
45603
45641
|
type: Component,
|
|
45604
45642
|
args: [{
|
|
@@ -48869,5 +48907,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.17", ngImpo
|
|
|
48869
48907
|
* Generated bundle index. Do not edit.
|
|
48870
48908
|
*/
|
|
48871
48909
|
|
|
48872
|
-
export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseCustomReport, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseEditorConfigService, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartCallbacksRegisterService, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, ChartThemeService, index$2 as ChartUtils, ChartsModule, CheckConditionPipe$1 as CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, ColumnRendererRegistryService, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_CONTENT_TEMPLATE, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmdhaAuthDialog, EmdhaService, EmptyContentTemplateDirective, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILE_CONTENT, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileEventType, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FileStatus, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GeneralNotificationPopupComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HEADER_PANEL_TEMPLATE, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HeaderPanelTemplateDirective, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, InsertSingPosition, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, METADATA_EDITOR_OPTIONS, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfScannerComponent, NdfScannerModule, NdfSignaturePanelComponent, NdfSignaturesModule, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NdfTronExtractText, NdfUploaderBottomSheetComponent, NdfUploaderBottomSheetService, NdfUploaderModule, NdfUploaderService, NdfUploaderSheetEventType, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, OverrideTokenService, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportConfigurationService, ReportTransformService, ReportsDataTransformers, ReportsHooksService, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, ScrollableDivDirective, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SignatureType, SignaturesService, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableHooksService, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransactionStatus, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UploadProvider, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService$1 as VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
|
|
48910
|
+
export { ACTIONS_TABLE_TEMPLATE, AGGREGATION_FIELD_TYPES, AUTOCOMPLETE_TEMPLATE, ActionsTableTemplateDirective, ActiveUserSwitchComponent, ActivitiesLogComponent, ActivitiesLogModule, ActivityLineComponent, AdapterService, AddPermissionsDialogComponent, AddToCollectionComponent, AggregationAutocompleteComponent, AggregationCheckboxComponent, AggregationCustomComponent, AggregationDateListComponent, AggregationFieldComponent, AggregationGroupComponent, AggregationRadioComponent, AggregationSelectComponent, AggregationSwitchComponent, ApisErrorsMessagesService, AppConfigService, AppHasRoleDirective, AttachmentItemComponent, AttachmentItemModule, AttachmentModalModule, AttachmentsComponent, AttachmentsListComponent, AttachmentsPageProviderComponent, AutocompleteFilterPipe, AutocompleteTemplateDirective, AvatarComponent, AvatarModule, BaseChartBuilderService, BaseChartComponent, BaseColumnComponent, BaseComponent, BaseCustomReport, BaseDatePicker, BaseDateValueAccessor, BaseDialogComponent, BaseEditorConfigService, BaseNodeClass, BaseSelector, BaseService, BooleanViewerComponent, ButtonComponent, CHART_DEFAULTS_OPTIONS, CHART_MAIN_COLOR, CHECKBOX_TEMPLATE, COLORS_COUNT, COMPARISON_OPERATOR, CONFIG_EDITOR_MODE, CUSTOM_FIELD_TYPES, CUSTOM_TEMPLATE, CachingExpiryUnit, CalendarService, CallApiService, CardComponent, CardModule, ChartCallbacksRegisterService, ChartComponent, ChartDataService, ChartDataTransformers, index$1 as ChartDefaults, ChartManagerService, ChartPanel, ChartPanelFooterComponent, ChartPanelHeaderComponent, ChartPanelModule, index as ChartPlugins, ChartPluginsRegistry, ChartThemeService, index$2 as ChartUtils, ChartsModule, CheckConditionPipe$1 as CheckConditionPipe, CheckboxTemplateDirective, CircleNode, CircleNodeComponent, ClickOutsideDirective, ClipboardComponent, ColumnRendererRegistryService, CommentApiService, CommentsDashletComponent, CommentsModule, ComponentRegisterService, ComponentTranslationModel, ConfigEditorActionsComponent, ConfigPreviewComponent, ConfirmCallerDialogComponent, ConfirmCallerModule, ConfirmDialogComponent, ConfirmationDialogComponent, ConfirmationDialogModule, Connection, ConnectionLabelComponent, ContentActionType, ContentNode, ContentNodeComponent, CopyComponent, CopyToClipboardDirective, CopyToClipboardModule, CorrespondenceRelationComponent, CorrespondenceRelationCreateFormComponent, CorrespondenceRelationModule, CorrespondenceRelationService, CorrespondenceTagsComponent, CreateDirectoryComponent, CreateEntityComponent, CreateEntityModule, CreateModalComponent, CreationTypeComponent, CtsTagsModule, CustomConnectionComponent, CustomDocumentViewerComponent, CustomFieldComponent, CustomMomentDateAdapter, CustomPpViewerComponent, CustomReportsRegistry, CustomSocketComponent, CustomTemplateDirective, CustomToastrModule, CustomToastrService, CutomeVocViewerComponent, DATE_LIST_TEMPLATE, DATE_LIST_VIEW, DATE_LOCALE_KEYS, DATE_TYPE, DEFAULT_DEBOUNCE_TIME, DEFAULT_VIEW, DIAGRAM_DEFAULT_OPTIONS, DIAGRAM_HEIGHT, DROPDOWN_LABEL_TEMPLATE, DROPDOWN_MULTI_LABEL_TEMPLATE, DROPDOWN_TEMPLATE, DataChartComponent, DataViewerComponent, DateFormatterService, DateHelperService, DateListTemplateDirective, DateViewerComponent, DeleteComponent, DepartmentApiService, DepartmentFormComponent, DepartmentManagementService, DepartmentViewerComponent, DestroySubject, DiagramDirective, DiagramPluginsService, DiagramService, DiagramUtils, DiagramsModule, DialogMangmentService, DigitChartService, DirectiveModule, DisplaySuitableIconComponent, DisplaySuitableIconModule, DocumentScanService, DocumentTemplatesConstants, DocumentTemplatesService, DocumentUploadComponent, DocumentsComponent, DocumentsConstants, DocumentsListComponent, DocumentsModule, DocumentsService, DragAndDropDirective, DropdownLabelTemplateDirective, DropdownMultiLabelTemplateDirective, DropdownTemplateDirective, DropdownViewerComponent, DynamicChartComponent, DynamicChartModule, DynamicColumnComponent, DynamicCustomComponent, DynamicFieldsRendererComponent, DynamicFieldsRendererModule, DynamicFilterComponent, DynamicFilterModule, DynamicFormBoolItemComponent, DynamicFormBuilderComponent, DynamicFormCheckboxItemComponent, DynamicFormComponent, DynamicFormDateItemComponent, DynamicFormDepartmentComponent, DynamicFormFieldComponent, DynamicFormHijriDateitemComponent, DynamicFormMapItemComponent, DynamicFormModule, DynamicFormOptionsComponent, DynamicFormSelectItemComponent, DynamicFormSelectTagComponent, DynamicFormSelectUserFilterComponent, DynamicFormSelectUsersComponent, DynamicFormService, DynamicFormSlideToggleitemComponent, DynamicFormTextItemComponent, DynamicFormTextareaComponent, DynamicFormViewerComponent, DynamicFormVocabularyItemComponent, DynamicSearchComponent, DynamicSearchModule, DynamicTableComponent, DynamicTableModule, DynamicTableService, DynamicTabsComponent, DynamicTabsModule, DynamicTimelineReportService, DynamicViewModule, EMPTY_CONTENT_TEMPLATE, EMPTY_TEMPLATE, ENTITY_TYPE, EXTENSION_JSONS, EditDeleteModalComponent, EditorModeSwitchComponent, EditorSettingsComponent, ElementHeightDirective, ElementHeightModule, EmdhaAuthDialog, EmdhaService, EmptyContentTemplateDirective, EmptyTemplateDirective, EnvManager, Evaluator, EvaluatorLabelPipe, EvaluatorsService, ExtensionLoaderService, ExtensionService, FIELD_SEND_MODE, FIELD_TYPE, FILE_CONTENT, FILTER_CUSTOM_TEMPLATE, FILTER_DATES_TYPE, FieldHeaderComponent, FieldValueObject, FileEventType, FileGridInfiniteScrollDirective, FileManagerAbstract, FileManagerAdapter, FileManagerPaginationConfig, FileManagerService, FileMangerModule, FileSizePipe, FileStatus, FilterAutocompleteInputComponent, FilterCollapseControlComponent, FilterComponent, FilterCustomTemplateDirective, FilterDateRangeComponent, FilterEmptyMessageComponent, FilterModule, FilterOptionTextComponent, FilterOptionsSortComponent, FilterPipe, FilterQueryService, FilterSearchInputComponent, FiltersByRolesPipe, FiltersMapperService, FiltersPanelComponent, FluidHeightDirective, FluidHeightModule, FolderModalComponent, FolderishType, FormBuilderService, GREGORIAN_DATE_FORMATS, GREGORIAN_FORMAT, GatewayNodeComponent, GatewayPortsComponent, GeneralNotificationPopupComponent, GlobalAdminService, GlobalPdfTron, GregorianDatepickerComponent, HEADER_PANEL_TEMPLATE, HIJRI_DATE_ARABIC_NAMES, HIJRI_DATE_ENGLISH_NAMES, HIJRI_DATE_FORMATS, HIJRI_FORMAT, HashTranslateAsyncPipe, HashTranslatePipe, HeaderPanelTemplateDirective, HijriAdapterService, HijriDatePipe, HijriDatepickerComponent, HijriGregorianDatepickerComponent, HtmlDialogComponent, IN_OUT_DIRECTION, IconService, InfoDialogComponent, InitializationService, InputDateComponent, InputPort, InputRangeDateComponent, InsertSingPosition, ItemListComponent, Lang, LatestActivityComponent, LatestActivityModule, LibrarySharedModule, ListViewerComponent, LoanRequestComponent, LocalStoragService, LocalizeState, LocalizedDatePipe, LocalizedLabelPipe, MAT_MOMENT_DATE_ADAPTER_OPTIONS, MAT_MOMENT_DATE_ADAPTER_OPTIONS_FACTORY, MESSAGE_TYPE, METADATA_EDITOR_OPTIONS, MIN_VISIBLE_COUNT, MONACO_EDITOR_CONFIG, MY_MOMENT_FORMATS, MainfolderService, MapToAggregationConfigPipe, MessageService, ModeTogglerComponent, MomentDateAdapter, MonacoEditorComponent, MoveComponent, MultiValuePipe, MultipleDynamicFormViewerComponent, MutipleDynamicFormViewerModule, NDF_EDITOR_TYPE, NODE_CIRCLE_SIZE, NODE_GATEWAY_SIZE, NODE_HEIGHT, NODE_MARGIN, NODE_STATUS, NODE_TYPE, NODE_WIDTH, NOTIFICATIONS_LIST_OPTIONS, NOTIFICATION_ICON, NOTIFICATION_ITEM, NOTIFICATION_STATUS, NOTIFY_EVENT, NdfConfigEditorComponent, NdfConfigEditorModule, NdfConfirmationDialogComponent, NdfDatepickerComponent, NdfDatepickerModule, NdfFiltersPanelModule, NdfGregorianDatepickerComponent, NdfHijriDatepickerComponent, NdfNuxeoDialog, NdfPanelComponent, NdfPanelModule, NdfReportComponent, NdfReportsComponent, NdfReportsModule, NdfReportsService, NdfScannerComponent, NdfScannerModule, NdfSignaturePanelComponent, NdfSignaturesModule, NdfTableComponent, NdfTableConfigurationService, NdfTableModule, NdfTableService, NdfTabsComponent, NdfTabsModule, NdfTransformService, NdfTronExtractText, NdfUploaderBottomSheetComponent, NdfUploaderBottomSheetService, NdfUploaderModule, NdfUploaderService, NdfUploaderSheetEventType, NgxHijriGregorianDatepickerModule, NoDataComponent, NoDataFoundComponent, NoDataModule, NodeIconComponent, NodeInputsComponent, NodeOutputsComponent, NodePortsComponent, NotificationIconDirective, NotificationItemComponent, NotificationItemDirective, NotificationSourceSelectComponent, NotificationStatusToggleComponent, NotificationToastComponent, NotificationsButtonComponent, NotificationsDateSelectComponent, NotificationsListComponent, NotificationsListContainerComponent, NotificationsModule, NotificationsService, NotificationsSettingsContainerComponent, NuxeoCoreModule, NuxeoDevelopmentFrameworkComponent, NuxeoDevelopmentFrameworkModule, NuxeoDevelopmentFrameworkService, NuxeoDialogModule, NuxeoDialogService, NuxeoMapper, NuxeoService, NxQL, NxQlQuery, OutputPort, OverrideTokenService, PAGINATION_MODE, PANEL_MODE, PARAMS_KEYS, PREDICATE_FIELD_TYPES, PROJECT_BASE_HREF, PageSizesListComponent, PaginationComponent, PaginationModule, PdfTronModule, PdftronComponent, PdftronService, PermissionService, PermissionsComponent, PermissionsDirective, PermissionsModule, PermissionsTemplateComponent, PipesModule, PredicateDateInputComponent, PredicateFieldComponent, PredicateTextInputComponent, PublishDialogComponent, PublishingDocumentService, RADIO_TEMPLATE, RadioTemplateDirective, ReadMoreComponent, RecentlyViewedService, RemoveButtonComponent, RenameComponent, ReportConfigMapperService, ReportConfigurationService, ReportTransformService, ReportsDataTransformers, ReportsHooksService, ReportsStateService, RolesService, SEARCH_TABLE_TEMPLATE, SOCKET_WIDTH, SUBSCRIPTION_STATE, SWITCH_TEMPLATE, SafeHtmlPipe, SanitizerPipe, ScanComponent, ScanModalComponent, ScrollableDivDirective, SearchAutocompleteComponent, SearchTableTemplateDirective, SecurePipe, SelectComponent, SelectModule, SelectUsersByDepartmentModule, SelectUsersByDepartmentsComponent, SetDirRtlDirective, SetRtlDirective, ShareDialogComponent, SharedDocsService, SharedServicesModule, SidepanelComponent, SignatureType, SignaturesService, SilentPdfTronService, SingleActivityComponent, SkeletonComponent, SkeletonModule, Socket, SortListPipe, SortingListComponent, SpellCheckerFieldModule, SpellCheckerTextFieldComponent, SpinnerComponent, StatisticService, StatusIconComponent, SwitchTemplateDirective, TRANSLATION_PROVIDER, TableColumnsTogglerComponent, TableComponent, TableExportComponent, TableHooksService, TableModule, TableSkeletonComponent, TagsApiService, TemplateModalComponent, TemplateNode, TemplateNodeComponent, TextSearchComponent, TimeAgoPipe, ToastsModule, TooltipPipe, TransactionStatus, TransferDocComponent, TranslateLoaderService, TranslatedVocabularySelectComponent, TranslationService, TreeviewSelectComponent, UpdateModalComponent, UploadFileService, UploadManagmentService, UploadProvider, UserCardComponent, UserComponent, UserModule, UserPreferenceValues, UserPreferencesService, UserService, UsersCardComponent, UsersCardModule, UtilityService, VALUE_OBJECT, VersionsComponent, ViewerFilesService, ViewerLogComponent, ViewerLogModule, VocabularyApiService$1 as VocabularyApiService, VocabularyComponent, VocabularyModule, WorkflowService, ZoomControlComponent, appInitializer, departmentCacheBuster$, extensionJsonsFactory, filterEnabled, getConnections, getDoughnutOptions, getHorizontalBarOptions, getLineOptions, getPieOptions, getRandomNumber, getValue, getVerticalBarOptions, isDateObject, isFieldValueObject, mergeArrays, mergeObjects, minute$1 as minute, provideExtensionConfig, reduceEmptyMenus, reduceSeparators, removeConnections, removeEmptyKeys, removeNode, removeNodeAndConnections, serializeControl, serializePort, slideAnimation, sortByOrder };
|
|
48873
48911
|
//# sourceMappingURL=nuxeo-development-framework.js.map
|