@es.framework/ng.ui.core 2.0.64 → 2.0.66
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -3
- package/attachments/README.md +3 -3
- package/base-crud/README.md +3 -3
- package/breadcrumb/README.md +3 -3
- package/checkbox/README.md +3 -3
- package/collapsible/README.md +3 -3
- package/color-picker/README.md +3 -3
- package/column-settings-popover/README.md +3 -3
- package/custom-switch/README.md +3 -3
- package/datepicker/README.md +3 -3
- package/deactivation-reason/README.md +3 -3
- package/excel-import/README.md +3 -3
- package/fesm2022/es.framework-ng.ui.core-attachments.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-attachments.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-base-crud.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs +108 -108
- package/fesm2022/es.framework-ng.ui.core-breadcrumb.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-checkbox.mjs +54 -54
- package/fesm2022/es.framework-ng.ui.core-checkbox.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-collapsible.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-color-picker.mjs +44 -44
- package/fesm2022/es.framework-ng.ui.core-color-picker.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-column-settings-popover.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-custom-switch.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-datepicker.mjs +178 -178
- package/fesm2022/es.framework-ng.ui.core-datepicker.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs +46 -46
- package/fesm2022/es.framework-ng.ui.core-deactivation-reason.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-excel-import.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs +624 -624
- package/fesm2022/es.framework-ng.ui.core-filter-templates.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-form-button.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-form-field.mjs +80 -80
- package/fesm2022/es.framework-ng.ui.core-form-field.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-form-template.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-image.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs +44 -44
- package/fesm2022/es.framework-ng.ui.core-formly-avatar-label.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs +92 -92
- package/fesm2022/es.framework-ng.ui.core-formly-button-selector.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-button.mjs +24 -24
- package/fesm2022/es.framework-ng.ui.core-formly-button.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-presets.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs +366 -366
- package/fesm2022/es.framework-ng.ui.core-formly-prime-icon-picker.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs +16 -16
- package/fesm2022/es.framework-ng.ui.core-formly-split-button.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-ui-all.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-ui.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs +16 -16
- package/fesm2022/es.framework-ng.ui.core-formly-username-with-domain.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-assets.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs +38 -38
- package/fesm2022/es.framework-ng.ui.core-generic-autocomplete.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-button.mjs +8 -2
- package/fesm2022/es.framework-ng.ui.core-generic-button.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-card.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-card.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs +14 -3
- package/fesm2022/es.framework-ng.ui.core-generic-crud-table.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-dialog.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-errormessage.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-formly-fields.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-listbox.mjs +64 -64
- package/fesm2022/es.framework-ng.ui.core-generic-listbox.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-loadingspinner.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs +68 -68
- package/fesm2022/es.framework-ng.ui.core-generic-report-tabs.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-report.mjs +19 -3
- package/fesm2022/es.framework-ng.ui.core-generic-report.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs +442 -442
- package/fesm2022/es.framework-ng.ui.core-generic-search-advanced.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-search.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-generic-search.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-selector.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-table.mjs +16 -8
- package/fesm2022/es.framework-ng.ui.core-generic-table.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-generic-view.mjs +7 -4
- package/fesm2022/es.framework-ng.ui.core-generic-view.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-header-wrapper.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs +106 -106
- package/fesm2022/es.framework-ng.ui.core-icon-picker.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-input-switch.mjs +58 -58
- package/fesm2022/es.framework-ng.ui.core-input-switch.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs +26 -26
- package/fesm2022/es.framework-ng.ui.core-input-with-icon.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-input.mjs +64 -64
- package/fesm2022/es.framework-ng.ui.core-input.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-label-type.mjs +16 -16
- package/fesm2022/es.framework-ng.ui.core-label-type.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs +22 -22
- package/fesm2022/es.framework-ng.ui.core-loading-skeletons.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-odata-query-builder.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-query-type.mjs +14 -14
- package/fesm2022/es.framework-ng.ui.core-query-type.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-radio.mjs +30 -30
- package/fesm2022/es.framework-ng.ui.core-radio.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-repeat.mjs +354 -354
- package/fesm2022/es.framework-ng.ui.core-repeat.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-select.mjs +84 -84
- package/fesm2022/es.framework-ng.ui.core-select.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-sidebar-cards.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core-sidebar-toggles.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-tabs.mjs +14 -14
- package/fesm2022/es.framework-ng.ui.core-tabs.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-tag-type.mjs +80 -80
- package/fesm2022/es.framework-ng.ui.core-tag-type.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-text-editor.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-textarea.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core-wrappers.mjs +118 -118
- package/fesm2022/es.framework-ng.ui.core-wrappers.mjs.map +1 -1
- package/fesm2022/es.framework-ng.ui.core.mjs +2 -2
- package/fesm2022/es.framework-ng.ui.core.mjs.map +1 -1
- package/filter-templates/README.md +3 -3
- package/form-button/README.md +3 -3
- package/form-field/README.md +3 -3
- package/form-template/README.md +3 -3
- package/formly-avatar-image/README.md +3 -3
- package/formly-avatar-label/README.md +3 -3
- package/formly-button/README.md +3 -3
- package/formly-button-selector/README.md +3 -3
- package/formly-presets/README.md +3 -3
- package/formly-prime-icon-picker/README.md +3 -3
- package/formly-split-button/README.md +3 -3
- package/formly-ui/README.md +3 -3
- package/formly-ui-all/README.md +3 -3
- package/formly-username-with-domain/README.md +3 -3
- package/generic-assets/README.md +3 -3
- package/generic-autocomplete/README.md +3 -3
- package/generic-button/README.md +3 -3
- package/generic-card/README.md +3 -3
- package/generic-crud-table/README.md +3 -3
- package/generic-dialog/README.md +3 -3
- package/generic-errormessage/README.md +3 -3
- package/generic-formly-fields/README.md +3 -3
- package/generic-loadingspinner/README.md +3 -3
- package/generic-report/README.md +3 -3
- package/generic-search/README.md +3 -3
- package/generic-search-advanced/README.md +3 -3
- package/generic-selector/README.md +3 -3
- package/generic-table/README.md +3 -3
- package/generic-view/README.md +3 -3
- package/header-wrapper/README.md +3 -3
- package/icon-picker/README.md +3 -3
- package/input/README.md +3 -3
- package/input-switch/README.md +3 -3
- package/input-with-icon/README.md +3 -3
- package/label-type/README.md +3 -3
- package/loading-skeletons/README.md +3 -3
- package/odata-query-builder/README.md +3 -3
- package/package.json +1 -1
- package/query-type/README.md +3 -3
- package/radio/README.md +3 -3
- package/repeat/README.md +3 -3
- package/select/README.md +3 -3
- package/sidebar-cards/README.md +3 -3
- package/sidebar-toggles/README.md +3 -3
- package/styles.css +0 -0
- package/tabs/README.md +3 -3
- package/tag-type/README.md +3 -3
- package/text-editor/README.md +3 -3
- package/textarea/README.md +3 -3
- package/types/es.framework-ng.ui.core-generic-button.d.ts +3 -1
- package/types/es.framework-ng.ui.core-generic-crud-table.d.ts +1 -0
- package/types/es.framework-ng.ui.core-generic-report.d.ts +1 -0
- package/types/es.framework-ng.ui.core-generic-table.d.ts +1 -1
- package/wrappers/README.md +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.framework-ng.ui.core-filter-templates.mjs","sources":["../../../../libs/ng.ui.core/filter-templates/src/lib/filter-templates.module.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/filter-template.schema.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/filter-template-editor-dialog.component.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/report-templates-drawer.component.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/CrudContextService.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/app-report-templates-wrapper.component.ts","../../../../libs/ng.ui.core/filter-templates/src/es.framework-ng.ui.core-filter-templates.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FilterTemplatesModule {}\n","import { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport type FilterTemplateDefaults = {\n defaultPermission?: string;\n defaultModule?: string;\n defaultService?: string;\n defaultFeature?: string;\n};\n\nexport function FilterTemplateFormFields(\n filterFields: FormlyFieldConfig[] = [],\n defaults: FilterTemplateDefaults = {}\n): FormlyFieldConfig[] {\n const hiddenMeta = {\n filter: { hidden: true },\n sort: { hidden: true },\n group: { hidden: true },\n report: { hidden: true },\n table: { hidden: true },\n };\n\n return [\n {\n type: 'tab-type',\n props: {\n tabViewClass: 'advanced-query-tabs',\n scrollable: false,\n lazy: true,\n activeIndex: 0,\n },\n fieldGroup: [\n {\n type: 'group',\n props: {\n tabLabel: 'DETAILS',\n leftIcon: 'pi pi-info-circle',\n badge: (field: FormlyFieldConfig) => 0,\n },\n fieldGroup: [\n {\n wrappers: ['panel'],\n props: { label: '' },\n fieldGroupClassName: 'grid grid-cols-1 md:grid-cols-2 gap-3',\n fieldGroup: [\n {\n type: 'input',\n key: 'nameAr',\n props: {\n label: 'DESCRIPTION_AR',\n placeholder: 'DESCRIPTION_AR',\n required: true,\n },\n },\n {\n type: 'input',\n key: 'nameEn',\n props: {\n label: 'DESCRIPTION_EN',\n placeholder: 'DESCRIPTION_EN',\n required: false,\n },\n },\n {\n type: 'textarea',\n key: 'description',\n props: {\n label: 'DETAILS',\n placeholder: 'DETAILS',\n table: { hidden: true },\n },\n },\n {\n type: 'prime-icon-picker',\n key: 'icon',\n props: {\n label: 'ICON',\n placeholder: 'e.g. pi pi-filter',\n required: true,\n },\n },\n\n // مشاركة\n {\n key: 'shareScope',\n type: 'select',\n defaultValue: 'ALL',\n props: {\n label: 'SHARED_WITH',\n required: true,\n appendTo: 'body',\n options: [\n { label: 'ONLY_ME', value: 'ME' },\n { label: 'ALL_USERS', value: 'ALL' },\n { label: 'SPECIFIC_USERS', value: 'USERS' },\n ],\n },\n },\n {\n key: 'ShareUsersList',\n type: 'generic-selector',\n props: {\n label: 'USERS',\n serviceName: 'users/sysusrs',\n labelField: 'name',\n valueField: 'id',\n multiple: true,\n placeholder: 'SELECT_USERS',\n query:{\n filters: (searchText: string, field: FormlyFieldConfig, model?: any) => {\n return [\n // مجموعة البحث النصي\n {\n logicalOperator: 'or',\n groupLogicalOperator: 'and',\n conditions: [\n { field: 'nameAr', operator: 'contains', value: searchText },\n { field: 'nameEn', operator: 'contains', value: searchText },\n { field: 'id', operator: 'eq', value: searchText }\n ]\n },\n // مجموعة الاستبعاد حسب الحالة\n {\n logicalOperator: 'and',\n groupLogicalOperator: 'and',\n conditions: [\n { field: 'suTy', operator: 'contains', value: 'EMP' },\n ]\n }\n ];\n },},\n },\n\n hideExpression: (model) => model?.shareScope !== 'USERS',\n parsers: [\n (value: any) => {\n return value; // الاحتفاظ بالقيمة الأصلية إذا لم تكن مصفوفة\n },\n],\n },\n\n // ✅ حقول أصلية مخفية وتتعبّى تلقائيًا\n {\n type: 'input',\n key: 'permission',\n hide: true,\n defaultValue: defaults.defaultPermission,\n props: {\n label: 'PERMISSION',\n placeholder: 'e.g. Reports.View',\n ...hiddenMeta,\n },\n },\n {\n type: 'input',\n key: 'module',\n hide: true,\n defaultValue: defaults.defaultModule,\n props: {\n label: 'MODULE',\n placeholder: 'HR, CRM...',\n required: true,\n ...hiddenMeta,\n },\n },\n {\n type: 'input',\n key: 'service',\n hide: true,\n defaultValue: defaults.defaultService,\n props: {\n label: 'SERVICE_API',\n placeholder: 'Service name',\n ...hiddenMeta,\n },\n },\n {\n type: 'input',\n key: 'feature',\n hide: true,\n defaultValue: defaults.defaultFeature,\n props: {\n label: 'FEATURE',\n placeholder: 'FEATURE',\n ...hiddenMeta,\n },\n },\n\n {\n type: 'switch',\n key: 'isActive',\n props: {\n label: 'IS_ACTIVE',\n placeholder: 'IS_ACTIVE',\n table: {\n hidden: false,\n type: 'tag',\n props: { styleClass: 'font-medium' },\n },\n },\n },\n ],\n },\n ],\n },\n\n // Filters tab\n {\n type: 'group',\n props: {\n tabLabel: 'FILTERS',\n leftIcon: 'pi pi-filter',\n badge: (field: FormlyFieldConfig) => 0,\n },\n fieldGroup: [\n {\n wrappers: ['panel'],\n fieldGroup: [\n {\n key: 'filters',\n type: 'query-type',\n props: {\n type: 'text',\n label: 'Filters JSON',\n placeholder: 'RuleBuilder / OData JSON',\n required: false,\n rows: 10,\n class: 'font-mono text-sm',\n description: 'Enter RuleBuilder or OData filter JSON here',\n filterFields,\n ...hiddenMeta,\n },\n },\n ],\n },\n ],\n },\n ],\n },\n ];\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { BaseService } from '@es.framework/ng.core/services';\nimport { GenericDialogComponent } from '@es.framework/ng.ui.core/generic-dialog';\nimport { FilterTemplateFormFields } from './filter-template.schema';\n\ntype EditorMode = 'create' | 'edit';\n\n@Component({\n selector: 'filter-template-editor-dialog',\n standalone: true,\n imports: [CommonModule, GenericDialogComponent],\n providers: [BaseService],\n template: `\n <app-generic-dialog\n [service]=\"svc\"\n [apiName]=\"apiName\"\n [idField]=\"idField\"\n [form]=\"form\"\n [formFields]=\"computedFields\"\n [model]=\"model\"\n [isEditMode]=\"mode === 'edit'\"\n [isViewMode]=\"false\"\n [displayMode]=\"'dialog'\"\n [dialogVisible]=\"visible\"\n [dialogMaxWidth]=\"dialogMaxWidth\"\n [beforeSaveTransform]=\"beforeSaveTransform\"\n (visibleChange)=\"onVisibleChange($event)\"\n (afterSave)=\"onAfterSave($event)\"\n ></app-generic-dialog>\n `,\n})\nexport class FilterTemplateEditorDialogComponent {\n svc = inject(BaseService);\n form = new UntypedFormGroup({});\n\n /** فتح/إغلاق */\n @Input() visible = false;\n @Output() visibleChange = new EventEmitter<boolean>();\n\n /** وضع المكون */\n @Input() mode: EditorMode = 'create';\n\n /** نموذج القالب */\n @Input() model: any = {};\n\n /** حقول query builder */\n @Input() filterFields: FormlyFieldConfig[] = [];\n\n\n\n /** API */\n @Input() apiName ='';\n @Input() moduleName = 'crm'; // إذا عندكم moduleName في السيرفر\n @Input() idField = 'id';\n\n /** Defaults */\n // @Input() defaultModule = 'crm';\n // @Input() defaultService = '';\n @Input() defaultFeature = '';\n @Input() defaultPermission = '';\n @Input() defaultCategory = '';\n\n /** UI */\n @Input() dialogMaxWidth = '46rem';\n\n /** Events */\n @Output() saved = new EventEmitter<any>();\n\n\n @Input() currentUserId: string | null = null;\n\n get computedFields(): FormlyFieldConfig[] {\n return FilterTemplateFormFields(this.filterFields, {\n defaultPermission: this.defaultPermission,\n defaultModule: this.moduleName,\n defaultService: this.apiName,\n defaultFeature: this.defaultFeature,\n });\n }\n\n // ✅ نضمن إرسال القيم المخفية دائماً\n beforeSaveTransform = (record: any) => {\n const r = { ...(record || {}) };\n\n r.module = r.module ?? this.moduleName;\n r.service = r.service ?? this.apiName;\n r.feature = r.feature ?? this.defaultFeature;\n r.permission = r.permission ?? this.defaultPermission;\n r.category = r.category ?? this.defaultCategory;\n r.isActive = r.isActive ?? true;\n r.shareScope = r.shareScope ?? 'ALL';\n\n if (r.shareScope === 'ME') {\n r.shareUsers = this.currentUserId ? `<${this.currentUserId}>` : '';\n }\n\n return r;\n };\n\n onVisibleChange(v: boolean) {\n this.visible = v;\n this.visibleChange.emit(v);\n }\n\n onAfterSave(e: any) {\n // e.response غالباً يرجع العنصر بعد الحفظ\n this.saved.emit(e?.response ?? e?.record ?? this.model);\n this.onVisibleChange(false);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\nimport { ButtonModule } from 'primeng/button';\nimport { InputTextModule } from 'primeng/inputtext';\nimport { TooltipModule } from 'primeng/tooltip';\nimport { BaseService, SwalService } from '@es.framework/ng.core/services';\nimport { DrawerModule } from 'primeng/drawer';\nimport { finalize } from 'rxjs';\nimport { LoadingSkeletonComponent } from \"@es.framework/ng.ui.core/loading-skeletons\";\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport {FilterTemplateEditorDialogComponent} from \"./filter-template-editor-dialog.component\";\n\n\n@Component({\n selector: 'saved-report-templates-drawer',\n standalone: true,\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n ButtonModule,\n InputTextModule,\n TooltipModule,\n DrawerModule,\n LoadingSkeletonComponent,\n FilterTemplateEditorDialogComponent\n],\n providers: [BaseService],\n template: `\n <p-drawer\n [visible]=\"visible\"\n (visibleChange)=\"onVisibleChange($event)\"\n [position]=\"position\"\n [modal]=\"modal\"\n [dismissible]=\"dismissable\"\n [closeOnEscape]=\"closeOnEscape\"\n [blockScroll]=\"blockScroll\"\n [showCloseIcon]=\"showCloseIcon\"\n>\n <div class=\"h-full flex flex-col bg-white\">\n\n <!-- Header -->\n <div class=\"sticky top-0 z-10 bg-white border-b border-gray-200 px-4 py-4\">\n <div class=\"flex items-center gap-3\">\n <div class=\"w-9 h-9 rounded-xl flex items-center justify-center bg-gray-100 text-gray-700\">\n <i class=\"pi pi-bookmark\"></i>\n </div>\n\n <div class=\"flex-1 min-w-0\">\n <div class=\"text-xs text-gray-500\">\n {{ 'TEMPLATES' | translate }}\n </div>\n <div class=\"text-base font-semibold text-gray-900 truncate\">\n {{ selected ? getName(selected) : ('SELECT_TEMPLATE' | translate) }}\n </div>\n </div>\n\n <button\n pButton\n type=\"button\"\n class=\"p-button-rounded p-button-sm p-button-text\"\n icon=\"pi pi-refresh\"\n (click)=\"refresh()\"\n [disabled]=\"loading\"\n pTooltip=\"{{ 'REFRESH' | translate }}\"\n tooltipPosition=\"bottom\"\n ></button>\n\n <button\n pButton\n type=\"button\"\n class=\"p-button-rounded p-button-sm p-button-primary\"\n icon=\"pi pi-plus\"\n (click)=\"openTemplateCreate()\"\n [disabled]=\"loading\"\n pTooltip=\"{{ 'COMMON.ADD' | translate }}\"\n tooltipPosition=\"bottom\"\n ></button>\n </div>\n\n <!-- Search -->\n <div class=\"mt-4\">\n <span class=\"p-input-icon-left w-full\">\n <i class=\"pi pi-search\"></i>\n <input\n pInputText\n class=\"w-full !rounded-xl\"\n [(ngModel)]=\"search\"\n [disabled]=\"loading\"\n [placeholder]=\"'SEARCH_FOR_A_VIEW' | translate\"\n />\n </span>\n </div>\n </div>\n\n <!-- Content -->\n <div class=\"flex-1 overflow-auto px-3 py-3\">\n\n <!-- ✅ Loading -->\n <div *ngIf=\"loading\" class=\"py-4\">\n <app-loading-skeleton [itemsCount]=\"4\"></app-loading-skeleton>\n </div>\n\n <!-- ✅ Empty -->\n <div *ngIf=\"!loading && filteredAll.length === 0\" class=\"text-sm text-gray-500 text-center py-12\">\n <div class=\"mx-auto mb-3 w-12 h-12 rounded-2xl bg-gray-100 flex items-center justify-center\">\n <i class=\"pi pi-inbox text-gray-500\"></i>\n </div>\n {{ 'NO_DATA_FOUND' | translate }}\n </div>\n\n <!-- ✅ Content when not loading -->\n <ng-container *ngIf=\"!loading\">\n\n <!-- Favorites -->\n <ng-container *ngIf=\"favList.length > 0\">\n <button\n type=\"button\"\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\n (click)=\"favOpen = !favOpen\"\n >\n <span class=\"flex items-center gap-2\">\n <i class=\"pi pi-star-fill text-yellow-500\"></i>\n {{ 'FAVOURITES' | translate }}\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ favList.length }}</span>\n </span>\n <i class=\"pi text-xs\" [ngClass]=\"favOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\n </button>\n\n <div *ngIf=\"favOpen\" class=\"mt-1 space-y-1\">\n <ng-container *ngFor=\"let t of favList\">\n <div\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer\n hover:bg-gray-50\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\n (click)=\"select(t)\"\n >\n <span\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\n ></span>\n\n <i class=\"text-base shrink-0\"\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\n\n <span class=\"flex-1 truncate\"\n [class.font-semibold]=\"isSelected(t)\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\n {{ getName(t) }}\n </span>\n\n <!-- Actions -->\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\n (click)=\"$event.stopPropagation()\">\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\n (click)=\"toggleFav(t)\"></button>\n\n @if (!isSelected(t)) {\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n icon=\"pi pi-pencil\"\n (click)=\"openTemplateEdit(t)\"></button>\n\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\n icon=\"pi pi-trash\"\n (click)=\"confirmDelete(t)\"></button>\n }\n </div>\n </div>\n </ng-container>\n </div>\n\n <div class=\"my-3 border-b border-gray-200\"></div>\n </ng-container>\n\n <!-- Shared -->\n <ng-container *ngIf=\"sharedList.length > 0\">\n <button\n type=\"button\"\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\n (click)=\"sharedOpen = !sharedOpen\"\n >\n <span class=\"flex items-center gap-2\">\n <i class=\"pi pi-users text-gray-600\"></i>\n {{ 'SHARED' | translate }}\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ sharedList.length }}</span>\n </span>\n <i class=\"pi text-xs\" [ngClass]=\"sharedOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\n </button>\n\n <div *ngIf=\"sharedOpen\" class=\"mt-1 space-y-1\">\n <ng-container *ngFor=\"let t of sharedList\">\n <div\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer hover:bg-gray-50\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\n (click)=\"select(t)\"\n >\n <span\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\n ></span>\n\n <i class=\"text-base shrink-0\"\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\n\n <span class=\"flex-1 truncate\"\n [class.font-semibold]=\"isSelected(t)\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\n {{ getName(t) }}\n </span>\n\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\n (click)=\"$event.stopPropagation()\">\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\n (click)=\"toggleFav(t)\"></button>\n\n @if (!isSelected(t)) {\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n icon=\"pi pi-pencil\"\n (click)=\"openTemplateEdit(t)\"></button>\n\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\n icon=\"pi pi-trash\"\n (click)=\"confirmDelete(t)\"></button>\n }\n </div>\n </div>\n </ng-container>\n </div>\n\n <div class=\"my-3 border-b border-gray-200\"></div>\n </ng-container>\n\n <!-- Private -->\n <ng-container *ngIf=\"privateList.length > 0\">\n <button\n type=\"button\"\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\n (click)=\"privateOpen = !privateOpen\"\n >\n <span class=\"flex items-center gap-2\">\n <i class=\"pi pi-lock text-gray-600\"></i>\n {{ 'PRIVATE' | translate }}\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ privateList.length }}</span>\n </span>\n <i class=\"pi text-xs\" [ngClass]=\"privateOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\n </button>\n\n <div *ngIf=\"privateOpen\" class=\"mt-1 space-y-1\">\n <ng-container *ngFor=\"let t of privateList\">\n <div\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer hover:bg-gray-50\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\n (click)=\"select(t)\"\n >\n <span\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\n ></span>\n\n <i class=\"text-base shrink-0\"\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\n\n <span class=\"flex-1 truncate\"\n [class.font-semibold]=\"isSelected(t)\"\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\n {{ getName(t) }}\n </span>\n\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\n (click)=\"$event.stopPropagation()\">\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\n (click)=\"toggleFav(t)\"></button>\n\n @if (!isSelected(t)) {\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\n icon=\"pi pi-pencil\"\n (click)=\"openTemplateEdit(t)\"></button>\n\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\n icon=\"pi pi-trash\"\n (click)=\"confirmDelete(t)\"></button>\n }\n </div>\n </div>\n </ng-container>\n </div>\n </ng-container>\n\n </ng-container>\n </div>\n </div>\n</p-drawer>\n\n<filter-template-editor-dialog\n [(visible)]=\"templateEditorVisible\"\n [mode]=\"templateEditorMode\"\n [model]=\"templateEditorModel\"\n [filterFields]=\"filterFields\"\n [moduleName]=\"moduleName\"\n [apiName]=\"apiName\"\n [defaultFeature]=\"defaultFeature\"\n [defaultCategory]=\"defaultCategory\"\n [defaultPermission]=\"defaultPermission\"\n [currentUserId]=\"currentUserId\"\n (saved)=\"onTemplateSaved($event)\">\n</filter-template-editor-dialog>\n\n\n `,\n})\nexport class SavedReportTemplatesDrawerComponent implements OnInit {\n private svc = inject(BaseService);\n private swal = inject(SwalService);\n private tr = inject(TranslateService);\n\n @Input() apiName = 'filter-templates';\n @Input() module = 'crm';\n @Input() service = '';\n @Input() category = '';\n @Input() feature = '';\n\n @Output() templateSelected = new EventEmitter<any>();\n @Output() edit = new EventEmitter<any>();\n\n // ✅ جديد\n @Output() add = new EventEmitter<void>();\n\n // ✅ التحكم من الأب\n @Input() visible = false;\n @Output() visibleChange = new EventEmitter<boolean>();\n\n // ✅ اختياري: خلّها قابلة للتخصيص من الأب\n @Input() position: 'left' | 'right' = 'left';\n @Input() showCloseIcon = true;\n @Input() modal = true; // ✅ يغمّق اللي تحت\n @Input() dismissable = true; // ✅ الضغط خارج/على الماسك يقفل\n @Input() closeOnEscape = true; // ✅ ESC يقفل\n @Input() blockScroll = true; // ✅ يمنع سكرول للخلفية\n\n @Input() filterFields: FormlyFieldConfig[] = [];\n \n@Input() moduleName = '';\n\n@Input() defaultFeature = '';\n@Input() defaultCategory = '';\n@Input() defaultPermission = '';\n\n@Input() currentUserId: string | null = null;\n\n templateEditorVisible = false;\ntemplateEditorMode: 'create' | 'edit' = 'create';\ntemplateEditorModel: any = {};\n\n templates: any[] = [];\n selected: any | null = null;\n loading = false;\n\n\n search = '';\n\n favOpen = true;\n sharedOpen = true;\n privateOpen = true;\n\n ngOnInit(): void {\n this.refresh();\n }\n\n refresh() {\n this.loading = true;\n\n this.svc.apiName = this.apiName;\n this.svc.moduleName = this.module;\n\n const filters: any = {\n service: this.service,\n module: this.module,\n category: this.category,\n };\n\n this.svc.getList({ sorting: 'id DESC', filtering: { filters } })\n .pipe(finalize(() => (this.loading = false)))\n .subscribe({\n next: (res: any) => {\n this.templates = res?.items ?? res ?? [];\n if (this.selected) {\n this.selected =\n this.templates.find(x => String(x.id) === String(this.selected!.id)) ?? null;\n }\n },\n error: () =>\n this.swal.error(\n this.tr.instant('ERROR_TITLE'),\n this.tr.instant('ERROR.FAILED_LOAD_DATA')\n ),\n });\n}\n\n\n get filteredAll(): any[] {\n const q = (this.search || '').trim().toLowerCase();\n if (!q) return [...this.templates];\n return this.templates.filter(t => (this.getName(t) || '').toLowerCase().includes(q));\n }\n\n get favList(): any[] {\n return this.filteredAll.filter(x => !!x.isFav);\n }\n\n get privateList(): any[] {\n return this.filteredAll.filter(x => x.shareScope === 'ME');\n }\n\n get sharedList(): any[] {\n return this.filteredAll.filter(x => x.shareScope !== 'ME' && !x.isFav);\n }\n\n select(t: any) {\n if (this.isSelected(t)) {\n this.clearSelection();\n return;\n }\n this.selected = t;\n this.templateSelected.emit(t);\n}\n\n\n isSelected(t: any) {\n return this.selected && String(this.selected.id) === String(t.id);\n }\n\n getName(t: any): string {\n const lang = this.tr.currentLang || 'ar';\n return (lang.startsWith('ar') ? (t.nameAr || t.nameEn) : (t.nameEn || t.nameAr)) || '';\n }\n\n toggleFav(t: any) {\n const payload: any = { ...t, isFav: !t.isFav };\n\n this.svc.update(String(t.id), payload).subscribe({\n next: (u: any) => (t.isFav = u?.isFav ?? payload.isFav),\n error: () => this.swal.error(this.tr.instant('ERROR_TITLE'), this.tr.instant('OPERATION_FAILED')),\n });\n }\n\n confirmDelete(t: any) {\n this.swal.confirm(\n this.tr.instant('DELETE_CONFIRM_TITLE'),\n this.tr.instant('DELETE_CONFIRM_MESSAGE'),\n this.tr.instant('COMMON.DELETE')\n ).then((r: any) => {\n if (!r?.isConfirmed) return;\n this.deleteTemplate(t);\n });\n}\n\nprivate deleteTemplate(t: any) {\n // مهم: نفس إعدادات الاستدعاءات الثانية\n this.svc.apiName = this.apiName;\n this.svc.moduleName = this.module;\n\n // ✅ استدعاء Endpoint الحذف\n // ملاحظة: اسم الميثود يعتمد على BaseService عندكم:\n // غالباً delete(id) أو remove(id)\n const id = String(t.id);\n\n (this.svc as any).delete(id).subscribe({\n next: () => {\n // حدّث القائمة محلياً\n this.templates = this.templates.filter(x => String(x.id) !== id);\n\n // لو المحذوف هو المحدد\n if (this.selected && String(this.selected.id) === id) {\n this.selected = null;\n this.templateSelected.emit(null);\n }\n\n this.swal.toast(\n this.tr.instant('RECORD_DELETED_SUCCESSFULLY'),\n );\n },\n error: () =>\n this.swal.error(this.tr.instant('ERROR_TITLE'), this.tr.instant('OPERATION_FAILED')),\n });\n}\n\n\n onVisibleChange(v: boolean) {\n this.visible = v;\n this.visibleChange.emit(v);\n }\n\n clearSelection() {\n this.selected = null;\n this.templateSelected.emit(null); // ✅ يبلغ الأب: ما عاد فيه قالب\n}\n\n\n\nopenTemplateCreate() {\n this.templateEditorMode = 'create';\n this.templateEditorModel = {\n isActive: true,\n shareScope: 'ALL',\n };\n this.templateEditorVisible = true;\n}\n\nopenTemplateEdit(t: any) {\n this.templateEditorMode = 'edit';\n this.templateEditorModel = { ...t };\n this.templateEditorVisible = true;\n}\n\nonTemplateSaved(saved: any) {\n this.refresh(); // ✅ هو نفسه يحدث القائمة\n this.templateEditorVisible = false;\n}\n\n}\n","import { Injectable, signal } from \"@angular/core\";\nimport { Subject } from \"rxjs\";\n\n@Injectable()\nexport class CrudContextService {\n // استخدام Signals لأداء أسرع\n moduleName = signal<string>('');\n category = signal<string>('');\n feature = signal<string>('');\n filters = signal<any[]>([]);\n templateDrawerVisible = signal<boolean>(false);\n\n // حدث يطلق عند اختيار قالب\n templateSelected$ = new Subject<any>();\n\n openTemplates() { this.templateDrawerVisible.set(true); }\n closeTemplates() { this.templateDrawerVisible.set(false); }\n}\n","import { Component, inject } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { SavedReportTemplatesDrawerComponent } from './report-templates-drawer.component';\nimport { CrudContextService } from './CrudContextService';\n\n@Component({\n selector: 'app-report-templates-wrapper',\n standalone: true,\n imports: [CommonModule, SavedReportTemplatesDrawerComponent],\n template: `\n <saved-report-templates-drawer\n [visible]=\"context.templateDrawerVisible()\"\n [filterFields]=\"context.filters()\"\n [service]=\"context.moduleName()\"\n [category]=\"context.category()\"\n [feature]=\"context.feature()\"\n (templateSelected)=\"onSelect($event)\">\n </saved-report-templates-drawer>\n `\n})\nexport class ReportTemplatesWrapperComponent {\n context = inject(CrudContextService); // يحصل على نفس النسخة الخاصة بالجدول الأب\n\n onSelect(template: any) {\n this.context.templateSelected$.next(template);\n this.context.closeTemplates();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-filter-templates.mjs","sources":["../../../../libs/ng.ui.core/filter-templates/src/lib/filter-templates.module.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/filter-template.schema.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/filter-template-editor-dialog.component.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/report-templates-drawer.component.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/CrudContextService.ts","../../../../libs/ng.ui.core/filter-templates/src/lib/app-report-templates-wrapper.component.ts","../../../../libs/ng.ui.core/filter-templates/src/es.framework-ng.ui.core-filter-templates.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FilterTemplatesModule {}\n","import { FormlyFieldConfig } from '@ngx-formly/core';\r\n\r\nexport type FilterTemplateDefaults = {\r\n defaultPermission?: string;\r\n defaultModule?: string;\r\n defaultService?: string;\r\n defaultFeature?: string;\r\n};\r\n\r\nexport function FilterTemplateFormFields(\r\n filterFields: FormlyFieldConfig[] = [],\r\n defaults: FilterTemplateDefaults = {}\r\n): FormlyFieldConfig[] {\r\n const hiddenMeta = {\r\n filter: { hidden: true },\r\n sort: { hidden: true },\r\n group: { hidden: true },\r\n report: { hidden: true },\r\n table: { hidden: true },\r\n };\r\n\r\n return [\r\n {\r\n type: 'tab-type',\r\n props: {\r\n tabViewClass: 'advanced-query-tabs',\r\n scrollable: false,\r\n lazy: true,\r\n activeIndex: 0,\r\n },\r\n fieldGroup: [\r\n {\r\n type: 'group',\r\n props: {\r\n tabLabel: 'DETAILS',\r\n leftIcon: 'pi pi-info-circle',\r\n badge: (field: FormlyFieldConfig) => 0,\r\n },\r\n fieldGroup: [\r\n {\r\n wrappers: ['panel'],\r\n props: { label: '' },\r\n fieldGroupClassName: 'grid grid-cols-1 md:grid-cols-2 gap-3',\r\n fieldGroup: [\r\n {\r\n type: 'input',\r\n key: 'nameAr',\r\n props: {\r\n label: 'DESCRIPTION_AR',\r\n placeholder: 'DESCRIPTION_AR',\r\n required: true,\r\n },\r\n },\r\n {\r\n type: 'input',\r\n key: 'nameEn',\r\n props: {\r\n label: 'DESCRIPTION_EN',\r\n placeholder: 'DESCRIPTION_EN',\r\n required: false,\r\n },\r\n },\r\n {\r\n type: 'textarea',\r\n key: 'description',\r\n props: {\r\n label: 'DETAILS',\r\n placeholder: 'DETAILS',\r\n table: { hidden: true },\r\n },\r\n },\r\n {\r\n type: 'prime-icon-picker',\r\n key: 'icon',\r\n props: {\r\n label: 'ICON',\r\n placeholder: 'e.g. pi pi-filter',\r\n required: true,\r\n },\r\n },\r\n\r\n // مشاركة\r\n {\r\n key: 'shareScope',\r\n type: 'select',\r\n defaultValue: 'ALL',\r\n props: {\r\n label: 'SHARED_WITH',\r\n required: true,\r\n appendTo: 'body',\r\n options: [\r\n { label: 'ONLY_ME', value: 'ME' },\r\n { label: 'ALL_USERS', value: 'ALL' },\r\n { label: 'SPECIFIC_USERS', value: 'USERS' },\r\n ],\r\n },\r\n },\r\n {\r\n key: 'ShareUsersList',\r\n type: 'generic-selector',\r\n props: {\r\n label: 'USERS',\r\n serviceName: 'users/sysusrs',\r\n labelField: 'name',\r\n valueField: 'id',\r\n multiple: true,\r\n placeholder: 'SELECT_USERS',\r\n query:{\r\n filters: (searchText: string, field: FormlyFieldConfig, model?: any) => {\r\n return [\r\n // مجموعة البحث النصي\r\n {\r\n logicalOperator: 'or',\r\n groupLogicalOperator: 'and',\r\n conditions: [\r\n { field: 'nameAr', operator: 'contains', value: searchText },\r\n { field: 'nameEn', operator: 'contains', value: searchText },\r\n { field: 'id', operator: 'eq', value: searchText }\r\n ]\r\n },\r\n // مجموعة الاستبعاد حسب الحالة\r\n {\r\n logicalOperator: 'and',\r\n groupLogicalOperator: 'and',\r\n conditions: [\r\n { field: 'suTy', operator: 'contains', value: 'EMP' },\r\n ]\r\n }\r\n ];\r\n },},\r\n },\r\n\r\n hideExpression: (model) => model?.shareScope !== 'USERS',\r\n parsers: [\r\n (value: any) => {\r\n return value; // الاحتفاظ بالقيمة الأصلية إذا لم تكن مصفوفة\r\n },\r\n],\r\n },\r\n\r\n // ✅ حقول أصلية مخفية وتتعبّى تلقائيًا\r\n {\r\n type: 'input',\r\n key: 'permission',\r\n hide: true,\r\n defaultValue: defaults.defaultPermission,\r\n props: {\r\n label: 'PERMISSION',\r\n placeholder: 'e.g. Reports.View',\r\n ...hiddenMeta,\r\n },\r\n },\r\n {\r\n type: 'input',\r\n key: 'module',\r\n hide: true,\r\n defaultValue: defaults.defaultModule,\r\n props: {\r\n label: 'MODULE',\r\n placeholder: 'HR, CRM...',\r\n required: true,\r\n ...hiddenMeta,\r\n },\r\n },\r\n {\r\n type: 'input',\r\n key: 'service',\r\n hide: true,\r\n defaultValue: defaults.defaultService,\r\n props: {\r\n label: 'SERVICE_API',\r\n placeholder: 'Service name',\r\n ...hiddenMeta,\r\n },\r\n },\r\n {\r\n type: 'input',\r\n key: 'feature',\r\n hide: true,\r\n defaultValue: defaults.defaultFeature,\r\n props: {\r\n label: 'FEATURE',\r\n placeholder: 'FEATURE',\r\n ...hiddenMeta,\r\n },\r\n },\r\n\r\n {\r\n type: 'switch',\r\n key: 'isActive',\r\n props: {\r\n label: 'IS_ACTIVE',\r\n placeholder: 'IS_ACTIVE',\r\n table: {\r\n hidden: false,\r\n type: 'tag',\r\n props: { styleClass: 'font-medium' },\r\n },\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n\r\n // Filters tab\r\n {\r\n type: 'group',\r\n props: {\r\n tabLabel: 'FILTERS',\r\n leftIcon: 'pi pi-filter',\r\n badge: (field: FormlyFieldConfig) => 0,\r\n },\r\n fieldGroup: [\r\n {\r\n wrappers: ['panel'],\r\n fieldGroup: [\r\n {\r\n key: 'filters',\r\n type: 'query-type',\r\n props: {\r\n type: 'text',\r\n label: 'Filters JSON',\r\n placeholder: 'RuleBuilder / OData JSON',\r\n required: false,\r\n rows: 10,\r\n class: 'font-mono text-sm',\r\n description: 'Enter RuleBuilder or OData filter JSON here',\r\n filterFields,\r\n ...hiddenMeta,\r\n },\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ],\r\n },\r\n ];\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output, inject } from '@angular/core';\r\nimport { UntypedFormGroup } from '@angular/forms';\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { BaseService } from '@es.framework/ng.core/services';\r\nimport { GenericDialogComponent } from '@es.framework/ng.ui.core/generic-dialog';\r\nimport { FilterTemplateFormFields } from './filter-template.schema';\r\n\r\ntype EditorMode = 'create' | 'edit';\r\n\r\n@Component({\r\n selector: 'filter-template-editor-dialog',\r\n standalone: true,\r\n imports: [CommonModule, GenericDialogComponent],\r\n providers: [BaseService],\r\n template: `\r\n <app-generic-dialog\r\n [service]=\"svc\"\r\n [apiName]=\"apiName\"\r\n [idField]=\"idField\"\r\n [form]=\"form\"\r\n [formFields]=\"computedFields\"\r\n [model]=\"model\"\r\n [isEditMode]=\"mode === 'edit'\"\r\n [isViewMode]=\"false\"\r\n [displayMode]=\"'dialog'\"\r\n [dialogVisible]=\"visible\"\r\n [dialogMaxWidth]=\"dialogMaxWidth\"\r\n [beforeSaveTransform]=\"beforeSaveTransform\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n (afterSave)=\"onAfterSave($event)\"\r\n ></app-generic-dialog>\r\n `,\r\n})\r\nexport class FilterTemplateEditorDialogComponent {\r\n svc = inject(BaseService);\r\n form = new UntypedFormGroup({});\r\n\r\n /** فتح/إغلاق */\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n /** وضع المكون */\r\n @Input() mode: EditorMode = 'create';\r\n\r\n /** نموذج القالب */\r\n @Input() model: any = {};\r\n\r\n /** حقول query builder */\r\n @Input() filterFields: FormlyFieldConfig[] = [];\r\n\r\n\r\n\r\n /** API */\r\n @Input() apiName ='';\r\n @Input() moduleName = 'crm'; // إذا عندكم moduleName في السيرفر\r\n @Input() idField = 'id';\r\n\r\n /** Defaults */\r\n // @Input() defaultModule = 'crm';\r\n // @Input() defaultService = '';\r\n @Input() defaultFeature = '';\r\n @Input() defaultPermission = '';\r\n @Input() defaultCategory = '';\r\n\r\n /** UI */\r\n @Input() dialogMaxWidth = '46rem';\r\n\r\n /** Events */\r\n @Output() saved = new EventEmitter<any>();\r\n\r\n\r\n @Input() currentUserId: string | null = null;\r\n\r\n get computedFields(): FormlyFieldConfig[] {\r\n return FilterTemplateFormFields(this.filterFields, {\r\n defaultPermission: this.defaultPermission,\r\n defaultModule: this.moduleName,\r\n defaultService: this.apiName,\r\n defaultFeature: this.defaultFeature,\r\n });\r\n }\r\n\r\n // ✅ نضمن إرسال القيم المخفية دائماً\r\n beforeSaveTransform = (record: any) => {\r\n const r = { ...(record || {}) };\r\n\r\n r.module = r.module ?? this.moduleName;\r\n r.service = r.service ?? this.apiName;\r\n r.feature = r.feature ?? this.defaultFeature;\r\n r.permission = r.permission ?? this.defaultPermission;\r\n r.category = r.category ?? this.defaultCategory;\r\n r.isActive = r.isActive ?? true;\r\n r.shareScope = r.shareScope ?? 'ALL';\r\n\r\n if (r.shareScope === 'ME') {\r\n r.shareUsers = this.currentUserId ? `<${this.currentUserId}>` : '';\r\n }\r\n\r\n return r;\r\n };\r\n\r\n onVisibleChange(v: boolean) {\r\n this.visible = v;\r\n this.visibleChange.emit(v);\r\n }\r\n\r\n onAfterSave(e: any) {\r\n // e.response غالباً يرجع العنصر بعد الحفظ\r\n this.saved.emit(e?.response ?? e?.record ?? this.model);\r\n this.onVisibleChange(false);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, OnInit, Output, inject } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { TranslateModule, TranslateService } from '@ngx-translate/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { InputTextModule } from 'primeng/inputtext';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\nimport { BaseService, SwalService } from '@es.framework/ng.core/services';\r\nimport { DrawerModule } from 'primeng/drawer';\r\nimport { finalize } from 'rxjs';\r\nimport { LoadingSkeletonComponent } from \"@es.framework/ng.ui.core/loading-skeletons\";\r\nimport { FormlyFieldConfig } from '@ngx-formly/core';\r\nimport {FilterTemplateEditorDialogComponent} from \"./filter-template-editor-dialog.component\";\r\n\r\n\r\n@Component({\r\n selector: 'saved-report-templates-drawer',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n TranslateModule,\r\n ButtonModule,\r\n InputTextModule,\r\n TooltipModule,\r\n DrawerModule,\r\n LoadingSkeletonComponent,\r\n FilterTemplateEditorDialogComponent\r\n],\r\n providers: [BaseService],\r\n template: `\r\n <p-drawer\r\n [visible]=\"visible\"\r\n (visibleChange)=\"onVisibleChange($event)\"\r\n [position]=\"position\"\r\n [modal]=\"modal\"\r\n [dismissible]=\"dismissable\"\r\n [closeOnEscape]=\"closeOnEscape\"\r\n [blockScroll]=\"blockScroll\"\r\n [showCloseIcon]=\"showCloseIcon\"\r\n>\r\n <div class=\"h-full flex flex-col bg-white\">\r\n\r\n <!-- Header -->\r\n <div class=\"sticky top-0 z-10 bg-white border-b border-gray-200 px-4 py-4\">\r\n <div class=\"flex items-center gap-3\">\r\n <div class=\"w-9 h-9 rounded-xl flex items-center justify-center bg-gray-100 text-gray-700\">\r\n <i class=\"pi pi-bookmark\"></i>\r\n </div>\r\n\r\n <div class=\"flex-1 min-w-0\">\r\n <div class=\"text-xs text-gray-500\">\r\n {{ 'TEMPLATES' | translate }}\r\n </div>\r\n <div class=\"text-base font-semibold text-gray-900 truncate\">\r\n {{ selected ? getName(selected) : ('SELECT_TEMPLATE' | translate) }}\r\n </div>\r\n </div>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n class=\"p-button-rounded p-button-sm p-button-text\"\r\n icon=\"pi pi-refresh\"\r\n (click)=\"refresh()\"\r\n [disabled]=\"loading\"\r\n pTooltip=\"{{ 'REFRESH' | translate }}\"\r\n tooltipPosition=\"bottom\"\r\n ></button>\r\n\r\n <button\r\n pButton\r\n type=\"button\"\r\n class=\"p-button-rounded p-button-sm p-button-primary\"\r\n icon=\"pi pi-plus\"\r\n (click)=\"openTemplateCreate()\"\r\n [disabled]=\"loading\"\r\n pTooltip=\"{{ 'COMMON.ADD' | translate }}\"\r\n tooltipPosition=\"bottom\"\r\n ></button>\r\n </div>\r\n\r\n <!-- Search -->\r\n <div class=\"mt-4\">\r\n <span class=\"p-input-icon-left w-full\">\r\n <i class=\"pi pi-search\"></i>\r\n <input\r\n pInputText\r\n class=\"w-full !rounded-xl\"\r\n [(ngModel)]=\"search\"\r\n [disabled]=\"loading\"\r\n [placeholder]=\"'SEARCH_FOR_A_VIEW' | translate\"\r\n />\r\n </span>\r\n </div>\r\n </div>\r\n\r\n <!-- Content -->\r\n <div class=\"flex-1 overflow-auto px-3 py-3\">\r\n\r\n <!-- ✅ Loading -->\r\n <div *ngIf=\"loading\" class=\"py-4\">\r\n <app-loading-skeleton [itemsCount]=\"4\"></app-loading-skeleton>\r\n </div>\r\n\r\n <!-- ✅ Empty -->\r\n <div *ngIf=\"!loading && filteredAll.length === 0\" class=\"text-sm text-gray-500 text-center py-12\">\r\n <div class=\"mx-auto mb-3 w-12 h-12 rounded-2xl bg-gray-100 flex items-center justify-center\">\r\n <i class=\"pi pi-inbox text-gray-500\"></i>\r\n </div>\r\n {{ 'NO_DATA_FOUND' | translate }}\r\n </div>\r\n\r\n <!-- ✅ Content when not loading -->\r\n <ng-container *ngIf=\"!loading\">\r\n\r\n <!-- Favorites -->\r\n <ng-container *ngIf=\"favList.length > 0\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\r\n (click)=\"favOpen = !favOpen\"\r\n >\r\n <span class=\"flex items-center gap-2\">\r\n <i class=\"pi pi-star-fill text-yellow-500\"></i>\r\n {{ 'FAVOURITES' | translate }}\r\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ favList.length }}</span>\r\n </span>\r\n <i class=\"pi text-xs\" [ngClass]=\"favOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"favOpen\" class=\"mt-1 space-y-1\">\r\n <ng-container *ngFor=\"let t of favList\">\r\n <div\r\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer\r\n hover:bg-gray-50\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\r\n (click)=\"select(t)\"\r\n >\r\n <span\r\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\r\n ></span>\r\n\r\n <i class=\"text-base shrink-0\"\r\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\r\n\r\n <span class=\"flex-1 truncate\"\r\n [class.font-semibold]=\"isSelected(t)\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\r\n {{ getName(t) }}\r\n </span>\r\n\r\n <!-- Actions -->\r\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\r\n (click)=\"toggleFav(t)\"></button>\r\n\r\n @if (!isSelected(t)) {\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n icon=\"pi pi-pencil\"\r\n (click)=\"openTemplateEdit(t)\"></button>\r\n\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\r\n icon=\"pi pi-trash\"\r\n (click)=\"confirmDelete(t)\"></button>\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"my-3 border-b border-gray-200\"></div>\r\n </ng-container>\r\n\r\n <!-- Shared -->\r\n <ng-container *ngIf=\"sharedList.length > 0\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\r\n (click)=\"sharedOpen = !sharedOpen\"\r\n >\r\n <span class=\"flex items-center gap-2\">\r\n <i class=\"pi pi-users text-gray-600\"></i>\r\n {{ 'SHARED' | translate }}\r\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ sharedList.length }}</span>\r\n </span>\r\n <i class=\"pi text-xs\" [ngClass]=\"sharedOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"sharedOpen\" class=\"mt-1 space-y-1\">\r\n <ng-container *ngFor=\"let t of sharedList\">\r\n <div\r\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer hover:bg-gray-50\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\r\n (click)=\"select(t)\"\r\n >\r\n <span\r\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\r\n ></span>\r\n\r\n <i class=\"text-base shrink-0\"\r\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\r\n\r\n <span class=\"flex-1 truncate\"\r\n [class.font-semibold]=\"isSelected(t)\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\r\n {{ getName(t) }}\r\n </span>\r\n\r\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\r\n (click)=\"toggleFav(t)\"></button>\r\n\r\n @if (!isSelected(t)) {\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n icon=\"pi pi-pencil\"\r\n (click)=\"openTemplateEdit(t)\"></button>\r\n\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\r\n icon=\"pi pi-trash\"\r\n (click)=\"confirmDelete(t)\"></button>\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"my-3 border-b border-gray-200\"></div>\r\n </ng-container>\r\n\r\n <!-- Private -->\r\n <ng-container *ngIf=\"privateList.length > 0\">\r\n <button\r\n type=\"button\"\r\n class=\"w-full flex items-center justify-between px-2 py-2 text-sm font-semibold text-gray-800\"\r\n (click)=\"privateOpen = !privateOpen\"\r\n >\r\n <span class=\"flex items-center gap-2\">\r\n <i class=\"pi pi-lock text-gray-600\"></i>\r\n {{ 'PRIVATE' | translate }}\r\n <span class=\"text-xs px-2 py-0.5 rounded-full bg-gray-100 text-gray-600\">{{ privateList.length }}</span>\r\n </span>\r\n <i class=\"pi text-xs\" [ngClass]=\"privateOpen ? 'pi-chevron-up' : 'pi-chevron-down'\"></i>\r\n </button>\r\n\r\n <div *ngIf=\"privateOpen\" class=\"mt-1 space-y-1\">\r\n <ng-container *ngFor=\"let t of privateList\">\r\n <div\r\n class=\"group relative flex items-center gap-3 px-3 py-2 rounded-xl transition cursor-pointer hover:bg-gray-50\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-50, rgba(59,130,246,0.10))' : ''\"\r\n (click)=\"select(t)\"\r\n >\r\n <span\r\n class=\"absolute left-0 top-1 bottom-1 w-1 rounded-full\"\r\n [style.backgroundColor]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : 'transparent'\"\r\n ></span>\r\n\r\n <i class=\"text-base shrink-0\"\r\n [ngClass]=\"t.icon || 'pi pi-check-circle'\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\"></i>\r\n\r\n <span class=\"flex-1 truncate\"\r\n [class.font-semibold]=\"isSelected(t)\"\r\n [style.color]=\"isSelected(t) ? 'var(--p-primary-color, #3b82f6)' : ''\">\r\n {{ getName(t) }}\r\n </span>\r\n\r\n <div class=\"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition\"\r\n (click)=\"$event.stopPropagation()\">\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n [icon]=\"t.isFav ? 'pi pi-star-fill' : 'pi pi-star'\"\r\n (click)=\"toggleFav(t)\"></button>\r\n\r\n @if (!isSelected(t)) {\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm\"\r\n icon=\"pi pi-pencil\"\r\n (click)=\"openTemplateEdit(t)\"></button>\r\n\r\n <button pButton type=\"button\" class=\"p-button-text p-button-sm p-button-danger\"\r\n icon=\"pi pi-trash\"\r\n (click)=\"confirmDelete(t)\"></button>\r\n }\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </div>\r\n </div>\r\n</p-drawer>\r\n\r\n<filter-template-editor-dialog\r\n [(visible)]=\"templateEditorVisible\"\r\n [mode]=\"templateEditorMode\"\r\n [model]=\"templateEditorModel\"\r\n [filterFields]=\"filterFields\"\r\n [moduleName]=\"moduleName\"\r\n [apiName]=\"apiName\"\r\n [defaultFeature]=\"defaultFeature\"\r\n [defaultCategory]=\"defaultCategory\"\r\n [defaultPermission]=\"defaultPermission\"\r\n [currentUserId]=\"currentUserId\"\r\n (saved)=\"onTemplateSaved($event)\">\r\n</filter-template-editor-dialog>\r\n\r\n\r\n `,\r\n})\r\nexport class SavedReportTemplatesDrawerComponent implements OnInit {\r\n private svc = inject(BaseService);\r\n private swal = inject(SwalService);\r\n private tr = inject(TranslateService);\r\n\r\n @Input() apiName = 'filter-templates';\r\n @Input() module = 'crm';\r\n @Input() service = '';\r\n @Input() category = '';\r\n @Input() feature = '';\r\n\r\n @Output() templateSelected = new EventEmitter<any>();\r\n @Output() edit = new EventEmitter<any>();\r\n\r\n // ✅ جديد\r\n @Output() add = new EventEmitter<void>();\r\n\r\n // ✅ التحكم من الأب\r\n @Input() visible = false;\r\n @Output() visibleChange = new EventEmitter<boolean>();\r\n\r\n // ✅ اختياري: خلّها قابلة للتخصيص من الأب\r\n @Input() position: 'left' | 'right' = 'left';\r\n @Input() showCloseIcon = true;\r\n @Input() modal = true; // ✅ يغمّق اللي تحت\r\n @Input() dismissable = true; // ✅ الضغط خارج/على الماسك يقفل\r\n @Input() closeOnEscape = true; // ✅ ESC يقفل\r\n @Input() blockScroll = true; // ✅ يمنع سكرول للخلفية\r\n\r\n @Input() filterFields: FormlyFieldConfig[] = [];\r\n \r\n@Input() moduleName = '';\r\n\r\n@Input() defaultFeature = '';\r\n@Input() defaultCategory = '';\r\n@Input() defaultPermission = '';\r\n\r\n@Input() currentUserId: string | null = null;\r\n\r\n templateEditorVisible = false;\r\ntemplateEditorMode: 'create' | 'edit' = 'create';\r\ntemplateEditorModel: any = {};\r\n\r\n templates: any[] = [];\r\n selected: any | null = null;\r\n loading = false;\r\n\r\n\r\n search = '';\r\n\r\n favOpen = true;\r\n sharedOpen = true;\r\n privateOpen = true;\r\n\r\n ngOnInit(): void {\r\n this.refresh();\r\n }\r\n\r\n refresh() {\r\n this.loading = true;\r\n\r\n this.svc.apiName = this.apiName;\r\n this.svc.moduleName = this.module;\r\n\r\n const filters: any = {\r\n service: this.service,\r\n module: this.module,\r\n category: this.category,\r\n };\r\n\r\n this.svc.getList({ sorting: 'id DESC', filtering: { filters } })\r\n .pipe(finalize(() => (this.loading = false)))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.templates = res?.items ?? res ?? [];\r\n if (this.selected) {\r\n this.selected =\r\n this.templates.find(x => String(x.id) === String(this.selected!.id)) ?? null;\r\n }\r\n },\r\n error: () =>\r\n this.swal.error(\r\n this.tr.instant('ERROR_TITLE'),\r\n this.tr.instant('ERROR.FAILED_LOAD_DATA')\r\n ),\r\n });\r\n}\r\n\r\n\r\n get filteredAll(): any[] {\r\n const q = (this.search || '').trim().toLowerCase();\r\n if (!q) return [...this.templates];\r\n return this.templates.filter(t => (this.getName(t) || '').toLowerCase().includes(q));\r\n }\r\n\r\n get favList(): any[] {\r\n return this.filteredAll.filter(x => !!x.isFav);\r\n }\r\n\r\n get privateList(): any[] {\r\n return this.filteredAll.filter(x => x.shareScope === 'ME');\r\n }\r\n\r\n get sharedList(): any[] {\r\n return this.filteredAll.filter(x => x.shareScope !== 'ME' && !x.isFav);\r\n }\r\n\r\n select(t: any) {\r\n if (this.isSelected(t)) {\r\n this.clearSelection();\r\n return;\r\n }\r\n this.selected = t;\r\n this.templateSelected.emit(t);\r\n}\r\n\r\n\r\n isSelected(t: any) {\r\n return this.selected && String(this.selected.id) === String(t.id);\r\n }\r\n\r\n getName(t: any): string {\r\n const lang = this.tr.currentLang || 'ar';\r\n return (lang.startsWith('ar') ? (t.nameAr || t.nameEn) : (t.nameEn || t.nameAr)) || '';\r\n }\r\n\r\n toggleFav(t: any) {\r\n const payload: any = { ...t, isFav: !t.isFav };\r\n\r\n this.svc.update(String(t.id), payload).subscribe({\r\n next: (u: any) => (t.isFav = u?.isFav ?? payload.isFav),\r\n error: () => this.swal.error(this.tr.instant('ERROR_TITLE'), this.tr.instant('OPERATION_FAILED')),\r\n });\r\n }\r\n\r\n confirmDelete(t: any) {\r\n this.swal.confirm(\r\n this.tr.instant('DELETE_CONFIRM_TITLE'),\r\n this.tr.instant('DELETE_CONFIRM_MESSAGE'),\r\n this.tr.instant('COMMON.DELETE')\r\n ).then((r: any) => {\r\n if (!r?.isConfirmed) return;\r\n this.deleteTemplate(t);\r\n });\r\n}\r\n\r\nprivate deleteTemplate(t: any) {\r\n // مهم: نفس إعدادات الاستدعاءات الثانية\r\n this.svc.apiName = this.apiName;\r\n this.svc.moduleName = this.module;\r\n\r\n // ✅ استدعاء Endpoint الحذف\r\n // ملاحظة: اسم الميثود يعتمد على BaseService عندكم:\r\n // غالباً delete(id) أو remove(id)\r\n const id = String(t.id);\r\n\r\n (this.svc as any).delete(id).subscribe({\r\n next: () => {\r\n // حدّث القائمة محلياً\r\n this.templates = this.templates.filter(x => String(x.id) !== id);\r\n\r\n // لو المحذوف هو المحدد\r\n if (this.selected && String(this.selected.id) === id) {\r\n this.selected = null;\r\n this.templateSelected.emit(null);\r\n }\r\n\r\n this.swal.toast(\r\n this.tr.instant('RECORD_DELETED_SUCCESSFULLY'),\r\n );\r\n },\r\n error: () =>\r\n this.swal.error(this.tr.instant('ERROR_TITLE'), this.tr.instant('OPERATION_FAILED')),\r\n });\r\n}\r\n\r\n\r\n onVisibleChange(v: boolean) {\r\n this.visible = v;\r\n this.visibleChange.emit(v);\r\n }\r\n\r\n clearSelection() {\r\n this.selected = null;\r\n this.templateSelected.emit(null); // ✅ يبلغ الأب: ما عاد فيه قالب\r\n}\r\n\r\n\r\n\r\nopenTemplateCreate() {\r\n this.templateEditorMode = 'create';\r\n this.templateEditorModel = {\r\n isActive: true,\r\n shareScope: 'ALL',\r\n };\r\n this.templateEditorVisible = true;\r\n}\r\n\r\nopenTemplateEdit(t: any) {\r\n this.templateEditorMode = 'edit';\r\n this.templateEditorModel = { ...t };\r\n this.templateEditorVisible = true;\r\n}\r\n\r\nonTemplateSaved(saved: any) {\r\n this.refresh(); // ✅ هو نفسه يحدث القائمة\r\n this.templateEditorVisible = false;\r\n}\r\n\r\n}\r\n","import { Injectable, signal } from \"@angular/core\";\r\nimport { Subject } from \"rxjs\";\r\n\r\n@Injectable()\r\nexport class CrudContextService {\r\n // استخدام Signals لأداء أسرع\r\n moduleName = signal<string>('');\r\n category = signal<string>('');\r\n feature = signal<string>('');\r\n filters = signal<any[]>([]);\r\n templateDrawerVisible = signal<boolean>(false);\r\n\r\n // حدث يطلق عند اختيار قالب\r\n templateSelected$ = new Subject<any>();\r\n\r\n openTemplates() { this.templateDrawerVisible.set(true); }\r\n closeTemplates() { this.templateDrawerVisible.set(false); }\r\n}\r\n","import { Component, inject } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { SavedReportTemplatesDrawerComponent } from './report-templates-drawer.component';\r\nimport { CrudContextService } from './CrudContextService';\r\n\r\n@Component({\r\n selector: 'app-report-templates-wrapper',\r\n standalone: true,\r\n imports: [CommonModule, SavedReportTemplatesDrawerComponent],\r\n template: `\r\n <saved-report-templates-drawer\r\n [visible]=\"context.templateDrawerVisible()\"\r\n [filterFields]=\"context.filters()\"\r\n [service]=\"context.moduleName()\"\r\n [category]=\"context.category()\"\r\n [feature]=\"context.feature()\"\r\n (templateSelected)=\"onSelect($event)\">\r\n </saved-report-templates-drawer>\r\n `\r\n})\r\nexport class ReportTemplatesWrapperComponent {\r\n context = inject(CrudContextService); // يحصل على نفس النسخة الخاصة بالجدول الأب\r\n\r\n onSelect(template: any) {\r\n this.context.templateSelected$.next(template);\r\n this.context.closeTemplates();\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.framework-ng.ui.core-form-button.mjs","sources":["../../../../libs/ng.ui.core/form-button/src/lib/form-button-module.ts","../../../../libs/ng.ui.core/form-button/src/lib/form-button.type.ts","../../../../libs/ng.ui.core/form-button/src/es.framework-ng.ui.core-form-button.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormButtonModule {}\n","import { Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyAttributes } from '@ngx-formly/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\ninterface ButtonProps {\r\n buttonLabel?: string;\r\n icon?: string;\r\n severity?: 'secondary' | 'primary' | 'success' | 'info' | 'help' | 'danger' | 'contrast';\r\n disabled?: boolean;\r\n tooltip?: string;\r\n click?: (field: FormlyFieldConfig) => void;\r\n}\r\n\r\n@Component({\r\n selector: 'formly-field-button',\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n FormlyAttributes,\r\n ButtonModule,\r\n TooltipModule,\r\n TranslatePipe\r\n ],\r\n template: `\r\n <p-button\r\n [label]=\"(props.buttonLabel || '') | translate\"\r\n [icon]=\"props.icon\"\r\n [severity]=\"props.severity || 'primary'\"\r\n [disabled]=\"!!props.disabled\"\r\n [pTooltip]=\"(props.tooltip || '') | translate\"\r\n (onClick)=\"handleClick($event)\"\r\n ></p-button>\r\n `,\r\n})\r\nexport class FormlyFieldButton extends FieldType<FieldTypeConfig<ButtonProps>> {\r\n\r\n handleClick(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const clickFn = this.props.click;\r\n clickFn?.(this.field);\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-form-button.mjs","sources":["../../../../libs/ng.ui.core/form-button/src/lib/form-button-module.ts","../../../../libs/ng.ui.core/form-button/src/lib/form-button.type.ts","../../../../libs/ng.ui.core/form-button/src/es.framework-ng.ui.core-form-button.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class FormButtonModule {}\r\n","import { Component } from '@angular/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\r\nimport { FieldType, FieldTypeConfig, FormlyFieldConfig, FormlyAttributes } from '@ngx-formly/core';\r\nimport { ButtonModule } from 'primeng/button';\r\nimport { TooltipModule } from 'primeng/tooltip';\r\n\r\ninterface ButtonProps {\r\n buttonLabel?: string;\r\n icon?: string;\r\n severity?: 'secondary' | 'primary' | 'success' | 'info' | 'help' | 'danger' | 'contrast';\r\n disabled?: boolean;\r\n tooltip?: string;\r\n click?: (field: FormlyFieldConfig) => void;\r\n}\r\n\r\n@Component({\r\n selector: 'formly-field-button',\r\n standalone: true,\r\n imports: [\r\n ReactiveFormsModule,\r\n FormlyAttributes,\r\n ButtonModule,\r\n TooltipModule,\r\n TranslatePipe\r\n ],\r\n template: `\r\n <p-button\r\n [label]=\"(props.buttonLabel || '') | translate\"\r\n [icon]=\"props.icon\"\r\n [severity]=\"props.severity || 'primary'\"\r\n [disabled]=\"!!props.disabled\"\r\n [pTooltip]=\"(props.tooltip || '') | translate\"\r\n (onClick)=\"handleClick($event)\"\r\n ></p-button>\r\n `,\r\n})\r\nexport class FormlyFieldButton extends FieldType<FieldTypeConfig<ButtonProps>> {\r\n\r\n handleClick(event: Event) {\r\n event.preventDefault();\r\n event.stopPropagation();\r\n\r\n const clickFn = this.props.click;\r\n clickFn?.(this.field);\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -10,27 +10,27 @@ import { ReactiveFormsModule } from '@angular/forms';
|
|
|
10
10
|
/* eslint-disable @angular-eslint/prefer-standalone */
|
|
11
11
|
class FormlyWrapperFormField extends FieldWrapper {
|
|
12
12
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyWrapperFormField, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
13
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyWrapperFormField, isStandalone: false, selector: "formly-wrapper-primeng-form-field", usesInheritance: true, ngImport: i0, template: `
|
|
14
|
-
<div class="p-field">
|
|
15
|
-
<!-- text-lg -->
|
|
16
|
-
@if (props.label && props.hideLabel !== true) {
|
|
17
|
-
<label [for]="id" class="font-bold">
|
|
18
|
-
{{ props.label | translate }}
|
|
19
|
-
@if (props.required && props.hideRequiredMarker !== true) {
|
|
20
|
-
<span aria-hidden="true">*</span>
|
|
21
|
-
}
|
|
22
|
-
</label>
|
|
23
|
-
}
|
|
24
|
-
|
|
25
|
-
<div class="mb-2"></div>
|
|
26
|
-
<ng-container #fieldComponent></ng-container>
|
|
27
|
-
|
|
28
|
-
@if (showError) {
|
|
29
|
-
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
30
|
-
<formly-validation-message [field]="field"></formly-validation-message>
|
|
31
|
-
</small>
|
|
32
|
-
}
|
|
33
|
-
</div>
|
|
13
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyWrapperFormField, isStandalone: false, selector: "formly-wrapper-primeng-form-field", usesInheritance: true, ngImport: i0, template: `
|
|
14
|
+
<div class="p-field">
|
|
15
|
+
<!-- text-lg -->
|
|
16
|
+
@if (props.label && props.hideLabel !== true) {
|
|
17
|
+
<label [for]="id" class="font-bold">
|
|
18
|
+
{{ props.label | translate }}
|
|
19
|
+
@if (props.required && props.hideRequiredMarker !== true) {
|
|
20
|
+
<span aria-hidden="true">*</span>
|
|
21
|
+
}
|
|
22
|
+
</label>
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
<div class="mb-2"></div>
|
|
26
|
+
<ng-container #fieldComponent></ng-container>
|
|
27
|
+
|
|
28
|
+
@if (showError) {
|
|
29
|
+
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
30
|
+
<formly-validation-message [field]="field"></formly-validation-message>
|
|
31
|
+
</small>
|
|
32
|
+
}
|
|
33
|
+
</div>
|
|
34
34
|
`, isInline: true, dependencies: [{ kind: "component", type: i1.LegacyFormlyValidationMessage, selector: "formly-validation-message" }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }] });
|
|
35
35
|
}
|
|
36
36
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyWrapperFormField, decorators: [{
|
|
@@ -38,51 +38,51 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
38
38
|
args: [{
|
|
39
39
|
selector: 'formly-wrapper-primeng-form-field',
|
|
40
40
|
standalone: false,
|
|
41
|
-
template: `
|
|
42
|
-
<div class="p-field">
|
|
43
|
-
<!-- text-lg -->
|
|
44
|
-
@if (props.label && props.hideLabel !== true) {
|
|
45
|
-
<label [for]="id" class="font-bold">
|
|
46
|
-
{{ props.label | translate }}
|
|
47
|
-
@if (props.required && props.hideRequiredMarker !== true) {
|
|
48
|
-
<span aria-hidden="true">*</span>
|
|
49
|
-
}
|
|
50
|
-
</label>
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
<div class="mb-2"></div>
|
|
54
|
-
<ng-container #fieldComponent></ng-container>
|
|
55
|
-
|
|
56
|
-
@if (showError) {
|
|
57
|
-
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
58
|
-
<formly-validation-message [field]="field"></formly-validation-message>
|
|
59
|
-
</small>
|
|
60
|
-
}
|
|
61
|
-
</div>
|
|
41
|
+
template: `
|
|
42
|
+
<div class="p-field">
|
|
43
|
+
<!-- text-lg -->
|
|
44
|
+
@if (props.label && props.hideLabel !== true) {
|
|
45
|
+
<label [for]="id" class="font-bold">
|
|
46
|
+
{{ props.label | translate }}
|
|
47
|
+
@if (props.required && props.hideRequiredMarker !== true) {
|
|
48
|
+
<span aria-hidden="true">*</span>
|
|
49
|
+
}
|
|
50
|
+
</label>
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
<div class="mb-2"></div>
|
|
54
|
+
<ng-container #fieldComponent></ng-container>
|
|
55
|
+
|
|
56
|
+
@if (showError) {
|
|
57
|
+
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
58
|
+
<formly-validation-message [field]="field"></formly-validation-message>
|
|
59
|
+
</small>
|
|
60
|
+
}
|
|
61
|
+
</div>
|
|
62
62
|
`,
|
|
63
63
|
}]
|
|
64
64
|
}] });
|
|
65
65
|
class FormlyWrapperFormFieldNo extends FieldWrapper {
|
|
66
66
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyWrapperFormFieldNo, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
67
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyWrapperFormFieldNo, isStandalone: false, selector: "formly-wrapper-primeng-form-field-no", usesInheritance: true, ngImport: i0, template: `
|
|
68
|
-
<div class="p-field">
|
|
69
|
-
<!-- text-lg -->
|
|
70
|
-
@if (props.label && props.hideLabel !== true) {
|
|
71
|
-
<label [for]="id" class="font-bold">
|
|
72
|
-
@if (props.required && props.hideRequiredMarker !== true) {
|
|
73
|
-
<span aria-hidden="true">*</span>
|
|
74
|
-
}
|
|
75
|
-
</label>
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
<ng-container #fieldComponent></ng-container>
|
|
79
|
-
|
|
80
|
-
@if (showError) {
|
|
81
|
-
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
82
|
-
<formly-validation-message [field]="field"></formly-validation-message>
|
|
83
|
-
</small>
|
|
84
|
-
}
|
|
85
|
-
</div>
|
|
67
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.1.3", type: FormlyWrapperFormFieldNo, isStandalone: false, selector: "formly-wrapper-primeng-form-field-no", usesInheritance: true, ngImport: i0, template: `
|
|
68
|
+
<div class="p-field">
|
|
69
|
+
<!-- text-lg -->
|
|
70
|
+
@if (props.label && props.hideLabel !== true) {
|
|
71
|
+
<label [for]="id" class="font-bold">
|
|
72
|
+
@if (props.required && props.hideRequiredMarker !== true) {
|
|
73
|
+
<span aria-hidden="true">*</span>
|
|
74
|
+
}
|
|
75
|
+
</label>
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
<ng-container #fieldComponent></ng-container>
|
|
79
|
+
|
|
80
|
+
@if (showError) {
|
|
81
|
+
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
82
|
+
<formly-validation-message [field]="field"></formly-validation-message>
|
|
83
|
+
</small>
|
|
84
|
+
}
|
|
85
|
+
</div>
|
|
86
86
|
`, isInline: true, dependencies: [{ kind: "component", type: i1.LegacyFormlyValidationMessage, selector: "formly-validation-message" }] });
|
|
87
87
|
}
|
|
88
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImport: i0, type: FormlyWrapperFormFieldNo, decorators: [{
|
|
@@ -90,25 +90,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.1.3", ngImpor
|
|
|
90
90
|
args: [{
|
|
91
91
|
selector: 'formly-wrapper-primeng-form-field-no',
|
|
92
92
|
standalone: false,
|
|
93
|
-
template: `
|
|
94
|
-
<div class="p-field">
|
|
95
|
-
<!-- text-lg -->
|
|
96
|
-
@if (props.label && props.hideLabel !== true) {
|
|
97
|
-
<label [for]="id" class="font-bold">
|
|
98
|
-
@if (props.required && props.hideRequiredMarker !== true) {
|
|
99
|
-
<span aria-hidden="true">*</span>
|
|
100
|
-
}
|
|
101
|
-
</label>
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
<ng-container #fieldComponent></ng-container>
|
|
105
|
-
|
|
106
|
-
@if (showError) {
|
|
107
|
-
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
108
|
-
<formly-validation-message [field]="field"></formly-validation-message>
|
|
109
|
-
</small>
|
|
110
|
-
}
|
|
111
|
-
</div>
|
|
93
|
+
template: `
|
|
94
|
+
<div class="p-field">
|
|
95
|
+
<!-- text-lg -->
|
|
96
|
+
@if (props.label && props.hideLabel !== true) {
|
|
97
|
+
<label [for]="id" class="font-bold">
|
|
98
|
+
@if (props.required && props.hideRequiredMarker !== true) {
|
|
99
|
+
<span aria-hidden="true">*</span>
|
|
100
|
+
}
|
|
101
|
+
</label>
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
<ng-container #fieldComponent></ng-container>
|
|
105
|
+
|
|
106
|
+
@if (showError) {
|
|
107
|
+
<small class="text-red-600 text-sm mt-1 block font-medium">
|
|
108
|
+
<formly-validation-message [field]="field"></formly-validation-message>
|
|
109
|
+
</small>
|
|
110
|
+
}
|
|
111
|
+
</div>
|
|
112
112
|
`,
|
|
113
113
|
}]
|
|
114
114
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.framework-ng.ui.core-form-field.mjs","sources":["../../../../libs/ng.ui.core/form-field/src/lib/form-field.wrapper.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.config.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.module.ts","../../../../libs/ng.ui.core/form-field/src/es.framework-ng.ui.core-form-field.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/prefer-standalone */\nimport { Component } from '@angular/core';\nimport {\n FieldWrapper,\n FormlyFieldConfig,\n FormlyFieldProps as CoreFormlyFieldProps\n} from '@ngx-formly/core';\n\nexport interface FormlyFieldProps extends CoreFormlyFieldProps {\n hideRequiredMarker?: boolean;\n hideLabel?: boolean;\n}\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n {{ props.label | translate }}\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <div class=\"mb-2\"></div>\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormField extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n\n\n@Component({\n selector: 'formly-wrapper-primeng-form-field-no',\n standalone: false,\n template: `\n <div class=\"p-field\">\n <!-- text-lg -->\n @if (props.label && props.hideLabel !== true) {\n <label [for]=\"id\" class=\"font-bold\">\n @if (props.required && props.hideRequiredMarker !== true) {\n <span aria-hidden=\"true\">*</span>\n }\n </label>\n }\n\n <ng-container #fieldComponent></ng-container>\n\n @if (showError) {\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n </div>\n `,\n})\nexport class FormlyWrapperFormFieldNo extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\n","import { ConfigOption } from '@ngx-formly/core';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\n\nexport function withFormlyFormField(): ConfigOption {\n return {\n wrappers: [\n {\n name: 'form-field',\n component: FormlyWrapperFormField,\n },\n {\n name: 'form-field-no',\n component: FormlyWrapperFormFieldNo,\n },\n ],\n };\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormlyModule, LegacyFormlyValidationMessage, } from '@ngx-formly/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\nimport { withFormlyFormField } from './form-field.config';\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\n\n@NgModule({\n declarations: [\n\n FormlyWrapperFormField,\n FormlyWrapperFormFieldNo,\n // FormlyFormFieldWrapperComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()),TranslatePipe],\n exports:[FormlyWrapperFormField]\n})\nexport class FormlyFormFieldModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-form-field.mjs","sources":["../../../../libs/ng.ui.core/form-field/src/lib/form-field.wrapper.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.config.ts","../../../../libs/ng.ui.core/form-field/src/lib/form-field.module.ts","../../../../libs/ng.ui.core/form-field/src/es.framework-ng.ui.core-form-field.ts"],"sourcesContent":["/* eslint-disable @angular-eslint/prefer-standalone */\r\nimport { Component } from '@angular/core';\r\nimport {\r\n FieldWrapper,\r\n FormlyFieldConfig,\r\n FormlyFieldProps as CoreFormlyFieldProps\r\n} from '@ngx-formly/core';\r\n\r\nexport interface FormlyFieldProps extends CoreFormlyFieldProps {\r\n hideRequiredMarker?: boolean;\r\n hideLabel?: boolean;\r\n}\r\n\r\n@Component({\r\n selector: 'formly-wrapper-primeng-form-field',\r\n standalone: false,\r\n template: `\r\n <div class=\"p-field\">\r\n <!-- text-lg -->\r\n @if (props.label && props.hideLabel !== true) {\r\n <label [for]=\"id\" class=\"font-bold\">\r\n {{ props.label | translate }}\r\n @if (props.required && props.hideRequiredMarker !== true) {\r\n <span aria-hidden=\"true\">*</span>\r\n }\r\n </label>\r\n }\r\n\r\n <div class=\"mb-2\"></div>\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n @if (showError) {\r\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\r\n <formly-validation-message [field]=\"field\"></formly-validation-message>\r\n </small>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class FormlyWrapperFormField extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\r\n\r\n\r\n@Component({\r\n selector: 'formly-wrapper-primeng-form-field-no',\r\n standalone: false,\r\n template: `\r\n <div class=\"p-field\">\r\n <!-- text-lg -->\r\n @if (props.label && props.hideLabel !== true) {\r\n <label [for]=\"id\" class=\"font-bold\">\r\n @if (props.required && props.hideRequiredMarker !== true) {\r\n <span aria-hidden=\"true\">*</span>\r\n }\r\n </label>\r\n }\r\n\r\n <ng-container #fieldComponent></ng-container>\r\n\r\n @if (showError) {\r\n <small class=\"text-red-600 text-sm mt-1 block font-medium\">\r\n <formly-validation-message [field]=\"field\"></formly-validation-message>\r\n </small>\r\n }\r\n </div>\r\n `,\r\n})\r\nexport class FormlyWrapperFormFieldNo extends FieldWrapper<FormlyFieldConfig<FormlyFieldProps>> {}\r\n","import { ConfigOption } from '@ngx-formly/core';\r\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\r\n\r\nexport function withFormlyFormField(): ConfigOption {\r\n return {\r\n wrappers: [\r\n {\r\n name: 'form-field',\r\n component: FormlyWrapperFormField,\r\n },\r\n {\r\n name: 'form-field-no',\r\n component: FormlyWrapperFormFieldNo,\r\n },\r\n ],\r\n };\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormlyModule, LegacyFormlyValidationMessage, } from '@ngx-formly/core';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FormlyWrapperFormField, FormlyWrapperFormFieldNo } from './form-field.wrapper';\r\nimport { withFormlyFormField } from './form-field.config';\r\nimport { TranslatePipe } from '@es.framework/ng.core/pipes';\r\n\r\n@NgModule({\r\n declarations: [\r\n\r\n FormlyWrapperFormField,\r\n FormlyWrapperFormFieldNo,\r\n // FormlyFormFieldWrapperComponent,\r\n ],\r\n imports: [CommonModule, ReactiveFormsModule, FormlyModule.forChild(withFormlyFormField()),TranslatePipe],\r\n exports:[FormlyWrapperFormField]\r\n})\r\nexport class FormlyFormFieldModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.framework-ng.ui.core-form-template.mjs","sources":["../../../../libs/ng.ui.core/form-template/src/lib/form-template-module.ts","../../../../libs/ng.ui.core/form-template/src/lib/template.type.ts","../../../../libs/ng.ui.core/form-template/src/es.framework-ng.ui.core-form-template.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormTemplateModule {}\n","import { FieldType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { Component } from '@angular/core';\r\nimport { SafeHtmlPipe } from 'primeng/menu';\r\n\r\n@Component({\r\n imports:[SafeHtmlPipe],\r\n selector: 'formly-template',\r\n template: `<div [innerHTML]=\"to['innerHTML'] | safeHtml\"></div>`,\r\n})\r\nexport class FormlyTemplateType extends FieldType {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACIK,MAAO,kBAAmB,SAAQ,SAAS,CAAA;uGAApC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFnB,CAAA,oDAAA,CAAsD,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAFvD,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;2FAIV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAC,CAAC,YAAY,CAAC;AACtB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA,oDAAA,CAAsD;AACjE,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-form-template.mjs","sources":["../../../../libs/ng.ui.core/form-template/src/lib/form-template-module.ts","../../../../libs/ng.ui.core/form-template/src/lib/template.type.ts","../../../../libs/ng.ui.core/form-template/src/es.framework-ng.ui.core-form-template.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class FormTemplateModule {}\r\n","import { FieldType, FormlyFieldConfig } from '@ngx-formly/core';\r\nimport { Component } from '@angular/core';\r\nimport { SafeHtmlPipe } from 'primeng/menu';\r\n\r\n@Component({\r\n imports:[SafeHtmlPipe],\r\n selector: 'formly-template',\r\n template: `<div [innerHTML]=\"to['innerHTML'] | safeHtml\"></div>`,\r\n})\r\nexport class FormlyTemplateType extends FieldType {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;MAMa,kBAAkB,CAAA;uGAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;AAEX,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAFnB,YAAY,CAAA,EAAA,CAAA;;2FAEX,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA;;;ACIK,MAAO,kBAAmB,SAAQ,SAAS,CAAA;uGAApC,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAFnB,CAAA,oDAAA,CAAsD,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAFvD,YAAY,EAAA,IAAA,EAAA,UAAA,EAAA,CAAA,EAAA,CAAA;;2FAIV,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;oBACT,OAAO,EAAC,CAAC,YAAY,CAAC;AACtB,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,QAAQ,EAAE,CAAA,oDAAA,CAAsD;AACjE,iBAAA;;;ACRD;;AAEG;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"es.framework-ng.ui.core-formly-avatar-image.mjs","sources":["../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image-module.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/es.framework-ng.ui.core-formly-avatar-image.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\n@NgModule({\n imports: [CommonModule],\n})\nexport class FormlyAvatarImageModule {}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { AvatarModule } from 'primeng/avatar';\r\n\r\n@Component({\r\n selector: 'formly-field-avatar-image',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormlyModule,\r\n AvatarModule\r\n ],\r\n template: `\n <div [ngClass]=\"field.props['containerClass'] || ''\">\n @if (field.props.label && field.props['hideLabel'] !== true) {\n <label [for]=\"id\" class=\"p-formgroup-inline block text-sm font-medium text-gray-700\">\n {{ field.props.label }}\n @if (field.props.required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n <div class=\"mt-1 flex items-center\">\n <p-avatar\n [image]=\"displayValue\"\n [size]=\"field.props['size'] || 'large'\"\n [shape]=\"field.props['shape'] || 'circle'\"\n [style]=\"field.props['avatarStyle'] || ''\"\n [styleClass]=\"field.props['avatarClass'] || ''\"\n (onClick)=\"field.props['onClick'] && field.props['onClick']($event)\"\n \n ></p-avatar>\n <!-- (onImageError)=\"field.props['onImageError'] && field.props['onImageError']($event)\" -->\n @if (field.props['showPlaceholder']) {\n <div class=\"ml-4\">\n <span class=\"text-gray-500\">{{ field.props['placeholderText'] || 'No image selected' }}</span>\n </div>\n }\n </div>\n @if (showError) {\n <small class=\"mt-1 text-sm text-red-600\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n @if (field.props.description) {\n <small class=\"mt-1 text-sm text-gray-500\">{{ field.props.description }}</small>\n }\n </div>\n `,\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormlyAvatarImageComponent extends FieldType<FieldTypeConfig> {\r\n get type() {\r\n return this.field.type as string;\r\n }\r\n get displayValue(): any {\r\n const value = this.formControl?.value;\r\n const baseUrl = this.field.props['baseUrl'] || '';\r\n const defaultImage = this.field.props['defaultImage'] || '';\r\n\r\n if (value) {\r\n return baseUrl ? `${baseUrl}${value}` : value;\r\n }\r\n\r\n return defaultImage;\r\n}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"es.framework-ng.ui.core-formly-avatar-image.mjs","sources":["../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image-module.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/lib/formly-avatar-image.ts","../../../../libs/ng.ui.core/formly-avatar-image/src/es.framework-ng.ui.core-formly-avatar-image.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule],\r\n})\r\nexport class FormlyAvatarImageModule {}\r\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { ReactiveFormsModule } from '@angular/forms';\r\nimport { FieldType, FieldTypeConfig, FormlyModule } from '@ngx-formly/core';\r\nimport { AvatarModule } from 'primeng/avatar';\r\n\r\n@Component({\r\n selector: 'formly-field-avatar-image',\r\n standalone: true,\r\n imports: [\r\n CommonModule,\r\n ReactiveFormsModule,\r\n FormlyModule,\r\n AvatarModule\r\n ],\r\n template: `\n <div [ngClass]=\"field.props['containerClass'] || ''\">\n @if (field.props.label && field.props['hideLabel'] !== true) {\n <label [for]=\"id\" class=\"p-formgroup-inline block text-sm font-medium text-gray-700\">\n {{ field.props.label }}\n @if (field.props.required) {\n <span class=\"text-red-500\">*</span>\n }\n </label>\n }\n <div class=\"mt-1 flex items-center\">\n <p-avatar\n [image]=\"displayValue\"\n [size]=\"field.props['size'] || 'large'\"\n [shape]=\"field.props['shape'] || 'circle'\"\n [style]=\"field.props['avatarStyle'] || ''\"\n [styleClass]=\"field.props['avatarClass'] || ''\"\n (onClick)=\"field.props['onClick'] && field.props['onClick']($event)\"\n \n ></p-avatar>\n <!-- (onImageError)=\"field.props['onImageError'] && field.props['onImageError']($event)\" -->\n @if (field.props['showPlaceholder']) {\n <div class=\"ml-4\">\n <span class=\"text-gray-500\">{{ field.props['placeholderText'] || 'No image selected' }}</span>\n </div>\n }\n </div>\n @if (showError) {\n <small class=\"mt-1 text-sm text-red-600\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </small>\n }\n @if (field.props.description) {\n <small class=\"mt-1 text-sm text-gray-500\">{{ field.props.description }}</small>\n }\n </div>\n `,\r\n // changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class FormlyAvatarImageComponent extends FieldType<FieldTypeConfig> {\r\n get type() {\r\n return this.field.type as string;\r\n }\r\n get displayValue(): any {\r\n const value = this.formControl?.value;\r\n const baseUrl = this.field.props['baseUrl'] || '';\r\n const defaultImage = this.field.props['defaultImage'] || '';\r\n\r\n if (value) {\r\n return baseUrl ? `${baseUrl}${value}` : value;\r\n }\r\n\r\n return defaultImage;\r\n}\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|