@masterteam/lookups 0.0.6 → 0.0.7
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.
|
@@ -297,8 +297,8 @@ let LookupsState = class LookupsState extends CrudStateBase {
|
|
|
297
297
|
errorMessage: 'Failed to delete lookup item',
|
|
298
298
|
});
|
|
299
299
|
}
|
|
300
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
301
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
300
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsState, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
301
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsState });
|
|
302
302
|
};
|
|
303
303
|
__decorate([
|
|
304
304
|
Action(GetLookups)
|
|
@@ -348,7 +348,7 @@ LookupsState = __decorate([
|
|
|
348
348
|
defaults: DEFAULT_STATE,
|
|
349
349
|
})
|
|
350
350
|
], LookupsState);
|
|
351
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
351
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsState, decorators: [{
|
|
352
352
|
type: Injectable
|
|
353
353
|
}], propDecorators: { getAll: [], getOne: [], createLookup: [], updateLookup: [], deleteLookup: [], createItem: [], updateItem: [], deleteItem: [] } });
|
|
354
354
|
|
|
@@ -369,25 +369,25 @@ class LookupsFacade {
|
|
|
369
369
|
// ============================================================================
|
|
370
370
|
// Loading Signals - Computed from slice (minimal reactivity)
|
|
371
371
|
// ============================================================================
|
|
372
|
-
isLoadingLookups = computed(() => this.loadingActive().includes('getLookups'), ...(ngDevMode ? [{ debugName: "isLoadingLookups" }] : []));
|
|
373
|
-
isLoadingLookupById = computed(() => this.loadingActive().includes('getLookupById'), ...(ngDevMode ? [{ debugName: "isLoadingLookupById" }] : []));
|
|
374
|
-
isAddingLookup = computed(() => this.loadingActive().includes('addLookup'), ...(ngDevMode ? [{ debugName: "isAddingLookup" }] : []));
|
|
375
|
-
isUpdatingLookup = computed(() => this.loadingActive().includes('updateLookup'), ...(ngDevMode ? [{ debugName: "isUpdatingLookup" }] : []));
|
|
376
|
-
isDeletingLookup = computed(() => this.loadingActive().includes('deleteLookup'), ...(ngDevMode ? [{ debugName: "isDeletingLookup" }] : []));
|
|
377
|
-
isAddingLookupItem = computed(() => this.loadingActive().includes('addLookupItem'), ...(ngDevMode ? [{ debugName: "isAddingLookupItem" }] : []));
|
|
378
|
-
isUpdatingLookupItem = computed(() => this.loadingActive().includes('updateLookupItem'), ...(ngDevMode ? [{ debugName: "isUpdatingLookupItem" }] : []));
|
|
379
|
-
isDeletingLookupItem = computed(() => this.loadingActive().includes('deleteLookupItem'), ...(ngDevMode ? [{ debugName: "isDeletingLookupItem" }] : []));
|
|
372
|
+
isLoadingLookups = computed(() => this.loadingActive().includes('getLookups'), ...(ngDevMode ? [{ debugName: "isLoadingLookups" }] : /* istanbul ignore next */ []));
|
|
373
|
+
isLoadingLookupById = computed(() => this.loadingActive().includes('getLookupById'), ...(ngDevMode ? [{ debugName: "isLoadingLookupById" }] : /* istanbul ignore next */ []));
|
|
374
|
+
isAddingLookup = computed(() => this.loadingActive().includes('addLookup'), ...(ngDevMode ? [{ debugName: "isAddingLookup" }] : /* istanbul ignore next */ []));
|
|
375
|
+
isUpdatingLookup = computed(() => this.loadingActive().includes('updateLookup'), ...(ngDevMode ? [{ debugName: "isUpdatingLookup" }] : /* istanbul ignore next */ []));
|
|
376
|
+
isDeletingLookup = computed(() => this.loadingActive().includes('deleteLookup'), ...(ngDevMode ? [{ debugName: "isDeletingLookup" }] : /* istanbul ignore next */ []));
|
|
377
|
+
isAddingLookupItem = computed(() => this.loadingActive().includes('addLookupItem'), ...(ngDevMode ? [{ debugName: "isAddingLookupItem" }] : /* istanbul ignore next */ []));
|
|
378
|
+
isUpdatingLookupItem = computed(() => this.loadingActive().includes('updateLookupItem'), ...(ngDevMode ? [{ debugName: "isUpdatingLookupItem" }] : /* istanbul ignore next */ []));
|
|
379
|
+
isDeletingLookupItem = computed(() => this.loadingActive().includes('deleteLookupItem'), ...(ngDevMode ? [{ debugName: "isDeletingLookupItem" }] : /* istanbul ignore next */ []));
|
|
380
380
|
// ============================================================================
|
|
381
381
|
// Error Signals - Computed from slice (minimal reactivity)
|
|
382
382
|
// ============================================================================
|
|
383
|
-
lookupsError = computed(() => this.errors()['getLookups'] ?? null, ...(ngDevMode ? [{ debugName: "lookupsError" }] : []));
|
|
384
|
-
lookupByIdError = computed(() => this.errors()['getLookupById'] ?? null, ...(ngDevMode ? [{ debugName: "lookupByIdError" }] : []));
|
|
385
|
-
addLookupError = computed(() => this.errors()['addLookup'] ?? null, ...(ngDevMode ? [{ debugName: "addLookupError" }] : []));
|
|
386
|
-
updateLookupError = computed(() => this.errors()['updateLookup'] ?? null, ...(ngDevMode ? [{ debugName: "updateLookupError" }] : []));
|
|
387
|
-
deleteLookupError = computed(() => this.errors()['deleteLookup'] ?? null, ...(ngDevMode ? [{ debugName: "deleteLookupError" }] : []));
|
|
388
|
-
addLookupItemError = computed(() => this.errors()['addLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "addLookupItemError" }] : []));
|
|
389
|
-
updateLookupItemError = computed(() => this.errors()['updateLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "updateLookupItemError" }] : []));
|
|
390
|
-
deleteLookupItemError = computed(() => this.errors()['deleteLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "deleteLookupItemError" }] : []));
|
|
383
|
+
lookupsError = computed(() => this.errors()['getLookups'] ?? null, ...(ngDevMode ? [{ debugName: "lookupsError" }] : /* istanbul ignore next */ []));
|
|
384
|
+
lookupByIdError = computed(() => this.errors()['getLookupById'] ?? null, ...(ngDevMode ? [{ debugName: "lookupByIdError" }] : /* istanbul ignore next */ []));
|
|
385
|
+
addLookupError = computed(() => this.errors()['addLookup'] ?? null, ...(ngDevMode ? [{ debugName: "addLookupError" }] : /* istanbul ignore next */ []));
|
|
386
|
+
updateLookupError = computed(() => this.errors()['updateLookup'] ?? null, ...(ngDevMode ? [{ debugName: "updateLookupError" }] : /* istanbul ignore next */ []));
|
|
387
|
+
deleteLookupError = computed(() => this.errors()['deleteLookup'] ?? null, ...(ngDevMode ? [{ debugName: "deleteLookupError" }] : /* istanbul ignore next */ []));
|
|
388
|
+
addLookupItemError = computed(() => this.errors()['addLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "addLookupItemError" }] : /* istanbul ignore next */ []));
|
|
389
|
+
updateLookupItemError = computed(() => this.errors()['updateLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "updateLookupItemError" }] : /* istanbul ignore next */ []));
|
|
390
|
+
deleteLookupItemError = computed(() => this.errors()['deleteLookupItem'] ?? null, ...(ngDevMode ? [{ debugName: "deleteLookupItemError" }] : /* istanbul ignore next */ []));
|
|
391
391
|
// ============================================================================
|
|
392
392
|
// Action Dispatchers
|
|
393
393
|
// ============================================================================
|
|
@@ -415,10 +415,10 @@ class LookupsFacade {
|
|
|
415
415
|
deleteItem(lookupId, itemId) {
|
|
416
416
|
return this.store.dispatch(new DeleteLookupItem(lookupId, itemId));
|
|
417
417
|
}
|
|
418
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
419
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.
|
|
418
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsFacade, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
419
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsFacade, providedIn: 'root' });
|
|
420
420
|
}
|
|
421
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsFacade, decorators: [{
|
|
422
422
|
type: Injectable,
|
|
423
423
|
args: [{
|
|
424
424
|
providedIn: 'root',
|
|
@@ -430,7 +430,7 @@ class Lookups {
|
|
|
430
430
|
router = inject(Router);
|
|
431
431
|
facade = inject(LookupsFacade);
|
|
432
432
|
transloco = inject(TranslocoService);
|
|
433
|
-
isDetailPage = signal(false, ...(ngDevMode ? [{ debugName: "isDetailPage" }] : []));
|
|
433
|
+
isDetailPage = signal(false, ...(ngDevMode ? [{ debugName: "isDetailPage" }] : /* istanbul ignore next */ []));
|
|
434
434
|
breadcrumbItems = [
|
|
435
435
|
{
|
|
436
436
|
label: '',
|
|
@@ -459,10 +459,10 @@ class Lookups {
|
|
|
459
459
|
const firstChild = this.route.snapshot.firstChild;
|
|
460
460
|
this.isDetailPage.set(!!firstChild?.paramMap.get('id'));
|
|
461
461
|
}
|
|
462
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
463
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.
|
|
462
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: Lookups, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
463
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: Lookups, isStandalone: true, selector: "mt-lookups", ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n @if (!isDetailPage()) {\r\n <mt-page\r\n [title]=\"t('lookups.Product_Lookups')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <h3 class=\"font-bold text-xl\">{{ t(\"lookups.All_Lookups\") }}</h3>\r\n <mt-breadcrumb\r\n [items]=\"breadcrumbItems\"\r\n [styleClass]=\"'flex justify-start mx-1'\"\r\n ></mt-breadcrumb>\r\n <router-outlet />\r\n </mt-page>\r\n } @else {\r\n <router-outlet />\r\n }\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Page, selector: "mt-page", inputs: ["backButton", "backButtonIcon", "avatarIcon", "avatarStyle", "avatarShape", "title", "tabs", "activeTab", "contentClass", "contentId"], outputs: ["backButtonClick", "tabChange"] }, { kind: "component", type: Breadcrumb, selector: "mt-breadcrumb", inputs: ["items", "styleClass"], outputs: ["onItemClick"] }, { kind: "directive", type: RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] });
|
|
464
464
|
}
|
|
465
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: Lookups, decorators: [{
|
|
466
466
|
type: Component,
|
|
467
467
|
args: [{ selector: 'mt-lookups', imports: [CommonModule, Page, Breadcrumb, RouterOutlet, TranslocoDirective], template: "<ng-container *transloco=\"let t\">\r\n @if (!isDetailPage()) {\r\n <mt-page\r\n [title]=\"t('lookups.Product_Lookups')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <h3 class=\"font-bold text-xl\">{{ t(\"lookups.All_Lookups\") }}</h3>\r\n <mt-breadcrumb\r\n [items]=\"breadcrumbItems\"\r\n [styleClass]=\"'flex justify-start mx-1'\"\r\n ></mt-breadcrumb>\r\n <router-outlet />\r\n </mt-page>\r\n } @else {\r\n <router-outlet />\r\n }\r\n</ng-container>\r\n" }]
|
|
468
468
|
}] });
|
|
@@ -498,7 +498,7 @@ class LookupForm {
|
|
|
498
498
|
],
|
|
499
499
|
},
|
|
500
500
|
],
|
|
501
|
-
}, ...(ngDevMode ? [{ debugName: "lookupFormConfig" }] : []));
|
|
501
|
+
}, ...(ngDevMode ? [{ debugName: "lookupFormConfig" }] : /* istanbul ignore next */ []));
|
|
502
502
|
lookupFormControl = new FormControl();
|
|
503
503
|
onSubmit() {
|
|
504
504
|
if (this.lookupFormControl.valid && !this.facade.isAddingLookup()) {
|
|
@@ -522,10 +522,10 @@ class LookupForm {
|
|
|
522
522
|
});
|
|
523
523
|
}
|
|
524
524
|
}
|
|
525
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
526
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.
|
|
525
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
526
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LookupForm, isStandalone: true, selector: "mt-lookup-form", ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupFormConfig()\"\r\n [formControl]=\"lookupFormControl\"\r\n />\r\n </form>\r\n </div>\r\n\r\n <div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n label=\"{{ t('lookups.Create') }}\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"facade.isAddingLookup()\"\r\n [disabled]=\"!this.lookupFormControl.valid || facade.isAddingLookup()\"\r\n />\r\n </div>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig", "forcedHiddenFieldKeys", "preserveForcedHiddenValues", "visibleSectionKeys"], outputs: ["runtimeMessagesChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] });
|
|
527
527
|
}
|
|
528
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
528
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupForm, decorators: [{
|
|
529
529
|
type: Component,
|
|
530
530
|
args: [{ selector: 'mt-lookup-form', imports: [
|
|
531
531
|
CommonModule,
|
|
@@ -550,7 +550,7 @@ class LookupsList {
|
|
|
550
550
|
{ label: this.transloco.translate('lookups.all'), value: 'all' },
|
|
551
551
|
{ label: this.transloco.translate('lookups.system'), value: 'system' },
|
|
552
552
|
{ label: this.transloco.translate('lookups.custom'), value: 'custom' },
|
|
553
|
-
], ...(ngDevMode ? [{ debugName: "tabs" }] : []));
|
|
553
|
+
], ...(ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []));
|
|
554
554
|
allLookups = this.facade.lookups;
|
|
555
555
|
loading = this.facade.isLoadingLookups;
|
|
556
556
|
lookups = computed(() => {
|
|
@@ -565,8 +565,8 @@ class LookupsList {
|
|
|
565
565
|
default:
|
|
566
566
|
return all;
|
|
567
567
|
}
|
|
568
|
-
}, ...(ngDevMode ? [{ debugName: "lookups" }] : []));
|
|
569
|
-
activeTab = signal('all', ...(ngDevMode ? [{ debugName: "activeTab" }] : []));
|
|
568
|
+
}, ...(ngDevMode ? [{ debugName: "lookups" }] : /* istanbul ignore next */ []));
|
|
569
|
+
activeTab = signal('all', ...(ngDevMode ? [{ debugName: "activeTab" }] : /* istanbul ignore next */ []));
|
|
570
570
|
tableColumns = linkedSignal(() => [
|
|
571
571
|
{
|
|
572
572
|
key: 'name.display',
|
|
@@ -594,7 +594,7 @@ class LookupsList {
|
|
|
594
594
|
type: 'custom',
|
|
595
595
|
customCellTpl: this.itemsCol(),
|
|
596
596
|
},
|
|
597
|
-
], ...(ngDevMode ? [{ debugName: "tableColumns" }] : []));
|
|
597
|
+
], ...(ngDevMode ? [{ debugName: "tableColumns" }] : /* istanbul ignore next */ []));
|
|
598
598
|
tableActions = signal([
|
|
599
599
|
{
|
|
600
600
|
icon: 'general.plus',
|
|
@@ -604,8 +604,8 @@ class LookupsList {
|
|
|
604
604
|
this.addLookupsDialog();
|
|
605
605
|
},
|
|
606
606
|
},
|
|
607
|
-
], ...(ngDevMode ? [{ debugName: "tableActions" }] : []));
|
|
608
|
-
deletingRowIds = signal([], ...(ngDevMode ? [{ debugName: "deletingRowIds" }] : []));
|
|
607
|
+
], ...(ngDevMode ? [{ debugName: "tableActions" }] : /* istanbul ignore next */ []));
|
|
608
|
+
deletingRowIds = signal([], ...(ngDevMode ? [{ debugName: "deletingRowIds" }] : /* istanbul ignore next */ []));
|
|
609
609
|
rowActions = signal([
|
|
610
610
|
{
|
|
611
611
|
icon: 'custom.pencil',
|
|
@@ -638,7 +638,7 @@ class LookupsList {
|
|
|
638
638
|
},
|
|
639
639
|
loading: (row) => this.deletingRowIds().includes(row.id),
|
|
640
640
|
},
|
|
641
|
-
], ...(ngDevMode ? [{ debugName: "rowActions" }] : []));
|
|
641
|
+
], ...(ngDevMode ? [{ debugName: "rowActions" }] : /* istanbul ignore next */ []));
|
|
642
642
|
ngOnInit() {
|
|
643
643
|
this.facade.loadAll();
|
|
644
644
|
}
|
|
@@ -657,12 +657,12 @@ class LookupsList {
|
|
|
657
657
|
editLookup(lookup) {
|
|
658
658
|
this.router.navigate([lookup.id], { relativeTo: this.route.parent });
|
|
659
659
|
}
|
|
660
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
661
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.
|
|
660
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsList, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
661
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.8", type: LookupsList, isStandalone: true, selector: "mt-lookups-list", providers: [DialogService], viewQueries: [{ propertyName: "typeCol", first: true, predicate: ["typeCol"], descendants: true, isSignal: true }, { propertyName: "itemsCol", first: true, predicate: ["itemsCol"], descendants: true, isSignal: true }, { propertyName: "userCol", first: true, predicate: ["userCol"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <div class=\"mt-5\">\r\n <ng-template #typeCol let-row>\r\n <div>\r\n {{ row.allowDelete ? t(\"lookups.custom\") : t(\"lookups.system\") }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #itemsCol let-row>\r\n <div>{{ row?.items?.length + \" \" + t(\"lookups.items\") }}</div>\r\n </ng-template>\r\n <ng-template #userCol let-row>\r\n <div class=\"flex items-center gap-2\">\r\n <mt-avatar [icon]=\"'custom.user-pp'\"> </mt-avatar>\r\n {{ row?.createdBy?.displayName || \"-\" }}\r\n </div>\r\n </ng-template>\r\n <mt-table\r\n [tabs]=\"tabs()\"\r\n [(activeTab)]=\"activeTab\"\r\n [data]=\"lookups()\"\r\n [columns]=\"tableColumns()\"\r\n [actions]=\"tableActions()\"\r\n [rowActions]=\"rowActions()\"\r\n [generalSearch]=\"true\"\r\n [showFilters]=\"true\"\r\n [loading]=\"loading()\"\r\n storageKey=\"lookups-list-table\"\r\n >\r\n </mt-table>\r\n </div>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: Table, selector: "mt-table", inputs: ["filters", "data", "columns", "rowActions", "size", "showGridlines", "stripedRows", "selectableRows", "clickableRows", "generalSearch", "lazyLocalSearch", "showFilters", "loading", "updating", "lazy", "lazyLocalSort", "lazyTotalRecords", "reorderableColumns", "reorderableRows", "dataKey", "storageKey", "storageMode", "exportable", "exportFilename", "actionShape", "tabs", "tabsOptionLabel", "tabsOptionValue", "activeTab", "actions", "paginatorPosition", "rowsPerPageOptions", "pageSize", "currentPage", "first", "filterTerm"], outputs: ["selectionChange", "cellChange", "lazyLoad", "columnReorder", "rowReorder", "rowClick", "filtersChange", "activeTabChange", "onTabChange", "pageSizeChange", "currentPageChange", "firstChange", "filterTermChange"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }] });
|
|
662
662
|
}
|
|
663
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
663
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsList, decorators: [{
|
|
664
664
|
type: Component,
|
|
665
|
-
args: [{ selector: 'mt-lookups-list', imports: [CommonModule, SkeletonModule, Table, TranslocoDirective, Avatar], providers: [DialogService], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"mt-5\">\r\n <ng-template #typeCol let-row>\r\n <div>\r\n {{ row.allowDelete ? t(\"lookups.custom\") : t(\"lookups.system\") }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #itemsCol let-row>\r\n <div>{{ row?.items?.length + \" \" + t(\"lookups.items\") }}</div>\r\n </ng-template>\r\n <ng-template #userCol let-row>\r\n <div class=\"flex items-center gap-2\">\r\n <mt-avatar [icon]=\"'custom.user-pp'\"> </mt-avatar>\r\n {{ row?.createdBy?.displayName || \"-\" }}\r\n </div>\r\n </ng-template>\r\n <mt-table\r\n [tabs]=\"tabs()\"\r\n [(activeTab)]=\"activeTab\"\r\n [data]=\"lookups()\"\r\n [columns]=\"tableColumns()\"\r\n [actions]=\"tableActions()\"\r\n [rowActions]=\"rowActions()\"\r\n [generalSearch]=\"true\"\r\n [showFilters]=\"true\"\r\n [loading]=\"loading()\"\r\n >\r\n </mt-table>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
665
|
+
args: [{ selector: 'mt-lookups-list', imports: [CommonModule, SkeletonModule, Table, TranslocoDirective, Avatar], providers: [DialogService], template: "<ng-container *transloco=\"let t\">\r\n <div class=\"mt-5\">\r\n <ng-template #typeCol let-row>\r\n <div>\r\n {{ row.allowDelete ? t(\"lookups.custom\") : t(\"lookups.system\") }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #itemsCol let-row>\r\n <div>{{ row?.items?.length + \" \" + t(\"lookups.items\") }}</div>\r\n </ng-template>\r\n <ng-template #userCol let-row>\r\n <div class=\"flex items-center gap-2\">\r\n <mt-avatar [icon]=\"'custom.user-pp'\"> </mt-avatar>\r\n {{ row?.createdBy?.displayName || \"-\" }}\r\n </div>\r\n </ng-template>\r\n <mt-table\r\n [tabs]=\"tabs()\"\r\n [(activeTab)]=\"activeTab\"\r\n [data]=\"lookups()\"\r\n [columns]=\"tableColumns()\"\r\n [actions]=\"tableActions()\"\r\n [rowActions]=\"rowActions()\"\r\n [generalSearch]=\"true\"\r\n [showFilters]=\"true\"\r\n [loading]=\"loading()\"\r\n storageKey=\"lookups-list-table\"\r\n >\r\n </mt-table>\r\n </div>\r\n</ng-container>\r\n" }]
|
|
666
666
|
}], propDecorators: { typeCol: [{ type: i0.ViewChild, args: ['typeCol', { isSignal: true }] }], itemsCol: [{ type: i0.ViewChild, args: ['itemsCol', { isSignal: true }] }], userCol: [{ type: i0.ViewChild, args: ['userCol', { isSignal: true }] }] } });
|
|
667
667
|
|
|
668
668
|
var LookupsActionKey;
|
|
@@ -682,12 +682,12 @@ class LookupItemForm {
|
|
|
682
682
|
ref = inject(ModalRef);
|
|
683
683
|
facade = inject(LookupsFacade);
|
|
684
684
|
transloco = inject(TranslocoService);
|
|
685
|
-
itemData = input(null, ...(ngDevMode ? [{ debugName: "itemData" }] : []));
|
|
686
|
-
lookupId = input(0, ...(ngDevMode ? [{ debugName: "lookupId" }] : []));
|
|
687
|
-
editMode = computed(() => !!this.itemData(), ...(ngDevMode ? [{ debugName: "editMode" }] : []));
|
|
685
|
+
itemData = input(null, ...(ngDevMode ? [{ debugName: "itemData" }] : /* istanbul ignore next */ []));
|
|
686
|
+
lookupId = input(0, ...(ngDevMode ? [{ debugName: "lookupId" }] : /* istanbul ignore next */ []));
|
|
687
|
+
editMode = computed(() => !!this.itemData(), ...(ngDevMode ? [{ debugName: "editMode" }] : /* istanbul ignore next */ []));
|
|
688
688
|
buttonLabel = computed(() => this.editMode()
|
|
689
689
|
? this.transloco.translate('lookups.Update')
|
|
690
|
-
: this.transloco.translate('lookups.Create'), ...(ngDevMode ? [{ debugName: "buttonLabel" }] : []));
|
|
690
|
+
: this.transloco.translate('lookups.Create'), ...(ngDevMode ? [{ debugName: "buttonLabel" }] : /* istanbul ignore next */ []));
|
|
691
691
|
lookupItemFormConfig = signal({
|
|
692
692
|
sections: [
|
|
693
693
|
{
|
|
@@ -720,7 +720,7 @@ class LookupItemForm {
|
|
|
720
720
|
],
|
|
721
721
|
},
|
|
722
722
|
],
|
|
723
|
-
}, ...(ngDevMode ? [{ debugName: "lookupItemFormConfig" }] : []));
|
|
723
|
+
}, ...(ngDevMode ? [{ debugName: "lookupItemFormConfig" }] : /* istanbul ignore next */ []));
|
|
724
724
|
lookupItemFormControl = new FormControl({
|
|
725
725
|
color: '#000000',
|
|
726
726
|
});
|
|
@@ -781,10 +781,10 @@ class LookupItemForm {
|
|
|
781
781
|
}
|
|
782
782
|
}
|
|
783
783
|
}
|
|
784
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
785
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.
|
|
784
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupItemForm, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
785
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.8", type: LookupItemForm, isStandalone: true, selector: "mt-lookup-item-form", inputs: { itemData: { classPropertyName: "itemData", publicName: "itemData", isSignal: true, isRequired: false, transformFunction: null }, lookupId: { classPropertyName: "lookupId", publicName: "lookupId", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupItemFormConfig()\"\r\n [formControl]=\"lookupItemFormControl\"\r\n />\r\n </form>\r\n</div>\r\n\r\n<div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n [label]=\"buttonLabel()\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"\r\n editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem()\r\n \"\r\n [disabled]=\"\r\n !lookupItemFormControl.valid ||\r\n (editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem())\r\n \"\r\n />\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: DynamicForm, selector: "mt-dynamic-form", inputs: ["formConfig", "forcedHiddenFieldKeys", "preserveForcedHiddenValues", "visibleSectionKeys"], outputs: ["runtimeMessagesChange"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
|
|
786
786
|
}
|
|
787
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
787
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupItemForm, decorators: [{
|
|
788
788
|
type: Component,
|
|
789
789
|
args: [{ selector: 'mt-lookup-item-form', imports: [CommonModule, Button, DynamicForm, ReactiveFormsModule], template: "<div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupItemFormConfig()\"\r\n [formControl]=\"lookupItemFormControl\"\r\n />\r\n </form>\r\n</div>\r\n\r\n<div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n [label]=\"buttonLabel()\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"\r\n editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem()\r\n \"\r\n [disabled]=\"\r\n !lookupItemFormControl.valid ||\r\n (editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem())\r\n \"\r\n />\r\n</div>\r\n" }]
|
|
790
790
|
}], propDecorators: { itemData: [{ type: i0.Input, args: [{ isSignal: true, alias: "itemData", required: false }] }], lookupId: [{ type: i0.Input, args: [{ isSignal: true, alias: "lookupId", required: false }] }] } });
|
|
@@ -801,15 +801,15 @@ class LookupDetails {
|
|
|
801
801
|
fb = inject(FormBuilder);
|
|
802
802
|
modal = inject(ModalService);
|
|
803
803
|
transloco = inject(TranslocoService);
|
|
804
|
-
isEditMode = signal(false, ...(ngDevMode ? [{ debugName: "isEditMode" }] : []));
|
|
804
|
+
isEditMode = signal(false, ...(ngDevMode ? [{ debugName: "isEditMode" }] : /* istanbul ignore next */ []));
|
|
805
805
|
id = computed(() => {
|
|
806
806
|
const idParam = this.route.snapshot.paramMap.get('id');
|
|
807
807
|
return idParam ? idParam : '';
|
|
808
|
-
}, ...(ngDevMode ? [{ debugName: "id" }] : []));
|
|
809
|
-
lookupItems = computed(() => this.facade.selectedLookup()?.items || [], ...(ngDevMode ? [{ debugName: "lookupItems" }] : []));
|
|
810
|
-
allowManage = computed(() => this.facade.selectedLookup()?.allowManage, ...(ngDevMode ? [{ debugName: "allowManage" }] : []));
|
|
811
|
-
allowDelete = computed(() => this.facade.selectedLookup()?.allowDelete, ...(ngDevMode ? [{ debugName: "allowDelete" }] : []));
|
|
812
|
-
deletingRowIds = signal([], ...(ngDevMode ? [{ debugName: "deletingRowIds" }] : []));
|
|
808
|
+
}, ...(ngDevMode ? [{ debugName: "id" }] : /* istanbul ignore next */ []));
|
|
809
|
+
lookupItems = computed(() => this.facade.selectedLookup()?.items || [], ...(ngDevMode ? [{ debugName: "lookupItems" }] : /* istanbul ignore next */ []));
|
|
810
|
+
allowManage = computed(() => this.facade.selectedLookup()?.allowManage, ...(ngDevMode ? [{ debugName: "allowManage" }] : /* istanbul ignore next */ []));
|
|
811
|
+
allowDelete = computed(() => this.facade.selectedLookup()?.allowDelete, ...(ngDevMode ? [{ debugName: "allowDelete" }] : /* istanbul ignore next */ []));
|
|
812
|
+
deletingRowIds = signal([], ...(ngDevMode ? [{ debugName: "deletingRowIds" }] : /* istanbul ignore next */ []));
|
|
813
813
|
rowActions = computed(() => {
|
|
814
814
|
const actions = [];
|
|
815
815
|
if (this.allowManage()) {
|
|
@@ -847,7 +847,7 @@ class LookupDetails {
|
|
|
847
847
|
});
|
|
848
848
|
}
|
|
849
849
|
return actions;
|
|
850
|
-
}, ...(ngDevMode ? [{ debugName: "rowActions" }] : []));
|
|
850
|
+
}, ...(ngDevMode ? [{ debugName: "rowActions" }] : /* istanbul ignore next */ []));
|
|
851
851
|
lookupForm = this.fb.group({
|
|
852
852
|
nameAr: [''],
|
|
853
853
|
nameEn: [''],
|
|
@@ -867,7 +867,7 @@ class LookupDetails {
|
|
|
867
867
|
type: 'custom',
|
|
868
868
|
customCellTpl: this.statusCol(),
|
|
869
869
|
},
|
|
870
|
-
], ...(ngDevMode ? [{ debugName: "tableColumns" }] : []));
|
|
870
|
+
], ...(ngDevMode ? [{ debugName: "tableColumns" }] : /* istanbul ignore next */ []));
|
|
871
871
|
ngOnInit() {
|
|
872
872
|
this.loadLookupData();
|
|
873
873
|
}
|
|
@@ -933,10 +933,10 @@ class LookupDetails {
|
|
|
933
933
|
});
|
|
934
934
|
}
|
|
935
935
|
}
|
|
936
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
937
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.3", type: LookupDetails, isStandalone: true, selector: "mt-lookups-details", viewQueries: [{ propertyName: "statusCol", first: true, predicate: ["statusCol"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TextField, selector: "mt-text-field", inputs: ["field", "hint", "label", "placeholder", "class", "type", "readonly", "pInputs", "required", "icon", "iconPosition"] }, { kind: "component", type: Table, selector: "mt-table", inputs: ["filters", "data", "columns", "rowActions", "size", "showGridlines", "stripedRows", "selectableRows", "clickableRows", "generalSearch", "lazyLocalSearch", "showFilters", "loading", "updating", "lazy", "lazyLocalSort", "lazyTotalRecords", "reorderableColumns", "reorderableRows", "dataKey", "exportable", "exportFilename", "actionShape", "tabs", "tabsOptionLabel", "tabsOptionValue", "activeTab", "actions", "paginatorPosition", "pageSize", "currentPage", "first", "filterTerm"], outputs: ["selectionChange", "cellChange", "lazyLoad", "columnReorder", "rowReorder", "rowClick", "filtersChange", "activeTabChange", "onTabChange", "pageSizeChange", "currentPageChange", "firstChange", "filterTermChange"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: Page, selector: "mt-page", inputs: ["backButton", "backButtonIcon", "avatarIcon", "avatarStyle", "avatarShape", "title", "tabs", "activeTab", "contentClass", "contentId"], outputs: ["backButtonClick", "tabChange"] }] });
|
|
936
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupDetails, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
937
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.8", type: LookupDetails, isStandalone: true, selector: "mt-lookups-details", viewQueries: [{ propertyName: "statusCol", first: true, predicate: ["statusCol"], descendants: true, isSignal: true }], ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n storageKey=\"lookup-details-items-table\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "component", type: Button, selector: "mt-button", inputs: ["icon", "label", "tooltip", "class", "type", "styleClass", "severity", "badge", "variant", "badgeSeverity", "size", "iconPos", "autofocus", "fluid", "raised", "rounded", "text", "plain", "outlined", "link", "disabled", "loading", "pInputs"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "component", type: Card, selector: "mt-card", inputs: ["class", "title", "paddingless"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: TextField, selector: "mt-text-field", inputs: ["field", "hint", "label", "placeholder", "class", "type", "readonly", "pInputs", "required", "icon", "iconPosition"] }, { kind: "component", type: Table, selector: "mt-table", inputs: ["filters", "data", "columns", "rowActions", "size", "showGridlines", "stripedRows", "selectableRows", "clickableRows", "generalSearch", "lazyLocalSearch", "showFilters", "loading", "updating", "lazy", "lazyLocalSort", "lazyTotalRecords", "reorderableColumns", "reorderableRows", "dataKey", "storageKey", "storageMode", "exportable", "exportFilename", "actionShape", "tabs", "tabsOptionLabel", "tabsOptionValue", "activeTab", "actions", "paginatorPosition", "rowsPerPageOptions", "pageSize", "currentPage", "first", "filterTerm"], outputs: ["selectionChange", "cellChange", "lazyLoad", "columnReorder", "rowReorder", "rowClick", "filtersChange", "activeTabChange", "onTabChange", "pageSizeChange", "currentPageChange", "firstChange", "filterTermChange"] }, { kind: "component", type: Avatar, selector: "mt-avatar", inputs: ["label", "icon", "image", "styleClass", "size", "shape", "badge", "badgeSize", "badgeSeverity"], outputs: ["onImageError"] }, { kind: "ngmodule", type: SkeletonModule }, { kind: "component", type: i2.Skeleton, selector: "p-skeleton", inputs: ["styleClass", "shape", "animation", "borderRadius", "size", "width", "height"] }, { kind: "directive", type: TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: Page, selector: "mt-page", inputs: ["backButton", "backButtonIcon", "avatarIcon", "avatarStyle", "avatarShape", "title", "tabs", "activeTab", "contentClass", "contentId"], outputs: ["backButtonClick", "tabChange"] }] });
|
|
938
938
|
}
|
|
939
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
939
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupDetails, decorators: [{
|
|
940
940
|
type: Component,
|
|
941
941
|
args: [{ selector: 'mt-lookups-details', imports: [
|
|
942
942
|
Button,
|
|
@@ -949,14 +949,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.3", ngImpor
|
|
|
949
949
|
SkeletonModule,
|
|
950
950
|
TranslocoDirective,
|
|
951
951
|
Page,
|
|
952
|
-
], template: "<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n" }]
|
|
952
|
+
], template: "<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n storageKey=\"lookup-details-items-table\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n" }]
|
|
953
953
|
}], propDecorators: { statusCol: [{ type: i0.ViewChild, args: ['statusCol', { isSignal: true }] }] } });
|
|
954
954
|
|
|
955
955
|
class LookupsCustom {
|
|
956
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.
|
|
957
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.
|
|
956
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsCustom, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
957
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.8", type: LookupsCustom, isStandalone: true, selector: "mt-lookups-custom", ngImport: i0, template: "<p>lookups-custom works!</p>\r\n", styles: [""] });
|
|
958
958
|
}
|
|
959
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.
|
|
959
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.8", ngImport: i0, type: LookupsCustom, decorators: [{
|
|
960
960
|
type: Component,
|
|
961
961
|
args: [{ selector: 'mt-lookups-custom', imports: [], template: "<p>lookups-custom works!</p>\r\n" }]
|
|
962
962
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"masterteam-lookups.mjs","sources":["../../../../packages/masterteam/lookups/src/store/lookups/lookups.actions.ts","../../../../packages/masterteam/lookups/src/store/lookups/lookups.state.ts","../../../../packages/masterteam/lookups/src/store/lookups/lookups.facade.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-form/lookup-form.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-form/lookup-form.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-list/lookups-list.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-list/lookups-list.html","../../../../packages/masterteam/lookups/src/store/lookups/lookups.model.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-item-form/lookup-item-form.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-item-form/lookup-item-form.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-details.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-details.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-custom/lookups-custom.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-custom/lookups-custom.html","../../../../packages/masterteam/lookups/src/store/index.ts","../../../../packages/masterteam/lookups/src/masterteam-lookups.ts"],"sourcesContent":["import type {\r\n LookupsQueryParams,\r\n CreateLookupDto,\r\n UpdateLookupDto,\r\n CreateLookupItemDto,\r\n UpdateLookupItemDto,\r\n} from './lookups.model';\r\n\r\nexport class GetLookups {\r\n static readonly type = '[Lookups] Get All';\r\n\r\n constructor(public readonly params?: Partial<LookupsQueryParams>) {}\r\n}\r\n\r\nexport class GetLookup {\r\n static readonly type = '[Lookups] Get One';\r\n\r\n constructor(\r\n public readonly id: string | number,\r\n public readonly mode: 'edit' | 'view' = 'edit',\r\n ) {}\r\n}\r\n\r\nexport class CreateLookup {\r\n static readonly type = '[Lookups] Create';\r\n\r\n constructor(public readonly payload: CreateLookupDto) {}\r\n}\r\n\r\nexport class UpdateLookup {\r\n static readonly type = '[Lookups] Update';\r\n\r\n constructor(public readonly payload: UpdateLookupDto) {}\r\n}\r\n\r\nexport class DeleteLookup {\r\n static readonly type = '[Lookups] Delete';\r\n\r\n constructor(public readonly id: string | number) {}\r\n}\r\n\r\nexport class CreateLookupItem {\r\n static readonly type = '[Lookups] Create Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly payload: CreateLookupItemDto,\r\n ) {}\r\n}\r\n\r\nexport class UpdateLookupItem {\r\n static readonly type = '[Lookups] Update Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly lookupItemId: string | number,\r\n public readonly payload: UpdateLookupItemDto,\r\n ) {}\r\n}\r\n\r\nexport class DeleteLookupItem {\r\n static readonly type = '[Lookups] Delete Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly itemId: string | number,\r\n ) {}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\r\nimport { CrudStateBase, handleApiRequest } from '@masterteam/components';\r\nimport type {\r\n LookupsActionKey,\r\n LookupsStateModel,\r\n Lookup,\r\n LookupItem,\r\n Response,\r\n} from './lookups.model';\r\nimport {\r\n GetLookups,\r\n GetLookup,\r\n CreateLookup,\r\n UpdateLookup,\r\n DeleteLookup,\r\n CreateLookupItem,\r\n UpdateLookupItem,\r\n DeleteLookupItem,\r\n} from './lookups.actions';\r\n\r\nconst DEFAULT_STATE: LookupsStateModel = {\r\n lookups: [],\r\n selectedLookup: null,\r\n loadingActive: [],\r\n errors: {},\r\n};\r\n\r\n@State<LookupsStateModel>({\r\n name: 'lookups',\r\n defaults: DEFAULT_STATE,\r\n})\r\n@Injectable()\r\nexport class LookupsState extends CrudStateBase<\r\n Lookup,\r\n LookupsStateModel,\r\n LookupsActionKey\r\n> {\r\n private readonly http = inject(HttpClient);\r\n private readonly baseUrl = 'Lookups';\r\n\r\n // Data selectors\r\n @Selector()\r\n static getLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups;\r\n }\r\n\r\n @Selector()\r\n static getSelectedLookup(state: LookupsStateModel): Lookup | null {\r\n return state.selectedLookup;\r\n }\r\n\r\n @Selector()\r\n static getPredefinedLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups.filter((lookup) => !lookup.allowManage);\r\n }\r\n\r\n @Selector()\r\n static getCustomLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups.filter((lookup) => lookup.allowManage);\r\n }\r\n\r\n // Loading/Error slice selectors\r\n @Selector()\r\n static getLoadingActive(state: LookupsStateModel): string[] {\r\n return state.loadingActive;\r\n }\r\n\r\n @Selector()\r\n static getErrors(state: LookupsStateModel): Record<string, string | null> {\r\n return state.errors;\r\n }\r\n\r\n @Action(GetLookups)\r\n getAll(ctx: StateContext<LookupsStateModel>, action: GetLookups) {\r\n const params = Object.entries(action.params ?? {}).reduce<\r\n Record<string, string | string[]>\r\n >((acc, [key, value]) => {\r\n if (value === undefined || value === null) {\r\n return acc;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n acc[key] = value.map((item) => String(item));\r\n return acc;\r\n }\r\n\r\n acc[key] = String(value);\r\n return acc;\r\n }, {});\r\n\r\n const req$ = this.http.get<Response<Lookup[]>>(this.baseUrl, { params });\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'getLookups' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response) => ({\r\n lookups: Array.isArray(response?.data) ? response.data : [],\r\n }),\r\n errorMessage: 'Failed to load lookups',\r\n });\r\n }\r\n\r\n @Action(GetLookup)\r\n getOne(ctx: StateContext<LookupsStateModel>, action: GetLookup) {\r\n const params = { mode: action.mode ?? 'edit' };\r\n const req$ = this.http.get<Response<Lookup>>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.id))}`,\r\n { params },\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'getLookupById' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response) => ({\r\n selectedLookup: response?.data ?? null,\r\n }),\r\n errorMessage: 'Failed to load lookup',\r\n });\r\n }\r\n\r\n @Action(CreateLookup)\r\n createLookup(ctx: StateContext<LookupsStateModel>, action: CreateLookup) {\r\n const req$ = this.http.post<Response<Lookup>>(this.baseUrl, action.payload);\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'addLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n return {\r\n lookups: this.adapter.addOne(state.lookups, response.data),\r\n selectedLookup: response.data,\r\n };\r\n },\r\n errorMessage: 'Failed to create lookup',\r\n });\r\n }\r\n\r\n @Action(UpdateLookup)\r\n updateLookup(ctx: StateContext<LookupsStateModel>, action: UpdateLookup) {\r\n const req$ = this.http.put<Response<Lookup>>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.payload.id))}`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'updateLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const updated = response.data;\r\n return {\r\n lookups: this.adapter.upsertOne(state.lookups, updated, 'id'),\r\n selectedLookup:\r\n state.selectedLookup?.id === updated.id\r\n ? { ...state.selectedLookup, ...updated }\r\n : state.selectedLookup,\r\n };\r\n },\r\n errorMessage: 'Failed to update lookup',\r\n });\r\n }\r\n\r\n @Action(DeleteLookup)\r\n deleteLookup(ctx: StateContext<LookupsStateModel>, action: DeleteLookup) {\r\n const req$ = this.http.delete<void>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.id))}`,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'deleteLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (_, state) => {\r\n const lookups = this.adapter.removeOne(state.lookups, action.id, 'id');\r\n const nextSelected =\r\n state.selectedLookup && state.selectedLookup.id === Number(action.id)\r\n ? null\r\n : state.selectedLookup;\r\n\r\n return {\r\n lookups,\r\n selectedLookup: nextSelected,\r\n };\r\n },\r\n errorMessage: 'Failed to delete lookup',\r\n });\r\n }\r\n\r\n @Action(CreateLookupItem)\r\n createItem(ctx: StateContext<LookupsStateModel>, action: CreateLookupItem) {\r\n const req$ = this.http.post<Response<LookupItem>>(\r\n `${this.baseUrl}/LookupItem`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'addLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const newItem = response.data;\r\n const { selectedLookup } = state;\r\n\r\n if (selectedLookup?.id !== Number(action.lookupId)) {\r\n return {};\r\n }\r\n\r\n return {\r\n selectedLookup: {\r\n ...selectedLookup,\r\n items: [...selectedLookup.items, newItem],\r\n },\r\n };\r\n },\r\n errorMessage: 'Failed to add lookup item',\r\n });\r\n }\r\n\r\n @Action(UpdateLookupItem)\r\n updateItem(ctx: StateContext<LookupsStateModel>, action: UpdateLookupItem) {\r\n const req$ = this.http.put<Response<LookupItem>>(\r\n `${this.baseUrl}/LookupItem/${encodeURIComponent(String(action.lookupItemId))}`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'updateLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const updatedItem = response.data;\r\n const { selectedLookup } = state;\r\n\r\n if (selectedLookup?.id !== Number(action.lookupId)) {\r\n return {};\r\n }\r\n\r\n return {\r\n selectedLookup: {\r\n ...selectedLookup,\r\n items: selectedLookup.items.map((item) =>\r\n item.id === Number(action.lookupItemId) ? updatedItem : item,\r\n ),\r\n },\r\n };\r\n },\r\n errorMessage: 'Failed to update lookup item',\r\n });\r\n }\r\n\r\n @Action(DeleteLookupItem)\r\n deleteItem(ctx: StateContext<LookupsStateModel>, action: DeleteLookupItem) {\r\n const req$ = this.http.delete<Response<boolean>>(\r\n `${this.baseUrl}/LookupItem/${encodeURIComponent(String(action.itemId))}`,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'deleteLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (response?.data !== true) return {};\r\n\r\n const { lookups, selectedLookup } = state;\r\n\r\n const updatedLookups = lookups.map((lookup) => {\r\n if (lookup.id === Number(action.lookupId)) {\r\n return {\r\n ...lookup,\r\n items: lookup.items.filter(\r\n (item) => item.id !== Number(action.itemId),\r\n ),\r\n };\r\n }\r\n return lookup;\r\n });\r\n\r\n const updatedSelectedLookup =\r\n selectedLookup?.id === Number(action.lookupId)\r\n ? {\r\n ...selectedLookup,\r\n items: selectedLookup.items.filter(\r\n (item) => item.id !== Number(action.itemId),\r\n ),\r\n }\r\n : selectedLookup;\r\n\r\n return {\r\n lookups: updatedLookups,\r\n selectedLookup: updatedSelectedLookup,\r\n };\r\n },\r\n errorMessage: 'Failed to delete lookup item',\r\n });\r\n }\r\n}\r\n","import { Injectable, computed, inject } from '@angular/core';\r\nimport { select, Store } from '@ngxs/store';\r\nimport type { Observable } from 'rxjs';\r\n\r\nimport {\r\n GetLookups,\r\n GetLookup,\r\n CreateLookup,\r\n UpdateLookup,\r\n DeleteLookup,\r\n CreateLookupItem,\r\n UpdateLookupItem,\r\n DeleteLookupItem,\r\n} from './lookups.actions';\r\nimport { LookupsState } from './lookups.state';\r\nimport type {\r\n LookupsActionKey,\r\n LookupsQueryParams,\r\n CreateLookupDto,\r\n UpdateLookupDto,\r\n CreateLookupItemDto,\r\n UpdateLookupItemDto,\r\n} from './lookups.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LookupsFacade {\r\n private readonly store = inject(Store);\r\n\r\n // ============================================================================\r\n // Data Selectors - Memoized by NGXS (fine-grained reactivity)\r\n // ============================================================================\r\n readonly lookups = select(LookupsState.getLookups);\r\n readonly selectedLookup = select(LookupsState.getSelectedLookup);\r\n readonly predefinedLookups = select(LookupsState.getPredefinedLookups);\r\n readonly customLookups = select(LookupsState.getCustomLookups);\r\n\r\n // ============================================================================\r\n // Loading/Error Slices - Memoized by NGXS\r\n // ============================================================================\r\n private readonly loadingActive = select(LookupsState.getLoadingActive);\r\n private readonly errors = select(LookupsState.getErrors);\r\n\r\n // ============================================================================\r\n // Loading Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly isLoadingLookups = computed(() =>\r\n this.loadingActive().includes('getLookups' as LookupsActionKey),\r\n );\r\n readonly isLoadingLookupById = computed(() =>\r\n this.loadingActive().includes('getLookupById' as LookupsActionKey),\r\n );\r\n readonly isAddingLookup = computed(() =>\r\n this.loadingActive().includes('addLookup' as LookupsActionKey),\r\n );\r\n readonly isUpdatingLookup = computed(() =>\r\n this.loadingActive().includes('updateLookup' as LookupsActionKey),\r\n );\r\n readonly isDeletingLookup = computed(() =>\r\n this.loadingActive().includes('deleteLookup' as LookupsActionKey),\r\n );\r\n readonly isAddingLookupItem = computed(() =>\r\n this.loadingActive().includes('addLookupItem' as LookupsActionKey),\r\n );\r\n readonly isUpdatingLookupItem = computed(() =>\r\n this.loadingActive().includes('updateLookupItem' as LookupsActionKey),\r\n );\r\n readonly isDeletingLookupItem = computed(() =>\r\n this.loadingActive().includes('deleteLookupItem' as LookupsActionKey),\r\n );\r\n\r\n // ============================================================================\r\n // Error Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly lookupsError = computed(\r\n () => this.errors()['getLookups' as LookupsActionKey] ?? null,\r\n );\r\n readonly lookupByIdError = computed(\r\n () => this.errors()['getLookupById' as LookupsActionKey] ?? null,\r\n );\r\n readonly addLookupError = computed(\r\n () => this.errors()['addLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly updateLookupError = computed(\r\n () => this.errors()['updateLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly deleteLookupError = computed(\r\n () => this.errors()['deleteLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly addLookupItemError = computed(\r\n () => this.errors()['addLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n readonly updateLookupItemError = computed(\r\n () => this.errors()['updateLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n readonly deleteLookupItemError = computed(\r\n () => this.errors()['deleteLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n\r\n // ============================================================================\r\n // Action Dispatchers\r\n // ============================================================================\r\n\r\n loadAll(params?: Partial<LookupsQueryParams>): Observable<unknown> {\r\n return this.store.dispatch(new GetLookups(params));\r\n }\r\n\r\n loadOne(\r\n id: string | number,\r\n mode: 'edit' | 'view' = 'edit',\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new GetLookup(id, mode));\r\n }\r\n\r\n create(payload: CreateLookupDto): Observable<unknown> {\r\n return this.store.dispatch(new CreateLookup(payload));\r\n }\r\n\r\n update(payload: UpdateLookupDto): Observable<unknown> {\r\n return this.store.dispatch(new UpdateLookup(payload));\r\n }\r\n\r\n delete(id: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteLookup(id));\r\n }\r\n\r\n createItem(\r\n lookupId: string | number,\r\n payload: CreateLookupItemDto,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new CreateLookupItem(lookupId, payload));\r\n }\r\n\r\n updateItem(\r\n lookupId: string | number,\r\n lookupItemId: string | number,\r\n payload: UpdateLookupItemDto,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(\r\n new UpdateLookupItem(lookupId, lookupItemId, payload),\r\n );\r\n }\r\n\r\n deleteItem(\r\n lookupId: string | number,\r\n itemId: string | number,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new DeleteLookupItem(lookupId, itemId));\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n Router,\r\n RouterOutlet,\r\n} from '@angular/router';\r\nimport { Breadcrumb } from '@masterteam/components/breadcrumb';\r\nimport { LookupsFacade } from '../../store/lookups/lookups.facade';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { Page } from '@masterteam/components/page';\r\nimport { filter } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'mt-lookups',\r\n imports: [CommonModule, Page, Breadcrumb, RouterOutlet, TranslocoDirective],\r\n templateUrl: './lookups.html',\r\n styleUrls: ['./lookups.scss'],\r\n})\r\nexport default class Lookups implements OnInit {\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly router = inject(Router);\r\n private readonly facade = inject(LookupsFacade);\r\n transloco = inject(TranslocoService);\r\n\r\n isDetailPage = signal(false);\r\n\r\n breadcrumbItems: { label?: string; routerLink?: string; icon?: string }[] = [\r\n {\r\n label: '',\r\n icon: 'general.home-line',\r\n routerLink: '/control-panel/product-settings/custom',\r\n },\r\n {\r\n label: this.transloco.translate('lookups.Product_Settings'),\r\n routerLink: '/control-panel/product-settings',\r\n },\r\n { label: this.transloco.translate('lookups.Lookups') },\r\n ];\r\n\r\n ngOnInit() {\r\n this.facade.loadAll();\r\n this.checkRoute();\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n this.checkRoute();\r\n });\r\n }\r\n\r\n goBack() {\r\n this.router.navigate(['control-panel/product-settings']);\r\n }\r\n\r\n private checkRoute() {\r\n const firstChild = this.route.snapshot.firstChild;\r\n this.isDetailPage.set(!!firstChild?.paramMap.get('id'));\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n @if (!isDetailPage()) {\r\n <mt-page\r\n [title]=\"t('lookups.Product_Lookups')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <h3 class=\"font-bold text-xl\">{{ t(\"lookups.All_Lookups\") }}</h3>\r\n <mt-breadcrumb\r\n [items]=\"breadcrumbItems\"\r\n [styleClass]=\"'flex justify-start mx-1'\"\r\n ></mt-breadcrumb>\r\n <router-outlet />\r\n </mt-page>\r\n } @else {\r\n <router-outlet />\r\n }\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormConfig, ValidatorConfig } from '@masterteam/components';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { ModalRef } from '@masterteam/components/dialog';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { LookupsFacade } from '../../../store/lookups/lookups.facade';\r\nimport { CreateLookupDto } from '../../../store/lookups/lookups.model';\r\nimport { Router } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\n\r\n@Component({\r\n selector: 'mt-lookup-form',\r\n imports: [\r\n CommonModule,\r\n Button,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n TranslocoDirective,\r\n ],\r\n templateUrl: './lookup-form.html',\r\n styleUrl: './lookup-form.scss',\r\n})\r\nexport class LookupForm {\r\n modal: ModalService = inject(ModalService);\r\n ref: ModalRef = inject(ModalRef);\r\n readonly facade = inject(LookupsFacade);\r\n private readonly router = inject(Router);\r\n transloco = inject(TranslocoService);\r\n\r\n private readonly selectedLookup = this.facade.selectedLookup;\r\n\r\n lookupFormConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'lookupFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n {\r\n key: 'nameEn',\r\n label: this.transloco.translate('lookups.EnglishName'),\r\n placeholder: this.transloco.translate('lookups.EnglishName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 2,\r\n },\r\n {\r\n key: 'nameAr',\r\n label: this.transloco.translate('lookups.ArabicName'),\r\n placeholder: this.transloco.translate('lookups.ArabicName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 3,\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n lookupFormControl = new FormControl();\r\n\r\n onSubmit(): void {\r\n if (this.lookupFormControl.valid && !this.facade.isAddingLookup()) {\r\n const body: CreateLookupDto = {\r\n name: {\r\n en: this.lookupFormControl.value.nameEn,\r\n ar: this.lookupFormControl.value.nameAr,\r\n },\r\n };\r\n\r\n this.facade.create(body).subscribe({\r\n next: () => {\r\n this.ref.close(this.lookupFormControl.value);\r\n if (this.selectedLookup()?.id) {\r\n this.router.navigate([\r\n '/control-panel/product-settings/lookups',\r\n this.selectedLookup()?.id,\r\n ]);\r\n }\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupFormConfig()\"\r\n [formControl]=\"lookupFormControl\"\r\n />\r\n </form>\r\n </div>\r\n\r\n <div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n label=\"{{ t('lookups.Create') }}\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"facade.isAddingLookup()\"\r\n [disabled]=\"!this.lookupFormControl.valid || facade.isAddingLookup()\"\r\n />\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n computed,\r\n inject,\r\n linkedSignal,\r\n OnInit,\r\n signal,\r\n TemplateRef,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DialogService } from '@masterteam/components/dialog';\r\nimport { ColumnDef, Table, TableAction } from '@masterteam/components/table';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { LookupsFacade } from '../../../store/lookups/lookups.facade';\r\nimport { LookupForm } from '../lookup-form/lookup-form';\r\nimport { Lookup } from '../../../store/lookups/lookups.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\nimport { finalize } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'mt-lookups-list',\r\n imports: [CommonModule, SkeletonModule, Table, TranslocoDirective, Avatar],\r\n templateUrl: './lookups-list.html',\r\n styleUrl: './lookups-list.scss',\r\n providers: [DialogService],\r\n})\r\nexport default class LookupsList implements OnInit {\r\n typeCol = viewChild.required<TemplateRef<any>>('typeCol');\r\n itemsCol = viewChild.required<TemplateRef<any>>('itemsCol');\r\n userCol = viewChild.required<TemplateRef<any>>('userCol');\r\n\r\n private readonly facade = inject(LookupsFacade);\r\n modal: ModalService = inject(ModalService);\r\n private router = inject(Router);\r\n private route = inject(ActivatedRoute);\r\n transloco = inject(TranslocoService);\r\n\r\n // Tabs for filtering lookups\r\n tabs = signal([\r\n { label: this.transloco.translate('lookups.all'), value: 'all' },\r\n { label: this.transloco.translate('lookups.system'), value: 'system' },\r\n { label: this.transloco.translate('lookups.custom'), value: 'custom' },\r\n ]);\r\n\r\n private allLookups = this.facade.lookups;\r\n loading = this.facade.isLoadingLookups;\r\n\r\n lookups = computed(() => {\r\n const tab = this.activeTab();\r\n const all = this.allLookups();\r\n\r\n switch (tab) {\r\n case 'system':\r\n return all.filter((lookup) => !lookup.allowDelete);\r\n case 'custom':\r\n return all.filter((lookup) => lookup.allowDelete);\r\n case 'all':\r\n default:\r\n return all;\r\n }\r\n });\r\n\r\n activeTab = signal<string>('all');\r\n tableColumns = linkedSignal<ColumnDef[]>(() => [\r\n {\r\n key: 'name.display',\r\n label: this.transloco.translate('lookups.title'),\r\n filterConfig: {\r\n type: 'text',\r\n label: this.transloco.translate('lookups.title'),\r\n },\r\n },\r\n {\r\n key: 'allowDelete',\r\n label: this.transloco.translate('lookups.type'),\r\n type: 'custom',\r\n customCellTpl: this.typeCol(),\r\n },\r\n {\r\n key: 'createdBy',\r\n label: this.transloco.translate('lookups.createdBy'),\r\n type: 'custom',\r\n customCellTpl: this.userCol(),\r\n },\r\n {\r\n key: 'items',\r\n label: this.transloco.translate('lookups.items'),\r\n type: 'custom',\r\n customCellTpl: this.itemsCol(),\r\n },\r\n ]);\r\n tableActions = signal<TableAction[]>([\r\n {\r\n icon: 'general.plus',\r\n label: this.transloco.translate('lookups.Create_New_Lookup'),\r\n color: 'primary',\r\n action: () => {\r\n this.addLookupsDialog();\r\n },\r\n },\r\n ]);\r\n\r\n deletingRowIds = signal<any[]>([]);\r\n rowActions = signal<TableAction[]>([\r\n {\r\n icon: 'custom.pencil',\r\n tooltip: this.transloco.translate('lookups.Edit'),\r\n color: 'primary',\r\n action: (row: Lookup) => {\r\n this.editLookup(row);\r\n },\r\n },\r\n {\r\n icon: 'general.trash-01',\r\n tooltip: this.transloco.translate('lookups.Delete'),\r\n color: 'danger',\r\n variant: 'outlined',\r\n action: (row: Lookup) => {\r\n this.deletingRowIds.update((ids) => [...ids, row.id]);\r\n this.facade\r\n .delete(row.id)\r\n .pipe(\r\n finalize(() => {\r\n this.deletingRowIds.update((ids) =>\r\n ids.filter((id) => id !== row.id),\r\n );\r\n }),\r\n )\r\n .subscribe({\r\n error: () => {},\r\n });\r\n },\r\n hidden: (row: Lookup) => !row.allowDelete,\r\n confirmation: {\r\n type: 'popup',\r\n confirmationType: 'delete',\r\n },\r\n loading: (row: Lookup) => this.deletingRowIds().includes(row.id),\r\n },\r\n ]);\r\n\r\n ngOnInit(): void {\r\n this.facade.loadAll();\r\n }\r\n\r\n addLookupsDialog(lookup: Lookup | null = null): void {\r\n this.modal.openModal(LookupForm, 'dialog', {\r\n header: this.transloco.translate('lookups.Create_New_Lookup'),\r\n styleClass: '!w-[30vw]',\r\n height: 'auto',\r\n appendTo: 'body',\r\n dismissableMask: true,\r\n inputValues: {\r\n lookup: lookup,\r\n },\r\n });\r\n }\r\n\r\n editLookup(lookup: Lookup): void {\r\n this.router.navigate([lookup.id], { relativeTo: this.route.parent });\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <div class=\"mt-5\">\r\n <ng-template #typeCol let-row>\r\n <div>\r\n {{ row.allowDelete ? t(\"lookups.custom\") : t(\"lookups.system\") }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #itemsCol let-row>\r\n <div>{{ row?.items?.length + \" \" + t(\"lookups.items\") }}</div>\r\n </ng-template>\r\n <ng-template #userCol let-row>\r\n <div class=\"flex items-center gap-2\">\r\n <mt-avatar [icon]=\"'custom.user-pp'\"> </mt-avatar>\r\n {{ row?.createdBy?.displayName || \"-\" }}\r\n </div>\r\n </ng-template>\r\n <mt-table\r\n [tabs]=\"tabs()\"\r\n [(activeTab)]=\"activeTab\"\r\n [data]=\"lookups()\"\r\n [columns]=\"tableColumns()\"\r\n [actions]=\"tableActions()\"\r\n [rowActions]=\"rowActions()\"\r\n [generalSearch]=\"true\"\r\n [showFilters]=\"true\"\r\n [loading]=\"loading()\"\r\n >\r\n </mt-table>\r\n </div>\r\n</ng-container>\r\n","import { LoadingStateShape } from '../utils/state-helpers';\r\n\r\nexport interface Response<T> {\r\n endpoint: string;\r\n status: number;\r\n code: number;\r\n locale: string;\r\n message: string;\r\n data: T;\r\n cacheSession: string;\r\n}\r\n\r\nexport enum LookupsActionKey {\r\n GetLookups = 'getLookups',\r\n GetLookupById = 'getLookupById',\r\n AddLookup = 'addLookup',\r\n UpdateLookup = 'updateLookup',\r\n DeleteLookup = 'deleteLookup',\r\n AddLookupItem = 'addLookupItem',\r\n UpdateLookupItem = 'updateLookupItem',\r\n DeleteLookupItem = 'deleteLookupItem',\r\n}\r\n\r\nexport interface LookupItem {\r\n id: number;\r\n key: string;\r\n name: LocalizedString;\r\n color: string;\r\n order: number;\r\n allowDelete: boolean;\r\n}\r\n\r\nexport interface Lookup {\r\n id: number;\r\n key: string;\r\n name: LocalizedString | string | any;\r\n allowDelete: boolean;\r\n allowManage: boolean;\r\n allowEdit: boolean;\r\n items: LookupItem[];\r\n}\r\n\r\nexport interface LookupsQueryParams {\r\n key?: string;\r\n search?: string;\r\n pageNumber?: number;\r\n pageSize?: number;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface LookupsStateModel extends LoadingStateShape<LookupsActionKey> {\r\n lookups: Lookup[];\r\n selectedLookup: Lookup | null;\r\n}\r\n\r\nexport interface LocalizedString {\r\n ar: string;\r\n en: string;\r\n [key: string]: string;\r\n}\r\n\r\nexport interface CreateLookupDto {\r\n name: LocalizedString;\r\n key?: string;\r\n allowDelete?: boolean;\r\n allowManage?: boolean;\r\n allowEdit?: boolean;\r\n}\r\n\r\nexport interface UpdateLookupDto extends Partial<CreateLookupDto> {\r\n id: number;\r\n}\r\n\r\nexport interface CreateLookupItemDto {\r\n lookupId: number | string;\r\n key?: string;\r\n name: LocalizedString;\r\n color?: string;\r\n order?: number;\r\n}\r\n\r\nexport interface UpdateLookupItemDto extends Partial<CreateLookupItemDto> {\r\n id?: number;\r\n color?: string;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n inject,\r\n signal,\r\n OnInit,\r\n input,\r\n computed,\r\n} from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { ModalRef } from '@masterteam/components/dialog';\r\nimport {\r\n CreateLookupItemDto,\r\n LookupItem,\r\n LookupsFacade,\r\n UpdateLookupItemDto,\r\n} from '../../../../store/lookups';\r\nimport {\r\n ColorPickerFieldConfig,\r\n DynamicFormConfig,\r\n ValidatorConfig,\r\n} from '@masterteam/components';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\n\r\n@Component({\r\n selector: 'mt-lookup-item-form',\r\n imports: [CommonModule, Button, DynamicForm, ReactiveFormsModule],\r\n templateUrl: './lookup-item-form.html',\r\n styleUrl: './lookup-item-form.scss',\r\n})\r\nexport class LookupItemForm implements OnInit {\r\n readonly modal = inject(ModalService);\r\n ref: ModalRef = inject(ModalRef);\r\n\r\n readonly facade = inject(LookupsFacade);\r\n transloco = inject(TranslocoService);\r\n\r\n itemData = input<LookupItem | null>(null);\r\n lookupId = input<number>(0);\r\n\r\n editMode = computed(() => !!this.itemData());\r\n buttonLabel = computed(() =>\r\n this.editMode()\r\n ? this.transloco.translate('lookups.Update')\r\n : this.transloco.translate('lookups.Create'),\r\n );\r\n lookupItemFormConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'lookupItemFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n {\r\n key: 'nameEn',\r\n label: this.transloco.translate('lookups.EnglishName'),\r\n placeholder: this.transloco.translate('lookups.EnglishName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 2,\r\n },\r\n {\r\n key: 'nameAr',\r\n label: this.transloco.translate('lookups.ArabicName'),\r\n placeholder: this.transloco.translate('lookups.ArabicName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 3,\r\n },\r\n new ColorPickerFieldConfig({\r\n key: 'color',\r\n label: this.transloco.translate('lookups.Color'),\r\n placeholder: this.transloco.translate('lookups.Color'),\r\n required: true,\r\n validators: [ValidatorConfig.required()],\r\n order: 4,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n lookupItemFormControl: any = new FormControl({\r\n color: '#000000',\r\n });\r\n\r\n ngOnInit(): void {\r\n if (this.editMode() && this.itemData()) {\r\n const item = this.itemData()!;\r\n this.lookupItemFormControl.setValue({\r\n nameEn: item.name.en,\r\n nameAr: item.name.ar,\r\n color: item?.color || '#000000',\r\n });\r\n this.lookupItemFormControl.markAsTouched();\r\n this.lookupItemFormControl.updateValueAndValidity();\r\n }\r\n }\r\n\r\n getLookupItemById(id: number) {\r\n this.facade.loadOne(id).subscribe(() => {});\r\n }\r\n\r\n onSubmit(): void {\r\n const isSubmitting = this.editMode()\r\n ? this.facade.isUpdatingLookupItem()\r\n : this.facade.isAddingLookupItem();\r\n\r\n if (this.lookupItemFormControl.valid && !isSubmitting) {\r\n const formValue = this.lookupItemFormControl.value;\r\n\r\n if (this.editMode() && this.itemData()) {\r\n const lookupItemId = this.itemData()!.id;\r\n const updatePayload: UpdateLookupItemDto = {\r\n name: {\r\n en: formValue.nameEn,\r\n ar: formValue.nameAr,\r\n },\r\n color: formValue.color,\r\n };\r\n\r\n this.facade\r\n .updateItem(this.lookupId(), lookupItemId, updatePayload)\r\n .subscribe({\r\n next: (response: any) => {\r\n this.ref.close({ success: true, data: response });\r\n },\r\n error: () => {},\r\n });\r\n } else {\r\n const createPayload: CreateLookupItemDto = {\r\n lookupId: this.lookupId(),\r\n name: {\r\n en: formValue.nameEn,\r\n ar: formValue.nameAr,\r\n },\r\n color: formValue.color,\r\n };\r\n\r\n this.facade.createItem(this.lookupId(), createPayload).subscribe({\r\n next: (response: any) => {\r\n this.ref.close({ success: true, data: response });\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupItemFormConfig()\"\r\n [formControl]=\"lookupItemFormControl\"\r\n />\r\n </form>\r\n</div>\r\n\r\n<div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n [label]=\"buttonLabel()\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"\r\n editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem()\r\n \"\r\n [disabled]=\"\r\n !lookupItemFormControl.valid ||\r\n (editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem())\r\n \"\r\n />\r\n</div>\r\n","import {\r\n Component,\r\n computed,\r\n inject,\r\n linkedSignal,\r\n signal,\r\n TemplateRef,\r\n viewChild,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { LookupItem, LookupsFacade } from '../../../store/lookups';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { Page } from '@masterteam/components/page';\r\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextField } from '@masterteam/components/text-field';\r\nimport { ColumnDef, Table, TableAction } from '@masterteam/components/table';\r\nimport { LookupItemForm } from './lookup-item-form/lookup-item-form';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\nimport { finalize } from 'rxjs';\r\n@Component({\r\n selector: 'mt-lookups-details',\r\n imports: [\r\n Button,\r\n Card,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n TextField,\r\n Table,\r\n Avatar,\r\n SkeletonModule,\r\n TranslocoDirective,\r\n Page,\r\n ],\r\n templateUrl: './lookup-details.html',\r\n styleUrls: ['./lookup-details.scss'],\r\n})\r\nexport default class LookupDetails implements OnInit {\r\n statusCol = viewChild.required<TemplateRef<any>>('statusCol');\r\n\r\n private readonly router = inject(Router);\r\n protected readonly facade = inject(LookupsFacade);\r\n private readonly route = inject(ActivatedRoute);\r\n\r\n readonly avatarStyle = {\r\n '--p-avatar-background': '#E0F2FE',\r\n '--p-avatar-color': '#0086C9',\r\n };\r\n private readonly fb = inject(FormBuilder);\r\n modal: ModalService = inject(ModalService);\r\n transloco = inject(TranslocoService);\r\n\r\n isEditMode = signal<boolean>(false);\r\n\r\n readonly id = computed(() => {\r\n const idParam = this.route.snapshot.paramMap.get('id');\r\n return idParam ? idParam : '';\r\n });\r\n lookupItems = computed(() => this.facade.selectedLookup()?.items || []);\r\n allowManage = computed(() => this.facade.selectedLookup()?.allowManage);\r\n allowDelete = computed(() => this.facade.selectedLookup()?.allowDelete);\r\n deletingRowIds = signal<any[]>([]);\r\n rowActions = computed<TableAction[]>(() => {\r\n const actions: TableAction[] = [];\r\n\r\n if (this.allowManage()) {\r\n actions.push({\r\n icon: 'custom.pencil',\r\n tooltip: this.transloco.translate('lookups.Edit'),\r\n color: 'primary',\r\n action: (row: LookupItem) => {\r\n this.addEditItemDialog(row);\r\n },\r\n });\r\n }\r\n\r\n if (this.allowDelete()) {\r\n actions.push({\r\n icon: 'general.trash-01',\r\n tooltip: this.transloco.translate('lookups.Delete'),\r\n color: 'danger',\r\n variant: 'outlined',\r\n action: (row: LookupItem) => {\r\n this.deletingRowIds.update((ids) => [...ids, row.id]);\r\n this.facade\r\n .deleteItem(this.id(), row.id)\r\n .pipe(\r\n finalize(() => {\r\n this.deletingRowIds.update((ids) =>\r\n ids.filter((id) => id !== row.id),\r\n );\r\n }),\r\n )\r\n .subscribe({\r\n error: () => {},\r\n });\r\n },\r\n confirmation: {\r\n type: 'popup',\r\n confirmationType: 'delete',\r\n },\r\n loading: (row: LookupItem) => this.deletingRowIds().includes(row.id),\r\n });\r\n }\r\n\r\n return actions;\r\n });\r\n\r\n lookupForm = this.fb.group({\r\n nameAr: [''],\r\n nameEn: [''],\r\n });\r\n\r\n tableColumns = linkedSignal<ColumnDef[]>(() => [\r\n {\r\n key: 'name.en',\r\n label: this.transloco.translate('lookups.EnglishTitle'),\r\n },\r\n {\r\n key: 'name.ar',\r\n label: this.transloco.translate('lookups.ArabicTitle'),\r\n },\r\n {\r\n key: 'color',\r\n label: this.transloco.translate('lookups.StatusColor'),\r\n type: 'custom',\r\n customCellTpl: this.statusCol(),\r\n },\r\n ]);\r\n\r\n ngOnInit(): void {\r\n this.loadLookupData();\r\n }\r\n\r\n loadLookupData(): void {\r\n this.facade.loadOne(this.id(), 'edit').subscribe({\r\n next: () => {\r\n const selected = this.facade.selectedLookup();\r\n if (selected) {\r\n this.lookupForm.patchValue({\r\n nameAr: selected.name?.ar || '',\r\n nameEn: selected.name?.en || '',\r\n });\r\n }\r\n },\r\n error: () => {},\r\n });\r\n }\r\n\r\n goBack(): void {\r\n this.router.navigate(['..'], { relativeTo: this.route });\r\n }\r\n\r\n addEditItemDialog(lookupItem: LookupItem | null = null): void {\r\n this.modal.openModal(LookupItemForm, 'dialog', {\r\n header: lookupItem\r\n ? this.transloco.translate('lookups.Edit_Item')\r\n : this.transloco.translate('lookups.Create_New_Item'),\r\n styleClass: '!w-[40vw] ',\r\n height: 'auto',\r\n appendTo: 'body',\r\n dismissableMask: true,\r\n inputValues: {\r\n lookupId: this.id(),\r\n itemData: lookupItem,\r\n },\r\n });\r\n }\r\n\r\n enableEdit(): void {\r\n this.isEditMode.set(true);\r\n }\r\n\r\n cancelEdit(): void {\r\n this.isEditMode.set(false);\r\n const selected = this.facade.selectedLookup();\r\n\r\n if (selected) {\r\n this.lookupForm.patchValue({\r\n nameAr: selected.name?.ar || '',\r\n nameEn: selected.name?.en || '',\r\n });\r\n }\r\n }\r\n\r\n saveLookup(): void {\r\n if (this.lookupForm.valid && !this.facade.isUpdatingLookup()) {\r\n const updatePayload = {\r\n id: Number(this.id()),\r\n name: {\r\n ar: this.lookupForm.value.nameAr || '',\r\n en: this.lookupForm.value.nameEn || '',\r\n },\r\n };\r\n\r\n this.facade.update(updatePayload).subscribe({\r\n next: () => {\r\n this.isEditMode.set(false);\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mt-lookups-custom',\r\n imports: [],\r\n templateUrl: './lookups-custom.html',\r\n styleUrl: './lookups-custom.scss',\r\n})\r\nexport default class LookupsCustom {}\r\n","<p>lookups-custom works!</p>\r\n","// store/index.ts\r\nexport * from './lookups';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;MAQa,UAAU,CAAA;AAGO,IAAA,MAAA;AAF5B,IAAA,OAAgB,IAAI,GAAG,mBAAmB;AAE1C,IAAA,WAAA,CAA4B,MAAoC,EAAA;QAApC,IAAA,CAAA,MAAM,GAAN,MAAM;IAAiC;;MAGxD,SAAS,CAAA;AAIF,IAAA,EAAA;AACA,IAAA,IAAA;AAJlB,IAAA,OAAgB,IAAI,GAAG,mBAAmB;IAE1C,WAAA,CACkB,EAAmB,EACnB,IAAA,GAAwB,MAAM,EAAA;QAD9B,IAAA,CAAA,EAAE,GAAF,EAAE;QACF,IAAA,CAAA,IAAI,GAAJ,IAAI;IACnB;;MAGQ,YAAY,CAAA;AAGK,IAAA,OAAA;AAF5B,IAAA,OAAgB,IAAI,GAAG,kBAAkB;AAEzC,IAAA,WAAA,CAA4B,OAAwB,EAAA;QAAxB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAoB;;MAG5C,YAAY,CAAA;AAGK,IAAA,OAAA;AAF5B,IAAA,OAAgB,IAAI,GAAG,kBAAkB;AAEzC,IAAA,WAAA,CAA4B,OAAwB,EAAA;QAAxB,IAAA,CAAA,OAAO,GAAP,OAAO;IAAoB;;MAG5C,YAAY,CAAA;AAGK,IAAA,EAAA;AAF5B,IAAA,OAAgB,IAAI,GAAG,kBAAkB;AAEzC,IAAA,WAAA,CAA4B,EAAmB,EAAA;QAAnB,IAAA,CAAA,EAAE,GAAF,EAAE;IAAoB;;MAGvC,gBAAgB,CAAA;AAIT,IAAA,QAAA;AACA,IAAA,OAAA;AAJlB,IAAA,OAAgB,IAAI,GAAG,uBAAuB;IAE9C,WAAA,CACkB,QAAyB,EACzB,OAA4B,EAAA;QAD5B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,OAAO,GAAP,OAAO;IACtB;;MAGQ,gBAAgB,CAAA;AAIT,IAAA,QAAA;AACA,IAAA,YAAA;AACA,IAAA,OAAA;AALlB,IAAA,OAAgB,IAAI,GAAG,uBAAuB;AAE9C,IAAA,WAAA,CACkB,QAAyB,EACzB,YAA6B,EAC7B,OAA4B,EAAA;QAF5B,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,YAAY,GAAZ,YAAY;QACZ,IAAA,CAAA,OAAO,GAAP,OAAO;IACtB;;MAGQ,gBAAgB,CAAA;AAIT,IAAA,QAAA;AACA,IAAA,MAAA;AAJlB,IAAA,OAAgB,IAAI,GAAG,uBAAuB;IAE9C,WAAA,CACkB,QAAyB,EACzB,MAAuB,EAAA;QADvB,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,MAAM,GAAN,MAAM;IACrB;;;;;;;;;AC5CL,MAAM,aAAa,GAAsB;AACvC,IAAA,OAAO,EAAE,EAAE;AACX,IAAA,cAAc,EAAE,IAAI;AACpB,IAAA,aAAa,EAAE,EAAE;AACjB,IAAA,MAAM,EAAE,EAAE;CACX;AAOM,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,aAIjC,CAAA;AACkB,IAAA,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC;IACzB,OAAO,GAAG,SAAS;;AAI7B,IAAP,OAAO,UAAU,CAAC,KAAwB,EAAA;QACxC,OAAO,KAAK,CAAC,OAAO;IACtB;AAGO,IAAP,OAAO,iBAAiB,CAAC,KAAwB,EAAA;QAC/C,OAAO,KAAK,CAAC,cAAc;IAC7B;AAGO,IAAP,OAAO,oBAAoB,CAAC,KAAwB,EAAA;AAClD,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;IAC9D;AAGO,IAAP,OAAO,gBAAgB,CAAC,KAAwB,EAAA;AAC9C,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;IAC7D;;AAIO,IAAP,OAAO,gBAAgB,CAAC,KAAwB,EAAA;QAC9C,OAAO,KAAK,CAAC,aAAa;IAC5B;AAGO,IAAP,OAAO,SAAS,CAAC,KAAwB,EAAA;QACvC,OAAO,KAAK,CAAC,MAAM;IACrB;IAGA,MAAM,CAAC,GAAoC,EAAE,MAAkB,EAAA;QAC7D,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,MAAM,CAEvD,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,KAAI;YACtB,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;AACzC,gBAAA,OAAO,GAAG;YACZ;AAEA,YAAA,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACxB,gBAAA,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC;AAC5C,gBAAA,OAAO,GAAG;YACZ;YAEA,GAAG,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AACxB,YAAA,OAAO,GAAG;QACZ,CAAC,EAAE,EAAE,CAAC;AAEN,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAqB,IAAI,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC;AAExE,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,YAAgC;AACrC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,MAAM;AACxB,gBAAA,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,GAAG,EAAE;aAC5D,CAAC;AACF,YAAA,YAAY,EAAE,wBAAwB;AACvC,SAAA,CAAC;IACJ;IAGA,MAAM,CAAC,GAAoC,EAAE,MAAiB,EAAA;QAC5D,MAAM,MAAM,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,IAAI,MAAM,EAAE;AAC9C,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,CAAA,EAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,EAC1D,EAAE,MAAM,EAAE,CACX;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,eAAmC;AACxC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,MAAM;AACxB,gBAAA,cAAc,EAAE,QAAQ,EAAE,IAAI,IAAI,IAAI;aACvC,CAAC;AACF,YAAA,YAAY,EAAE,uBAAuB;AACtC,SAAA,CAAC;IACJ;IAGA,YAAY,CAAC,GAAoC,EAAE,MAAoB,EAAA;AACrE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAmB,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC;AAE3E,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,WAA+B;AACpC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAI;gBAC7B,IAAI,CAAC,QAAQ,EAAE,IAAI;AAAE,oBAAA,OAAO,EAAE;gBAE9B,OAAO;AACL,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,IAAI,CAAC;oBAC1D,cAAc,EAAE,QAAQ,CAAC,IAAI;iBAC9B;YACH,CAAC;AACD,YAAA,YAAY,EAAE,yBAAyB;AACxC,SAAA,CAAC;IACJ;IAGA,YAAY,CAAC,GAAoC,EAAE,MAAoB,EAAA;AACrE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,EAClE,MAAM,CAAC,OAAO,CACf;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,cAAkC;AACvC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAI;gBAC7B,IAAI,CAAC,QAAQ,EAAE,IAAI;AAAE,oBAAA,OAAO,EAAE;AAE9B,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;gBAC7B,OAAO;AACL,oBAAA,OAAO,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC;oBAC7D,cAAc,EACZ,KAAK,CAAC,cAAc,EAAE,EAAE,KAAK,OAAO,CAAC;0BACjC,EAAE,GAAG,KAAK,CAAC,cAAc,EAAE,GAAG,OAAO;0BACrC,KAAK,CAAC,cAAc;iBAC3B;YACH,CAAC;AACD,YAAA,YAAY,EAAE,yBAAyB;AACxC,SAAA,CAAC;IACJ;IAGA,YAAY,CAAC,GAAoC,EAAE,MAAoB,EAAA;QACrE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAC3B,CAAA,EAAG,IAAI,CAAC,OAAO,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAA,CAAE,CAC3D;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,cAAkC;AACvC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,CAAC,EAAE,KAAK,KAAI;AACtB,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC;AACtE,gBAAA,MAAM,YAAY,GAChB,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,EAAE;AAClE,sBAAE;AACF,sBAAE,KAAK,CAAC,cAAc;gBAE1B,OAAO;oBACL,OAAO;AACP,oBAAA,cAAc,EAAE,YAAY;iBAC7B;YACH,CAAC;AACD,YAAA,YAAY,EAAE,yBAAyB;AACxC,SAAA,CAAC;IACJ;IAGA,UAAU,CAAC,GAAoC,EAAE,MAAwB,EAAA;AACvE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CACzB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,WAAA,CAAa,EAC5B,MAAM,CAAC,OAAO,CACf;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,eAAmC;AACxC,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAI;gBAC7B,IAAI,CAAC,QAAQ,EAAE,IAAI;AAAE,oBAAA,OAAO,EAAE;AAE9B,gBAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI;AAC7B,gBAAA,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK;gBAEhC,IAAI,cAAc,EAAE,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClD,oBAAA,OAAO,EAAE;gBACX;gBAEA,OAAO;AACL,oBAAA,cAAc,EAAE;AACd,wBAAA,GAAG,cAAc;wBACjB,KAAK,EAAE,CAAC,GAAG,cAAc,CAAC,KAAK,EAAE,OAAO,CAAC;AAC1C,qBAAA;iBACF;YACH,CAAC;AACD,YAAA,YAAY,EAAE,2BAA2B;AAC1C,SAAA,CAAC;IACJ;IAGA,UAAU,CAAC,GAAoC,EAAE,MAAwB,EAAA;AACvE,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CACxB,CAAA,EAAG,IAAI,CAAC,OAAO,CAAA,YAAA,EAAe,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAA,CAAE,EAC/E,MAAM,CAAC,OAAO,CACf;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,kBAAsC;AAC3C,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAI;gBAC7B,IAAI,CAAC,QAAQ,EAAE,IAAI;AAAE,oBAAA,OAAO,EAAE;AAE9B,gBAAA,MAAM,WAAW,GAAG,QAAQ,CAAC,IAAI;AACjC,gBAAA,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK;gBAEhC,IAAI,cAAc,EAAE,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;AAClD,oBAAA,OAAO,EAAE;gBACX;gBAEA,OAAO;AACL,oBAAA,cAAc,EAAE;AACd,wBAAA,GAAG,cAAc;AACjB,wBAAA,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KACnC,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,WAAW,GAAG,IAAI,CAC7D;AACF,qBAAA;iBACF;YACH,CAAC;AACD,YAAA,YAAY,EAAE,8BAA8B;AAC7C,SAAA,CAAC;IACJ;IAGA,UAAU,CAAC,GAAoC,EAAE,MAAwB,EAAA;QACvE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,CAC3B,CAAA,EAAG,IAAI,CAAC,OAAO,eAAe,kBAAkB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAA,CAAE,CAC1E;AAED,QAAA,OAAO,gBAAgB,CAAC;YACtB,GAAG;AACH,YAAA,GAAG,EAAE,kBAAsC;AAC3C,YAAA,QAAQ,EAAE,IAAI;AACd,YAAA,SAAS,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAI;AAC7B,gBAAA,IAAI,QAAQ,EAAE,IAAI,KAAK,IAAI;AAAE,oBAAA,OAAO,EAAE;AAEtC,gBAAA,MAAM,EAAE,OAAO,EAAE,cAAc,EAAE,GAAG,KAAK;gBAEzC,MAAM,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;oBAC5C,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE;wBACzC,OAAO;AACL,4BAAA,GAAG,MAAM;4BACT,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CACxB,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAC5C;yBACF;oBACH;AACA,oBAAA,OAAO,MAAM;AACf,gBAAA,CAAC,CAAC;gBAEF,MAAM,qBAAqB,GACzB,cAAc,EAAE,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,QAAQ;AAC3C,sBAAE;AACE,wBAAA,GAAG,cAAc;wBACjB,KAAK,EAAE,cAAc,CAAC,KAAK,CAAC,MAAM,CAChC,CAAC,IAAI,KAAK,IAAI,CAAC,EAAE,KAAK,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAC5C;AACF;sBACD,cAAc;gBAEpB,OAAO;AACL,oBAAA,OAAO,EAAE,cAAc;AACvB,oBAAA,cAAc,EAAE,qBAAqB;iBACtC;YACH,CAAC;AACD,YAAA,YAAY,EAAE,8BAA8B;AAC7C,SAAA,CAAC;IACJ;uGAjRW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAAZ,YAAY,EAAA,CAAA;;AAyCvB,UAAA,CAAA;IADC,MAAM,CAAC,UAAU;AA6BjB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,SAAS;AAiBhB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,QAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,YAAY;AAkBnB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,YAAY;AAyBnB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,YAAY;AAwBnB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,cAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,gBAAgB;AA8BvB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,gBAAgB;AAgCvB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGD,UAAA,CAAA;IADC,MAAM,CAAC,gBAAgB;AA4CvB,CAAA,EAAA,YAAA,CAAA,SAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAvQM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,IAAA,CAAA;AAGM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,mBAAA,EAAA,IAAA,CAAA;AAGM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,IAAA,CAAA;AAGM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAIM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,IAAA,CAAA;AAGM,UAAA,CAAA;AADN,IAAA,QAAQ;AAGR,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,IAAA,CAAA;AAtCU,YAAY,GAAA,UAAA,CAAA;AALxB,IAAA,KAAK,CAAoB;AACxB,QAAA,IAAI,EAAE,SAAS;AACf,QAAA,QAAQ,EAAE,aAAa;KACxB;AAEY,CAAA,EAAA,YAAY,CAkRxB;2FAlRY,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;MCNY,aAAa,CAAA;AACP,IAAA,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;;;;AAK7B,IAAA,OAAO,GAAG,MAAM,CAAC,YAAY,CAAC,UAAU,CAAC;AACzC,IAAA,cAAc,GAAG,MAAM,CAAC,YAAY,CAAC,iBAAiB,CAAC;AACvD,IAAA,iBAAiB,GAAG,MAAM,CAAC,YAAY,CAAC,oBAAoB,CAAC;AAC7D,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC;;;;AAK7C,IAAA,aAAa,GAAG,MAAM,CAAC,YAAY,CAAC,gBAAgB,CAAC;AACrD,IAAA,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC;;;;AAK/C,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MACnC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,YAAgC,CAAC,4DAChE;AACQ,IAAA,mBAAmB,GAAG,QAAQ,CAAC,MACtC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAmC,CAAC,+DACnE;AACQ,IAAA,cAAc,GAAG,QAAQ,CAAC,MACjC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,WAA+B,CAAC,0DAC/D;AACQ,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MACnC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,cAAkC,CAAC,4DAClE;AACQ,IAAA,gBAAgB,GAAG,QAAQ,CAAC,MACnC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,cAAkC,CAAC,4DAClE;AACQ,IAAA,kBAAkB,GAAG,QAAQ,CAAC,MACrC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,eAAmC,CAAC,8DACnE;AACQ,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,kBAAsC,CAAC,gEACtE;AACQ,IAAA,oBAAoB,GAAG,QAAQ,CAAC,MACvC,IAAI,CAAC,aAAa,EAAE,CAAC,QAAQ,CAAC,kBAAsC,CAAC,gEACtE;;;;AAKQ,IAAA,YAAY,GAAG,QAAQ,CAC9B,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,YAAgC,CAAC,IAAI,IAAI,wDAC9D;AACQ,IAAA,eAAe,GAAG,QAAQ,CACjC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,eAAmC,CAAC,IAAI,IAAI,2DACjE;AACQ,IAAA,cAAc,GAAG,QAAQ,CAChC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,WAA+B,CAAC,IAAI,IAAI,0DAC7D;AACQ,IAAA,iBAAiB,GAAG,QAAQ,CACnC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,cAAkC,CAAC,IAAI,IAAI,6DAChE;AACQ,IAAA,iBAAiB,GAAG,QAAQ,CACnC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,cAAkC,CAAC,IAAI,IAAI,6DAChE;AACQ,IAAA,kBAAkB,GAAG,QAAQ,CACpC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,eAAmC,CAAC,IAAI,IAAI,8DACjE;AACQ,IAAA,qBAAqB,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAsC,CAAC,IAAI,IAAI,iEACpE;AACQ,IAAA,qBAAqB,GAAG,QAAQ,CACvC,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAsC,CAAC,IAAI,IAAI,iEACpE;;;;AAMD,IAAA,OAAO,CAAC,MAAoC,EAAA;AAC1C,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACpD;AAEA,IAAA,OAAO,CACL,EAAmB,EACnB,IAAA,GAAwB,MAAM,EAAA;AAE9B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,SAAS,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IACrD;AAEA,IAAA,MAAM,CAAC,OAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD;AAEA,IAAA,MAAM,CAAC,OAAwB,EAAA;AAC7B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,CAAC;IACvD;AAEA,IAAA,MAAM,CAAC,EAAmB,EAAA;AACxB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,EAAE,CAAC,CAAC;IAClD;IAEA,UAAU,CACR,QAAyB,EACzB,OAA4B,EAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACrE;AAEA,IAAA,UAAU,CACR,QAAyB,EACzB,YAA6B,EAC7B,OAA4B,EAAA;AAE5B,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CACxB,IAAI,gBAAgB,CAAC,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,CACtD;IACH;IAEA,UAAU,CACR,QAAyB,EACzB,MAAuB,EAAA;AAEvB,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACpE;uGA1HW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACNa,MAAO,OAAO,CAAA;AACT,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAC9B,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/C,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpC,IAAA,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;AAE5B,IAAA,eAAe,GAA6D;AAC1E,QAAA;AACE,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,IAAI,EAAE,mBAAmB;AACzB,YAAA,UAAU,EAAE,wCAAwC;AACrD,SAAA;AACD,QAAA;YACE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,0BAA0B,CAAC;AAC3D,YAAA,UAAU,EAAE,iCAAiC;AAC9C,SAAA;QACD,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,iBAAiB,CAAC,EAAE;KACvD;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACrB,IAAI,CAAC,UAAU,EAAE;QAEjB,IAAI,CAAC,MAAM,CAAC;AACT,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,YAAY,aAAa,CAAC;aACtD,SAAS,CAAC,MAAK;YACd,IAAI,CAAC,UAAU,EAAE;AACnB,QAAA,CAAC,CAAC;IACN;IAEA,MAAM,GAAA;QACJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,gCAAgC,CAAC,CAAC;IAC1D;IAEQ,UAAU,GAAA;QAChB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU;AACjD,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,UAAU,EAAE,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD;uGAvCmB,OAAO,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAP,OAAO,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECpB5B,kuBAuBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDPY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,UAAU,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,YAAY,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,kBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIvD,OAAO,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;+BACE,YAAY,EAAA,OAAA,EACb,CAAC,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,kuBAAA,EAAA;;;MEShE,UAAU,CAAA;AACrB,IAAA,KAAK,GAAiB,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAA,GAAG,GAAa,MAAM,CAAC,QAAQ,CAAC;AACvB,IAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACtB,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACxC,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEnB,IAAA,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc;IAE5D,gBAAgB,GAAG,MAAM,CAAoB;AAC3C,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,GAAG,EAAE,kBAAkB;AACvB,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE;AACN,oBAAA;AACE,wBAAA,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;wBACtD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;AAC5D,wBAAA,UAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA;AACD,oBAAA;AACE,wBAAA,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;wBACrD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC3D,wBAAA,UAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEF,IAAA,iBAAiB,GAAG,IAAI,WAAW,EAAE;IAErC,QAAQ,GAAA;AACN,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE;AACjE,YAAA,MAAM,IAAI,GAAoB;AAC5B,gBAAA,IAAI,EAAE;AACJ,oBAAA,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM;AACvC,oBAAA,EAAE,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,MAAM;AACxC,iBAAA;aACF;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;gBACjC,IAAI,EAAE,MAAK;oBACT,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC5C,oBAAA,IAAI,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE,EAAE;AAC7B,wBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;4BACnB,yCAAyC;AACzC,4BAAA,IAAI,CAAC,cAAc,EAAE,EAAE,EAAE;AAC1B,yBAAA,CAAC;oBACJ;gBACF,CAAC;AACD,gBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,aAAA,CAAC;QACJ;IACF;uGA3DW,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAV,UAAU,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzBvB,0nBAmBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDHI,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACZ,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACN,WAAW,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACX,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACnB,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKT,UAAU,EAAA,UAAA,EAAA,CAAA;kBAZtB,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,EAAA,OAAA,EACjB;wBACP,YAAY;wBACZ,MAAM;wBACN,WAAW;wBACX,mBAAmB;wBACnB,kBAAkB;AACnB,qBAAA,EAAA,QAAA,EAAA,0nBAAA,EAAA;;;AESW,MAAO,WAAW,CAAA;AAC9B,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAmB,SAAS,CAAC;AACzD,IAAA,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAmB,UAAU,CAAC;AAC3D,IAAA,OAAO,GAAG,SAAS,CAAC,QAAQ,CAAmB,SAAS,CAAC;AAExC,IAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AAC/C,IAAA,KAAK,GAAiB,MAAM,CAAC,YAAY,CAAC;AAClC,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACvB,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AACtC,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;;IAGpC,IAAI,GAAG,MAAM,CAAC;AACZ,QAAA,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,aAAa,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE;AAChE,QAAA,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AACtE,QAAA,EAAE,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE;AACvE,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEM,IAAA,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO;AACxC,IAAA,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB;AAEtC,IAAA,OAAO,GAAG,QAAQ,CAAC,MAAK;AACtB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,EAAE;AAC5B,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE;QAE7B,QAAQ,GAAG;AACT,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;AACpD,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,GAAG,CAAC,MAAM,CAAC,CAAC,MAAM,KAAK,MAAM,CAAC,WAAW,CAAC;AACnD,YAAA,KAAK,KAAK;AACV,YAAA;AACE,gBAAA,OAAO,GAAG;;AAEhB,IAAA,CAAC,mDAAC;AAEF,IAAA,SAAS,GAAG,MAAM,CAAS,KAAK,qDAAC;AACjC,IAAA,YAAY,GAAG,YAAY,CAAc,MAAM;AAC7C,QAAA;AACE,YAAA,GAAG,EAAE,cAAc;YACnB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;AAChD,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE,MAAM;gBACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;AACjD,aAAA;AACF,SAAA;AACD,QAAA;AACE,YAAA,GAAG,EAAE,aAAa;YAClB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/C,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,GAAG,EAAE,WAAW;YAChB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB,CAAC;AACpD,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE;AAC9B,SAAA;AACD,QAAA;AACE,YAAA,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;AAChD,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;AAC/B,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACF,YAAY,GAAG,MAAM,CAAgB;AACnC,QAAA;AACE,YAAA,IAAI,EAAE,cAAc;YACpB,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC;AAC5D,YAAA,KAAK,EAAE,SAAS;YAChB,MAAM,EAAE,MAAK;gBACX,IAAI,CAAC,gBAAgB,EAAE;YACzB,CAAC;AACF,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;AAEF,IAAA,cAAc,GAAG,MAAM,CAAQ,EAAE,0DAAC;IAClC,UAAU,GAAG,MAAM,CAAgB;AACjC,QAAA;AACE,YAAA,IAAI,EAAE,eAAe;YACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;AACjD,YAAA,KAAK,EAAE,SAAS;AAChB,YAAA,MAAM,EAAE,CAAC,GAAW,KAAI;AACtB,gBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACtB,CAAC;AACF,SAAA;AACD,QAAA;AACE,YAAA,IAAI,EAAE,kBAAkB;YACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACnD,YAAA,KAAK,EAAE,QAAQ;AACf,YAAA,OAAO,EAAE,UAAU;AACnB,YAAA,MAAM,EAAE,CAAC,GAAW,KAAI;AACtB,gBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACrD,gBAAA,IAAI,CAAC;AACF,qBAAA,MAAM,CAAC,GAAG,CAAC,EAAE;AACb,qBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;oBACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAClC;AACH,gBAAA,CAAC,CAAC;AAEH,qBAAA,SAAS,CAAC;AACT,oBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,iBAAA,CAAC;YACN,CAAC;YACD,MAAM,EAAE,CAAC,GAAW,KAAK,CAAC,GAAG,CAAC,WAAW;AACzC,YAAA,YAAY,EAAE;AACZ,gBAAA,IAAI,EAAE,OAAO;AACb,gBAAA,gBAAgB,EAAE,QAAQ;AAC3B,aAAA;AACD,YAAA,OAAO,EAAE,CAAC,GAAW,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACjE,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,YAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEF,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;IACvB;IAEA,gBAAgB,CAAC,SAAwB,IAAI,EAAA;QAC3C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,UAAU,EAAE,QAAQ,EAAE;YACzC,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,2BAA2B,CAAC;AAC7D,YAAA,UAAU,EAAE,WAAW;AACvB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE;AACX,gBAAA,MAAM,EAAE,MAAM;AACf,aAAA;AACF,SAAA,CAAC;IACJ;AAEA,IAAA,UAAU,CAAC,MAAc,EAAA;QACvB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;IACtE;uGAtImB,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,SAAA,EAFnB,CAAC,aAAa,CAAC,0VC5B5B,++BA+BA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDNY,YAAY,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,kBAAkB,gMAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,YAAA,EAAA,MAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKtD,WAAW,EAAA,UAAA,EAAA,CAAA;kBAP/B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,EAAA,OAAA,EAClB,CAAC,YAAY,EAAE,cAAc,EAAE,KAAK,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAA,SAAA,EAG/D,CAAC,aAAa,CAAC,EAAA,QAAA,EAAA,++BAAA,EAAA;qEAGqB,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACR,UAAU,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,IAAA,EAAA,CACX,SAAS,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;IErB9C;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,gBAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC7B,IAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AAC/B,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,gBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACvC,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;MCqBf,cAAc,CAAA;AAChB,IAAA,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC;AACrC,IAAA,GAAG,GAAa,MAAM,CAAC,QAAQ,CAAC;AAEvB,IAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AACvC,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpC,IAAA,QAAQ,GAAG,KAAK,CAAoB,IAAI,oDAAC;AACzC,IAAA,QAAQ,GAAG,KAAK,CAAS,CAAC,oDAAC;AAE3B,IAAA,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,oDAAC;IAC5C,WAAW,GAAG,QAAQ,CAAC,MACrB,IAAI,CAAC,QAAQ;UACT,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB;UACzC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,aAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAC/C;IACD,oBAAoB,GAAG,MAAM,CAAoB;AAC/C,QAAA,QAAQ,EAAE;AACR,YAAA;AACE,gBAAA,GAAG,EAAE,sBAAsB;AAC3B,gBAAA,IAAI,EAAE,QAAQ;AACd,gBAAA,KAAK,EAAE,CAAC;AACR,gBAAA,MAAM,EAAE;AACN,oBAAA;AACE,wBAAA,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;wBACtD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;AAC5D,wBAAA,UAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA;AACD,oBAAA;AACE,wBAAA,GAAG,EAAE,QAAQ;wBACb,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;wBACrD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,oBAAoB,CAAC;AAC3D,wBAAA,UAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAA,KAAK,EAAE,CAAC;AACT,qBAAA;AACD,oBAAA,IAAI,sBAAsB,CAAC;AACzB,wBAAA,GAAG,EAAE,OAAO;wBACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;wBAChD,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,eAAe,CAAC;AACtD,wBAAA,QAAQ,EAAE,IAAI;AACd,wBAAA,UAAU,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC;AACxC,wBAAA,KAAK,EAAE,CAAC;qBACT,CAAC;AACH,iBAAA;AACF,aAAA;AACF,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,sBAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IACF,qBAAqB,GAAQ,IAAI,WAAW,CAAC;AAC3C,QAAA,KAAK,EAAE,SAAS;AACjB,KAAA,CAAC;IAEF,QAAQ,GAAA;QACN,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACtC,YAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,EAAG;AAC7B,YAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC;AAClC,gBAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACpB,gBAAA,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;AACpB,gBAAA,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;AAChC,aAAA,CAAC;AACF,YAAA,IAAI,CAAC,qBAAqB,CAAC,aAAa,EAAE;AAC1C,YAAA,IAAI,CAAC,qBAAqB,CAAC,sBAAsB,EAAE;QACrD;IACF;AAEA,IAAA,iBAAiB,CAAC,EAAU,EAAA;AAC1B,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,MAAK,EAAE,CAAC,CAAC;IAC7C;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ;AAChC,cAAE,IAAI,CAAC,MAAM,CAAC,oBAAoB;AAClC,cAAE,IAAI,CAAC,MAAM,CAAC,kBAAkB,EAAE;QAEpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,IAAI,CAAC,YAAY,EAAE;AACrD,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,qBAAqB,CAAC,KAAK;YAElD,IAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;gBACtC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,EAAG,CAAC,EAAE;AACxC,gBAAA,MAAM,aAAa,GAAwB;AACzC,oBAAA,IAAI,EAAE;wBACJ,EAAE,EAAE,SAAS,CAAC,MAAM;wBACpB,EAAE,EAAE,SAAS,CAAC,MAAM;AACrB,qBAAA;oBACD,KAAK,EAAE,SAAS,CAAC,KAAK;iBACvB;AAED,gBAAA,IAAI,CAAC;qBACF,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,YAAY,EAAE,aAAa;AACvD,qBAAA,SAAS,CAAC;AACT,oBAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,wBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACnD,CAAC;AACD,oBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,iBAAA,CAAC;YACN;iBAAO;AACL,gBAAA,MAAM,aAAa,GAAwB;AACzC,oBAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;AACzB,oBAAA,IAAI,EAAE;wBACJ,EAAE,EAAE,SAAS,CAAC,MAAM;wBACpB,EAAE,EAAE,SAAS,CAAC,MAAM;AACrB,qBAAA;oBACD,KAAK,EAAE,SAAS,CAAC,KAAK;iBACvB;AAED,gBAAA,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,aAAa,CAAC,CAAC,SAAS,CAAC;AAC/D,oBAAA,IAAI,EAAE,CAAC,QAAa,KAAI;AACtB,wBAAA,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;oBACnD,CAAC;AACD,oBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,iBAAA,CAAC;YACJ;QACF;IACF;uGAlHW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjC3B,8qBAsBA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDOY,YAAY,+BAAE,MAAM,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,OAAA,EAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,SAAA,EAAA,WAAA,EAAA,OAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,WAAW,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,uBAAA,EAAA,4BAAA,EAAA,oBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,uBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAIrD,cAAc,EAAA,UAAA,EAAA,CAAA;kBAN1B,SAAS;+BACE,qBAAqB,EAAA,OAAA,EACtB,CAAC,YAAY,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,CAAC,EAAA,QAAA,EAAA,8qBAAA,EAAA;;;AEYrD,MAAO,aAAa,CAAA;AAChC,IAAA,SAAS,GAAG,SAAS,CAAC,QAAQ,CAAmB,WAAW,CAAC;AAE5C,IAAA,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AACrB,IAAA,MAAM,GAAG,MAAM,CAAC,aAAa,CAAC;AAChC,IAAA,KAAK,GAAG,MAAM,CAAC,cAAc,CAAC;AAEtC,IAAA,WAAW,GAAG;AACrB,QAAA,uBAAuB,EAAE,SAAS;AAClC,QAAA,kBAAkB,EAAE,SAAS;KAC9B;AACgB,IAAA,EAAE,GAAG,MAAM,CAAC,WAAW,CAAC;AACzC,IAAA,KAAK,GAAiB,MAAM,CAAC,YAAY,CAAC;AAC1C,IAAA,SAAS,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAEpC,IAAA,UAAU,GAAG,MAAM,CAAU,KAAK,sDAAC;AAE1B,IAAA,EAAE,GAAG,QAAQ,CAAC,MAAK;AAC1B,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC;QACtD,OAAO,OAAO,GAAG,OAAO,GAAG,EAAE;AAC/B,IAAA,CAAC,8CAAC;AACF,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,KAAK,IAAI,EAAE,uDAAC;AACvE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,WAAW,uDAAC;AACvE,IAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,WAAW,uDAAC;AACvE,IAAA,cAAc,GAAG,MAAM,CAAQ,EAAE,0DAAC;AAClC,IAAA,UAAU,GAAG,QAAQ,CAAgB,MAAK;QACxC,MAAM,OAAO,GAAkB,EAAE;AAEjC,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,eAAe;gBACrB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,cAAc,CAAC;AACjD,gBAAA,KAAK,EAAE,SAAS;AAChB,gBAAA,MAAM,EAAE,CAAC,GAAe,KAAI;AAC1B,oBAAA,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC;gBAC7B,CAAC;AACF,aAAA,CAAC;QACJ;AAEA,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;YACtB,OAAO,CAAC,IAAI,CAAC;AACX,gBAAA,IAAI,EAAE,kBAAkB;gBACxB,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,gBAAgB,CAAC;AACnD,gBAAA,KAAK,EAAE,QAAQ;AACf,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,MAAM,EAAE,CAAC,GAAe,KAAI;AAC1B,oBAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;AACrD,oBAAA,IAAI,CAAC;yBACF,UAAU,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE;AAC5B,yBAAA,IAAI,CACH,QAAQ,CAAC,MAAK;wBACZ,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,GAAG,KAC7B,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,CAAC,CAClC;AACH,oBAAA,CAAC,CAAC;AAEH,yBAAA,SAAS,CAAC;AACT,wBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,qBAAA,CAAC;gBACN,CAAC;AACD,gBAAA,YAAY,EAAE;AACZ,oBAAA,IAAI,EAAE,OAAO;AACb,oBAAA,gBAAgB,EAAE,QAAQ;AAC3B,iBAAA;AACD,gBAAA,OAAO,EAAE,CAAC,GAAe,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;AACrE,aAAA,CAAC;QACJ;AAEA,QAAA,OAAO,OAAO;AAChB,IAAA,CAAC,sDAAC;AAEF,IAAA,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,CAAC;QACzB,MAAM,EAAE,CAAC,EAAE,CAAC;QACZ,MAAM,EAAE,CAAC,EAAE,CAAC;AACb,KAAA,CAAC;AAEF,IAAA,YAAY,GAAG,YAAY,CAAc,MAAM;AAC7C,QAAA;AACE,YAAA,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,sBAAsB,CAAC;AACxD,SAAA;AACD,QAAA;AACE,YAAA,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;AACvD,SAAA;AACD,QAAA;AACE,YAAA,GAAG,EAAE,OAAO;YACZ,KAAK,EAAE,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,qBAAqB,CAAC;AACtD,YAAA,IAAI,EAAE,QAAQ;AACd,YAAA,aAAa,EAAE,IAAI,CAAC,SAAS,EAAE;AAChC,SAAA;AACF,KAAA,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,cAAA,EAAA,CAAA,GAAA,EAAA,CAAA,CAAC;IAEF,QAAQ,GAAA;QACN,IAAI,CAAC,cAAc,EAAE;IACvB;IAEA,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,CAAC,SAAS,CAAC;YAC/C,IAAI,EAAE,MAAK;gBACT,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;gBAC7C,IAAI,QAAQ,EAAE;AACZ,oBAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACzB,wBAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AAC/B,wBAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AAChC,qBAAA,CAAC;gBACJ;YACF,CAAC;AACD,YAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,SAAA,CAAC;IACJ;IAEA,MAAM,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,UAAU,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1D;IAEA,iBAAiB,CAAC,aAAgC,IAAI,EAAA;QACpD,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,cAAc,EAAE,QAAQ,EAAE;AAC7C,YAAA,MAAM,EAAE;kBACJ,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,mBAAmB;kBAC5C,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,yBAAyB,CAAC;AACvD,YAAA,UAAU,EAAE,YAAY;AACxB,YAAA,MAAM,EAAE,MAAM;AACd,YAAA,QAAQ,EAAE,MAAM;AAChB,YAAA,eAAe,EAAE,IAAI;AACrB,YAAA,WAAW,EAAE;AACX,gBAAA,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE;AACnB,gBAAA,QAAQ,EAAE,UAAU;AACrB,aAAA;AACF,SAAA,CAAC;IACJ;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC;IAC3B;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;QAC1B,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE;QAE7C,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC;AACzB,gBAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AAC/B,gBAAA,MAAM,EAAE,QAAQ,CAAC,IAAI,EAAE,EAAE,IAAI,EAAE;AAChC,aAAA,CAAC;QACJ;IACF;IAEA,UAAU,GAAA;AACR,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,EAAE;AAC5D,YAAA,MAAM,aAAa,GAAG;AACpB,gBAAA,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACrB,gBAAA,IAAI,EAAE;oBACJ,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;oBACtC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,IAAI,EAAE;AACvC,iBAAA;aACF;YAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,SAAS,CAAC;gBAC1C,IAAI,EAAE,MAAK;AACT,oBAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC;gBAC5B,CAAC;AACD,gBAAA,KAAK,EAAE,MAAK,EAAE,CAAC;AAChB,aAAA,CAAC;QACJ;IACF;uGArKmB,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAb,aAAa,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECzClC,2hNAyKA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED9II,MAAM,4VACN,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACJ,mBAAmB,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,sGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EACnB,WAAW,+BACX,SAAS,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACT,KAAK,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,SAAA,EAAA,YAAA,EAAA,MAAA,EAAA,eAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,SAAA,EAAA,UAAA,EAAA,MAAA,EAAA,eAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,aAAA,EAAA,MAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,SAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,aAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,YAAA,EAAA,UAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,aAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACL,MAAM,0LACN,cAAc,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,WAAA,EAAA,cAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EACd,kBAAkB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAClB,IAAI,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,cAAA,EAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,iBAAA,EAAA,WAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FAKa,aAAa,EAAA,UAAA,EAAA,CAAA;kBAjBjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAAA,OAAA,EACrB;wBACP,MAAM;wBACN,IAAI;wBACJ,mBAAmB;wBACnB,WAAW;wBACX,SAAS;wBACT,KAAK;wBACL,MAAM;wBACN,cAAc;wBACd,kBAAkB;wBAClB,IAAI;AACL,qBAAA,EAAA,QAAA,EAAA,2hNAAA,EAAA;uEAKgD,WAAW,EAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AElChD,MAAO,aAAa,CAAA;uGAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAAb,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,6ECRlC,kCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA;;2FDOqB,aAAa,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,WACpB,EAAE,EAAA,QAAA,EAAA,kCAAA,EAAA;;;AEJb;;ACAA;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"masterteam-lookups.mjs","sources":["../../../../packages/masterteam/lookups/src/store/lookups/lookups.actions.ts","../../../../packages/masterteam/lookups/src/store/lookups/lookups.state.ts","../../../../packages/masterteam/lookups/src/store/lookups/lookups.facade.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-form/lookup-form.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-form/lookup-form.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-list/lookups-list.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-list/lookups-list.html","../../../../packages/masterteam/lookups/src/store/lookups/lookups.model.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-item-form/lookup-item-form.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-item-form/lookup-item-form.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-details.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookup-details/lookup-details.html","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-custom/lookups-custom.ts","../../../../packages/masterteam/lookups/src/lib/lookups/lookups-custom/lookups-custom.html","../../../../packages/masterteam/lookups/src/store/index.ts","../../../../packages/masterteam/lookups/src/masterteam-lookups.ts"],"sourcesContent":["import type {\r\n LookupsQueryParams,\r\n CreateLookupDto,\r\n UpdateLookupDto,\r\n CreateLookupItemDto,\r\n UpdateLookupItemDto,\r\n} from './lookups.model';\r\n\r\nexport class GetLookups {\r\n static readonly type = '[Lookups] Get All';\r\n\r\n constructor(public readonly params?: Partial<LookupsQueryParams>) {}\r\n}\r\n\r\nexport class GetLookup {\r\n static readonly type = '[Lookups] Get One';\r\n\r\n constructor(\r\n public readonly id: string | number,\r\n public readonly mode: 'edit' | 'view' = 'edit',\r\n ) {}\r\n}\r\n\r\nexport class CreateLookup {\r\n static readonly type = '[Lookups] Create';\r\n\r\n constructor(public readonly payload: CreateLookupDto) {}\r\n}\r\n\r\nexport class UpdateLookup {\r\n static readonly type = '[Lookups] Update';\r\n\r\n constructor(public readonly payload: UpdateLookupDto) {}\r\n}\r\n\r\nexport class DeleteLookup {\r\n static readonly type = '[Lookups] Delete';\r\n\r\n constructor(public readonly id: string | number) {}\r\n}\r\n\r\nexport class CreateLookupItem {\r\n static readonly type = '[Lookups] Create Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly payload: CreateLookupItemDto,\r\n ) {}\r\n}\r\n\r\nexport class UpdateLookupItem {\r\n static readonly type = '[Lookups] Update Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly lookupItemId: string | number,\r\n public readonly payload: UpdateLookupItemDto,\r\n ) {}\r\n}\r\n\r\nexport class DeleteLookupItem {\r\n static readonly type = '[Lookups] Delete Item';\r\n\r\n constructor(\r\n public readonly lookupId: string | number,\r\n public readonly itemId: string | number,\r\n ) {}\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, inject } from '@angular/core';\r\nimport { Action, Selector, State, StateContext } from '@ngxs/store';\r\nimport { CrudStateBase, handleApiRequest } from '@masterteam/components';\r\nimport type {\r\n LookupsActionKey,\r\n LookupsStateModel,\r\n Lookup,\r\n LookupItem,\r\n Response,\r\n} from './lookups.model';\r\nimport {\r\n GetLookups,\r\n GetLookup,\r\n CreateLookup,\r\n UpdateLookup,\r\n DeleteLookup,\r\n CreateLookupItem,\r\n UpdateLookupItem,\r\n DeleteLookupItem,\r\n} from './lookups.actions';\r\n\r\nconst DEFAULT_STATE: LookupsStateModel = {\r\n lookups: [],\r\n selectedLookup: null,\r\n loadingActive: [],\r\n errors: {},\r\n};\r\n\r\n@State<LookupsStateModel>({\r\n name: 'lookups',\r\n defaults: DEFAULT_STATE,\r\n})\r\n@Injectable()\r\nexport class LookupsState extends CrudStateBase<\r\n Lookup,\r\n LookupsStateModel,\r\n LookupsActionKey\r\n> {\r\n private readonly http = inject(HttpClient);\r\n private readonly baseUrl = 'Lookups';\r\n\r\n // Data selectors\r\n @Selector()\r\n static getLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups;\r\n }\r\n\r\n @Selector()\r\n static getSelectedLookup(state: LookupsStateModel): Lookup | null {\r\n return state.selectedLookup;\r\n }\r\n\r\n @Selector()\r\n static getPredefinedLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups.filter((lookup) => !lookup.allowManage);\r\n }\r\n\r\n @Selector()\r\n static getCustomLookups(state: LookupsStateModel): Lookup[] {\r\n return state.lookups.filter((lookup) => lookup.allowManage);\r\n }\r\n\r\n // Loading/Error slice selectors\r\n @Selector()\r\n static getLoadingActive(state: LookupsStateModel): string[] {\r\n return state.loadingActive;\r\n }\r\n\r\n @Selector()\r\n static getErrors(state: LookupsStateModel): Record<string, string | null> {\r\n return state.errors;\r\n }\r\n\r\n @Action(GetLookups)\r\n getAll(ctx: StateContext<LookupsStateModel>, action: GetLookups) {\r\n const params = Object.entries(action.params ?? {}).reduce<\r\n Record<string, string | string[]>\r\n >((acc, [key, value]) => {\r\n if (value === undefined || value === null) {\r\n return acc;\r\n }\r\n\r\n if (Array.isArray(value)) {\r\n acc[key] = value.map((item) => String(item));\r\n return acc;\r\n }\r\n\r\n acc[key] = String(value);\r\n return acc;\r\n }, {});\r\n\r\n const req$ = this.http.get<Response<Lookup[]>>(this.baseUrl, { params });\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'getLookups' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response) => ({\r\n lookups: Array.isArray(response?.data) ? response.data : [],\r\n }),\r\n errorMessage: 'Failed to load lookups',\r\n });\r\n }\r\n\r\n @Action(GetLookup)\r\n getOne(ctx: StateContext<LookupsStateModel>, action: GetLookup) {\r\n const params = { mode: action.mode ?? 'edit' };\r\n const req$ = this.http.get<Response<Lookup>>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.id))}`,\r\n { params },\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'getLookupById' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response) => ({\r\n selectedLookup: response?.data ?? null,\r\n }),\r\n errorMessage: 'Failed to load lookup',\r\n });\r\n }\r\n\r\n @Action(CreateLookup)\r\n createLookup(ctx: StateContext<LookupsStateModel>, action: CreateLookup) {\r\n const req$ = this.http.post<Response<Lookup>>(this.baseUrl, action.payload);\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'addLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n return {\r\n lookups: this.adapter.addOne(state.lookups, response.data),\r\n selectedLookup: response.data,\r\n };\r\n },\r\n errorMessage: 'Failed to create lookup',\r\n });\r\n }\r\n\r\n @Action(UpdateLookup)\r\n updateLookup(ctx: StateContext<LookupsStateModel>, action: UpdateLookup) {\r\n const req$ = this.http.put<Response<Lookup>>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.payload.id))}`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'updateLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const updated = response.data;\r\n return {\r\n lookups: this.adapter.upsertOne(state.lookups, updated, 'id'),\r\n selectedLookup:\r\n state.selectedLookup?.id === updated.id\r\n ? { ...state.selectedLookup, ...updated }\r\n : state.selectedLookup,\r\n };\r\n },\r\n errorMessage: 'Failed to update lookup',\r\n });\r\n }\r\n\r\n @Action(DeleteLookup)\r\n deleteLookup(ctx: StateContext<LookupsStateModel>, action: DeleteLookup) {\r\n const req$ = this.http.delete<void>(\r\n `${this.baseUrl}/${encodeURIComponent(String(action.id))}`,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'deleteLookup' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (_, state) => {\r\n const lookups = this.adapter.removeOne(state.lookups, action.id, 'id');\r\n const nextSelected =\r\n state.selectedLookup && state.selectedLookup.id === Number(action.id)\r\n ? null\r\n : state.selectedLookup;\r\n\r\n return {\r\n lookups,\r\n selectedLookup: nextSelected,\r\n };\r\n },\r\n errorMessage: 'Failed to delete lookup',\r\n });\r\n }\r\n\r\n @Action(CreateLookupItem)\r\n createItem(ctx: StateContext<LookupsStateModel>, action: CreateLookupItem) {\r\n const req$ = this.http.post<Response<LookupItem>>(\r\n `${this.baseUrl}/LookupItem`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'addLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const newItem = response.data;\r\n const { selectedLookup } = state;\r\n\r\n if (selectedLookup?.id !== Number(action.lookupId)) {\r\n return {};\r\n }\r\n\r\n return {\r\n selectedLookup: {\r\n ...selectedLookup,\r\n items: [...selectedLookup.items, newItem],\r\n },\r\n };\r\n },\r\n errorMessage: 'Failed to add lookup item',\r\n });\r\n }\r\n\r\n @Action(UpdateLookupItem)\r\n updateItem(ctx: StateContext<LookupsStateModel>, action: UpdateLookupItem) {\r\n const req$ = this.http.put<Response<LookupItem>>(\r\n `${this.baseUrl}/LookupItem/${encodeURIComponent(String(action.lookupItemId))}`,\r\n action.payload,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'updateLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (!response?.data) return {};\r\n\r\n const updatedItem = response.data;\r\n const { selectedLookup } = state;\r\n\r\n if (selectedLookup?.id !== Number(action.lookupId)) {\r\n return {};\r\n }\r\n\r\n return {\r\n selectedLookup: {\r\n ...selectedLookup,\r\n items: selectedLookup.items.map((item) =>\r\n item.id === Number(action.lookupItemId) ? updatedItem : item,\r\n ),\r\n },\r\n };\r\n },\r\n errorMessage: 'Failed to update lookup item',\r\n });\r\n }\r\n\r\n @Action(DeleteLookupItem)\r\n deleteItem(ctx: StateContext<LookupsStateModel>, action: DeleteLookupItem) {\r\n const req$ = this.http.delete<Response<boolean>>(\r\n `${this.baseUrl}/LookupItem/${encodeURIComponent(String(action.itemId))}`,\r\n );\r\n\r\n return handleApiRequest({\r\n ctx,\r\n key: 'deleteLookupItem' as LookupsActionKey,\r\n request$: req$,\r\n onSuccess: (response, state) => {\r\n if (response?.data !== true) return {};\r\n\r\n const { lookups, selectedLookup } = state;\r\n\r\n const updatedLookups = lookups.map((lookup) => {\r\n if (lookup.id === Number(action.lookupId)) {\r\n return {\r\n ...lookup,\r\n items: lookup.items.filter(\r\n (item) => item.id !== Number(action.itemId),\r\n ),\r\n };\r\n }\r\n return lookup;\r\n });\r\n\r\n const updatedSelectedLookup =\r\n selectedLookup?.id === Number(action.lookupId)\r\n ? {\r\n ...selectedLookup,\r\n items: selectedLookup.items.filter(\r\n (item) => item.id !== Number(action.itemId),\r\n ),\r\n }\r\n : selectedLookup;\r\n\r\n return {\r\n lookups: updatedLookups,\r\n selectedLookup: updatedSelectedLookup,\r\n };\r\n },\r\n errorMessage: 'Failed to delete lookup item',\r\n });\r\n }\r\n}\r\n","import { Injectable, computed, inject } from '@angular/core';\r\nimport { select, Store } from '@ngxs/store';\r\nimport type { Observable } from 'rxjs';\r\n\r\nimport {\r\n GetLookups,\r\n GetLookup,\r\n CreateLookup,\r\n UpdateLookup,\r\n DeleteLookup,\r\n CreateLookupItem,\r\n UpdateLookupItem,\r\n DeleteLookupItem,\r\n} from './lookups.actions';\r\nimport { LookupsState } from './lookups.state';\r\nimport type {\r\n LookupsActionKey,\r\n LookupsQueryParams,\r\n CreateLookupDto,\r\n UpdateLookupDto,\r\n CreateLookupItemDto,\r\n UpdateLookupItemDto,\r\n} from './lookups.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LookupsFacade {\r\n private readonly store = inject(Store);\r\n\r\n // ============================================================================\r\n // Data Selectors - Memoized by NGXS (fine-grained reactivity)\r\n // ============================================================================\r\n readonly lookups = select(LookupsState.getLookups);\r\n readonly selectedLookup = select(LookupsState.getSelectedLookup);\r\n readonly predefinedLookups = select(LookupsState.getPredefinedLookups);\r\n readonly customLookups = select(LookupsState.getCustomLookups);\r\n\r\n // ============================================================================\r\n // Loading/Error Slices - Memoized by NGXS\r\n // ============================================================================\r\n private readonly loadingActive = select(LookupsState.getLoadingActive);\r\n private readonly errors = select(LookupsState.getErrors);\r\n\r\n // ============================================================================\r\n // Loading Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly isLoadingLookups = computed(() =>\r\n this.loadingActive().includes('getLookups' as LookupsActionKey),\r\n );\r\n readonly isLoadingLookupById = computed(() =>\r\n this.loadingActive().includes('getLookupById' as LookupsActionKey),\r\n );\r\n readonly isAddingLookup = computed(() =>\r\n this.loadingActive().includes('addLookup' as LookupsActionKey),\r\n );\r\n readonly isUpdatingLookup = computed(() =>\r\n this.loadingActive().includes('updateLookup' as LookupsActionKey),\r\n );\r\n readonly isDeletingLookup = computed(() =>\r\n this.loadingActive().includes('deleteLookup' as LookupsActionKey),\r\n );\r\n readonly isAddingLookupItem = computed(() =>\r\n this.loadingActive().includes('addLookupItem' as LookupsActionKey),\r\n );\r\n readonly isUpdatingLookupItem = computed(() =>\r\n this.loadingActive().includes('updateLookupItem' as LookupsActionKey),\r\n );\r\n readonly isDeletingLookupItem = computed(() =>\r\n this.loadingActive().includes('deleteLookupItem' as LookupsActionKey),\r\n );\r\n\r\n // ============================================================================\r\n // Error Signals - Computed from slice (minimal reactivity)\r\n // ============================================================================\r\n readonly lookupsError = computed(\r\n () => this.errors()['getLookups' as LookupsActionKey] ?? null,\r\n );\r\n readonly lookupByIdError = computed(\r\n () => this.errors()['getLookupById' as LookupsActionKey] ?? null,\r\n );\r\n readonly addLookupError = computed(\r\n () => this.errors()['addLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly updateLookupError = computed(\r\n () => this.errors()['updateLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly deleteLookupError = computed(\r\n () => this.errors()['deleteLookup' as LookupsActionKey] ?? null,\r\n );\r\n readonly addLookupItemError = computed(\r\n () => this.errors()['addLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n readonly updateLookupItemError = computed(\r\n () => this.errors()['updateLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n readonly deleteLookupItemError = computed(\r\n () => this.errors()['deleteLookupItem' as LookupsActionKey] ?? null,\r\n );\r\n\r\n // ============================================================================\r\n // Action Dispatchers\r\n // ============================================================================\r\n\r\n loadAll(params?: Partial<LookupsQueryParams>): Observable<unknown> {\r\n return this.store.dispatch(new GetLookups(params));\r\n }\r\n\r\n loadOne(\r\n id: string | number,\r\n mode: 'edit' | 'view' = 'edit',\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new GetLookup(id, mode));\r\n }\r\n\r\n create(payload: CreateLookupDto): Observable<unknown> {\r\n return this.store.dispatch(new CreateLookup(payload));\r\n }\r\n\r\n update(payload: UpdateLookupDto): Observable<unknown> {\r\n return this.store.dispatch(new UpdateLookup(payload));\r\n }\r\n\r\n delete(id: string | number): Observable<unknown> {\r\n return this.store.dispatch(new DeleteLookup(id));\r\n }\r\n\r\n createItem(\r\n lookupId: string | number,\r\n payload: CreateLookupItemDto,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new CreateLookupItem(lookupId, payload));\r\n }\r\n\r\n updateItem(\r\n lookupId: string | number,\r\n lookupItemId: string | number,\r\n payload: UpdateLookupItemDto,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(\r\n new UpdateLookupItem(lookupId, lookupItemId, payload),\r\n );\r\n }\r\n\r\n deleteItem(\r\n lookupId: string | number,\r\n itemId: string | number,\r\n ): Observable<unknown> {\r\n return this.store.dispatch(new DeleteLookupItem(lookupId, itemId));\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, OnInit, signal } from '@angular/core';\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n Router,\r\n RouterOutlet,\r\n} from '@angular/router';\r\nimport { Breadcrumb } from '@masterteam/components/breadcrumb';\r\nimport { LookupsFacade } from '../../store/lookups/lookups.facade';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { Page } from '@masterteam/components/page';\r\nimport { filter } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'mt-lookups',\r\n imports: [CommonModule, Page, Breadcrumb, RouterOutlet, TranslocoDirective],\r\n templateUrl: './lookups.html',\r\n styleUrls: ['./lookups.scss'],\r\n})\r\nexport default class Lookups implements OnInit {\r\n private readonly route = inject(ActivatedRoute);\r\n private readonly router = inject(Router);\r\n private readonly facade = inject(LookupsFacade);\r\n transloco = inject(TranslocoService);\r\n\r\n isDetailPage = signal(false);\r\n\r\n breadcrumbItems: { label?: string; routerLink?: string; icon?: string }[] = [\r\n {\r\n label: '',\r\n icon: 'general.home-line',\r\n routerLink: '/control-panel/product-settings/custom',\r\n },\r\n {\r\n label: this.transloco.translate('lookups.Product_Settings'),\r\n routerLink: '/control-panel/product-settings',\r\n },\r\n { label: this.transloco.translate('lookups.Lookups') },\r\n ];\r\n\r\n ngOnInit() {\r\n this.facade.loadAll();\r\n this.checkRoute();\r\n\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n this.checkRoute();\r\n });\r\n }\r\n\r\n goBack() {\r\n this.router.navigate(['control-panel/product-settings']);\r\n }\r\n\r\n private checkRoute() {\r\n const firstChild = this.route.snapshot.firstChild;\r\n this.isDetailPage.set(!!firstChild?.paramMap.get('id'));\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n @if (!isDetailPage()) {\r\n <mt-page\r\n [title]=\"t('lookups.Product_Lookups')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <h3 class=\"font-bold text-xl\">{{ t(\"lookups.All_Lookups\") }}</h3>\r\n <mt-breadcrumb\r\n [items]=\"breadcrumbItems\"\r\n [styleClass]=\"'flex justify-start mx-1'\"\r\n ></mt-breadcrumb>\r\n <router-outlet />\r\n </mt-page>\r\n } @else {\r\n <router-outlet />\r\n }\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, inject, signal } from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { DynamicFormConfig, ValidatorConfig } from '@masterteam/components';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { ModalRef } from '@masterteam/components/dialog';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { LookupsFacade } from '../../../store/lookups/lookups.facade';\r\nimport { CreateLookupDto } from '../../../store/lookups/lookups.model';\r\nimport { Router } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\n\r\n@Component({\r\n selector: 'mt-lookup-form',\r\n imports: [\r\n CommonModule,\r\n Button,\r\n DynamicForm,\r\n ReactiveFormsModule,\r\n TranslocoDirective,\r\n ],\r\n templateUrl: './lookup-form.html',\r\n styleUrl: './lookup-form.scss',\r\n})\r\nexport class LookupForm {\r\n modal: ModalService = inject(ModalService);\r\n ref: ModalRef = inject(ModalRef);\r\n readonly facade = inject(LookupsFacade);\r\n private readonly router = inject(Router);\r\n transloco = inject(TranslocoService);\r\n\r\n private readonly selectedLookup = this.facade.selectedLookup;\r\n\r\n lookupFormConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'lookupFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n {\r\n key: 'nameEn',\r\n label: this.transloco.translate('lookups.EnglishName'),\r\n placeholder: this.transloco.translate('lookups.EnglishName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 2,\r\n },\r\n {\r\n key: 'nameAr',\r\n label: this.transloco.translate('lookups.ArabicName'),\r\n placeholder: this.transloco.translate('lookups.ArabicName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 3,\r\n },\r\n ],\r\n },\r\n ],\r\n });\r\n\r\n lookupFormControl = new FormControl();\r\n\r\n onSubmit(): void {\r\n if (this.lookupFormControl.valid && !this.facade.isAddingLookup()) {\r\n const body: CreateLookupDto = {\r\n name: {\r\n en: this.lookupFormControl.value.nameEn,\r\n ar: this.lookupFormControl.value.nameAr,\r\n },\r\n };\r\n\r\n this.facade.create(body).subscribe({\r\n next: () => {\r\n this.ref.close(this.lookupFormControl.value);\r\n if (this.selectedLookup()?.id) {\r\n this.router.navigate([\r\n '/control-panel/product-settings/lookups',\r\n this.selectedLookup()?.id,\r\n ]);\r\n }\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupFormConfig()\"\r\n [formControl]=\"lookupFormControl\"\r\n />\r\n </form>\r\n </div>\r\n\r\n <div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n label=\"{{ t('lookups.Create') }}\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"facade.isAddingLookup()\"\r\n [disabled]=\"!this.lookupFormControl.valid || facade.isAddingLookup()\"\r\n />\r\n </div>\r\n</ng-container>\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n computed,\r\n inject,\r\n linkedSignal,\r\n OnInit,\r\n signal,\r\n TemplateRef,\r\n viewChild,\r\n} from '@angular/core';\r\nimport { DialogService } from '@masterteam/components/dialog';\r\nimport { ColumnDef, Table, TableAction } from '@masterteam/components/table';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { LookupsFacade } from '../../../store/lookups/lookups.facade';\r\nimport { LookupForm } from '../lookup-form/lookup-form';\r\nimport { Lookup } from '../../../store/lookups/lookups.model';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\nimport { finalize } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'mt-lookups-list',\r\n imports: [CommonModule, SkeletonModule, Table, TranslocoDirective, Avatar],\r\n templateUrl: './lookups-list.html',\r\n styleUrl: './lookups-list.scss',\r\n providers: [DialogService],\r\n})\r\nexport default class LookupsList implements OnInit {\r\n typeCol = viewChild.required<TemplateRef<any>>('typeCol');\r\n itemsCol = viewChild.required<TemplateRef<any>>('itemsCol');\r\n userCol = viewChild.required<TemplateRef<any>>('userCol');\r\n\r\n private readonly facade = inject(LookupsFacade);\r\n modal: ModalService = inject(ModalService);\r\n private router = inject(Router);\r\n private route = inject(ActivatedRoute);\r\n transloco = inject(TranslocoService);\r\n\r\n // Tabs for filtering lookups\r\n tabs = signal([\r\n { label: this.transloco.translate('lookups.all'), value: 'all' },\r\n { label: this.transloco.translate('lookups.system'), value: 'system' },\r\n { label: this.transloco.translate('lookups.custom'), value: 'custom' },\r\n ]);\r\n\r\n private allLookups = this.facade.lookups;\r\n loading = this.facade.isLoadingLookups;\r\n\r\n lookups = computed(() => {\r\n const tab = this.activeTab();\r\n const all = this.allLookups();\r\n\r\n switch (tab) {\r\n case 'system':\r\n return all.filter((lookup) => !lookup.allowDelete);\r\n case 'custom':\r\n return all.filter((lookup) => lookup.allowDelete);\r\n case 'all':\r\n default:\r\n return all;\r\n }\r\n });\r\n\r\n activeTab = signal<string>('all');\r\n tableColumns = linkedSignal<ColumnDef[]>(() => [\r\n {\r\n key: 'name.display',\r\n label: this.transloco.translate('lookups.title'),\r\n filterConfig: {\r\n type: 'text',\r\n label: this.transloco.translate('lookups.title'),\r\n },\r\n },\r\n {\r\n key: 'allowDelete',\r\n label: this.transloco.translate('lookups.type'),\r\n type: 'custom',\r\n customCellTpl: this.typeCol(),\r\n },\r\n {\r\n key: 'createdBy',\r\n label: this.transloco.translate('lookups.createdBy'),\r\n type: 'custom',\r\n customCellTpl: this.userCol(),\r\n },\r\n {\r\n key: 'items',\r\n label: this.transloco.translate('lookups.items'),\r\n type: 'custom',\r\n customCellTpl: this.itemsCol(),\r\n },\r\n ]);\r\n tableActions = signal<TableAction[]>([\r\n {\r\n icon: 'general.plus',\r\n label: this.transloco.translate('lookups.Create_New_Lookup'),\r\n color: 'primary',\r\n action: () => {\r\n this.addLookupsDialog();\r\n },\r\n },\r\n ]);\r\n\r\n deletingRowIds = signal<any[]>([]);\r\n rowActions = signal<TableAction[]>([\r\n {\r\n icon: 'custom.pencil',\r\n tooltip: this.transloco.translate('lookups.Edit'),\r\n color: 'primary',\r\n action: (row: Lookup) => {\r\n this.editLookup(row);\r\n },\r\n },\r\n {\r\n icon: 'general.trash-01',\r\n tooltip: this.transloco.translate('lookups.Delete'),\r\n color: 'danger',\r\n variant: 'outlined',\r\n action: (row: Lookup) => {\r\n this.deletingRowIds.update((ids) => [...ids, row.id]);\r\n this.facade\r\n .delete(row.id)\r\n .pipe(\r\n finalize(() => {\r\n this.deletingRowIds.update((ids) =>\r\n ids.filter((id) => id !== row.id),\r\n );\r\n }),\r\n )\r\n .subscribe({\r\n error: () => {},\r\n });\r\n },\r\n hidden: (row: Lookup) => !row.allowDelete,\r\n confirmation: {\r\n type: 'popup',\r\n confirmationType: 'delete',\r\n },\r\n loading: (row: Lookup) => this.deletingRowIds().includes(row.id),\r\n },\r\n ]);\r\n\r\n ngOnInit(): void {\r\n this.facade.loadAll();\r\n }\r\n\r\n addLookupsDialog(lookup: Lookup | null = null): void {\r\n this.modal.openModal(LookupForm, 'dialog', {\r\n header: this.transloco.translate('lookups.Create_New_Lookup'),\r\n styleClass: '!w-[30vw]',\r\n height: 'auto',\r\n appendTo: 'body',\r\n dismissableMask: true,\r\n inputValues: {\r\n lookup: lookup,\r\n },\r\n });\r\n }\r\n\r\n editLookup(lookup: Lookup): void {\r\n this.router.navigate([lookup.id], { relativeTo: this.route.parent });\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <div class=\"mt-5\">\r\n <ng-template #typeCol let-row>\r\n <div>\r\n {{ row.allowDelete ? t(\"lookups.custom\") : t(\"lookups.system\") }}\r\n </div>\r\n </ng-template>\r\n\r\n <ng-template #itemsCol let-row>\r\n <div>{{ row?.items?.length + \" \" + t(\"lookups.items\") }}</div>\r\n </ng-template>\r\n <ng-template #userCol let-row>\r\n <div class=\"flex items-center gap-2\">\r\n <mt-avatar [icon]=\"'custom.user-pp'\"> </mt-avatar>\r\n {{ row?.createdBy?.displayName || \"-\" }}\r\n </div>\r\n </ng-template>\r\n <mt-table\r\n [tabs]=\"tabs()\"\r\n [(activeTab)]=\"activeTab\"\r\n [data]=\"lookups()\"\r\n [columns]=\"tableColumns()\"\r\n [actions]=\"tableActions()\"\r\n [rowActions]=\"rowActions()\"\r\n [generalSearch]=\"true\"\r\n [showFilters]=\"true\"\r\n [loading]=\"loading()\"\r\n storageKey=\"lookups-list-table\"\r\n >\r\n </mt-table>\r\n </div>\r\n</ng-container>\r\n","import { LoadingStateShape } from '../utils/state-helpers';\r\n\r\nexport interface Response<T> {\r\n endpoint: string;\r\n status: number;\r\n code: number;\r\n locale: string;\r\n message: string;\r\n data: T;\r\n cacheSession: string;\r\n}\r\n\r\nexport enum LookupsActionKey {\r\n GetLookups = 'getLookups',\r\n GetLookupById = 'getLookupById',\r\n AddLookup = 'addLookup',\r\n UpdateLookup = 'updateLookup',\r\n DeleteLookup = 'deleteLookup',\r\n AddLookupItem = 'addLookupItem',\r\n UpdateLookupItem = 'updateLookupItem',\r\n DeleteLookupItem = 'deleteLookupItem',\r\n}\r\n\r\nexport interface LookupItem {\r\n id: number;\r\n key: string;\r\n name: LocalizedString;\r\n color: string;\r\n order: number;\r\n allowDelete: boolean;\r\n}\r\n\r\nexport interface Lookup {\r\n id: number;\r\n key: string;\r\n name: LocalizedString | string | any;\r\n allowDelete: boolean;\r\n allowManage: boolean;\r\n allowEdit: boolean;\r\n items: LookupItem[];\r\n}\r\n\r\nexport interface LookupsQueryParams {\r\n key?: string;\r\n search?: string;\r\n pageNumber?: number;\r\n pageSize?: number;\r\n [key: string]: any;\r\n}\r\n\r\nexport interface LookupsStateModel extends LoadingStateShape<LookupsActionKey> {\r\n lookups: Lookup[];\r\n selectedLookup: Lookup | null;\r\n}\r\n\r\nexport interface LocalizedString {\r\n ar: string;\r\n en: string;\r\n [key: string]: string;\r\n}\r\n\r\nexport interface CreateLookupDto {\r\n name: LocalizedString;\r\n key?: string;\r\n allowDelete?: boolean;\r\n allowManage?: boolean;\r\n allowEdit?: boolean;\r\n}\r\n\r\nexport interface UpdateLookupDto extends Partial<CreateLookupDto> {\r\n id: number;\r\n}\r\n\r\nexport interface CreateLookupItemDto {\r\n lookupId: number | string;\r\n key?: string;\r\n name: LocalizedString;\r\n color?: string;\r\n order?: number;\r\n}\r\n\r\nexport interface UpdateLookupItemDto extends Partial<CreateLookupItemDto> {\r\n id?: number;\r\n color?: string;\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport {\r\n Component,\r\n inject,\r\n signal,\r\n OnInit,\r\n input,\r\n computed,\r\n} from '@angular/core';\r\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { DynamicForm } from '@masterteam/forms/dynamic-form';\r\nimport { ModalRef } from '@masterteam/components/dialog';\r\nimport {\r\n CreateLookupItemDto,\r\n LookupItem,\r\n LookupsFacade,\r\n UpdateLookupItemDto,\r\n} from '../../../../store/lookups';\r\nimport {\r\n ColorPickerFieldConfig,\r\n DynamicFormConfig,\r\n ValidatorConfig,\r\n} from '@masterteam/components';\r\nimport { TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\n\r\n@Component({\r\n selector: 'mt-lookup-item-form',\r\n imports: [CommonModule, Button, DynamicForm, ReactiveFormsModule],\r\n templateUrl: './lookup-item-form.html',\r\n styleUrl: './lookup-item-form.scss',\r\n})\r\nexport class LookupItemForm implements OnInit {\r\n readonly modal = inject(ModalService);\r\n ref: ModalRef = inject(ModalRef);\r\n\r\n readonly facade = inject(LookupsFacade);\r\n transloco = inject(TranslocoService);\r\n\r\n itemData = input<LookupItem | null>(null);\r\n lookupId = input<number>(0);\r\n\r\n editMode = computed(() => !!this.itemData());\r\n buttonLabel = computed(() =>\r\n this.editMode()\r\n ? this.transloco.translate('lookups.Update')\r\n : this.transloco.translate('lookups.Create'),\r\n );\r\n lookupItemFormConfig = signal<DynamicFormConfig>({\r\n sections: [\r\n {\r\n key: 'lookupItemFormConfig',\r\n type: 'header',\r\n order: 1,\r\n fields: [\r\n {\r\n key: 'nameEn',\r\n label: this.transloco.translate('lookups.EnglishName'),\r\n placeholder: this.transloco.translate('lookups.EnglishName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 2,\r\n },\r\n {\r\n key: 'nameAr',\r\n label: this.transloco.translate('lookups.ArabicName'),\r\n placeholder: this.transloco.translate('lookups.ArabicName'),\r\n validators: [ValidatorConfig.required()],\r\n order: 3,\r\n },\r\n new ColorPickerFieldConfig({\r\n key: 'color',\r\n label: this.transloco.translate('lookups.Color'),\r\n placeholder: this.transloco.translate('lookups.Color'),\r\n required: true,\r\n validators: [ValidatorConfig.required()],\r\n order: 4,\r\n }),\r\n ],\r\n },\r\n ],\r\n });\r\n lookupItemFormControl: any = new FormControl({\r\n color: '#000000',\r\n });\r\n\r\n ngOnInit(): void {\r\n if (this.editMode() && this.itemData()) {\r\n const item = this.itemData()!;\r\n this.lookupItemFormControl.setValue({\r\n nameEn: item.name.en,\r\n nameAr: item.name.ar,\r\n color: item?.color || '#000000',\r\n });\r\n this.lookupItemFormControl.markAsTouched();\r\n this.lookupItemFormControl.updateValueAndValidity();\r\n }\r\n }\r\n\r\n getLookupItemById(id: number) {\r\n this.facade.loadOne(id).subscribe(() => {});\r\n }\r\n\r\n onSubmit(): void {\r\n const isSubmitting = this.editMode()\r\n ? this.facade.isUpdatingLookupItem()\r\n : this.facade.isAddingLookupItem();\r\n\r\n if (this.lookupItemFormControl.valid && !isSubmitting) {\r\n const formValue = this.lookupItemFormControl.value;\r\n\r\n if (this.editMode() && this.itemData()) {\r\n const lookupItemId = this.itemData()!.id;\r\n const updatePayload: UpdateLookupItemDto = {\r\n name: {\r\n en: formValue.nameEn,\r\n ar: formValue.nameAr,\r\n },\r\n color: formValue.color,\r\n };\r\n\r\n this.facade\r\n .updateItem(this.lookupId(), lookupItemId, updatePayload)\r\n .subscribe({\r\n next: (response: any) => {\r\n this.ref.close({ success: true, data: response });\r\n },\r\n error: () => {},\r\n });\r\n } else {\r\n const createPayload: CreateLookupItemDto = {\r\n lookupId: this.lookupId(),\r\n name: {\r\n en: formValue.nameEn,\r\n ar: formValue.nameAr,\r\n },\r\n color: formValue.color,\r\n };\r\n\r\n this.facade.createItem(this.lookupId(), createPayload).subscribe({\r\n next: (response: any) => {\r\n this.ref.close({ success: true, data: response });\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n }\r\n}\r\n","<div [class]=\"'flex flex-col gap-1 p-4 my-4' + modal.contentClass\">\r\n <form class=\"col-span-1\">\r\n <mt-dynamic-form\r\n [formConfig]=\"lookupItemFormConfig()\"\r\n [formControl]=\"lookupItemFormControl\"\r\n />\r\n </form>\r\n</div>\r\n\r\n<div [class]=\"modal.footerClass\" class=\"mt-7\">\r\n <mt-button\r\n [label]=\"buttonLabel()\"\r\n (click)=\"onSubmit()\"\r\n [loading]=\"\r\n editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem()\r\n \"\r\n [disabled]=\"\r\n !lookupItemFormControl.valid ||\r\n (editMode() ? facade.isUpdatingLookupItem() : facade.isAddingLookupItem())\r\n \"\r\n />\r\n</div>\r\n","import {\r\n Component,\r\n computed,\r\n inject,\r\n linkedSignal,\r\n signal,\r\n TemplateRef,\r\n viewChild,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Button } from '@masterteam/components/button';\r\nimport { LookupItem, LookupsFacade } from '../../../store/lookups';\r\nimport { Card } from '@masterteam/components/card';\r\nimport { Page } from '@masterteam/components/page';\r\nimport { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { TextField } from '@masterteam/components/text-field';\r\nimport { ColumnDef, Table, TableAction } from '@masterteam/components/table';\r\nimport { LookupItemForm } from './lookup-item-form/lookup-item-form';\r\nimport { Avatar } from '@masterteam/components/avatar';\r\nimport { SkeletonModule } from 'primeng/skeleton';\r\nimport { TranslocoDirective, TranslocoService } from '@jsverse/transloco';\r\nimport { ModalService } from '@masterteam/components/modal';\r\nimport { finalize } from 'rxjs';\r\n@Component({\r\n selector: 'mt-lookups-details',\r\n imports: [\r\n Button,\r\n Card,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n TextField,\r\n Table,\r\n Avatar,\r\n SkeletonModule,\r\n TranslocoDirective,\r\n Page,\r\n ],\r\n templateUrl: './lookup-details.html',\r\n styleUrls: ['./lookup-details.scss'],\r\n})\r\nexport default class LookupDetails implements OnInit {\r\n statusCol = viewChild.required<TemplateRef<any>>('statusCol');\r\n\r\n private readonly router = inject(Router);\r\n protected readonly facade = inject(LookupsFacade);\r\n private readonly route = inject(ActivatedRoute);\r\n\r\n readonly avatarStyle = {\r\n '--p-avatar-background': '#E0F2FE',\r\n '--p-avatar-color': '#0086C9',\r\n };\r\n private readonly fb = inject(FormBuilder);\r\n modal: ModalService = inject(ModalService);\r\n transloco = inject(TranslocoService);\r\n\r\n isEditMode = signal<boolean>(false);\r\n\r\n readonly id = computed(() => {\r\n const idParam = this.route.snapshot.paramMap.get('id');\r\n return idParam ? idParam : '';\r\n });\r\n lookupItems = computed(() => this.facade.selectedLookup()?.items || []);\r\n allowManage = computed(() => this.facade.selectedLookup()?.allowManage);\r\n allowDelete = computed(() => this.facade.selectedLookup()?.allowDelete);\r\n deletingRowIds = signal<any[]>([]);\r\n rowActions = computed<TableAction[]>(() => {\r\n const actions: TableAction[] = [];\r\n\r\n if (this.allowManage()) {\r\n actions.push({\r\n icon: 'custom.pencil',\r\n tooltip: this.transloco.translate('lookups.Edit'),\r\n color: 'primary',\r\n action: (row: LookupItem) => {\r\n this.addEditItemDialog(row);\r\n },\r\n });\r\n }\r\n\r\n if (this.allowDelete()) {\r\n actions.push({\r\n icon: 'general.trash-01',\r\n tooltip: this.transloco.translate('lookups.Delete'),\r\n color: 'danger',\r\n variant: 'outlined',\r\n action: (row: LookupItem) => {\r\n this.deletingRowIds.update((ids) => [...ids, row.id]);\r\n this.facade\r\n .deleteItem(this.id(), row.id)\r\n .pipe(\r\n finalize(() => {\r\n this.deletingRowIds.update((ids) =>\r\n ids.filter((id) => id !== row.id),\r\n );\r\n }),\r\n )\r\n .subscribe({\r\n error: () => {},\r\n });\r\n },\r\n confirmation: {\r\n type: 'popup',\r\n confirmationType: 'delete',\r\n },\r\n loading: (row: LookupItem) => this.deletingRowIds().includes(row.id),\r\n });\r\n }\r\n\r\n return actions;\r\n });\r\n\r\n lookupForm = this.fb.group({\r\n nameAr: [''],\r\n nameEn: [''],\r\n });\r\n\r\n tableColumns = linkedSignal<ColumnDef[]>(() => [\r\n {\r\n key: 'name.en',\r\n label: this.transloco.translate('lookups.EnglishTitle'),\r\n },\r\n {\r\n key: 'name.ar',\r\n label: this.transloco.translate('lookups.ArabicTitle'),\r\n },\r\n {\r\n key: 'color',\r\n label: this.transloco.translate('lookups.StatusColor'),\r\n type: 'custom',\r\n customCellTpl: this.statusCol(),\r\n },\r\n ]);\r\n\r\n ngOnInit(): void {\r\n this.loadLookupData();\r\n }\r\n\r\n loadLookupData(): void {\r\n this.facade.loadOne(this.id(), 'edit').subscribe({\r\n next: () => {\r\n const selected = this.facade.selectedLookup();\r\n if (selected) {\r\n this.lookupForm.patchValue({\r\n nameAr: selected.name?.ar || '',\r\n nameEn: selected.name?.en || '',\r\n });\r\n }\r\n },\r\n error: () => {},\r\n });\r\n }\r\n\r\n goBack(): void {\r\n this.router.navigate(['..'], { relativeTo: this.route });\r\n }\r\n\r\n addEditItemDialog(lookupItem: LookupItem | null = null): void {\r\n this.modal.openModal(LookupItemForm, 'dialog', {\r\n header: lookupItem\r\n ? this.transloco.translate('lookups.Edit_Item')\r\n : this.transloco.translate('lookups.Create_New_Item'),\r\n styleClass: '!w-[40vw] ',\r\n height: 'auto',\r\n appendTo: 'body',\r\n dismissableMask: true,\r\n inputValues: {\r\n lookupId: this.id(),\r\n itemData: lookupItem,\r\n },\r\n });\r\n }\r\n\r\n enableEdit(): void {\r\n this.isEditMode.set(true);\r\n }\r\n\r\n cancelEdit(): void {\r\n this.isEditMode.set(false);\r\n const selected = this.facade.selectedLookup();\r\n\r\n if (selected) {\r\n this.lookupForm.patchValue({\r\n nameAr: selected.name?.ar || '',\r\n nameEn: selected.name?.en || '',\r\n });\r\n }\r\n }\r\n\r\n saveLookup(): void {\r\n if (this.lookupForm.valid && !this.facade.isUpdatingLookup()) {\r\n const updatePayload = {\r\n id: Number(this.id()),\r\n name: {\r\n ar: this.lookupForm.value.nameAr || '',\r\n en: this.lookupForm.value.nameEn || '',\r\n },\r\n };\r\n\r\n this.facade.update(updatePayload).subscribe({\r\n next: () => {\r\n this.isEditMode.set(false);\r\n },\r\n error: () => {},\r\n });\r\n }\r\n }\r\n}\r\n","<ng-container *transloco=\"let t\">\r\n <mt-page\r\n [title]=\"t('lookups.Product_Status')\"\r\n [avatarIcon]=\"'file.file-plus-02'\"\r\n [avatarStyle]=\"{\r\n '--p-avatar-background': 'var(--p-yellow-100)',\r\n '--p-avatar-color': 'var(--p-yellow-700)',\r\n }\"\r\n [avatarStyle]=\"avatarStyle\"\r\n (backButtonClick)=\"goBack()\"\r\n backButton\r\n >\r\n <div class=\"flex flex-col gap-4 m-auto w-1/2 max-w-2/3 min-w-md mt-7\">\r\n @if (facade.isLoadingLookupById()) {\r\n <div class=\"p-5\">\r\n <p-skeleton\r\n width=\"100%\"\r\n height=\"10rem\"\r\n styleClass=\"mb-5\"\r\n ></p-skeleton>\r\n <p-skeleton width=\"100%\" height=\"20rem\"></p-skeleton>\r\n </div>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Information\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage() && !isEditMode()) {\r\n <mt-button\r\n label=\"{{ t('lookups.Edit') }}\"\r\n size=\"small\"\r\n (click)=\"enableEdit()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-10\">\r\n <form class=\"flex size-full gap-4 p-5\" [formGroup]=\"lookupForm\">\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.EnglishName')\"\r\n formControlName=\"nameEn\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n <div class=\"flex-1\">\r\n <mt-text-field\r\n [label]=\"t('lookups.ArabicName')\"\r\n formControlName=\"nameAr\"\r\n [readonly]=\"!isEditMode()\"\r\n ></mt-text-field>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n @if (isEditMode()) {\r\n <div class=\"actions flex gap-3 px-5 pb-5 justify-end\">\r\n <mt-button\r\n label=\"{{ t('lookups.Save') }}\"\r\n [loading]=\"facade.isUpdatingLookup()\"\r\n [disabled]=\"!lookupForm.valid || facade.isUpdatingLookup()\"\r\n (click)=\"saveLookup()\"\r\n ></mt-button>\r\n <mt-button\r\n label=\"{{ t('lookups.Cancel') }}\"\r\n [outlined]=\"true\"\r\n [disabled]=\"facade.isUpdatingLookup()\"\r\n (click)=\"cancelEdit()\"\r\n ></mt-button>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n @if (lookupItems().length > 0) {\r\n <mt-card class=\"mt-4\">\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n @if (allowManage()) {\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n ></mt-button>\r\n }\r\n </div>\r\n\r\n <mt-table\r\n [data]=\"lookupItems()\"\r\n [columns]=\"tableColumns()\"\r\n [rowActions]=\"rowActions()\"\r\n storageKey=\"lookup-details-items-table\"\r\n ></mt-table>\r\n <ng-template #statusCol let-row>\r\n <div\r\n class=\"border-circle\"\r\n [style.background-color]=\"row?.color || row.color\"\r\n [style]=\"'width: 1.5rem; height: 1.5rem; border-radius: 50%;'\"\r\n ></div>\r\n </ng-template>\r\n </ng-template>\r\n </mt-card>\r\n } @else {\r\n <mt-card>\r\n <ng-template #headless>\r\n <div\r\n class=\"flex justify-between align-center border-b px-4 py-5 border-surface\"\r\n >\r\n <div class=\"flex items-center justify-between\">\r\n <h3 class=\"text-xl font-semibold\">\r\n {{ t(\"lookups.Items_List\") }}\r\n </h3>\r\n </div>\r\n </div>\r\n @if (allowManage()) {\r\n <div class=\"p-8\">\r\n <div\r\n class=\"content flex flex-col gap-5 items-center text-center p-8 border-dashed border-2 border-(--p-content-border-color)\"\r\n >\r\n <mt-avatar\r\n style=\"\r\n --p-avatar-background: #d7f5f6;\r\n --p-avatar-color: #2aaec0;\r\n \"\r\n [icon]=\"'editor.dotpoints-01'\"\r\n size=\"large\"\r\n shape=\"square\"\r\n ></mt-avatar>\r\n\r\n <div class=\"flex flex-col gap-1\">\r\n <div class=\"title text-lg font-semibold\">\r\n {{ t(\"lookups.add_items_title\") }}\r\n </div>\r\n\r\n <div\r\n class=\"description text-sm text-muted-foreground secondary text-surface-500\"\r\n >\r\n {{ t(\"lookups.add_items_description\") }}\r\n </div>\r\n </div>\r\n\r\n <div>\r\n <mt-button\r\n icon=\"general.plus\"\r\n label=\"{{ t('lookups.Create_New_Item') }}\"\r\n (click)=\"addEditItemDialog()\"\r\n />\r\n </div>\r\n </div>\r\n </div>\r\n }\r\n </ng-template>\r\n </mt-card>\r\n }\r\n }\r\n </div>\r\n </mt-page>\r\n</ng-container>\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'mt-lookups-custom',\r\n imports: [],\r\n templateUrl: './lookups-custom.html',\r\n styleUrl: './lookups-custom.scss',\r\n})\r\nexport default class LookupsCustom {}\r\n","<p>lookups-custom works!</p>\r\n","// store/index.ts\r\nexport * from './lookups';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,28 +1,28 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@masterteam/lookups",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.7",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"directory": "../../../dist/masterteam/lookups",
|
|
6
6
|
"linkDirectory": false,
|
|
7
7
|
"access": "public"
|
|
8
8
|
},
|
|
9
9
|
"peerDependencies": {
|
|
10
|
-
"@angular/common": "^21.
|
|
11
|
-
"@angular/core": "^21.
|
|
12
|
-
"@angular/forms": "^21.
|
|
13
|
-
"@angular/cdk": "^21.
|
|
14
|
-
"@primeuix/themes": "^2.0.
|
|
15
|
-
"@tailwindcss/postcss": "^4.
|
|
16
|
-
"@jsverse/transloco": "^8.0
|
|
17
|
-
"postcss": "^8.5.
|
|
18
|
-
"primeng": "21.
|
|
10
|
+
"@angular/common": "^21.2.8",
|
|
11
|
+
"@angular/core": "^21.2.8",
|
|
12
|
+
"@angular/forms": "^21.2.8",
|
|
13
|
+
"@angular/cdk": "^21.2.6",
|
|
14
|
+
"@primeuix/themes": "^2.0.3",
|
|
15
|
+
"@tailwindcss/postcss": "^4.2.2",
|
|
16
|
+
"@jsverse/transloco": "^8.3.0",
|
|
17
|
+
"postcss": "^8.5.9",
|
|
18
|
+
"primeng": "21.1.5",
|
|
19
19
|
"rxjs": "^7.8.2",
|
|
20
|
-
"tailwindcss": "^4.
|
|
20
|
+
"tailwindcss": "^4.2.2",
|
|
21
21
|
"tailwindcss-primeui": "^0.6.1",
|
|
22
22
|
"@ngxs/store": "^20.1.0",
|
|
23
|
+
"@masterteam/components": "^0.0.139",
|
|
23
24
|
"@masterteam/icons": "^0.0.14",
|
|
24
|
-
"@masterteam/forms": "^0.0.
|
|
25
|
-
"@masterteam/components": "^0.0.124"
|
|
25
|
+
"@masterteam/forms": "^0.0.65"
|
|
26
26
|
},
|
|
27
27
|
"sideEffects": false,
|
|
28
28
|
"exports": {
|
|
@@ -42,6 +42,7 @@
|
|
|
42
42
|
},
|
|
43
43
|
"module": "fesm2022/masterteam-lookups.mjs",
|
|
44
44
|
"typings": "types/masterteam-lookups.d.ts",
|
|
45
|
+
"type": "module",
|
|
45
46
|
"dependencies": {
|
|
46
47
|
"tslib": "^2.8.1"
|
|
47
48
|
}
|