@acorex/platform 19.3.0-next.0 → 19.3.0-next.1
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/common/lib/layout/task-badge/task-badge.service.d.ts +1 -1
- package/fesm2022/acorex-platform-common.mjs +2 -4
- package/fesm2022/acorex-platform-common.mjs.map +1 -1
- package/fesm2022/acorex-platform-core.mjs +23 -24
- package/fesm2022/acorex-platform-core.mjs.map +1 -1
- package/fesm2022/{acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs → acorex-platform-themes-default-entity-master-list-view.component-nvrF63CN.mjs} +31 -8
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-nvrF63CN.mjs.map +1 -0
- package/fesm2022/acorex-platform-themes-default.mjs +2 -2
- package/fesm2022/acorex-platform-widgets.mjs +79 -120
- package/fesm2022/acorex-platform-widgets.mjs.map +1 -1
- package/package.json +1 -1
- package/themes/default/lib/layouts/entity-layouts/entity-category/entity-category.component.d.ts +7 -0
- package/widgets/lib/widgets/advance/file/file-box-widget-edit.component.d.ts +12 -12
- package/fesm2022/acorex-platform-themes-default-entity-master-list-view.component-DnEL7Ej-.mjs.map +0 -1
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import isNil from 'lodash-es/isNil';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { input, effect, Directive, EventEmitter, HostListener, Output, Injectable, inject, signal, Pipe } from '@angular/core';
|
|
4
|
-
import { set, get, isUndefined, isNil as isNil$1, isEmpty, endsWith, startsWith, includes, lte, gte, lt, gt, isEqual, orderBy } from 'lodash-es';
|
|
4
|
+
import { set, get, isUndefined, isPlainObject, isArray, merge, isNil as isNil$1, isEmpty, endsWith, startsWith, includes, lte, gte, lt, gt, isEqual, orderBy } from 'lodash-es';
|
|
5
5
|
import { Subject, interval } from 'rxjs';
|
|
6
6
|
import { AXCalendarService } from '@acorex/core/date-time';
|
|
7
7
|
import { startWith, map } from 'rxjs/operators';
|
|
8
|
-
import { get as get$1, isPlainObject, set as set$1, isArray, merge } from 'lodash';
|
|
9
8
|
import { DomSanitizer } from '@angular/platform-browser';
|
|
10
9
|
|
|
11
10
|
class AXPDataGenerator {
|
|
@@ -439,27 +438,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
439
438
|
function extractNestedFieldsWildcard(obj, basePath, fields) {
|
|
440
439
|
const result = {};
|
|
441
440
|
if (fields.length === 1 && fields[0] === '*') {
|
|
442
|
-
const fullObj = get
|
|
441
|
+
const fullObj = get(obj, basePath);
|
|
443
442
|
return isPlainObject(fullObj) ? fullObj : {};
|
|
444
443
|
}
|
|
445
444
|
for (const field of fields) {
|
|
446
445
|
const fullPath = basePath ? `${basePath}.${field}` : field;
|
|
447
|
-
const value = get
|
|
448
|
-
set
|
|
446
|
+
const value = get(obj, fullPath);
|
|
447
|
+
set(result, field, value);
|
|
449
448
|
}
|
|
450
449
|
return result;
|
|
451
450
|
}
|
|
452
451
|
function setSmart(obj, smartPath, value) {
|
|
453
|
-
const pathParts = smartPath.split(
|
|
452
|
+
const pathParts = smartPath.split('.');
|
|
454
453
|
const lastPart = pathParts[pathParts.length - 1];
|
|
455
454
|
const fieldMatch = lastPart.match(/^\{(.+)\}$/);
|
|
456
455
|
if (!fieldMatch) {
|
|
457
|
-
set
|
|
456
|
+
set(obj, smartPath, value);
|
|
458
457
|
return obj;
|
|
459
458
|
}
|
|
460
|
-
const fields = fieldMatch[1].split(
|
|
461
|
-
const basePath = pathParts.slice(0, -1).join(
|
|
462
|
-
const [arrayKey, ...restPath] = basePath.split(
|
|
459
|
+
const fields = fieldMatch[1].split(',').map((f) => f.trim());
|
|
460
|
+
const basePath = pathParts.slice(0, -1).join('.');
|
|
461
|
+
const [arrayKey, ...restPath] = basePath.split('.');
|
|
463
462
|
// Make sure the array exists
|
|
464
463
|
if (!obj[arrayKey])
|
|
465
464
|
obj[arrayKey] = [];
|
|
@@ -470,11 +469,11 @@ function setSmart(obj, smartPath, value) {
|
|
|
470
469
|
const targetItem = obj[arrayKey][i] ?? {};
|
|
471
470
|
const nested = {};
|
|
472
471
|
if (restPath.length > 0) {
|
|
473
|
-
const picked = extractNestedFieldsWildcard(item, restPath.join(
|
|
474
|
-
set
|
|
472
|
+
const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);
|
|
473
|
+
set(nested, restPath.join('.'), picked);
|
|
475
474
|
}
|
|
476
475
|
else {
|
|
477
|
-
const picked = extractNestedFieldsWildcard(item,
|
|
476
|
+
const picked = extractNestedFieldsWildcard(item, '', fields);
|
|
478
477
|
Object.assign(nested, picked);
|
|
479
478
|
}
|
|
480
479
|
obj[arrayKey][i] = merge({}, targetItem, nested);
|
|
@@ -487,12 +486,12 @@ function setSmart(obj, smartPath, value) {
|
|
|
487
486
|
const nested = {};
|
|
488
487
|
if (restPath.length > 0) {
|
|
489
488
|
for (const field of fields) {
|
|
490
|
-
set
|
|
489
|
+
set(nested, `${restPath.join('.')}.${field}`, value);
|
|
491
490
|
}
|
|
492
491
|
}
|
|
493
492
|
else {
|
|
494
493
|
for (const field of fields) {
|
|
495
|
-
set
|
|
494
|
+
set(nested, field, value);
|
|
496
495
|
}
|
|
497
496
|
}
|
|
498
497
|
obj[arrayKey][i] = merge({}, targetItem, nested);
|
|
@@ -502,13 +501,13 @@ function setSmart(obj, smartPath, value) {
|
|
|
502
501
|
}
|
|
503
502
|
function extractFieldsFromPath(obj, basePath, fields) {
|
|
504
503
|
if (fields.length === 1 && fields[0] === '*') {
|
|
505
|
-
const fullObj = basePath ? get
|
|
504
|
+
const fullObj = basePath ? get(obj, basePath) : obj;
|
|
506
505
|
return isPlainObject(fullObj) ? fullObj : {};
|
|
507
506
|
}
|
|
508
507
|
const result = {};
|
|
509
508
|
for (const field of fields) {
|
|
510
509
|
const fullPath = basePath ? `${basePath}.${field}` : field;
|
|
511
|
-
const val = get
|
|
510
|
+
const val = get(obj, fullPath);
|
|
512
511
|
if (val !== undefined) {
|
|
513
512
|
result[field] = val;
|
|
514
513
|
}
|
|
@@ -516,20 +515,20 @@ function extractFieldsFromPath(obj, basePath, fields) {
|
|
|
516
515
|
return result;
|
|
517
516
|
}
|
|
518
517
|
function getSmart(obj, smartPath) {
|
|
519
|
-
const pathParts = smartPath.split(
|
|
518
|
+
const pathParts = smartPath.split('.');
|
|
520
519
|
const lastPart = pathParts[pathParts.length - 1];
|
|
521
520
|
const fieldMatch = lastPart.match(/^\{(.+)\}$/);
|
|
522
521
|
// Simple get (no fields)
|
|
523
522
|
if (!fieldMatch) {
|
|
524
|
-
return get
|
|
523
|
+
return get(obj, smartPath);
|
|
525
524
|
}
|
|
526
|
-
const fields = fieldMatch[1].split(
|
|
527
|
-
const basePath = pathParts.slice(0, -1).join(
|
|
528
|
-
const items = get
|
|
525
|
+
const fields = fieldMatch[1].split(',').map((f) => f.trim());
|
|
526
|
+
const basePath = pathParts.slice(0, -1).join('.');
|
|
527
|
+
const items = get(obj, basePath);
|
|
529
528
|
if (!isArray(items))
|
|
530
529
|
return [];
|
|
531
|
-
const nestedPath = basePath.includes(
|
|
532
|
-
return items.map(item => {
|
|
530
|
+
const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';
|
|
531
|
+
return items.map((item) => {
|
|
533
532
|
return extractFieldsFromPath(item, nestedPath, fields);
|
|
534
533
|
});
|
|
535
534
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-platform-core.mjs","sources":["../../../../libs/platform/core/src/lib/data/data-generator.ts","../../../../libs/platform/core/src/lib/data/value-transformer.ts","../../../../libs/platform/core/src/lib/directives/element-data.directive.ts","../../../../libs/platform/core/src/lib/directives/dbl-click.directive.ts","../../../../libs/platform/core/src/lib/event-service/event.service.ts","../../../../libs/platform/core/src/lib/expression-evaluator/expression-evaluator.service.ts","../../../../libs/platform/core/src/lib/utils/countdown-timer.ts","../../../../libs/platform/core/src/lib/utils/object-util.ts","../../../../libs/platform/core/src/lib/utils/data-conditioner.ts","../../../../libs/platform/core/src/lib/utils/html-utils.ts","../../../../libs/platform/core/src/lib/utils/highlighter.ts","../../../../libs/platform/core/src/lib/types/core.types.ts","../../../../libs/platform/core/src/lib/types/scope.types.ts","../../../../libs/platform/core/src/acorex-platform-core.ts"],"sourcesContent":["export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1) max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T;\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n","import isNil from \"lodash-es/isNil\";\n\nexport type AXPValueTransformerFunction = (value: any) => any;\n\nexport type AXPValueTransformerFunctions = {\n getter?: AXPValueTransformerFunction;\n setter?: AXPValueTransformerFunction;\n};\n\nexport function objectKeyValueTransforms(keyName: string): AXPValueTransformerFunctions {\n return {\n getter: (value: any) => {\n if (isNil(value)) return undefined;\n return typeof value == 'object' ? value[keyName] : value;\n },\n setter: (value: any) => {\n if (isNil(value)) return undefined;\n return typeof value == 'object' ? value[keyName] : value;\n },\n };\n}","import { Directive, ElementRef, input, OnInit, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\n\n@Directive({\n selector: '[axp-data]',\n standalone: true\n})\nexport class AXPElementDataDirective implements OnInit {\n\n data = input<any>(null, { alias: 'axp-data' });\n path = input<string>('__data__', { alias: 'axp-data-path' });\n\n constructor(private elementRef: ElementRef<HTMLElement>) { }\n\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n\n // Effect to update element data when inputs change\n private updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n });\n\n /**\n * Get data from the element\n */\n getData(): any {\n return get(this.elementRef.nativeElement, this.path());\n }\n\n /**\n * Update data at runtime\n */\n setData(data: any) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n} ","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[onDblClick]'\n})\nexport class AXPDblClickDirective {\n @Output() onDblClick = new EventEmitter<Event>();\n\n private lastTap = 0;\n private readonly doubleTapThreshold = 300; // milliseconds\n\n // Listen for the native dblclick event (desktop)\n @HostListener('dblclick', ['$event'])\n handleOnDblClick(event: Event): void {\n this.onDblClick.emit(event);\n }\n\n // Listen for touchend events (mobile)\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: TouchEvent): void {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPBroadcastEventService implements OnDestroy {\n private channel: BroadcastChannel;\n private eventSubjects = new Map<string, Subject<{ data: any, requestId?: string }>>();\n private pendingRequests = new Map<string, (response: any) => void>();\n private multiTabEventHistory = new Set<string>(); // Prevent duplicate processing of the same event\n\n constructor() {\n this.channel = new BroadcastChannel('platform_global_events');\n\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)!(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n\n // Handle normal broadcast events\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type)!.next({ data: payload, requestId });\n }\n };\n }\n\n /**\n * Publish an event without expecting a response\n */\n public publish<T>(type: string, payload?: T): void {\n this.channel.postMessage({ type, payload });\n }\n\n /**\n * Subscribe to an event\n */\n public listen<T>(type: string): Observable<{ data: T, requestId?: string }> {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject<{ data: T, requestId?: string }>());\n }\n return this.eventSubjects.get(type)!.asObservable();\n }\n\n /**\n * Unsubscribe from an event\n */\n public unsubscribe(type: string): void {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type)!.complete();\n this.eventSubjects.delete(type);\n }\n }\n\n /**\n * Send a message and wait for a response with retry logic\n */\n public async sendAndWaitForResponse<T, R>(\n type: string,\n payload?: T,\n options: { timeout: number; retries: number; retryDelay: number } = { timeout: 60 * 60 * 1000, retries: 3, retryDelay: 1000 }\n ): Promise<R> {\n const requestId = AXPDataGenerator.uuid();\n\n const attemptRequest = (attempt: number): Promise<R> => {\n return new Promise<R>((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n\n this.channel.postMessage({ type, payload, requestId });\n\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n } else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n\n return attemptRequest(0);\n }\n\n /**\n * Respond to a request\n */\n public respondToRequest(requestId: string, response: any): void {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy(): void {\n this.channel.close();\n\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport type AXPExpressionEvaluatorScope = { [name: string]: { [name: string]: Function } };\n\nexport type AXPExpression = string;\n\n@Injectable({ providedIn: 'root' })\nexport class AXPExpressionEvaluatorService {\n\n public async evaluate(templateExpression: any, scope: AXPExpressionEvaluatorScope): Promise<any> {\n try {\n if (typeof templateExpression === 'string' && templateExpression.includes('{{')) {\n return await this.evaluateStringExpression(templateExpression, scope);\n } else if (typeof templateExpression === 'object') {\n const evaluatedObject: any = {};\n for (const key in templateExpression) {\n if (templateExpression.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(templateExpression[key], scope);\n }\n }\n return evaluatedObject;\n } else {\n return templateExpression;\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private async evaluateStringExpression(templateExpression: string, scope: AXPExpressionEvaluatorScope): Promise<any> {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n return await evaluationFunction();\n }\n}\n","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, PipeTransform, signal } from '@angular/core';\nimport { interval, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n@Pipe({\n name: 'countdown',\n pure: false,\n standalone: true,\n})\nexport class AXPCountdownPipe implements PipeTransform {\n private calendarService = inject(AXCalendarService);\n\n private countdownSignal = signal(this.setupTimer());\n\n private targetDate: number = 0;\n private prevValue = 0;\n\n transform(value: number): Observable<string> {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n\n private setupTimer() {\n return interval(1000).pipe(\n startWith(0),\n map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n })\n );\n }\n\n private updateTargetDate(value: string) {\n this.targetDate = new Date(value).getTime();\n }\n}\n","import { set, get, isArray, isPlainObject, merge } from \"lodash\";\n\nexport function extractNestedFieldsWildcard(obj: any, basePath: string, fields: string[]): any {\n const result: any = {};\n\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n\n return result;\n}\n\nexport function setSmart(obj: any, smartPath: string, value: any): any {\n const pathParts = smartPath.split(\".\");\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n\n const fields = fieldMatch[1].split(\",\").map(f => f.trim());\n const basePath = pathParts.slice(0, -1).join(\".\");\n const [arrayKey, ...restPath] = basePath.split(\".\");\n\n // Make sure the array exists\n if (!obj[arrayKey]) obj[arrayKey] = [];\n\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join(\".\"), fields);\n set(nested, restPath.join(\".\"), picked);\n } else {\n const picked = extractNestedFieldsWildcard(item, \"\", fields);\n Object.assign(nested, picked);\n }\n\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join(\".\")}.${field}`, value);\n }\n } else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n\n return obj;\n}\n\n\n\n\nfunction extractFieldsFromPath(obj: any, basePath: string, fields: string[]): any {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n\n const result: any = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\n\nexport function getSmart(obj: any, smartPath: string): any {\n const pathParts = smartPath.split(\".\");\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n\n const fields = fieldMatch[1].split(\",\").map(f => f.trim());\n const basePath = pathParts.slice(0, -1).join(\".\");\n const items = get(obj, basePath);\n\n if (!isArray(items)) return [];\n\n const nestedPath = basePath.includes(\".\") ? basePath.split(\".\").slice(1).join(\".\") : \"\";\n\n return items.map(item => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\n","import { AXDataSourceCallbackResult, AXDataSourceFilterOption, AXDataSourceLoadCallback, AXDataSourceQuery, AXDataSourceSortOption } from '@acorex/components/common';\nimport { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\n\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\n\nfunction applyCondition(item: any, condition: any) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n\n let result: boolean;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n\n switch (conditionType) {\n case 'equal':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n } else if (Array.isArray(valueToCompare)) {\n result = includes(\n valueToCompare.map((val) => val.toString().toLowerCase()),\n conditionValue\n );\n } else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n } else if (Array.isArray(valueToCompare)) {\n result = !includes(\n valueToCompare.map((val) => val.toString().toLowerCase()),\n conditionValue\n );\n } else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n\n return result;\n}\n\nexport function applyFilterArray(\n dataArray: any[],\n filters?: AXDataSourceFilterOption[],\n logic: 'and' | 'or' = 'and'\n): any[] {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n } else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n } else {\n return dataArray;\n }\n}\n\nexport function applySortArray(dataArray: any, sorts: AXDataSourceSortOption[]) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n } else return dataArray;\n}\n\nexport function applyPagination<T>(dataArray: T[], skip: number, take: number): T[] {\n return dataArray.slice(skip, skip + take);\n}\n\nexport async function applyQueryArray<T>(\n dataArray: T[],\n query: AXDataSourceQuery\n): Promise<AXDataSourceCallbackResult<T>> {\n let result = [...dataArray];\n\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n\n // Store total count before pagination\n const total = result.length;\n\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n\n return {\n items: result,\n total\n };\n}\n\n\n","import { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPHtmlUtils {\n private sanitizer = inject(DomSanitizer);\n getTextFromHTML(html: string | undefined | null): string {\n if (!html) return '';\n const tempElement = document.createElement('div');\n tempElement.innerHTML = html;\n return tempElement.innerText || tempElement.textContent || '';\n }\n getSafeHTMLfromHTML(html: string | undefined | null): SafeHtml | null {\n if (!html) return null;\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXHighlightService {\n private querySelector: string | null;\n private searchValue: string | null;\n\n constructor() { }\n\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector: string, searchValue: string): void {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element as HTMLElement);\n });\n }\n\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n public clear(): void {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n private applyHighlight(element: HTMLElement): void {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n private recursivelyHighlight(element: Node, searchRegex: RegExp): void {\n const childNodes = Array.from(element.childNodes);\n\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n\n node.replaceWith(fragment);\n }\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n private createHighlightedHTML(textContent: string, searchRegex: RegExp): string {\n let parts: string[] = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n\n resultHTML += '</span>';\n\n return resultHTML;\n }\n}\n","export type AXPPartialNested<T> = {\n [K in keyof T]?: T[K] extends object ? AXPPartialNested<T[K]> : T[K];\n};\n\nexport function getNestedKeys(obj: any, prefix: string = ''): string[] {\n let keys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n } else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n\n\nexport type AXPMetaData = Record<string, any>;\n\nexport type AXPOptionsData = Record<string, any>;\n\n\nexport interface AXPValueUnit {\n name: string;\n title: string;\n ratio: number;\n order: number;\n}\n\nexport interface AXPValueUnits {\n name: string;\n title: string;\n items: AXPValueUnit[];\n default: string;\n}\n","export type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';\nexport enum AXPPlatformScope {\n Environment = 'C',\n Global = 'G',\n Platform = 'P',\n Tenant = 'T',\n User = 'U'\n};\n\nexport function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey {\n const scopeMap: Record<string, AXPPlatformScopeKey> = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\n\nexport function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string {\n const scopeMap: Record<AXPPlatformScopeKey, string> = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["get","set","isNil"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-platform-core.mjs","sources":["../../../../libs/platform/core/src/lib/data/data-generator.ts","../../../../libs/platform/core/src/lib/data/value-transformer.ts","../../../../libs/platform/core/src/lib/directives/element-data.directive.ts","../../../../libs/platform/core/src/lib/directives/dbl-click.directive.ts","../../../../libs/platform/core/src/lib/event-service/event.service.ts","../../../../libs/platform/core/src/lib/expression-evaluator/expression-evaluator.service.ts","../../../../libs/platform/core/src/lib/utils/countdown-timer.ts","../../../../libs/platform/core/src/lib/utils/object-util.ts","../../../../libs/platform/core/src/lib/utils/data-conditioner.ts","../../../../libs/platform/core/src/lib/utils/html-utils.ts","../../../../libs/platform/core/src/lib/utils/highlighter.ts","../../../../libs/platform/core/src/lib/types/core.types.ts","../../../../libs/platform/core/src/lib/types/scope.types.ts","../../../../libs/platform/core/src/acorex-platform-core.ts"],"sourcesContent":["export class AXPDataGenerator {\n static uuid(): string {\n return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (char) => {\n const random = (Math.random() * 16) | 0;\n const value = char === 'x' ? random : (random & 0x3) | 0x8;\n return value.toString(16);\n });\n }\n\n static number(max: number): number;\n static number(min: number, max: number): number;\n static number(...args: number[]): number {\n let min = 0;\n let max = 100;\n if (args.length == 1) max = args[0];\n if (args.length == 2) {\n min = args[0];\n max = args[1];\n }\n return Math.floor(Math.random() * (max - min + 1)) + min;\n }\n\n static date(): Date;\n static date(start: Date): Date;\n static date(start: Date, end: Date): Date;\n static date(...args: any[]): Date {\n let start = new Date(2000, 0, 1);\n let end = new Date();\n\n if (args.length === 1) {\n start = args[0];\n } else if (args.length === 2) {\n start = args[0];\n end = args[1];\n }\n\n const startTime = start.getTime();\n const endTime = end.getTime();\n return new Date(startTime + Math.random() * (endTime - startTime));\n }\n\n static array<T>(length: number = 5, generator: () => T): T[] {\n return Array.from({ length }, generator);\n }\n\n static pick<T>(items: T[]): T;\n static pick<T>(items: T[], count: number): T[];\n static pick<T>(...args: any[]): T | T[] {\n if (args.length < 1) {\n throw new Error('Invalid parameters');\n }\n const items: T[] = args[0];\n const count: number = args[1] ?? 1;\n if (count < 1) {\n throw new Error('Count must be at least 1');\n }\n\n // If the count is greater than the number of items, just return a shuffled copy of the array\n if (count >= items.length) {\n return [...items].sort(() => Math.random() - 0.5);\n }\n\n // Shuffle the array and slice the first 'count' elements\n const shuffled = items.slice();\n for (let i = shuffled.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [shuffled[i], shuffled[j]] = [shuffled[j], shuffled[i]]; // Swap elements\n }\n return count == 1 ? shuffled.slice(0, count)[0] : shuffled.slice(0, count);\n }\n\n static string(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static boolean(): boolean {\n return Math.random() >= 0.5;\n }\n\n static item<T>(array: T[] = []): T | undefined {\n return array.length > 0 ? array[Math.floor(Math.random() * array.length)] : undefined;\n }\n\n static color(): string {\n const color = Math.floor(Math.random() * 16777215).toString(16);\n return `#${color.padStart(6, '0')}`;\n }\n\n static alphanumeric(length: number = 10): string {\n const chars = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n static alphabet(length: number = 10): string {\n const chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n return Array.from({ length }, () => chars.charAt(Math.floor(Math.random() * chars.length))).join('');\n }\n\n static phone(): string {\n const areaCode = this.number(100, 999);\n const exchangeCode = this.number(100, 999);\n const lineNumber = this.number(1000, 9999);\n return `${areaCode}-${exchangeCode}-${lineNumber}`;\n }\n\n static firstName(): string {\n const firstNames = ['John', 'Allen', 'Jak', 'Rose', 'Kate', 'Liam', 'Olivia', 'Noah', 'Emma', 'Ava'];\n return this.pick(firstNames);\n }\n\n static lastName(): string {\n const lastNames = ['Gates', 'Jonsen', 'Smith', 'Ford', 'Jakson', 'Brown', 'Johnson', 'Williams', 'Jones', 'Garcia'];\n return this.pick(lastNames);\n }\n\n static email(): string;\n static email(firstName: string, lastName: string): string;\n static email(...args: any[]): string {\n const domains = ['gmail.com', 'yahoo.com', 'outlook.com', 'example.com'];\n const domain = this.pick(domains);\n const separator = this.pick(['.', '_', '']);\n const randomSuffix = this.boolean() ? this.number(1, 99).toString() : '';\n\n if (args.length === 2) {\n const firstName = args[0].toLowerCase();\n const lastName = args[1].toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n } else {\n const firstName = this.firstName().toLowerCase();\n const lastName = this.lastName().toLowerCase();\n return `${firstName}${separator}${lastName}${randomSuffix}@${domain}`;\n }\n }\n\n static country(): string {\n const countries = ['USA', 'Canada', 'Mexico', 'Germany', 'France', 'Japan', 'Australia'];\n return this.pick(countries);\n }\n\n static city(): string {\n const cities = ['Los Angeles', 'Toronto', 'Vancouver', 'Berlin', 'Paris', 'Tokyo', 'Sydney'];\n return this.pick(cities);\n }\n\n static state(): string {\n const states = ['NY', 'CA', 'TX', 'ON', 'BC', 'NSW', 'BER', 'IDF', 'TYO'];\n return this.pick(states);\n }\n\n static address(): string {\n const streets = ['Main St', 'High St', 'Maple Ave', 'Oak St', 'Pine St', 'Cedar St'];\n const streetNumber = this.number(100, 9999);\n const street = this.pick(streets);\n const city = this.city();\n const state = this.state();\n const zip = this.number(10000, 99999);\n const country = this.country();\n return `${streetNumber} ${street}, ${city}, ${state} ${zip}, ${country}`;\n }\n}\n","import isNil from \"lodash-es/isNil\";\n\nexport type AXPValueTransformerFunction = (value: any) => any;\n\nexport type AXPValueTransformerFunctions = {\n getter?: AXPValueTransformerFunction;\n setter?: AXPValueTransformerFunction;\n};\n\nexport function objectKeyValueTransforms(keyName: string): AXPValueTransformerFunctions {\n return {\n getter: (value: any) => {\n if (isNil(value)) return undefined;\n return typeof value == 'object' ? value[keyName] : value;\n },\n setter: (value: any) => {\n if (isNil(value)) return undefined;\n return typeof value == 'object' ? value[keyName] : value;\n },\n };\n}","import { Directive, ElementRef, input, OnInit, effect } from '@angular/core';\nimport { set, get } from 'lodash-es';\n\n@Directive({\n selector: '[axp-data]',\n standalone: true\n})\nexport class AXPElementDataDirective implements OnInit {\n\n data = input<any>(null, { alias: 'axp-data' });\n path = input<string>('__data__', { alias: 'axp-data-path' });\n\n constructor(private elementRef: ElementRef<HTMLElement>) { }\n\n ngOnInit() {\n // Initial data setup\n set(this.elementRef.nativeElement, this.path(), this.data());\n }\n\n // Effect to update element data when inputs change\n private updateEffect = effect(() => {\n const currentData = this.data();\n const currentPath = this.path();\n set(this.elementRef.nativeElement, currentPath, currentData);\n });\n\n /**\n * Get data from the element\n */\n getData(): any {\n return get(this.elementRef.nativeElement, this.path());\n }\n\n /**\n * Update data at runtime\n */\n setData(data: any) {\n set(this.elementRef.nativeElement, this.path(), data);\n }\n} ","import { Directive, HostListener, Output, EventEmitter } from '@angular/core';\n\n@Directive({\n selector: '[onDblClick]'\n})\nexport class AXPDblClickDirective {\n @Output() onDblClick = new EventEmitter<Event>();\n\n private lastTap = 0;\n private readonly doubleTapThreshold = 300; // milliseconds\n\n // Listen for the native dblclick event (desktop)\n @HostListener('dblclick', ['$event'])\n handleOnDblClick(event: Event): void {\n this.onDblClick.emit(event);\n }\n\n // Listen for touchend events (mobile)\n @HostListener('touchend', ['$event'])\n onTouchEnd(event: TouchEvent): void {\n const currentTime = new Date().getTime();\n const tapGap = currentTime - this.lastTap;\n\n if (tapGap > 0 && tapGap < this.doubleTapThreshold) {\n // Detected a double-tap\n this.onDblClick.emit(event);\n event.preventDefault(); // Optionally prevent further default actions\n }\n this.lastTap = currentTime;\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { Subject, Observable } from 'rxjs';\nimport { AXPDataGenerator } from '../data/data-generator';\nimport { isUndefined } from 'lodash-es';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AXPBroadcastEventService implements OnDestroy {\n private channel: BroadcastChannel;\n private eventSubjects = new Map<string, Subject<{ data: any, requestId?: string }>>();\n private pendingRequests = new Map<string, (response: any) => void>();\n private multiTabEventHistory = new Set<string>(); // Prevent duplicate processing of the same event\n\n constructor() {\n this.channel = new BroadcastChannel('platform_global_events');\n\n // Handle incoming messages\n this.channel.onmessage = (event) => {\n const { type, payload, requestId, response } = event.data;\n // Prevent processing the same event multiple times (multi-tab synchronization)\n if (requestId && this.multiTabEventHistory.has(requestId)) {\n return;\n }\n\n if (requestId) {\n this.multiTabEventHistory.add(requestId); // Store processed requestId\n setTimeout(() => this.multiTabEventHistory.delete(requestId), 10000); // Cleanup after 10 sec\n }\n\n // Handle responses to pending requests\n if (requestId && !isUndefined(response) && this.pendingRequests.has(requestId)) {\n this.pendingRequests.get(requestId)!(response);\n this.pendingRequests.delete(requestId);\n return;\n }\n\n // Handle normal broadcast events\n if (type && this.eventSubjects.has(type)) {\n this.eventSubjects.get(type)!.next({ data: payload, requestId });\n }\n };\n }\n\n /**\n * Publish an event without expecting a response\n */\n public publish<T>(type: string, payload?: T): void {\n this.channel.postMessage({ type, payload });\n }\n\n /**\n * Subscribe to an event\n */\n public listen<T>(type: string): Observable<{ data: T, requestId?: string }> {\n if (!this.eventSubjects.has(type)) {\n this.eventSubjects.set(type, new Subject<{ data: T, requestId?: string }>());\n }\n return this.eventSubjects.get(type)!.asObservable();\n }\n\n /**\n * Unsubscribe from an event\n */\n public unsubscribe(type: string): void {\n if (this.eventSubjects.has(type)) {\n this.eventSubjects.get(type)!.complete();\n this.eventSubjects.delete(type);\n }\n }\n\n /**\n * Send a message and wait for a response with retry logic\n */\n public async sendAndWaitForResponse<T, R>(\n type: string,\n payload?: T,\n options: { timeout: number; retries: number; retryDelay: number } = { timeout: 60 * 60 * 1000, retries: 3, retryDelay: 1000 }\n ): Promise<R> {\n const requestId = AXPDataGenerator.uuid();\n\n const attemptRequest = (attempt: number): Promise<R> => {\n return new Promise<R>((resolve, reject) => {\n this.pendingRequests.set(requestId, resolve);\n\n this.channel.postMessage({ type, payload, requestId });\n\n setTimeout(() => {\n if (this.pendingRequests.has(requestId)) {\n this.pendingRequests.delete(requestId);\n if (attempt < options.retries) {\n console.warn(`Retrying request '${type}' (${attempt + 1}/${options.retries})...`);\n resolve(attemptRequest(attempt + 1)); // Retry request\n } else {\n reject(new Error(`Timeout: No response received for event '${type}' after ${options.retries} attempts.`));\n }\n }\n }, options.timeout);\n });\n };\n\n return attemptRequest(0);\n }\n\n /**\n * Respond to a request\n */\n public respondToRequest(requestId: string, response: any): void {\n if (!requestId) {\n console.warn('Invalid requestId. Cannot send response.');\n return;\n }\n this.channel.postMessage({ requestId, response });\n }\n\n /**\n * Cleanup when the service is destroyed\n */\n ngOnDestroy(): void {\n this.channel.close();\n\n // Complete all subjects\n this.eventSubjects.forEach((subject) => subject.complete());\n this.eventSubjects.clear();\n\n // Reject all pending requests to avoid dangling promises\n this.pendingRequests.forEach((resolve, requestId) => {\n resolve(Promise.reject(new Error(`Service destroyed. Request ${requestId} was not completed.`)));\n });\n this.pendingRequests.clear();\n\n // Cleanup multi-tab event history\n this.multiTabEventHistory.clear();\n }\n}\n","import { Injectable } from '@angular/core';\n\nexport type AXPExpressionEvaluatorScope = { [name: string]: { [name: string]: Function } };\n\nexport type AXPExpression = string;\n\n@Injectable({ providedIn: 'root' })\nexport class AXPExpressionEvaluatorService {\n\n public async evaluate(templateExpression: any, scope: AXPExpressionEvaluatorScope): Promise<any> {\n try {\n if (typeof templateExpression === 'string' && templateExpression.includes('{{')) {\n return await this.evaluateStringExpression(templateExpression, scope);\n } else if (typeof templateExpression === 'object') {\n const evaluatedObject: any = {};\n for (const key in templateExpression) {\n if (templateExpression.hasOwnProperty(key)) {\n evaluatedObject[key] = await this.evaluate(templateExpression[key], scope);\n }\n }\n return evaluatedObject;\n } else {\n return templateExpression;\n }\n } catch (error) {\n console.error('Error evaluating expression:', error);\n return false;\n }\n }\n\n private async evaluateStringExpression(templateExpression: string, scope: AXPExpressionEvaluatorScope): Promise<any> {\n const expressionMatch = templateExpression.match(/\\{\\{\\s*(.*?)\\s*\\}\\}/);\n if (!expressionMatch) {\n throw Error(`No valid expression found in \"${templateExpression}\"`);\n }\n const expression = expressionMatch[1];\n\n const evaluationFunction = async () => {\n const sandbox = new Function('scope', `with (scope) { return (async function() { return ${expression}; })(); }`);\n return await sandbox(scope);\n };\n return await evaluationFunction();\n }\n}\n","import { AXCalendarService } from '@acorex/core/date-time';\nimport { inject, Pipe, PipeTransform, signal } from '@angular/core';\nimport { interval, Observable } from 'rxjs';\nimport { map, startWith } from 'rxjs/operators';\n\n@Pipe({\n name: 'countdown',\n pure: false,\n standalone: true,\n})\nexport class AXPCountdownPipe implements PipeTransform {\n private calendarService = inject(AXCalendarService);\n\n private countdownSignal = signal(this.setupTimer());\n\n private targetDate: number = 0;\n private prevValue = 0;\n\n transform(value: number): Observable<string> {\n if (this.prevValue != value) {\n this.prevValue = value;\n const expireTime = this.calendarService.calendar.add(new Date(), 'second', value).date;\n this.updateTargetDate(expireTime.toISOString());\n }\n return this.countdownSignal();\n }\n\n private setupTimer() {\n return interval(1000).pipe(\n startWith(0),\n map(() => {\n const diff = this.targetDate - new Date().getTime();\n if (diff < 0) {\n return \"Time's up!\";\n }\n\n const times = [86400, 3600, 60, 1].map((seconds) => Math.floor((diff / 1000 / seconds) % (seconds === 1 ? 60 : 24)));\n const labels = ['d', 'h', 'm', 's'];\n return times\n .map((t, i) => (t > 0 || i === 3 ? `${t}${labels[i]}` : ''))\n .join(' ')\n .trim();\n })\n );\n }\n\n private updateTargetDate(value: string) {\n this.targetDate = new Date(value).getTime();\n }\n}\n","import { get, isArray, isPlainObject, merge, set } from 'lodash-es';\n\nexport function extractNestedFieldsWildcard(obj: any, basePath: string, fields: string[]): any {\n const result: any = {};\n\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = get(obj, basePath);\n return isPlainObject(fullObj) ? fullObj : {};\n }\n\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const value = get(obj, fullPath);\n set(result, field, value);\n }\n\n return result;\n}\n\nexport function setSmart(obj: any, smartPath: string, value: any): any {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n\n if (!fieldMatch) {\n set(obj, smartPath, value);\n return obj;\n }\n\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const [arrayKey, ...restPath] = basePath.split('.');\n\n // Make sure the array exists\n if (!obj[arrayKey]) obj[arrayKey] = [];\n\n // 🟡 Case A: value is array (normal set)\n if (isArray(value)) {\n for (let i = 0; i < value.length; i++) {\n const item = value[i];\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n\n if (restPath.length > 0) {\n const picked = extractNestedFieldsWildcard(item, restPath.join('.'), fields);\n set(nested, restPath.join('.'), picked);\n } else {\n const picked = extractNestedFieldsWildcard(item, '', fields);\n Object.assign(nested, picked);\n }\n\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n\n // 🟢 Case B: value is a single value → broadcast\n else {\n for (let i = 0; i < obj[arrayKey].length; i++) {\n const targetItem = obj[arrayKey][i] ?? {};\n const nested = {};\n\n if (restPath.length > 0) {\n for (const field of fields) {\n set(nested, `${restPath.join('.')}.${field}`, value);\n }\n } else {\n for (const field of fields) {\n set(nested, field, value);\n }\n }\n\n obj[arrayKey][i] = merge({}, targetItem, nested);\n }\n }\n\n return obj;\n}\n\nfunction extractFieldsFromPath(obj: any, basePath: string, fields: string[]): any {\n if (fields.length === 1 && fields[0] === '*') {\n const fullObj = basePath ? get(obj, basePath) : obj;\n return isPlainObject(fullObj) ? fullObj : {};\n }\n\n const result: any = {};\n for (const field of fields) {\n const fullPath = basePath ? `${basePath}.${field}` : field;\n const val = get(obj, fullPath);\n if (val !== undefined) {\n result[field] = val;\n }\n }\n return result;\n}\n\nexport function getSmart(obj: any, smartPath: string): any {\n const pathParts = smartPath.split('.');\n const lastPart = pathParts[pathParts.length - 1];\n const fieldMatch = lastPart.match(/^\\{(.+)\\}$/);\n\n // Simple get (no fields)\n if (!fieldMatch) {\n return get(obj, smartPath);\n }\n\n const fields = fieldMatch[1].split(',').map((f) => f.trim());\n const basePath = pathParts.slice(0, -1).join('.');\n const items = get(obj, basePath);\n\n if (!isArray(items)) return [];\n\n const nestedPath = basePath.includes('.') ? basePath.split('.').slice(1).join('.') : '';\n\n return items.map((item) => {\n return extractFieldsFromPath(item, nestedPath, fields);\n });\n}\n","import { AXDataSourceCallbackResult, AXDataSourceFilterOption, AXDataSourceLoadCallback, AXDataSourceQuery, AXDataSourceSortOption } from '@acorex/components/common';\nimport { endsWith, get, gt, gte, includes, isEmpty, isEqual, isNil, lt, lte, orderBy, startsWith } from 'lodash-es';\n\nconst loggingEnabled = false; // Set to true to enable logging, false to disable\n\nfunction applyCondition(item: any, condition: any) {\n const rawValue = condition.field ? get(item, condition.field) : null;\n const itemValue = typeof rawValue === 'string' ? rawValue.toLowerCase() : rawValue;\n const conditionValue = typeof condition.value === 'string' ? condition.value.toLowerCase() : condition.value;\n\n // Conditional Logging for debugging\n if (loggingEnabled) {\n console.log('Condition:', condition);\n console.log('Item Value:', itemValue);\n console.log('Condition Value:', conditionValue);\n }\n\n let result: boolean;\n const valueToCompare = isNil(condition.field) || condition.field === '' ? conditionValue : itemValue;\n const conditionType = condition?.operator?.type;\n if (!conditionType) {\n return true;\n }\n\n switch (conditionType) {\n case 'equal':\n result = isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Equal check result:', result);\n }\n break;\n case 'notEqual':\n result = !isEqual(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Not equal check result:', result);\n }\n break;\n case 'greaterThan':\n result = gt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than check result:', result);\n }\n break;\n case 'lessThan':\n result = lt(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than check result:', result);\n }\n break;\n case 'greaterThanOrEqual':\n result = gte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Greater than or equal check result:', result);\n }\n break;\n case 'lessThanOrEqual':\n result = lte(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Less than or equal check result:', result);\n }\n break;\n case 'contains':\n if (typeof valueToCompare === 'string') {\n result = includes(valueToCompare, conditionValue);\n } else if (Array.isArray(valueToCompare)) {\n result = includes(\n valueToCompare.map((val) => val.toString().toLowerCase()),\n conditionValue\n );\n } else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Contains check result:', result);\n }\n break;\n case 'notContains':\n if (typeof valueToCompare === 'string') {\n result = !includes(valueToCompare, conditionValue);\n } else if (Array.isArray(valueToCompare)) {\n result = !includes(\n valueToCompare.map((val) => val.toString().toLowerCase()),\n conditionValue\n );\n } else {\n result = false;\n }\n if (loggingEnabled) {\n console.log('Not contains check result:', result);\n }\n break;\n case 'startsWith':\n result = typeof valueToCompare === 'string' && startsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Starts with check result:', result);\n }\n break;\n case 'endsWith':\n result = typeof valueToCompare === 'string' && endsWith(valueToCompare, conditionValue);\n if (loggingEnabled) {\n console.log('Ends with check result:', result);\n }\n break;\n case 'isEmpty':\n result = isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is empty check result:', result);\n }\n break;\n case 'isNull':\n result = isNil(valueToCompare);\n if (loggingEnabled) {\n console.log('Is null check result:', result);\n }\n break;\n case 'isNotEmpty':\n result = !isEmpty(valueToCompare);\n if (loggingEnabled) {\n console.log('Is not empty check result:', result);\n }\n break;\n case 'between':\n result = !isNil(valueToCompare) && valueToCompare >= condition.value.from && valueToCompare <= condition.value.to;\n if (loggingEnabled) {\n console.log('Between check result:', result);\n }\n break;\n default:\n result = true;\n if (loggingEnabled) {\n console.log('Default case, returning true');\n }\n }\n\n return result;\n}\n\nexport function applyFilterArray(\n dataArray: any[],\n filters?: AXDataSourceFilterOption[],\n logic: 'and' | 'or' = 'and'\n): any[] {\n if (filters && filters.length) {\n return dataArray.filter((item) => {\n if (logic === 'and') {\n return filters.every((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n } else {\n // logic === 'or'\n return filters.some((f) => {\n return f.filters ? applyFilterArray([item], f.filters, f.logic).length > 0 : applyCondition(item, f);\n });\n }\n });\n } else {\n return dataArray;\n }\n}\n\nexport function applySortArray(dataArray: any, sorts: AXDataSourceSortOption[]) {\n if (sorts && sorts.length > 0) {\n const sortFields = sorts.map((s) => s.field);\n const sortOrders = sorts.map((s) => s.dir);\n return orderBy(dataArray, sortFields, sortOrders);\n } else return dataArray;\n}\n\nexport function applyPagination<T>(dataArray: T[], skip: number, take: number): T[] {\n return dataArray.slice(skip, skip + take);\n}\n\nexport async function applyQueryArray<T>(\n dataArray: T[],\n query: AXDataSourceQuery\n): Promise<AXDataSourceCallbackResult<T>> {\n let result = [...dataArray];\n\n // Apply filtering\n if (query.filter) {\n result = applyFilterArray(result, [query.filter], query.filter.logic ?? 'and');\n }\n\n // Store total count before pagination\n const total = result.length;\n\n // Apply sorting\n if (query.sort && query.sort.length > 0) {\n result = applySortArray(result, query.sort);\n }\n\n // Apply pagination\n result = applyPagination(result, query.skip, query.take);\n\n return {\n items: result,\n total\n };\n}\n\n\n","import { inject, Injectable } from '@angular/core';\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\n\n@Injectable({ providedIn: 'root' })\nexport class AXPHtmlUtils {\n private sanitizer = inject(DomSanitizer);\n getTextFromHTML(html: string | undefined | null): string {\n if (!html) return '';\n const tempElement = document.createElement('div');\n tempElement.innerHTML = html;\n return tempElement.innerText || tempElement.textContent || '';\n }\n getSafeHTMLfromHTML(html: string | undefined | null): SafeHtml | null {\n if (!html) return null;\n return this.sanitizer.bypassSecurityTrustHtml(html);\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * Service for applying and resetting text highlighting within specified HTML elements.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXHighlightService {\n private querySelector: string | null;\n private searchValue: string | null;\n\n constructor() { }\n\n /**\n * Highlights all occurrences of a search value within the elements matching the provided query selector.\n *\n * @param querySelector - CSS selector to identify target elements.\n * @param searchValue - Text to search and highlight.\n */\n highlight(querySelector: string, searchValue: string): void {\n this.clear();\n if (!querySelector || !searchValue) {\n return;\n }\n this.querySelector = querySelector;\n this.searchValue = searchValue;\n const elements = document.querySelectorAll(querySelector);\n elements.forEach((element) => {\n this.applyHighlight(element as HTMLElement);\n });\n }\n\n /**\n * Resets all highlighted text within the elements matching the previously used query selector.\n */\n public clear(): void {\n const elements = document.querySelectorAll(`${this.querySelector} .ax-highlight-text`);\n elements.forEach((element) => {\n let combinedText = '';\n element.querySelectorAll('span').forEach((span) => {\n combinedText += span.textContent;\n });\n\n const mergedSpan = document.createElement('span');\n mergedSpan.textContent = combinedText;\n\n element?.parentNode?.replaceChild(mergedSpan, element);\n });\n }\n\n /**\n * Applies highlighting to a specific element by matching text against the search value.\n *\n * @param element - The HTML element to apply highlights to.\n */\n private applyHighlight(element: HTMLElement): void {\n const searchRegex = new RegExp(`(${this.searchValue})`, 'gi');\n this.recursivelyHighlight(element, searchRegex);\n }\n\n /**\n * Recursively applies highlighting to text nodes within an element.\n *\n * @param element - The current node being processed.\n * @param searchRegex - Regular expression for matching text to highlight.\n */\n private recursivelyHighlight(element: Node, searchRegex: RegExp): void {\n const childNodes = Array.from(element.childNodes);\n\n childNodes.forEach((node) => {\n if (node.nodeType === Node.TEXT_NODE) {\n const textContent = node.textContent || '';\n if (textContent.match(searchRegex)) {\n const highlightedHTML = this.createHighlightedHTML(textContent, searchRegex);\n const tempContainer = document.createElement('div');\n tempContainer.innerHTML = highlightedHTML;\n\n const fragment = document.createDocumentFragment();\n Array.from(tempContainer.childNodes).forEach((child) => fragment.appendChild(child));\n\n node.replaceWith(fragment);\n }\n } else if (node.nodeType === Node.ELEMENT_NODE) {\n this.recursivelyHighlight(node, searchRegex);\n }\n });\n }\n\n /**\n * Generates the HTML structure for highlighted text.\n *\n * @param textContent - The original text content to process.\n * @param searchRegex - Regular expression for matching text to highlight.\n * @returns A string of HTML with highlighted portions wrapped in span elements.\n */\n private createHighlightedHTML(textContent: string, searchRegex: RegExp): string {\n let parts: string[] = [];\n let match;\n let lastIndex = 0;\n let resultHTML = '<span class=\"ax-highlight-text\">';\n\n while ((match = searchRegex.exec(textContent)) !== null) {\n if (match.index > lastIndex) {\n resultHTML += `<span>${textContent.slice(lastIndex, match.index)}</span>`;\n }\n resultHTML += `<span class=\"ax-highlight\">${match[0]}</span>`;\n lastIndex = searchRegex.lastIndex;\n }\n\n if (lastIndex < textContent.length) {\n resultHTML += `<span>${textContent.slice(lastIndex)}</span>`;\n }\n\n resultHTML += '</span>';\n\n return resultHTML;\n }\n}\n","export type AXPPartialNested<T> = {\n [K in keyof T]?: T[K] extends object ? AXPPartialNested<T[K]> : T[K];\n};\n\nexport function getNestedKeys(obj: any, prefix: string = ''): string[] {\n let keys: string[] = [];\n for (const key in obj) {\n if (typeof obj[key] === 'object' && obj[key] !== null && !Array.isArray(obj[key])) {\n keys = [...keys, ...getNestedKeys(obj[key], prefix + key + '.')];\n } else {\n keys.push(prefix + key);\n }\n }\n return keys;\n}\n\n\nexport type AXPMetaData = Record<string, any>;\n\nexport type AXPOptionsData = Record<string, any>;\n\n\nexport interface AXPValueUnit {\n name: string;\n title: string;\n ratio: number;\n order: number;\n}\n\nexport interface AXPValueUnits {\n name: string;\n title: string;\n items: AXPValueUnit[];\n default: string;\n}\n","export type AXPPlatformScopeKey = 'C' | 'G' | 'P' | 'T' | 'U';\nexport enum AXPPlatformScope {\n Environment = 'C',\n Global = 'G',\n Platform = 'P',\n Tenant = 'T',\n User = 'U'\n};\n\nexport function resolvePlatformScopeKey(name: string): AXPPlatformScopeKey {\n const scopeMap: Record<string, AXPPlatformScopeKey> = {\n environment: AXPPlatformScope.Environment,\n global: AXPPlatformScope.Global,\n platform: AXPPlatformScope.Platform,\n tenant: AXPPlatformScope.Tenant,\n user: AXPPlatformScope.User,\n };\n return scopeMap[name.toLowerCase()] ?? AXPPlatformScope.User;\n}\n\nexport function resolvePlatformScopeName(scope: AXPPlatformScopeKey): string {\n const scopeMap: Record<AXPPlatformScopeKey, string> = {\n C: 'environment',\n G: 'global',\n P: 'platform',\n T: 'tenant',\n U: 'user',\n };\n return scopeMap[scope] ?? 'user';\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["isNil"],"mappings":"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"}
|
|
@@ -60,26 +60,49 @@ class AXPEntityCategoryComponent {
|
|
|
60
60
|
this.entityResolver = inject(AXPEntityResolver);
|
|
61
61
|
this.vm = input.required();
|
|
62
62
|
this.treeItems = signal([]);
|
|
63
|
+
this.basicQueryEvent = {
|
|
64
|
+
skip: 0,
|
|
65
|
+
take: 1000,
|
|
66
|
+
};
|
|
63
67
|
}
|
|
64
68
|
ngOnInit() {
|
|
65
69
|
this.getCategories();
|
|
66
70
|
}
|
|
67
71
|
async getCategories() {
|
|
68
72
|
this.categoryEntityDef = await this.getCategoryEntityDef();
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
+
this.categoryEntityQueryFunc = this.categoryEntityDef?.queries.list?.execute;
|
|
74
|
+
const res = await this.categoryEntityQueryFunc(this.basicQueryEvent);
|
|
75
|
+
this.treeItems.set(res.items.map((item) => ({ ...item })));
|
|
76
|
+
}
|
|
77
|
+
async handleCollapseChanged(e) {
|
|
78
|
+
const event = {
|
|
79
|
+
...this.basicQueryEvent,
|
|
80
|
+
filter: {
|
|
81
|
+
field: this.categoryEntityDef?.parentKey,
|
|
82
|
+
value: e.data.id,
|
|
83
|
+
operator: {
|
|
84
|
+
type: 'equal',
|
|
85
|
+
},
|
|
86
|
+
},
|
|
87
|
+
};
|
|
88
|
+
const children = await this.categoryEntityQueryFunc(event);
|
|
89
|
+
this.treeItems.update((prev) => prev.map((ti) => (ti.id === e.data.id ? { ...ti, children: children.items } : ti)));
|
|
73
90
|
}
|
|
91
|
+
handleSearch() { }
|
|
74
92
|
async getCategoryEntityDef() {
|
|
75
93
|
const [module, entity] = this.vm().entityDef.category?.entity?.split('.') || [];
|
|
76
94
|
return await this.entityResolver.get(module, entity);
|
|
77
95
|
}
|
|
78
96
|
handleNodeClick(event) {
|
|
79
|
-
const filters = this.vm().entityDef.category?.applyConditions?.map((f) => ({
|
|
97
|
+
const filters = this.vm().entityDef.category?.applyConditions?.map((f) => ({
|
|
98
|
+
field: f.name,
|
|
99
|
+
value: event.data[f.value],
|
|
100
|
+
operator: f.operator,
|
|
101
|
+
}));
|
|
80
102
|
console.log(filters);
|
|
81
103
|
const viewFilters = this.vm().view().conditions;
|
|
82
104
|
const newFilters = [...viewFilters, ...filters];
|
|
105
|
+
// this.vm().filterQueries.update((prev) => [...prev, ...filters!]);
|
|
83
106
|
this.vm().dataSource.filter({
|
|
84
107
|
filters: newFilters,
|
|
85
108
|
logic: 'and',
|
|
@@ -87,11 +110,11 @@ class AXPEntityCategoryComponent {
|
|
|
87
110
|
this.vm().dataSource.refresh();
|
|
88
111
|
}
|
|
89
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityCategoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
90
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXPEntityCategoryComponent, isStandalone: true, selector: "axp-entity-category", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n<div class=\"ax-px-4\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [items]=\"treeItems()\"\n >\n </ax-tree-view>\n</div>\n\n<ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "showCheckbox", "selectionMode", "selectionBehavior", "focusNodeEnabled", "valueField", "textField", "visibleField", "disableField", "hasChildField", "selectedField", "expandedField", "tooltipField", "childrenField", "activeField", "indeterminateField", "parentField", "iconField", "toggleIcons", "look", "itemTemplate", "expandOn"], outputs: ["onSelectionChanged", "onNodeClick", "onCollapsedChanged", "onNodedbClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.0.3", type: AXPEntityCategoryComponent, isStandalone: true, selector: "axp-entity-category", inputs: { vm: { classPropertyName: "vm", publicName: "vm", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n<div class=\"ax-px-4\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [items]=\"treeItems()\"\n >\n </ax-tree-view>\n</div>\n\n<ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n</ng-template>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: AXDecoratorModule }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "ngmodule", type: AXTreeViewModule }, { kind: "component", type: i2.AXTreeViewComponent, selector: "ax-tree-view", inputs: ["items", "showCheckbox", "selectionMode", "selectionBehavior", "focusNodeEnabled", "valueField", "textField", "visibleField", "disableField", "hasChildField", "selectedField", "expandedField", "tooltipField", "childrenField", "activeField", "indeterminateField", "parentField", "iconField", "toggleIcons", "look", "itemTemplate", "expandOn"], outputs: ["onSelectionChanged", "onNodeClick", "onCollapsedChanged", "onNodedbClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
91
114
|
}
|
|
92
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXPEntityCategoryComponent, decorators: [{
|
|
93
116
|
type: Component,
|
|
94
|
-
args: [{ selector: 'axp-entity-category', standalone: true, encapsulation: ViewEncapsulation.None, imports: [CommonModule, AXDecoratorModule, AXTreeViewModule], template: "<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n<div class=\"ax-px-4\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [items]=\"treeItems()\"\n >\n </ax-tree-view>\n</div>\n\n<ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n</ng-template>\n" }]
|
|
117
|
+
args: [{ selector: 'axp-entity-category', standalone: true, encapsulation: ViewEncapsulation.None, imports: [CommonModule, AXDecoratorModule, AXTreeViewModule], template: "<!-- <ax-tree-view [items]=\"treeItems()\"></ax-tree-view> -->\n<div class=\"ax-px-4\">\n <ax-tree-view\n (onNodeClick)=\"handleNodeClick($event)\"\n (onCollapsedChanged)=\"handleCollapseChanged($event)\"\n [showCheckbox]=\"false\"\n [itemTemplate]=\"itemTemplate\"\n #treeRef\n [items]=\"treeItems()\"\n >\n </ax-tree-view>\n</div>\n\n<ng-template #itemTemplate let-item>\n <ax-icon class=\"fas ax-text-warning fa-folder\"></ax-icon>\n {{ item.title }}\n</ng-template>\n" }]
|
|
95
118
|
}] });
|
|
96
119
|
|
|
97
120
|
class AXPListViewOptionsColumnsComponent {
|
|
@@ -738,4 +761,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
738
761
|
}], ctorParameters: () => [{ type: i1$1.AXPlatform }] });
|
|
739
762
|
|
|
740
763
|
export { AXPEntityMasterListViewComponent };
|
|
741
|
-
//# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-
|
|
764
|
+
//# sourceMappingURL=acorex-platform-themes-default-entity-master-list-view.component-nvrF63CN.mjs.map
|