@smartsoft001/crud-shell-angular 2.104.0 → 2.105.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"smartsoft001-crud-shell-angular.mjs","sources":["../tmp-esm2022/lib/crud.config.js","../tmp-esm2022/lib/+state/crud.actions.js","../tmp-esm2022/lib/+state/crud.selectors.js","../tmp-esm2022/lib/+state/crud.facade.js","../tmp-esm2022/lib/components/export/export.component.js","../tmp-esm2022/lib/components/filter/base/base.component.js","../tmp-esm2022/lib/components/filter/check/check.component.js","../tmp-esm2022/lib/components/filter/date/date.component.js","../tmp-esm2022/lib/components/filter/date-time/date-time.component.js","../tmp-esm2022/lib/components/filter/date-with-edit/date-with-edit.component.js","../tmp-esm2022/lib/components/filter/flag/flag.component.js","../tmp-esm2022/lib/components/filter/int/int.component.js","../tmp-esm2022/lib/components/filter/radio/radio.component.js","../tmp-esm2022/lib/components/filter/text/text.component.js","../tmp-esm2022/lib/components/filter/filter.component.js","../tmp-esm2022/lib/components/filters/filters.component.js","../tmp-esm2022/lib/components/filters-config/filters-config.component.js","../tmp-esm2022/lib/providers/model-possibilities/model-possibilities.provider.js","../tmp-esm2022/lib/pipes/form-options/form-options.pipe.js","../tmp-esm2022/lib/pipes/pipes.module.js","../tmp-esm2022/lib/components/multiselect/multiselect.component.js","../tmp-esm2022/lib/services/list-group/list-group.service.js","../tmp-esm2022/lib/components/group/group.component.js","../tmp-esm2022/lib/factories/list-pagination/list-pagination.factory.js","../tmp-esm2022/lib/services/crud/crud.service.js","../tmp-esm2022/lib/components/components.module.js","../tmp-esm2022/lib/+state/crud.reducer.js","../tmp-esm2022/lib/+state/crud.effects.js","../tmp-esm2022/lib/pages/item/base/base.component.js","../tmp-esm2022/lib/pages/item/standard/standard.component.js","../tmp-esm2022/lib/services/page/page.service.js","../tmp-esm2022/lib/pages/item/item.component.js","../tmp-esm2022/lib/pages/list/base/base.component.js","../tmp-esm2022/lib/pages/list/standard/standard.component.js","../tmp-esm2022/lib/services/search/search.service.js","../tmp-esm2022/lib/pages/list/list.component.js","../tmp-esm2022/lib/crud-full.module.js","../tmp-esm2022/lib/crud.module.js","../tmp-esm2022/smartsoft001-crud-shell-angular.js"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nexport class CrudConfig {\n apiUrl;\n entity;\n type;\n reducerFactory;\n baseQuery;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudConfig });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudConfig, decorators: [{\n type: Injectable\n }] });\nexport class CrudFullConfig extends CrudConfig {\n title;\n details;\n edit;\n add;\n remove;\n search;\n export;\n pagination;\n sort;\n list;\n buttons;\n inputComponents;\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullConfig });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullConfig, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jcnVkLmNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFRLE1BQU0sZUFBZSxDQUFDOztBQWFqRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQVU7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLElBQUksQ0FBTztJQUNYLGNBQWMsQ0FBYTtJQUMzQixTQUFTLENBQStCO3VHQUw3QixVQUFVOzJHQUFWLFVBQVU7OzJGQUFWLFVBQVU7a0JBRHRCLFVBQVU7O0FBVVgsTUFBTSxPQUFPLGNBQWtCLFNBQVEsVUFBYTtJQUNsRCxLQUFLLENBQVU7SUFDZixPQUFPLENBUUQ7SUFDTixJQUFJLENBUUU7SUFDTixHQUFHLENBT0c7SUFDTixNQUFNLENBQVc7SUFDakIsTUFBTSxDQUFXO0lBQ2pCLE1BQU0sQ0FBVztJQUNqQixVQUFVLENBRVI7SUFDRixJQUFJLENBS0U7SUFDTixJQUFJLENBVUY7SUFDRixPQUFPLENBQTZCO0lBQ3BDLGVBQWUsQ0FFYjt1R0F0RFMsY0FBYzsyR0FBZCxjQUFjOzsyRkFBZCxjQUFjO2tCQUQxQixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICBJSWNvbkJ1dHRvbk9wdGlvbnMsXG4gIElDZWxsUGlwZSxcbiAgSW5wdXRCYXNlQ29tcG9uZW50LFxuICBMaXN0TW9kZSxcbiAgUGFnaW5hdGlvbk1vZGUsXG59IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5cbmltcG9ydCB7IElDcnVkRmlsdGVyUXVlcnlJdGVtLCBJQ3J1ZExpc3RHcm91cCB9IGZyb20gJy4vbW9kZWxzJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRDb25maWc8VD4ge1xuICBhcGlVcmwhOiBzdHJpbmc7XG4gIGVudGl0eSE6IHN0cmluZztcbiAgdHlwZT86IGFueTtcbiAgcmVkdWNlckZhY3Rvcnk/OiAoKSA9PiBhbnk7XG4gIGJhc2VRdWVyeT86IEFycmF5PElDcnVkRmlsdGVyUXVlcnlJdGVtPjtcbn1cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRGdWxsQ29uZmlnPFQ+IGV4dGVuZHMgQ3J1ZENvbmZpZzxUPiB7XG4gIHRpdGxlITogc3RyaW5nO1xuICBkZXRhaWxzPzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgY2VsbFBpcGU/OiBJQ2VsbFBpcGU8VD47XG4gICAgICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAgICAgdG9wPzogYW55O1xuICAgICAgICAgIGJvdHRvbT86IGFueTtcbiAgICAgICAgfTtcbiAgICAgIH07XG4gIGVkaXQ/OlxuICAgIHwgYm9vbGVhblxuICAgIHwge1xuICAgICAgICBjZWxsUGlwZT86IElDZWxsUGlwZTxUPjtcbiAgICAgICAgY29tcG9uZW50cz86IHtcbiAgICAgICAgICB0b3A/OiBhbnk7XG4gICAgICAgICAgYm90dG9tPzogYW55O1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgYWRkPzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgY29tcG9uZW50cz86IHtcbiAgICAgICAgICB0b3A/OiBhbnk7XG4gICAgICAgICAgYm90dG9tPzogYW55O1xuICAgICAgICB9O1xuICAgICAgfTtcbiAgcmVtb3ZlPzogYm9vbGVhbjtcbiAgc2VhcmNoPzogYm9vbGVhbjtcbiAgZXhwb3J0PzogYm9vbGVhbjtcbiAgcGFnaW5hdGlvbj86IHtcbiAgICBsaW1pdDogbnVtYmVyO1xuICB9O1xuICBzb3J0PzpcbiAgICB8IGJvb2xlYW5cbiAgICB8IHtcbiAgICAgICAgZGVmYXVsdD86IHN0cmluZztcbiAgICAgICAgZGVmYXVsdERlc2M/OiBib29sZWFuO1xuICAgICAgfTtcbiAgbGlzdD86IHtcbiAgICBjZWxsUGlwZT86IElDZWxsUGlwZTxUPjtcbiAgICBjb21wb25lbnRzPzoge1xuICAgICAgdG9wPzogYW55O1xuICAgICAgbXVsdGk/OiBhbnk7XG4gICAgfTtcbiAgICBtb2RlPzogTGlzdE1vZGU7XG4gICAgcGFnaW5hdGlvbk1vZGU/OiBQYWdpbmF0aW9uTW9kZTtcbiAgICByZXNldFF1ZXJ5PzogJ2JlZm9yZUluaXQnO1xuICAgIGdyb3Vwcz86IEFycmF5PElDcnVkTGlzdEdyb3VwPjtcbiAgfTtcbiAgYnV0dG9ucz86IEFycmF5PElJY29uQnV0dG9uT3B0aW9ucz47XG4gIGlucHV0Q29tcG9uZW50cz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBUeXBlPElucHV0QmFzZUNvbXBvbmVudDxUPj47XG4gIH07XG59XG4iXX0=","/*\n * Create\n */\nexport const create = function (entity, item) {\n return {\n type: `[${entity}] Create`,\n item,\n };\n};\nexport const createSuccess = function (entity, item) {\n return {\n type: `[${entity}] Create Success`,\n item,\n };\n};\nexport const createFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Create Failure`,\n item,\n error,\n };\n};\n/*\n * Create many\n */\nexport const createMany = function (entity, data) {\n return {\n type: `[${entity}] Create Many`,\n data,\n };\n};\nexport const createManySuccess = function (entity, data) {\n return {\n type: `[${entity}] Create Many Success`,\n data,\n };\n};\nexport const createManyFailure = function (entity, data, error) {\n return {\n type: `[${entity}] Create Many Failure`,\n data,\n error,\n };\n};\n/*\n * Read\n */\nexport const read = function (entity, filter) {\n return {\n type: `[${entity}] Read`,\n filter: filter,\n };\n};\nexport const readSuccess = function (entity, filter, result) {\n return {\n type: `[${entity}] Read Success`,\n result,\n filter,\n };\n};\nexport const readFailure = function (entity, filter, error) {\n return {\n type: `[${entity}] Read Failure`,\n filter,\n error,\n };\n};\n/*\n * Clear\n */\nexport const clear = function (entity) {\n return {\n type: `[${entity}] Clear`,\n };\n};\n/*\n * Export\n */\nexport const exportList = function (entity, filter = null, format) {\n return {\n type: `[${entity}] Export`,\n filter: filter,\n format,\n };\n};\nexport const exportListSuccess = function (entity, filter) {\n return {\n type: `[${entity}] Export Success`,\n filter,\n };\n};\nexport const exportListFailure = function (entity, filter, error) {\n return {\n type: `[${entity}] Export Failure`,\n filter,\n error,\n };\n};\n/*\n * Select\n */\nexport const select = function (entity, id) {\n return {\n type: `[${entity}] Select`,\n id,\n };\n};\nexport const selectSuccess = function (entity, id, item) {\n return {\n type: `[${entity}] Select Success`,\n id,\n item,\n };\n};\nexport const selectFailure = function (entity, id, error) {\n return {\n type: `[${entity}] Select Failure`,\n id,\n error,\n };\n};\nexport const unselect = function (entity) {\n return {\n type: `[${entity}] Unselect`,\n };\n};\n/*\n * MultiSelect\n */\nexport const multiSelect = function (entity, items) {\n return {\n type: `[${entity}] MultiSelect`,\n items,\n };\n};\n/*\n * Update\n */\nexport const update = function (entity, item) {\n return {\n type: `[${entity}] Update`,\n item,\n };\n};\nexport const updateSuccess = function (entity, item) {\n return {\n type: `[${entity}] Update Success`,\n item,\n };\n};\nexport const updateFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Update Failure`,\n item,\n error,\n };\n};\n/*\n * Update partial\n */\nexport const updatePartial = function (entity, item) {\n return {\n type: `[${entity}] Update partial`,\n item,\n };\n};\nexport const updatePartialSuccess = function (entity, item) {\n return {\n type: `[${entity}] Update partial Success`,\n item,\n };\n};\nexport const updatePartialFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Update partial Failure`,\n item,\n error,\n };\n};\n/*\n * Update partial many\n */\nexport const updatePartialMany = function (entity, items) {\n return {\n type: `[${entity}] Update partial many`,\n items,\n };\n};\nexport const updatePartialManySuccess = function (entity, items) {\n return {\n type: `[${entity}] Update partial many Success`,\n items,\n };\n};\nexport const updatePartialManyFailure = function (entity, items, error) {\n return {\n type: `[${entity}] Update partial many Failure`,\n items,\n error,\n };\n};\n/*\n * Delete\n */\nexport const deleteItem = function (entity, id) {\n return {\n type: `[${entity}] Delete`,\n id,\n };\n};\nexport const deleteSuccess = function (entity, id) {\n return {\n type: `[${entity}] Delete Success`,\n id,\n };\n};\nexport const deleteFailure = function (entity, id, error) {\n return {\n type: `[${entity}] Delete Failure`,\n id,\n error,\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvK3N0YXRlL2NydWQuYWN0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFNQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLE1BQU0sR0FBRyxVQUNwQixNQUFjLEVBQ2QsSUFBTztJQUVQLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLFVBQVU7UUFDMUIsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFDM0IsTUFBYyxFQUNkLElBQU87SUFFUCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSxrQkFBa0I7UUFDbEMsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsVUFDM0IsTUFBYyxFQUNkLElBQU8sRUFDUCxLQUFVO0lBRVYsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sa0JBQWtCO1FBQ2xDLElBQUk7UUFDSixLQUFLO0tBQ04sQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLFVBQ3hCLE1BQWMsRUFDZCxJQUFxRDtJQUVyRCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSxlQUFlO1FBQy9CLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFDL0IsTUFBYyxFQUNkLElBQXFEO0lBRXJELE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLHVCQUF1QjtRQUN2QyxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLFVBQy9C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QUFpQixHQUFHLFVBQy9CLE1BQWMsRUFDZCxLQUFvQztJQUVwQyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSx1QkFBdUI7UUFDdkMsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUN0QyxNQUFjLEVBQ2QsS0FBb0M7SUFFcEMsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sK0JBQStCO1FBQy9DLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsVUFDdEMsTUFBYyxFQUNkLEtBQW9DLEVBQ3BDLEtBQVU7SUFFVixPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSwrQkFBK0I7UUFDL0MsS0FBSztRQUNMLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsVUFDeEIsTUFBYyxFQUNkLEVBQVU7SUFFVixPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSxVQUFVO1FBQzFCLEVBQUU7S0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQzNCLE1BQWMsRUFDZCxFQUFVO0lBRVYsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sa0JBQWtCO1FBQ2xDLEVBQUU7S0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQzNCLE1BQWMsRUFDZCxFQUFVLEVBQ1YsS0FBVTtJQUVWLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLGtCQUFrQjtRQUNsQyxFQUFFO1FBQ0YsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgSUNydWRDcmVhdGVNYW55T3B0aW9ucywgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi9tb2RlbHMnO1xuXG4vKlxuICogQ3JlYXRlXG4gKi9cbmV4cG9ydCBjb25zdCBjcmVhdGUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBULFxuKTogQWN0aW9uICYgeyBpdGVtOiBUIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBDcmVhdGVgLFxuICAgIGl0ZW0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlU3VjY2VzcyA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGl0ZW06IFQsXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFQgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIENyZWF0ZSBTdWNjZXNzYCxcbiAgICBpdGVtLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZUZhaWx1cmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBULFxuICBlcnJvcjogYW55LFxuKTogQWN0aW9uICYgeyBpdGVtOiBUOyBlcnJvcjogYW55IH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBDcmVhdGUgRmFpbHVyZWAsXG4gICAgaXRlbSxcbiAgICBlcnJvcixcbiAgfTtcbn07XG5cbi8qXG4gKiBDcmVhdGUgbWFueVxuICovXG5leHBvcnQgY29uc3QgY3JlYXRlTWFueSA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGRhdGE6IHsgaXRlbXM6IFRbXTsgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9ucyB9LFxuKTogQWN0aW9uICYgeyBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnlgLFxuICAgIGRhdGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFueVN1Y2Nlc3MgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfSxcbik6IEFjdGlvbiAmIHsgZGF0YTogeyBpdGVtczogVFtdOyBvcHRpb25zOiBJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zIH0gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIENyZWF0ZSBNYW55IFN1Y2Nlc3NgLFxuICAgIGRhdGEsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlTWFueUZhaWx1cmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfSxcbiAgZXJyb3I6IGFueSxcbik6IEFjdGlvbiAmIHtcbiAgZGF0YTogeyBpdGVtczogVFtdOyBvcHRpb25zOiBJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zIH07XG4gIGVycm9yOiBhbnk7XG59IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnkgRmFpbHVyZWAsXG4gICAgZGF0YSxcbiAgICBlcnJvcixcbiAgfTtcbn07XG5cbi8qXG4gKiBSZWFkXG4gKi9cbmV4cG9ydCBjb25zdCByZWFkID0gZnVuY3Rpb24gKFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyPzogSUNydWRGaWx0ZXIsXG4pOiBBY3Rpb24gJiB7IGZpbHRlcj86IElDcnVkRmlsdGVyIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBSZWFkYCxcbiAgICBmaWx0ZXI6IGZpbHRlcixcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWFkU3VjY2VzcyA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LCBGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGZpbHRlcjogRixcbiAgcmVzdWx0OiB7IGRhdGE6IFRbXTsgdG90YWxDb3VudDogbnVtYmVyOyBsaW5rczogYW55IH0sXG4pOiBBY3Rpb24gJiB7XG4gIHJlc3VsdDogeyBkYXRhOiBUW107IHRvdGFsQ291bnQ6IG51bWJlcjsgbGlua3M6IGFueSB9O1xuICBmaWx0ZXI6IEY7XG59IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gUmVhZCBTdWNjZXNzYCxcbiAgICByZXN1bHQsXG4gICAgZmlsdGVyLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHJlYWRGYWlsdXJlID0gZnVuY3Rpb24gPEY+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyOiBGLFxuICBlcnJvcjogYW55LFxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IEY7IGVycm9yOiBhbnkgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFJlYWQgRmFpbHVyZWAsXG4gICAgZmlsdGVyLFxuICAgIGVycm9yLFxuICB9O1xufTtcblxuLypcbiAqIENsZWFyXG4gKi9cbmV4cG9ydCBjb25zdCBjbGVhciA9IGZ1bmN0aW9uIChlbnRpdHk6IHN0cmluZyk6IEFjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIENsZWFyYCxcbiAgfTtcbn07XG5cbi8qXG4gKiBFeHBvcnRcbiAqL1xuZXhwb3J0IGNvbnN0IGV4cG9ydExpc3QgPSBmdW5jdGlvbiAoXG4gIGVudGl0eTogc3RyaW5nLFxuICBmaWx0ZXI6IElDcnVkRmlsdGVyIHwgbnVsbCA9IG51bGwsXG4gIGZvcm1hdDogYW55LFxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IElDcnVkRmlsdGVyOyBmb3JtYXQ6IGFueSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gRXhwb3J0YCxcbiAgICBmaWx0ZXI6IGZpbHRlciBhcyBhbnksXG4gICAgZm9ybWF0LFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGV4cG9ydExpc3RTdWNjZXNzID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4sIEY+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyOiBGLFxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IEYgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIEV4cG9ydCBTdWNjZXNzYCxcbiAgICBmaWx0ZXIsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0TGlzdEZhaWx1cmUgPSBmdW5jdGlvbiA8Rj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBmaWx0ZXI6IEYsXG4gIGVycm9yOiBhbnksXG4pOiBBY3Rpb24gJiB7IGZpbHRlcjogRjsgZXJyb3I6IGFueSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gRXhwb3J0IEZhaWx1cmVgLFxuICAgIGZpbHRlcixcbiAgICBlcnJvcixcbiAgfTtcbn07XG5cbi8qXG4gKiBTZWxlY3RcbiAqL1xuZXhwb3J0IGNvbnN0IHNlbGVjdCA9IGZ1bmN0aW9uIChcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmcgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFNlbGVjdGAsXG4gICAgaWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3Qgc2VsZWN0U3VjY2VzcyA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LCBGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIGl0ZW06IFQsXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmc7IGl0ZW06IFQgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFNlbGVjdCBTdWNjZXNzYCxcbiAgICBpZCxcbiAgICBpdGVtLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdEZhaWx1cmUgPSBmdW5jdGlvbiA8Rj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nLFxuICBlcnJvcjogYW55LFxuKTogQWN0aW9uICYgeyBpZDogc3RyaW5nOyBlcnJvcjogYW55IH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBTZWxlY3QgRmFpbHVyZWAsXG4gICAgaWQsXG4gICAgZXJyb3IsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdW5zZWxlY3QgPSBmdW5jdGlvbiAoZW50aXR5OiBzdHJpbmcpOiBBY3Rpb24ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBVbnNlbGVjdGAsXG4gIH07XG59O1xuXG4vKlxuICogTXVsdGlTZWxlY3RcbiAqL1xuZXhwb3J0IGNvbnN0IG11bHRpU2VsZWN0ID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbXM6IEFycmF5PFQ+LFxuKTogQWN0aW9uICYgeyBpdGVtczogQXJyYXk8VD4gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIE11bHRpU2VsZWN0YCxcbiAgICBpdGVtcyxcbiAgfTtcbn07XG5cbi8qXG4gKiBVcGRhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IHVwZGF0ZSA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGl0ZW06IFQsXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFQgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZWAsXG4gICAgaXRlbSxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVTdWNjZXNzID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogVCxcbik6IEFjdGlvbiAmIHsgaXRlbTogVCB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIFN1Y2Nlc3NgLFxuICAgIGl0ZW0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlRmFpbHVyZSA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGl0ZW06IFQsXG4gIGVycm9yOiBhbnksXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFQ7IGVycm9yOiBhbnkgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZSBGYWlsdXJlYCxcbiAgICBpdGVtLFxuICAgIGVycm9yLFxuICB9O1xufTtcblxuLypcbiAqIFVwZGF0ZSBwYXJ0aWFsXG4gKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9LFxuKTogQWN0aW9uICYgeyBpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsYCxcbiAgICBpdGVtLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBhcnRpYWxTdWNjZXNzID0gZnVuY3Rpb24gPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9LFxuKTogQWN0aW9uICYgeyBpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgLFxuICAgIGl0ZW0sXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUGFydGlhbEZhaWx1cmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0sXG4gIGVycm9yOiBhbnksXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfTsgZXJyb3I6IGFueSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgRmFpbHVyZWAsXG4gICAgaXRlbSxcbiAgICBlcnJvcixcbiAgfTtcbn07XG5cbi8qXG4gKiBVcGRhdGUgcGFydGlhbCBtYW55XG4gKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsTWFueSA9IGZ1bmN0aW9uIDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXSxcbik6IEFjdGlvbiAmIHsgaXRlbXM6IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfVtdIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55YCxcbiAgICBpdGVtcyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsTWFueVN1Y2Nlc3MgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtczogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9W10sXG4pOiBBY3Rpb24gJiB7IGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBTdWNjZXNzYCxcbiAgICBpdGVtcyxcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsTWFueUZhaWx1cmUgPSBmdW5jdGlvbiA8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtczogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9W10sXG4gIGVycm9yOiBhbnksXG4pOiBBY3Rpb24gJiB7IGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXTsgZXJyb3I6IGFueSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBGYWlsdXJlYCxcbiAgICBpdGVtcyxcbiAgICBlcnJvcixcbiAgfTtcbn07XG5cbi8qXG4gKiBEZWxldGVcbiAqL1xuZXhwb3J0IGNvbnN0IGRlbGV0ZUl0ZW0gPSBmdW5jdGlvbiAoXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nLFxuKTogQWN0aW9uICYgeyBpZDogc3RyaW5nIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBEZWxldGVgLFxuICAgIGlkLFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZVN1Y2Nlc3MgPSBmdW5jdGlvbiAoXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nLFxuKTogQWN0aW9uICYgeyBpZDogc3RyaW5nIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBEZWxldGUgU3VjY2Vzc2AsXG4gICAgaWQsXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZGVsZXRlRmFpbHVyZSA9IGZ1bmN0aW9uIDxGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIGVycm9yOiBhbnksXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmc7IGVycm9yOiBhbnkgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIERlbGV0ZSBGYWlsdXJlYCxcbiAgICBpZCxcbiAgICBlcnJvcixcbiAgfTtcbn07XG4iXX0=","import { createFeatureSelector, createSelector } from '@ngrx/store';\nexport const getCrudState = (entity) => createFeatureSelector(entity);\nexport const getCrudSelected = (entity) => createSelector(getCrudState(entity), (state) => state.selected);\nexport const getCrudMultiSelected = (entity) => createSelector(getCrudState(entity), (state) => state.multiSelected);\nexport const getCrudList = (entity) => createSelector(getCrudState(entity), (state) => state?.list);\nexport const getCrudTotalCount = (entity) => createSelector(getCrudState(entity), (state) => state?.totalCount);\nexport const getCrudLinks = (entity) => createSelector(getCrudState(entity), (state) => state?.links);\nexport const getCrudLoaded = (entity) => createSelector(getCrudState(entity), (state) => state?.loaded);\nexport const getCrudFilter = (entity) => createSelector(getCrudState(entity), (state) => state?.filter);\nexport const getCrudError = (entity) => createSelector(getCrudState(entity), (state) => state?.error);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5zZWxlY3RvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVwRSxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUM3QyxxQkFBcUIsQ0FBTSxNQUFNLENBQUMsQ0FBQztBQUVyQyxNQUFNLENBQUMsTUFBTSxlQUFlLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUNoRCxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7QUFFbEUsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUNyRCxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7QUFFdkUsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDNUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO0FBRS9ELE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDbEQsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBRXJFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQzdDLGNBQWMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztBQUVoRSxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFjLEVBQUUsRUFBRSxDQUM5QyxjQUFjLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFFakUsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLENBQUMsTUFBYyxFQUFFLEVBQUUsQ0FDOUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0FBRWpFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQWMsRUFBRSxFQUFFLENBQzdDLGNBQWMsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3IgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkU3RhdGUgPSAoZW50aXR5OiBzdHJpbmcpID0+XG4gIGNyZWF0ZUZlYXR1cmVTZWxlY3Rvcjxhbnk+KGVudGl0eSk7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkU2VsZWN0ZWQgPSAoZW50aXR5OiBzdHJpbmcpID0+XG4gIGNyZWF0ZVNlbGVjdG9yKGdldENydWRTdGF0ZShlbnRpdHkpLCAoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRNdWx0aVNlbGVjdGVkID0gKGVudGl0eTogc3RyaW5nKSA9PlxuICBjcmVhdGVTZWxlY3RvcihnZXRDcnVkU3RhdGUoZW50aXR5KSwgKHN0YXRlKSA9PiBzdGF0ZS5tdWx0aVNlbGVjdGVkKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRMaXN0ID0gKGVudGl0eTogc3RyaW5nKSA9PlxuICBjcmVhdGVTZWxlY3RvcihnZXRDcnVkU3RhdGUoZW50aXR5KSwgKHN0YXRlKSA9PiBzdGF0ZT8ubGlzdCk7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkVG90YWxDb3VudCA9IChlbnRpdHk6IHN0cmluZykgPT5cbiAgY3JlYXRlU2VsZWN0b3IoZ2V0Q3J1ZFN0YXRlKGVudGl0eSksIChzdGF0ZSkgPT4gc3RhdGU/LnRvdGFsQ291bnQpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZExpbmtzID0gKGVudGl0eTogc3RyaW5nKSA9PlxuICBjcmVhdGVTZWxlY3RvcihnZXRDcnVkU3RhdGUoZW50aXR5KSwgKHN0YXRlKSA9PiBzdGF0ZT8ubGlua3MpO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZExvYWRlZCA9IChlbnRpdHk6IHN0cmluZykgPT5cbiAgY3JlYXRlU2VsZWN0b3IoZ2V0Q3J1ZFN0YXRlKGVudGl0eSksIChzdGF0ZSkgPT4gc3RhdGU/LmxvYWRlZCk7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkRmlsdGVyID0gKGVudGl0eTogc3RyaW5nKSA9PlxuICBjcmVhdGVTZWxlY3RvcihnZXRDcnVkU3RhdGUoZW50aXR5KSwgKHN0YXRlKSA9PiBzdGF0ZT8uZmlsdGVyKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRFcnJvciA9IChlbnRpdHk6IHN0cmluZykgPT5cbiAgY3JlYXRlU2VsZWN0b3IoZ2V0Q3J1ZFN0YXRlKGVudGl0eSksIChzdGF0ZSkgPT4gc3RhdGU/LmVycm9yKTtcbiJdfQ==","import { Injectable } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { select, Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\nimport { NgrxStoreService } from '@smartsoft001/angular';\nimport { CrudConfig } from '../crud.config';\nimport * as CrudActions from './crud.actions';\nimport * as CrudSelectors from './crud.selectors';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrx/store\";\nimport * as i2 from \"../crud.config\";\nexport class CrudFacade {\n store;\n config;\n loaded;\n loading;\n selected;\n multiSelected;\n list;\n filter;\n totalCount;\n links;\n error;\n constructor(store, config) {\n this.store = store;\n this.config = config;\n if (NgrxStoreService.store) {\n this.store = NgrxStoreService.store;\n }\n // Initialize all signals in the constructor (injection context)\n this.loaded = toSignal(this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity))));\n this.loading = toSignal(this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity)), map((l) => !l)));\n this.selected = toSignal(this.store.pipe(select(CrudSelectors.getCrudSelected(this.config.entity))));\n this.multiSelected = toSignal(this.store.pipe(select(CrudSelectors.getCrudMultiSelected(this.config.entity))));\n this.list = toSignal(this.store.pipe(select(CrudSelectors.getCrudList(this.config.entity))));\n this.filter = toSignal(this.store.pipe(select(CrudSelectors.getCrudFilter(this.config.entity))));\n this.totalCount = toSignal(this.store.pipe(select(CrudSelectors.getCrudTotalCount(this.config.entity))));\n this.links = toSignal(this.store.pipe(select(CrudSelectors.getCrudLinks(this.config.entity))));\n this.error = toSignal(this.store.pipe(select(CrudSelectors.getCrudError(this.config.entity))));\n }\n create(item) {\n this.store.dispatch(CrudActions.create(this.config.entity, item));\n }\n createMany(items, options) {\n this.store.dispatch(CrudActions.createMany(this.config.entity, { items, options }));\n }\n read(filter = {}) {\n let baseQuery = [];\n if (this.config.baseQuery) {\n baseQuery = this.config.baseQuery;\n }\n const fullFilter = {\n ...(filter ? filter : {}),\n query: filter && filter.query ? filter.query : baseQuery,\n };\n this.store.dispatch(CrudActions.read(this.config.entity, fullFilter));\n }\n clear() {\n this.store.dispatch(CrudActions.clear(this.config.entity));\n }\n select(id) {\n this.store.dispatch(CrudActions.select(this.config.entity, id));\n }\n unselect() {\n this.store.dispatch(CrudActions.unselect(this.config.entity));\n }\n multiSelect(items) {\n this.store.dispatch(CrudActions.multiSelect(this.config.entity, items));\n }\n update(item) {\n this.getStore().dispatch(CrudActions.update(this.config.entity, item));\n }\n export(filter = {}, format) {\n this.getStore().dispatch(CrudActions.exportList(this.config.entity, filter, format));\n }\n updatePartial(item) {\n this.getStore().dispatch(CrudActions.updatePartial(this.config.entity, item));\n }\n updatePartialMany(items) {\n this.getStore().dispatch(CrudActions.updatePartialMany(this.config.entity, items));\n }\n delete(id) {\n this.getStore().dispatch(CrudActions.deleteItem(this.config.entity, id));\n }\n getStore() {\n if (NgrxStoreService.store)\n return NgrxStoreService.store;\n return this.store;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFacade, deps: [{ token: i1.Store }, { token: i2.CrudConfig }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFacade });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFacade, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.Store }, { type: i2.CrudConfig }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5mYWNhZGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXJDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBR3pELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEtBQUssV0FBVyxNQUFNLGdCQUFnQixDQUFDO0FBQzlDLE9BQU8sS0FBSyxhQUFhLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFRbEQsTUFBTSxPQUFPLFVBQVU7SUFZRjtJQUNUO0lBWkQsTUFBTSxDQUE4QjtJQUNwQyxPQUFPLENBQWtCO0lBQ3pCLFFBQVEsQ0FBd0I7SUFDaEMsYUFBYSxDQUEwQjtJQUN2QyxJQUFJLENBQTBCO0lBQzlCLE1BQU0sQ0FBa0M7SUFDeEMsVUFBVSxDQUE2QjtJQUN2QyxLQUFLLENBQWM7SUFDbkIsS0FBSyxDQUFjO0lBRTVCLFlBQ21CLEtBQWlCLEVBQzFCLE1BQXFCO1FBRFosVUFBSyxHQUFMLEtBQUssQ0FBWTtRQUMxQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRTdCLElBQUksZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFDdEMsQ0FBQztRQUVELGdFQUFnRTtRQUNoRSxJQUFJLENB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aWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgc2VsZWN0LCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgTmdyeFN0b3JlU2VydmljZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IENydWRDb25maWcgfSBmcm9tICcuLi9jcnVkLmNvbmZpZyc7XG5pbXBvcnQgKiBhcyBDcnVkQWN0aW9ucyBmcm9tICcuL2NydWQuYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBDcnVkU2VsZWN0b3JzIGZyb20gJy4vY3J1ZC5zZWxlY3RvcnMnO1xuaW1wb3J0IHtcbiAgSUNydWRDcmVhdGVNYW55T3B0aW9ucyxcbiAgSUNydWRGaWx0ZXIsXG4gIElDcnVkRmlsdGVyUXVlcnlJdGVtLFxufSBmcm9tICcuLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZEZhY2FkZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHJlYWRvbmx5IGxvYWRlZDogU2lnbmFsPGJvb2xlYW4gfCB1bmRlZmluZWQ+O1xuICByZWFkb25seSBsb2FkaW5nOiBTaWduYWw8Ym9vbGVhbj47XG4gIHJlYWRvbmx5IHNlbGVjdGVkOiBTaWduYWw8VCB8IHVuZGVmaW5lZD47XG4gIHJlYWRvbmx5IG11bHRpU2VsZWN0ZWQ6IFNpZ25hbDxUW10gfCB1bmRlZmluZWQ+O1xuICByZWFkb25seSBsaXN0OiBTaWduYWw8VFtdIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgZmlsdGVyOiBTaWduYWw8SUNydWRGaWx0ZXIgfCB1bmRlZmluZWQ+O1xuICByZWFkb25seSB0b3RhbENvdW50OiBTaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPjtcbiAgcmVhZG9ubHkgbGlua3M6IFNpZ25hbDxhbnk+O1xuICByZWFkb25seSBlcnJvcjogU2lnbmFsPGFueT47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIGNvbmZpZzogQ3J1ZENvbmZpZzxUPixcbiAgKSB7XG4gICAgaWYgKE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmUpIHtcbiAgICAgIHRoaXMuc3RvcmUgPSBOZ3J4U3RvcmVTZXJ2aWNlLnN0b3JlO1xuICAgIH1cblxuICAgIC8vIEluaXRpYWxpemUgYWxsIHNpZ25hbHMgaW4gdGhlIGNvbnN0cnVjdG9yIChpbmplY3Rpb24gY29udGV4dClcbiAgICB0aGlzLmxvYWRlZCA9IHRvU2lnbmFsPGJvb2xlYW4+KFxuICAgICAgdGhpcy5zdG9yZS5waXBlKHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRMb2FkZWQodGhpcy5jb25maWcuZW50aXR5KSkpLFxuICAgICk7XG5cbiAgICB0aGlzLmxvYWRpbmcgPSB0b1NpZ25hbDxib29sZWFuPihcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZExvYWRlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICAgICAgbWFwKChsKSA9PiAhbCksXG4gICAgICApLFxuICAgICkgYXMgU2lnbmFsPGJvb2xlYW4+O1xuXG4gICAgdGhpcy5zZWxlY3RlZCA9IHRvU2lnbmFsPFQ+KFxuICAgICAgdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkU2VsZWN0ZWQodGhpcy5jb25maWcuZW50aXR5KSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLm11bHRpU2VsZWN0ZWQgPSB0b1NpZ25hbDxUW10+KFxuICAgICAgdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkTXVsdGlTZWxlY3RlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICAgICksXG4gICAgKTtcblxuICAgIHRoaXMubGlzdCA9IHRvU2lnbmFsPFRbXT4oXG4gICAgICB0aGlzLnN0b3JlLnBpcGUoc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZExpc3QodGhpcy5jb25maWcuZW50aXR5KSkpLFxuICAgICk7XG5cbiAgICB0aGlzLmZpbHRlciA9IHRvU2lnbmFsPElDcnVkRmlsdGVyPihcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpKSxcbiAgICApO1xuXG4gICAgdGhpcy50b3RhbENvdW50ID0gdG9TaWduYWw8bnVtYmVyPihcbiAgICAgIHRoaXMuc3RvcmUucGlwZShcbiAgICAgICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZFRvdGFsQ291bnQodGhpcy5jb25maWcuZW50aXR5KSksXG4gICAgICApLFxuICAgICk7XG5cbiAgICB0aGlzLmxpbmtzID0gdG9TaWduYWw8YW55PihcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkTGlua3ModGhpcy5jb25maWcuZW50aXR5KSkpLFxuICAgICk7XG5cbiAgICB0aGlzLmVycm9yID0gdG9TaWduYWw8YW55PihcbiAgICAgIHRoaXMuc3RvcmUucGlwZShzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkRXJyb3IodGhpcy5jb25maWcuZW50aXR5KSkpLFxuICAgICk7XG4gIH1cblxuICBjcmVhdGUoaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuY3JlYXRlKHRoaXMuY29uZmlnLmVudGl0eSwgaXRlbSkpO1xuICB9XG5cbiAgY3JlYXRlTWFueShpdGVtczogQXJyYXk8VD4sIG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlTWFueSh0aGlzLmNvbmZpZy5lbnRpdHksIHsgaXRlbXMsIG9wdGlvbnMgfSksXG4gICAgKTtcbiAgfVxuXG4gIHJlYWQoZmlsdGVyOiBJQ3J1ZEZpbHRlciA9IHt9KTogdm9pZCB7XG4gICAgbGV0IGJhc2VRdWVyeTogSUNydWRGaWx0ZXJRdWVyeUl0ZW1bXSA9IFtdO1xuICAgIGlmICh0aGlzLmNvbmZpZy5iYXNlUXVlcnkpIHtcbiAgICAgIGJhc2VRdWVyeSA9IHRoaXMuY29uZmlnLmJhc2VRdWVyeTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsRmlsdGVyID0ge1xuICAgICAgLi4uKGZpbHRlciA/IGZpbHRlciA6IHt9KSxcbiAgICAgIHF1ZXJ5OiBmaWx0ZXIgJiYgZmlsdGVyLnF1ZXJ5ID8gZmlsdGVyLnF1ZXJ5IDogYmFzZVF1ZXJ5LFxuICAgIH07XG5cbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCBmdWxsRmlsdGVyKSk7XG4gIH1cblxuICBjbGVhcigpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLmNsZWFyKHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICB9XG5cbiAgc2VsZWN0KGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGlkKSk7XG4gIH1cblxuICB1bnNlbGVjdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnVuc2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICB9XG5cbiAgbXVsdGlTZWxlY3QoaXRlbXM6IEFycmF5PFQ+KTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5tdWx0aVNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGl0ZW1zKSk7XG4gIH1cblxuICB1cGRhdGUoaXRlbTogVCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaChDcnVkQWN0aW9ucy51cGRhdGUodGhpcy5jb25maWcuZW50aXR5LCBpdGVtKSk7XG4gIH1cblxuICBleHBvcnQoZmlsdGVyOiBJQ3J1ZEZpbHRlciA9IHt9LCBmb3JtYXQ/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goXG4gICAgICBDcnVkQWN0aW9ucy5leHBvcnRMaXN0KHRoaXMuY29uZmlnLmVudGl0eSwgZmlsdGVyLCBmb3JtYXQpLFxuICAgICk7XG4gIH1cblxuICB1cGRhdGVQYXJ0aWFsKGl0ZW06IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaChcbiAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWwodGhpcy5jb25maWcuZW50aXR5LCBpdGVtKSxcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlUGFydGlhbE1hbnkoaXRlbXM6IChQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0pW10pIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goXG4gICAgICBDcnVkQWN0aW9ucy51cGRhdGVQYXJ0aWFsTWFueSh0aGlzLmNvbmZpZy5lbnRpdHksIGl0ZW1zKSxcbiAgICApO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuZGVsZXRlSXRlbSh0aGlzLmNvbmZpZy5lbnRpdHksIGlkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0b3JlKCk6IFN0b3JlIHtcbiAgICBpZiAoTmdyeFN0b3JlU2VydmljZS5zdG9yZSkgcmV0dXJuIE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmU7XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcbiAgfVxufVxuIl19","import { Component, ElementRef, inject } from '@angular/core';\nimport { BaseComponent, ButtonComponent, PopoverService, StyleService, } from '@smartsoft001/angular';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nexport class ExportComponent extends BaseComponent {\n facade = inject((CrudFacade));\n popoverService = inject(PopoverService);\n styleService = inject(StyleService);\n elementRef = inject(ElementRef);\n buttonExportCsvOptions = this.initButtonExportOptions('csv');\n buttonExportXlsxOptions = this.initButtonExportOptions('xlsx');\n ngOnInit() {\n this.styleService.init(this.elementRef);\n }\n initButtonExportOptions(format) {\n return {\n click: () => {\n this.facade.export({\n ...this.facade.filter(),\n offset: undefined,\n limit: undefined,\n }, format);\n const loading = this.facade.loading();\n if (loading)\n return;\n this.popoverService.close().then();\n },\n loading: this.facade.loading,\n expand: 'block',\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ExportComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"20.1.0\", type: ExportComponent, isStandalone: true, selector: \"smart-crud-export\", usesInheritance: true, ngImport: i0, template: `\n <div class=\"p-5\">\n <p class=\"my-2.5 mx-0\">\n <smart-button [options]=\"buttonExportCsvOptions\" class=\"w-full block\"\n >CSV</smart-button\n >\n </p>\n <p>\n <smart-button [options]=\"buttonExportXlsxOptions\" class=\"w-full block\"\n >XLSX</smart-button\n >\n </p>\n </div>\n `, isInline: true, dependencies: [{ kind: \"component\", type: ButtonComponent, selector: \"smart-button\", inputs: [\"options\", \"disabled\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ExportComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-export',\n template: `\n <div class=\"p-5\">\n <p class=\"my-2.5 mx-0\">\n <smart-button [options]=\"buttonExportCsvOptions\" class=\"w-full block\"\n >CSV</smart-button\n >\n </p>\n <p>\n <smart-button [options]=\"buttonExportXlsxOptions\" class=\"w-full block\"\n >XLSX</smart-button\n >\n </p>\n </div>\n `,\n imports: [ButtonComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZXhwb3J0L2V4cG9ydC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXRFLE9BQU8sRUFDTCxhQUFhLEVBQ2IsZUFBZSxFQUVmLGNBQWMsRUFDZCxZQUFZLEdBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUcvQixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBb0J0RCxNQUFNLE9BQU8sZUFDWCxTQUFRLGFBQWE7SUFHYixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUMvQixjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLFlBQVksR0FBRyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUV4QyxzQkFBc0IsR0FBbUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdFLHVCQUF1QixHQUNyQixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7SUFFdkMsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBYztRQUM1QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FDaEI7b0JBQ0UsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtvQkFDdkIsTUFBTSxFQUFFLFNBQVM7b0JBQ2pCLEtBQUssRUFBRSxTQUFTO2lCQUNqQixFQUNELE1BQU0sQ0FDUCxDQUFDO2dCQUVGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ3RDLElBQUksT0FBTztvQkFBRSxPQUFPO2dCQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3JDLENBQUM7WUFDRCxPQUFPLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1lBQzVCLE1BQU0sRUFBRSxPQUFPO1NBQ2hCLENBQUM7SUFDSixDQUFDO3VHQXBDVSxlQUFlOzJGQUFmLGVBQWUsb0dBaEJoQjs7Ozs7Ozs7Ozs7OztHQWFULDREQUNTLGVBQWU7OzJGQUVkLGVBQWU7a0JBbEIzQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7OztHQWFUO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIGluamVjdCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJhc2VDb21wb25lbnQsXG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgSUJ1dHRvbk9wdGlvbnMsXG4gIFBvcG92ZXJTZXJ2aWNlLFxuICBTdHlsZVNlcnZpY2UsXG59IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWV4cG9ydCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgPGRpdiBjbGFzcz1cInAtNVwiPlxuICAgICAgPHAgY2xhc3M9XCJteS0yLjUgbXgtMFwiPlxuICAgICAgICA8c21hcnQtYnV0dG9uIFtvcHRpb25zXT1cImJ1dHRvbkV4cG9ydENzdk9wdGlvbnNcIiBjbGFzcz1cInctZnVsbCBibG9ja1wiXG4gICAgICAgICAgPkNTVjwvc21hcnQtYnV0dG9uXG4gICAgICAgID5cbiAgICAgIDwvcD5cbiAgICAgIDxwPlxuICAgICAgICA8c21hcnQtYnV0dG9uIFtvcHRpb25zXT1cImJ1dHRvbkV4cG9ydFhsc3hPcHRpb25zXCIgY2xhc3M9XCJ3LWZ1bGwgYmxvY2tcIlxuICAgICAgICAgID5YTFNYPC9zbWFydC1idXR0b25cbiAgICAgICAgPlxuICAgICAgPC9wPlxuICAgIDwvZGl2PlxuICBgLFxuICBpbXBvcnRzOiBbQnV0dG9uQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRXhwb3J0Q29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+XG4gIGV4dGVuZHMgQmFzZUNvbXBvbmVudFxuICBpbXBsZW1lbnRzIE9uSW5pdFxue1xuICBwcml2YXRlIGZhY2FkZSA9IGluamVjdChDcnVkRmFjYWRlPFQ+KTtcbiAgcHJpdmF0ZSBwb3BvdmVyU2VydmljZSA9IGluamVjdChQb3BvdmVyU2VydmljZSk7XG4gIHByaXZhdGUgc3R5bGVTZXJ2aWNlID0gaW5qZWN0KFN0eWxlU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBidXR0b25FeHBvcnRDc3ZPcHRpb25zOiBJQnV0dG9uT3B0aW9ucyA9IHRoaXMuaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoJ2NzdicpO1xuICBidXR0b25FeHBvcnRYbHN4T3B0aW9uczogSUJ1dHRvbk9wdGlvbnMgPVxuICAgIHRoaXMuaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoJ3hsc3gnKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlU2VydmljZS5pbml0KHRoaXMuZWxlbWVudFJlZik7XG4gIH1cblxuICBwcml2YXRlIGluaXRCdXR0b25FeHBvcnRPcHRpb25zKGZvcm1hdDogc3RyaW5nKTogSUJ1dHRvbk9wdGlvbnMge1xuICAgIHJldHVybiB7XG4gICAgICBjbGljazogKCkgPT4ge1xuICAgICAgICB0aGlzLmZhY2FkZS5leHBvcnQoXG4gICAgICAgICAge1xuICAgICAgICAgICAgLi4udGhpcy5mYWNhZGUuZmlsdGVyKCksXG4gICAgICAgICAgICBvZmZzZXQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgIGxpbWl0OiB1bmRlZmluZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBmb3JtYXQsXG4gICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgbG9hZGluZyA9IHRoaXMuZmFjYWRlLmxvYWRpbmcoKTtcbiAgICAgICAgaWYgKGxvYWRpbmcpIHJldHVybjtcbiAgICAgICAgdGhpcy5wb3BvdmVyU2VydmljZS5jbG9zZSgpLnRoZW4oKTtcbiAgICAgIH0sXG4gICAgICBsb2FkaW5nOiB0aGlzLmZhY2FkZS5sb2FkaW5nLFxuICAgICAgZXhwYW5kOiAnYmxvY2snLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { __decorate, __metadata } from \"tslib\";\nimport { Directive, inject, input, } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Debounce } from 'lodash-decorators';\nimport { FieldType } from '@smartsoft001/models';\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nexport class BaseComponent {\n facade = inject((CrudFacade));\n translateService = inject(TranslateService);\n possibilities;\n item = input(...(ngDevMode ? [undefined, { debugName: \"item\" }] : []));\n filter = input(...(ngDevMode ? [undefined, { debugName: \"filter\" }] : []));\n get value() {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query)\n return null;\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === item.type)\n .map((q) => q.value);\n }\n const query = filter.query.find((q) => q.key === item.key && q.type === item.type);\n return query?.value;\n }\n set value(val) {\n this.refresh(val);\n }\n get minValue() {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query)\n return null;\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === '>=')\n .map((q) => q.value);\n }\n const query = filter.query.find((q) => q.key === item.key && q.type === '>=');\n return query?.value;\n }\n set minValue(val) {\n this.refresh(val, '>=');\n }\n get maxValue() {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query)\n return null;\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === '<=')\n .map((q) => q.value);\n }\n const query = filter.query.find((q) => q.key === item.key && q.type === '<=');\n return query?.value;\n }\n set maxValue(val) {\n this.refresh(val, '<=');\n }\n get lang() {\n return this.translateService.currentLang;\n }\n refresh(val, type = null) {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item)\n return;\n if (!type)\n type = item.type;\n if (!filter.query)\n filter.query = [];\n filter.offset = 0;\n if (this.isArrayType()) {\n this.refreshForArray(val, type);\n return;\n }\n let query = filter.query.find((q) => q.key === item.key && q.type === type);\n if (val === null || val === undefined || val === '') {\n if (query) {\n const index = filter.query.indexOf(query);\n if (index > -1) {\n filter.query.splice(index, 1);\n }\n }\n this.facade.read(filter);\n return;\n }\n if (!query) {\n query = {\n key: item.key,\n type: type,\n value: null,\n };\n filter.query.push(query);\n }\n query.value = val;\n query.label = item.label;\n this.facade.read(filter);\n }\n clear() {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query)\n return;\n filter.query = filter.query?.filter((q) => q.key !== item.key);\n filter.offset = 0;\n this.facade.read(filter);\n }\n ngOnInit() {\n this.initPossibilities();\n }\n initPossibilities() {\n const item = this.item();\n if (item?.possibilities) {\n this.possibilities = item.possibilities;\n }\n }\n isArrayType() {\n const item = this.item();\n return item?.fieldType === FieldType.check;\n }\n refreshForArray(vals, type) {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item)\n return;\n if (!filter.query)\n filter.query = [];\n const queries = filter.query?.filter((q) => q.key === item.key && q.type === type) || [];\n queries.forEach((query) => {\n const index = filter.query.indexOf(query);\n if (index > -1) {\n filter.query.splice(index, 1);\n }\n });\n if (vals === null || vals === undefined || !vals.length) {\n this.facade.read(filter);\n return;\n }\n vals.forEach((val) => {\n const query = {\n key: item.key,\n type: type,\n value: val,\n };\n filter.query.push(query);\n });\n this.facade.read(filter);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.1.0\", type: BaseComponent, isStandalone: true, inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: \"filter\", publicName: \"filter\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 });\n}\n__decorate([\n Debounce(500),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object]),\n __metadata(\"design:returntype\", void 0)\n], BaseComponent.prototype, \"refresh\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: BaseComponent, decorators: [{\n type: Directive\n }], propDecorators: { refresh: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9iYXNlL2Jhc2UuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULE1BQU0sRUFDTixLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRzdDLE9BQU8sRUFBRSxTQUFTLEVBQWdCLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQUl6RCxNQUFNLE9BQU8sYUFBYTtJQUNkLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUFhLENBQUEsQ0FBQyxDQUFDO0lBQy9CLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBRXRELGFBQWEsQ0FBdUM7SUFFM0MsSUFBSSxHQUEwQyxLQUFLLDBEQUFnQixDQUFDO0lBQ3BFLE1BQU0sR0FBeUMsS0FBSyw0REFBZSxDQUFDO0lBRTdFLElBQUksS0FBSztRQUNQLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFbkQsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFLEVBQUUsQ0FBQztZQUN2QixPQUFPLE1BQU0sQ0FBQyxLQUFLO2lCQUNoQixN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QyxLQUFLLENBQUMsQ0FBQztZQUMzQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUNmLE1BQU0sQ0FBQyxLQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztZQUNqQyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN6QixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUNuQixNQUFNLEtBQUssR0FBRztnQkFDWixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7Z0JBQ2IsSUFBSSxFQUFFLElBQTRDO2dCQUNsRCxLQUFLLEVBQUUsR0FBRzthQUNYLENBQUM7WUFFRixNQUFNLENBQUMsS0FBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUM1QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzNCLENBQUM7dUdBdExVLGFBQWE7MkZBQWIsYUFBYTs7QUE2RXhCO0lBREMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7Ozs0Q0E4Q2I7MkZBMUhVLGFBQWE7a0JBRHpCLFNBQVM7OEJBOEVSLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPbkluaXQsXG4gIFNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBEZWJvdW5jZSB9IGZyb20gJ2xvZGFzaC1kZWNvcmF0b3JzJztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHsgRmllbGRUeXBlLCBJTW9kZWxGaWx0ZXIgfSBmcm9tICdAc21hcnRzb2Z0MDAxL21vZGVscyc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGZhY2FkZSA9IGluamVjdChDcnVkRmFjYWRlPFQ+KTtcbiAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG5cbiAgcG9zc2liaWxpdGllcyE6IFNpZ25hbDx7IGlkOiBhbnk7IHRleHQ6IHN0cmluZyB9W10+O1xuXG4gIHJlYWRvbmx5IGl0ZW06IElucHV0U2lnbmFsPElNb2RlbEZpbHRlciB8IHVuZGVmaW5lZD4gPSBpbnB1dDxJTW9kZWxGaWx0ZXI+KCk7XG4gIHJlYWRvbmx5IGZpbHRlcjogSW5wdXRTaWduYWw8SUNydWRGaWx0ZXIgfCB1bmRlZmluZWQ+ID0gaW5wdXQ8SUNydWRGaWx0ZXI+KCk7XG5cbiAgZ2V0IHZhbHVlKCk6IGFueSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoKTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgaWYgKCFmaWx0ZXIgfHwgIWl0ZW0gfHwgIWZpbHRlci5xdWVyeSkgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gZmlsdGVyLnF1ZXJ5XG4gICAgICAgIC5maWx0ZXIoKHEpID0+IHEua2V5ID09PSBpdGVtLmtleSAmJiBxLnR5cGUgPT09IGl0ZW0udHlwZSlcbiAgICAgICAgLm1hcCgocSkgPT4gcS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBmaWx0ZXIucXVlcnkuZmluZChcbiAgICAgIChxKSA9PiBxLmtleSA9PT0gaXRlbS5rZXkgJiYgcS50eXBlID09PSBpdGVtLnR5cGUsXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnk/LnZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5yZWZyZXNoKHZhbCk7XG4gIH1cblxuICBnZXQgbWluVmFsdWUoKTogYW55IHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZpbHRlcigpO1xuICAgIGNvbnN0IGl0ZW0gPSB0aGlzLml0ZW0oKTtcbiAgICBpZiAoIWZpbHRlciB8fCAhaXRlbSB8fCAhZmlsdGVyLnF1ZXJ5KSByZXR1cm4gbnVsbDtcblxuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHJldHVybiBmaWx0ZXIucXVlcnlcbiAgICAgICAgLmZpbHRlcigocSkgPT4gcS5rZXkgPT09IGl0ZW0ua2V5ICYmIHEudHlwZSA9PT0gJz49JylcbiAgICAgICAgLm1hcCgocSkgPT4gcS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSBmaWx0ZXIucXVlcnkuZmluZChcbiAgICAgIChxKSA9PiBxLmtleSA9PT0gaXRlbS5rZXkgJiYgcS50eXBlID09PSAnPj0nLFxuICAgICk7XG4gICAgcmV0dXJuIHF1ZXJ5Py52YWx1ZTtcbiAgfVxuXG4gIHNldCBtaW5WYWx1ZSh2YWw6IGFueSkge1xuICAgIHRoaXMucmVmcmVzaCh2YWwsICc+PScpO1xuICB9XG5cbiAgZ2V0IG1heFZhbHVlKCk6IGFueSB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoKTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgaWYgKCFmaWx0ZXIgfHwgIWl0ZW0gfHwgIWZpbHRlci5xdWVyeSkgcmV0dXJuIG51bGw7XG5cbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gZmlsdGVyLnF1ZXJ5XG4gICAgICAgIC5maWx0ZXIoKHEpID0+IHEua2V5ID09PSBpdGVtLmtleSAmJiBxLnR5cGUgPT09ICc8PScpXG4gICAgICAgIC5tYXAoKHEpID0+IHEudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gZmlsdGVyLnF1ZXJ5LmZpbmQoXG4gICAgICAocSkgPT4gcS5rZXkgPT09IGl0ZW0ua2V5ICYmIHEudHlwZSA9PT0gJzw9JyxcbiAgICApO1xuICAgIHJldHVybiBxdWVyeT8udmFsdWU7XG4gIH1cblxuICBzZXQgbWF4VmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnJlZnJlc2godmFsLCAnPD0nKTtcbiAgfVxuXG4gIGdldCBsYW5nKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5jdXJyZW50TGFuZztcbiAgfVxuXG4gIEBEZWJvdW5jZSg1MDApXG4gIHJlZnJlc2godmFsOiBhbnksIHR5cGU6IHN0cmluZyB8IG51bGwgPSBudWxsKTogdm9pZCB7XG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIoKTtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgaWYgKCFmaWx0ZXIgfHwgIWl0ZW0pIHJldHVybjtcblxuICAgIGlmICghdHlwZSkgdHlwZSA9IGl0ZW0udHlwZTtcbiAgICBpZiAoIWZpbHRlci5xdWVyeSkgZmlsdGVyLnF1ZXJ5ID0gW107XG5cbiAgICBmaWx0ZXIub2Zmc2V0ID0gMDtcblxuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHRoaXMucmVmcmVzaEZvckFycmF5KHZhbCBhcyBbXSwgdHlwZSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IHF1ZXJ5ID0gZmlsdGVyLnF1ZXJ5IS5maW5kKFxuICAgICAgKHEpID0+IHEua2V5ID09PSBpdGVtLmtleSAmJiBxLnR5cGUgPT09IHR5cGUsXG4gICAgKTtcblxuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJykge1xuICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gZmlsdGVyLnF1ZXJ5IS5pbmRleE9mKHF1ZXJ5KTtcbiAgICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgICBmaWx0ZXIucXVlcnkhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgdGhpcy5mYWNhZGUucmVhZChmaWx0ZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICBrZXk6IGl0ZW0ua2V5LFxuICAgICAgICB0eXBlOiB0eXBlIGFzICc9JyB8ICchPScgfCAnPj0nIHwgJzw9JyB8ICc8JyB8ICc+JyxcbiAgICAgICAgdmFsdWU6IG51bGwsXG4gICAgICB9O1xuXG4gICAgICBmaWx0ZXIucXVlcnkhLnB1c2gocXVlcnkpO1xuICAgIH1cblxuICAgIHF1ZXJ5LnZhbHVlID0gdmFsO1xuICAgIHF1ZXJ5LmxhYmVsID0gaXRlbS5sYWJlbDtcblxuICAgIHRoaXMuZmFjYWRlLnJlYWQoZmlsdGVyKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyKCk7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgIGlmICghZmlsdGVyIHx8ICFpdGVtIHx8ICFmaWx0ZXIucXVlcnkpIHJldHVybjtcblxuICAgIGZpbHRlci5xdWVyeSA9IGZpbHRlci5xdWVyeT8uZmlsdGVyKChxKSA9PiBxLmtleSAhPT0gaXRlbS5rZXkpO1xuICAgIGZpbHRlci5vZmZzZXQgPSAwO1xuICAgIHRoaXMuZmFjYWRlLnJlYWQoZmlsdGVyKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuaW5pdFBvc3NpYmlsaXRpZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBvc3NpYmlsaXRpZXMoKTogdm9pZCB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgIGlmIChpdGVtPy5wb3NzaWJpbGl0aWVzKSB7XG4gICAgICB0aGlzLnBvc3NpYmlsaXRpZXMgPSBpdGVtLnBvc3NpYmlsaXRpZXM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0FycmF5VHlwZSgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgcmV0dXJuIGl0ZW0/LmZpZWxkVHlwZSA9PT0gRmllbGRUeXBlLmNoZWNrO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRm9yQXJyYXkodmFsczogW10sIHR5cGU6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyKCk7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuaXRlbSgpO1xuICAgIGlmICghZmlsdGVyIHx8ICFpdGVtKSByZXR1cm47XG4gICAgaWYgKCFmaWx0ZXIucXVlcnkpIGZpbHRlci5xdWVyeSA9IFtdO1xuXG4gICAgY29uc3QgcXVlcmllcyA9XG4gICAgICBmaWx0ZXIucXVlcnk/LmZpbHRlcigocSkgPT4gcS5rZXkgPT09IGl0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdHlwZSkgfHwgW107XG5cbiAgICBxdWVyaWVzLmZvckVhY2goKHF1ZXJ5KSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IGZpbHRlci5xdWVyeSEuaW5kZXhPZihxdWVyeSk7XG4gICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICBmaWx0ZXIucXVlcnkhLnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBpZiAodmFscyA9PT0gbnVsbCB8fCB2YWxzID09PSB1bmRlZmluZWQgfHwgIXZhbHMubGVuZ3RoKSB7XG4gICAgICB0aGlzLmZhY2FkZS5yZWFkKGZpbHRlcik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdmFscy5mb3JFYWNoKCh2YWwpID0+IHtcbiAgICAgIGNvbnN0IHF1ZXJ5ID0ge1xuICAgICAgICBrZXk6IGl0ZW0ua2V5LFxuICAgICAgICB0eXBlOiB0eXBlIGFzICc9JyB8ICchPScgfCAnPj0nIHwgJzw9JyB8ICc8JyB8ICc+JyxcbiAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgIH07XG5cbiAgICAgIGZpbHRlci5xdWVyeSEucHVzaChxdWVyeSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLmZhY2FkZS5yZWFkKGZpbHRlcik7XG4gIH1cbn1cbiJdfQ==","import { Component, computed } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterCheckComponent extends BaseComponent {\n list;\n ngAfterContentInit() {\n this.list = computed(() => {\n const possibilities = this.possibilities();\n return possibilities.map((pos) => ({\n value: pos,\n isCheck: this.value.some((r) => r === pos.id),\n }));\n }, ...(ngDevMode ? [{ debugName: \"list\" }] : []));\n }\n onCheckChange(checked, entry) {\n if (checked && !this.value.some((r) => r === entry.value.id)) {\n this.value = [...this.value, entry.value.id];\n }\n if (!checked && this.value.some((r) => r === entry.value.id)) {\n this.value = this.value?.filter((r) => r !== entry.value.id);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterCheckComponent, isStandalone: true, selector: \"smart-crud-filter-check\", usesInheritance: true, ngImport: i0, template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-item-divider class=\"text-xl font-light\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value?.length) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh([])\"-->\n <!-- class=\"square-button m-0 p-0 text-lg h-9 w-9\"-->\n <!-- >-->\n <!-- <ion-icon class=\"text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (entry of list(); track entry) {\n <!-- <ion-item>-->\n <!--<ion-label>-->{{ entry.value.text | translate\n }}<!--</ion-label>-->\n <!-- <ion-checkbox-->\n <!-- slot=\"end\"-->\n <!-- [checked]=\"entry.isCheck\"-->\n <!-- (ionChange)=\"onCheckChange($event.detail.checked, entry)\"-->\n <!-- ></ion-checkbox>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `, isInline: true, styles: [\":host{width:100%;margin-bottom:1.2rem}\\n\"], dependencies: [{ kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterCheckComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-check', template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-item-divider class=\"text-xl font-light\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value?.length) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh([])\"-->\n <!-- class=\"square-button m-0 p-0 text-lg h-9 w-9\"-->\n <!-- >-->\n <!-- <ion-icon class=\"text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (entry of list(); track entry) {\n <!-- <ion-item>-->\n <!--<ion-label>-->{{ entry.value.text | translate\n }}<!--</ion-label>-->\n <!-- <ion-checkbox-->\n <!-- slot=\"end\"-->\n <!-- [checked]=\"entry.isCheck\"-->\n <!-- (ionChange)=\"onCheckChange($event.detail.checked, entry)\"-->\n <!-- ></ion-checkbox>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `, imports: [TranslatePipe], styles: [\":host{width:100%;margin-bottom:1.2rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvY2hlY2svY2hlY2suY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBb0IsU0FBUyxFQUFFLFFBQVEsRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUM5RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJcEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQXlDdkQsTUFBTSxPQUFPLG9CQUNYLFNBQVEsYUFBZ0I7SUFHeEIsSUFBSSxDQUE4QztJQUVsRCxrQkFBa0I7UUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3hCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMzQyxPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ2pDLEtBQUssRUFBRSxHQUFHO2dCQUNWLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUFFLENBQUM7YUFDbkQsQ0FBQyxDQUFDLENBQUM7UUFDTixDQUFDLGdEQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQWdCLEVBQUUsS0FBdUM7UUFDckUsSUFBSSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztZQUNsRSxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQztRQUVELElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEUsQ0FBQztJQUNILENBQUM7dUdBeEJVLG9CQUFvQjsyRkFBcEIsb0JBQW9CLDBHQXJDckI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWlDVCw2R0FDUyxhQUFhOzsyRkFHWixvQkFBb0I7a0JBdkNoQyxTQUFTOytCQUNFLHlCQUF5QixZQUN6Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUNULFdBQ1EsQ0FBQyxhQUFhLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlckNvbnRlbnRJbml0LCBDb21wb25lbnQsIGNvbXB1dGVkLCBTaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWNoZWNrJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tICAgIDxpb24tcm93Pi0tPlxuICAgIDwhLS0gICAgICA8aW9uLWNvbD4tLT5cbiAgICA8IS0tICAgICAgICA8aW9uLWl0ZW0tZGl2aWRlciBjbGFzcz1cInRleHQteGwgZm9udC1saWdodFwiPi0tPlxuICAgIDwhLS0gICAgICAgICAgPGlvbi1pY29uIGNsYXNzPVwibXItNiB0ZXh0LTJ4bFwiIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJmaWx0ZXItb3V0bGluZVwiPjwvaW9uLWljb24+LS0+XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWxhYmVsPi0tPlxuICAgIHt7IGl0ZW0oKT8ubGFiZWwgfHwgJycgfCB0cmFuc2xhdGUgfX1cbiAgICA8IS0tICAgICAgICAgIDwvaW9uLWxhYmVsPi0tPlxuICAgIEBpZiAodmFsdWU/Lmxlbmd0aCkge1xuICAgICAgPCEtLSAgICAgICAgICAgIDxpb24tYnV0dG9uLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICBzbG90PVwiZW5kXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKFtdKVwiLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0wIHAtMCB0ZXh0LWxnIGgtOSB3LTlcIi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgID4tLT5cbiAgICAgIDwhLS0gICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cInRleHQtMnhsIG0tMCBwLTBcIiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgICB9XG4gICAgPCEtLSAgICAgICAgPC9pb24taXRlbS1kaXZpZGVyPi0tPlxuXG4gICAgQGZvciAoZW50cnkgb2YgbGlzdCgpOyB0cmFjayBlbnRyeSkge1xuICAgICAgPCEtLSAgICAgICAgICA8aW9uLWl0ZW0+LS0+XG4gICAgICA8IS0tPGlvbi1sYWJlbD4tLT57eyBlbnRyeS52YWx1ZS50ZXh0IHwgdHJhbnNsYXRlXG4gICAgICB9fTwhLS08L2lvbi1sYWJlbD4tLT5cbiAgICAgIDwhLS0gICAgICAgICAgICA8aW9uLWNoZWNrYm94LS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICBzbG90PVwiZW5kXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICAgIFtjaGVja2VkXT1cImVudHJ5LmlzQ2hlY2tcIi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgICAgKGlvbkNoYW5nZSk9XCJvbkNoZWNrQ2hhbmdlKCRldmVudC5kZXRhaWwuY2hlY2tlZCwgZW50cnkpXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICA+PC9pb24tY2hlY2tib3g+LS0+XG4gICAgICA8IS0tICAgICAgICAgIDwvaW9uLWl0ZW0+LS0+XG4gICAgfVxuICAgIDwhLS0gICAgICA8L2lvbi1jb2w+LS0+XG4gICAgPCEtLSAgICA8L2lvbi1yb3c+LS0+XG4gIGAsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVQaXBlXSxcbiAgc3R5bGVVcmxzOiBbJy4vY2hlY2suY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hlY2tDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdFxue1xuICBsaXN0ITogU2lnbmFsPHsgdmFsdWU6IGFueTsgaXNDaGVjazogYm9vbGVhbiB9W10+O1xuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmxpc3QgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCBwb3NzaWJpbGl0aWVzID0gdGhpcy5wb3NzaWJpbGl0aWVzKCk7XG4gICAgICByZXR1cm4gcG9zc2liaWxpdGllcy5tYXAoKHBvcykgPT4gKHtcbiAgICAgICAgdmFsdWU6IHBvcyxcbiAgICAgICAgaXNDaGVjazogdGhpcy52YWx1ZS5zb21lKChyOiBhbnkpID0+IHIgPT09IHBvcy5pZCksXG4gICAgICB9KSk7XG4gICAgfSk7XG4gIH1cblxuICBvbkNoZWNrQ2hhbmdlKGNoZWNrZWQ6IGJvb2xlYW4sIGVudHJ5OiB7IHZhbHVlOiBhbnk7IGlzQ2hlY2s6IGJvb2xlYW4gfSkge1xuICAgIGlmIChjaGVja2VkICYmICF0aGlzLnZhbHVlLnNvbWUoKHI6IGFueSkgPT4gciA9PT0gZW50cnkudmFsdWUuaWQpKSB7XG4gICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudmFsdWUsIGVudHJ5LnZhbHVlLmlkXTtcbiAgICB9XG5cbiAgICBpZiAoIWNoZWNrZWQgJiYgdGhpcy52YWx1ZS5zb21lKChyOiBhbnkpID0+IHIgPT09IGVudHJ5LnZhbHVlLmlkKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWU/LmZpbHRlcigocjogYW55KSA9PiByICE9PSBlbnRyeS52YWx1ZS5pZCk7XG4gICAgfVxuICB9XG59XG4iXX0=","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport moment from 'moment';\nimport { GuidService } from '@smartsoft001/utils';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterDateComponent extends BaseComponent {\n id = GuidService.create();\n get allowAdvanced() {\n const item = this.item();\n return item?.type === '=';\n }\n set customValue(val) {\n const momentDate = moment(val);\n this.value =\n val?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n get customValue() {\n return this.value;\n }\n set customMinValue(val) {\n const momentDate = moment(val);\n this.minValue =\n val?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n get customMinValue() {\n return this.minValue;\n }\n set customMaxValue(val) {\n const momentDate = moment(val);\n this.maxValue =\n val?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n get customMaxValue() {\n return this.maxValue;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterDateComponent, isStandalone: true, selector: \"smart-crud-filter-date\", usesInheritance: true, ngImport: i0, template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-item button=\\\"true\\\" id=\\\"open-date-input-{{ id }}\\\" color=\\\"primary\\\">-->\\n<!-- <ion-text>-->\\n{{ customValue ? customValue : ('select' | translate) }}\\n<!-- </ion-text>-->\\n<!-- <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">-->\\n<ng-template>\\n <!-- <ion-datetime-->\\n <!-- displayFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- pickerFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- presentation=\\\"date\\\"-->\\n <!-- ></ion-datetime>-->\\n</ng-template>\\n<!-- </ion-popover>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n\\n@if (value) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-date', imports: [FormsModule, TranslatePipe], template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-item button=\\\"true\\\" id=\\\"open-date-input-{{ id }}\\\" color=\\\"primary\\\">-->\\n<!-- <ion-text>-->\\n{{ customValue ? customValue : ('select' | translate) }}\\n<!-- </ion-text>-->\\n<!-- <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">-->\\n<ng-template>\\n <!-- <ion-datetime-->\\n <!-- displayFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- pickerFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- presentation=\\\"date\\\"-->\\n <!-- ></ion-datetime>-->\\n</ng-template>\\n<!-- </ion-popover>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n\\n@if (value) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9kYXRlL2RhdGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZGF0ZS9kYXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFHNUIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFpQnZELE1BQU0sT0FBTyxtQkFFWCxTQUFRLGFBQWdCO0lBQ3hCLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFMUIsSUFBSSxhQUFhO1FBQ2YsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3pCLE9BQU8sSUFBSSxFQUFFLElBQUksS0FBSyxHQUFHLENBQUM7SUFDNUIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLEdBQUc7UUFDakIsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxLQUFLO1lBQ1AsR0FBYyxFQUFFLE1BQU0sSUFBSSxFQUFFLElBQUksVUFBVSxDQUFDLE9BQU8sRUFBRTtnQkFDbkQsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO2dCQUNqQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ1osQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsR0FBRztRQUNwQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVE7WUFDVixHQUFjLEVBQUUsTUFBTSxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxjQUFjLENBQUMsR0FBRztRQUNwQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLFFBQVE7WUFDVixHQUFjLEVBQUUsTUFBTSxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFO2dCQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUM7Z0JBQ2pDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDWixDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO3VHQTVDVSxtQkFBbUI7MkZBQW5CLG1CQUFtQix5R0N6QmhDLDRrQ0E4QkEsNklEakJZLFdBQVcsMEJBQUUsYUFBYTs7MkZBWXpCLG1CQUFtQjtrQkFmL0IsU0FBUzsrQkFDRSx3QkFBd0IsV0FFekIsQ0FBQyxXQUFXLEVBQUUsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHsgR3VpZFNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL3V0aWxzJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbRm9ybXNNb2R1bGUsIFRyYW5zbGF0ZVBpcGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAuc3F1YXJlLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zbWFydC1idXR0b24taGVpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0ZUNvbXBvbmVudDxcbiAgVCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPixcbj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHtcbiAgaWQgPSBHdWlkU2VydmljZS5jcmVhdGUoKTtcblxuICBnZXQgYWxsb3dBZHZhbmNlZCgpOiBib29sZWFuIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5pdGVtKCk7XG4gICAgcmV0dXJuIGl0ZW0/LnR5cGUgPT09ICc9JztcbiAgfVxuXG4gIHNldCBjdXN0b21WYWx1ZSh2YWwpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50KHZhbCk7XG4gICAgdGhpcy52YWx1ZSA9XG4gICAgICAodmFsIGFzIHN0cmluZyk/Lmxlbmd0aCA+PSAxMCAmJiBtb21lbnREYXRlLmlzVmFsaWQoKVxuICAgICAgICA/IG1vbWVudERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgOiB2YWw7XG4gIH1cblxuICBnZXQgY3VzdG9tVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgfVxuXG4gIHNldCBjdXN0b21NaW5WYWx1ZSh2YWwpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50KHZhbCk7XG4gICAgdGhpcy5taW5WYWx1ZSA9XG4gICAgICAodmFsIGFzIHN0cmluZyk/Lmxlbmd0aCA+PSAxMCAmJiBtb21lbnREYXRlLmlzVmFsaWQoKVxuICAgICAgICA/IG1vbWVudERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgOiB2YWw7XG4gIH1cblxuICBnZXQgY3VzdG9tTWluVmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5taW5WYWx1ZTtcbiAgfVxuXG4gIHNldCBjdXN0b21NYXhWYWx1ZSh2YWwpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50KHZhbCk7XG4gICAgdGhpcy5tYXhWYWx1ZSA9XG4gICAgICAodmFsIGFzIHN0cmluZyk/Lmxlbmd0aCA+PSAxMCAmJiBtb21lbnREYXRlLmlzVmFsaWQoKVxuICAgICAgICA/IG1vbWVudERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJylcbiAgICAgICAgOiB2YWw7XG4gIH1cblxuICBnZXQgY3VzdG9tTWF4VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgfVxufVxuIiwiPCEtLTxpb24tcm93Pi0tPlxuPCEtLSAgPGlvbi1jb2w+LS0+XG48IS0tICAgIDxpb24tbGFiZWw+LS0+XG57eyBpdGVtKCk/LmxhYmVsIHx8ICcnIHwgdHJhbnNsYXRlIH19XG48IS0tICAgIDwvaW9uLWxhYmVsPi0tPlxuPCEtLSAgICA8aW9uLWl0ZW0gYnV0dG9uPVwidHJ1ZVwiIGlkPVwib3Blbi1kYXRlLWlucHV0LXt7IGlkIH19XCIgY29sb3I9XCJwcmltYXJ5XCI+LS0+XG48IS0tICAgICAgPGlvbi10ZXh0Pi0tPlxue3sgY3VzdG9tVmFsdWUgPyBjdXN0b21WYWx1ZSA6ICgnc2VsZWN0JyB8IHRyYW5zbGF0ZSkgfX1cbjwhLS0gICAgICA8L2lvbi10ZXh0Pi0tPlxuPCEtLSAgICAgIDxpb24tcG9wb3ZlciB0cmlnZ2VyPVwib3Blbi1kYXRlLWlucHV0LXt7IGlkIH19XCIgc2hvdy1iYWNrZHJvcD1cImZhbHNlXCI+LS0+XG48bmctdGVtcGxhdGU+XG4gIDwhLS0gICAgICAgICAgPGlvbi1kYXRldGltZS0tPlxuICA8IS0tICAgICAgICAgICAgZGlzcGxheUZvcm1hdD1cIllZWVktTU0tRERcIi0tPlxuICA8IS0tICAgICAgICAgICAgcGlja2VyRm9ybWF0PVwiWVlZWS1NTS1ERFwiLS0+XG4gIDwhLS0gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbVZhbHVlXCItLT5cbiAgPCEtLSAgICAgICAgICAgIHByZXNlbnRhdGlvbj1cImRhdGVcIi0tPlxuICA8IS0tICAgICAgICAgID48L2lvbi1kYXRldGltZT4tLT5cbjwvbmctdGVtcGxhdGU+XG48IS0tICAgICAgPC9pb24tcG9wb3Zlcj4tLT5cbjwhLS0gICAgPC9pb24taXRlbT4tLT5cbjwhLS0gIDwvaW9uLWNvbD4tLT5cblxuQGlmICh2YWx1ZSkge1xuICA8IS0tICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gIDwhLS0gICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJyZWZyZXNoKG51bGwpXCIgY2xhc3M9XCJzcXVhcmUtYnV0dG9uIG0tM1wiPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG59XG48IS0tPC9pb24tcm93Pi0tPlxuIl19","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { GuidService } from '@smartsoft001/utils';\nimport { FilterDateComponent } from '../date/date.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterDateTimeComponent extends FilterDateComponent {\n _subscriptions = new Subscription();\n id = GuidService.create();\n // @ViewChild(IonDatetime, { read: IonDatetime, static: false })\n // dateTimePicker: IonDatetime;\n ngOnInit() {\n super.ngOnInit();\n // if (this.dateTimePicker) {\n // this._subscriptions.add(\n // this.dateTimePicker.ionChange.subscribe((val: CustomEvent) => {\n // this.customValue = val.detail.value;\n // }),\n // );\n // } else {\n // console.error('dateTimePicker not found!');\n // }\n }\n ngOnDestroy() {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateTimeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterDateTimeComponent, isStandalone: true, selector: \"smart-crud-filter-date-time\", usesInheritance: true, ngImport: i0, template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n<!-- </ion-col>-->\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-item>-->\\n<!-- <ion-label>-->\\n{{ 'from' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-input-->\\n<!-- placeholder=\\\"YYYY-MM-DD HH:mm:ss\\\"-->\\n<!-- [(ngModel)]=\\\"customMinValue\\\"-->\\n<!-- pattern=\\\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\\\"-->\\n<!-- ></ion-input>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n@if (customMinValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!-- <ion-col>-->\\n<!-- <ion-item>-->\\n<!-- <ion-label>-->\\n{{ 'to' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-input-->\\n<!-- placeholder=\\\"YYYY-MM-DD HH:mm:ss\\\"-->\\n<!-- [(ngModel)]=\\\"customMaxValue\\\"-->\\n<!-- pattern=\\\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\\\"-->\\n<!-- ></ion-input>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n@if (customMaxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateTimeComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-date-time', imports: [TranslatePipe, FormsModule], template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n<!-- </ion-col>-->\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-item>-->\\n<!-- <ion-label>-->\\n{{ 'from' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-input-->\\n<!-- placeholder=\\\"YYYY-MM-DD HH:mm:ss\\\"-->\\n<!-- [(ngModel)]=\\\"customMinValue\\\"-->\\n<!-- pattern=\\\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\\\"-->\\n<!-- ></ion-input>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n@if (customMinValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!-- <ion-col>-->\\n<!-- <ion-item>-->\\n<!-- <ion-label>-->\\n{{ 'to' | translate }}\\n<!-- </ion-label>-->\\n<!-- <ion-input-->\\n<!-- placeholder=\\\"YYYY-MM-DD HH:mm:ss\\\"-->\\n<!-- [(ngModel)]=\\\"customMaxValue\\\"-->\\n<!-- pattern=\\\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\\\"-->\\n<!-- ></ion-input>-->\\n<!-- </ion-item>-->\\n<!-- </ion-col>-->\\n@if (customMaxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS10aW1lLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2RhdGUtdGltZS9kYXRlLXRpbWUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHcEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWxELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWlCN0QsTUFBTSxPQUFPLHVCQUNYLFNBQVEsbUJBQXNCO0lBR3RCLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRW5DLEVBQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7SUFFbkMsZ0VBQWdFO0lBQ2hFLCtCQUErQjtJQUV0QixRQUFRO1FBQ2YsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBRWpCLDZCQUE2QjtRQUM3Qiw2QkFBNkI7UUFDN0Isc0VBQXNFO1FBQ3RFLDZDQUE2QztRQUM3QyxVQUFVO1FBQ1YsT0FBTztRQUNQLFdBQVc7UUFDWCxnREFBZ0Q7UUFDaEQsSUFBSTtJQUNOLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUNwQyxDQUFDO0lBQ0gsQ0FBQzt1R0E3QlUsdUJBQXVCOzJGQUF2Qix1QkFBdUIsOEdDekJwQyw4aEVBOERBLDZJRGpEMkIsV0FBVywwQkFBMUIsYUFBYTs7MkZBWVosdUJBQXVCO2tCQWZuQyxTQUFTOytCQUNFLDZCQUE2QixXQUU5QixDQUFDLGFBQWEsRUFBRSxXQUFXLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5pbXBvcnQgeyBHdWlkU2VydmljZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvdXRpbHMnO1xuXG5pbXBvcnQgeyBGaWx0ZXJEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS9kYXRlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWRhdGUtdGltZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXRpbWUuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgRm9ybXNNb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAuc3F1YXJlLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zbWFydC1idXR0b24taGVpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0ZVRpbWVDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBGaWx0ZXJEYXRlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBvdmVycmlkZSBpZCA9IEd1aWRTZXJ2aWNlLmNyZWF0ZSgpO1xuXG4gIC8vIEBWaWV3Q2hpbGQoSW9uRGF0ZXRpbWUsIHsgcmVhZDogSW9uRGF0ZXRpbWUsIHN0YXRpYzogZmFsc2UgfSlcbiAgLy8gZGF0ZVRpbWVQaWNrZXI6IElvbkRhdGV0aW1lO1xuXG4gIG92ZXJyaWRlIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAvLyBpZiAodGhpcy5kYXRlVGltZVBpY2tlcikge1xuICAgIC8vICAgdGhpcy5fc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgLy8gICAgIHRoaXMuZGF0ZVRpbWVQaWNrZXIuaW9uQ2hhbmdlLnN1YnNjcmliZSgodmFsOiBDdXN0b21FdmVudCkgPT4ge1xuICAgIC8vICAgICAgIHRoaXMuY3VzdG9tVmFsdWUgPSB2YWwuZGV0YWlsLnZhbHVlO1xuICAgIC8vICAgICB9KSxcbiAgICAvLyAgICk7XG4gICAgLy8gfSBlbHNlIHtcbiAgICAvLyAgIGNvbnNvbGUuZXJyb3IoJ2RhdGVUaW1lUGlja2VyIG5vdCBmb3VuZCEnKTtcbiAgICAvLyB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLTxpb24tcm93Pi0tPlxuPCEtLSAgPGlvbi1jb2w+LS0+XG48IS0tICAgIDxpb24tbGFiZWw+LS0+XG57eyBpdGVtKCk/LmxhYmVsIHx8ICcnIHwgdHJhbnNsYXRlIH19XG48IS0tICAgIDwvaW9uLWxhYmVsPi0tPlxuPCEtLSAgPC9pb24tY29sPi0tPlxuQGlmICh2YWx1ZSB8fCBtaW5WYWx1ZSB8fCBtYXhWYWx1ZSkge1xuICA8IS0tICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gIDwhLS0gICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJjbGVhcigpXCIgY2xhc3M9XCJzcXVhcmUtYnV0dG9uIG0tM1wiPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG59XG48IS0tPC9pb24tcm93Pi0tPlxuPCEtLTxpb24tcm93Pi0tPlxuPCEtLSAgPGlvbi1jb2w+LS0+XG48IS0tICAgIDxpb24taXRlbT4tLT5cbjwhLS0gICAgICA8aW9uLWxhYmVsPi0tPlxue3sgJ2Zyb20nIHwgdHJhbnNsYXRlIH19XG48IS0tICAgICAgPC9pb24tbGFiZWw+LS0+XG48IS0tICAgICAgPGlvbi1pbnB1dC0tPlxuPCEtLSAgICAgICAgcGxhY2Vob2xkZXI9XCJZWVlZLU1NLUREIEhIOm1tOnNzXCItLT5cbjwhLS0gICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tTWluVmFsdWVcIi0tPlxuPCEtLSAgICAgICAgcGF0dGVybj1cIl5bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfSBbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSRcIi0tPlxuPCEtLSAgICAgID48L2lvbi1pbnB1dD4tLT5cbjwhLS0gICAgPC9pb24taXRlbT4tLT5cbjwhLS0gIDwvaW9uLWNvbD4tLT5cbkBpZiAoY3VzdG9tTWluVmFsdWUpIHtcbiAgPCEtLSAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICA8IS0tICAgICAgPGlvbi1idXR0b24tLT5cbiAgPCEtLSAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICA8IS0tICAgICAgICAoY2xpY2spPVwicmVmcmVzaChudWxsLCAnPj0nKVwiLS0+XG4gIDwhLS0gICAgICAgIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTNcIi0tPlxuICA8IS0tICAgICAgPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG59XG48IS0tICA8aW9uLWNvbD4tLT5cbjwhLS0gICAgPGlvbi1pdGVtPi0tPlxuPCEtLSAgICAgIDxpb24tbGFiZWw+LS0+XG57eyAndG8nIHwgdHJhbnNsYXRlIH19XG48IS0tICAgICAgPC9pb24tbGFiZWw+LS0+XG48IS0tICAgICAgPGlvbi1pbnB1dC0tPlxuPCEtLSAgICAgICAgcGxhY2Vob2xkZXI9XCJZWVlZLU1NLUREIEhIOm1tOnNzXCItLT5cbjwhLS0gICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tTWF4VmFsdWVcIi0tPlxuPCEtLSAgICAgICAgcGF0dGVybj1cIl5bMC05XXs0fS1bMC05XXsyfS1bMC05XXsyfSBbMC05XXsyfTpbMC05XXsyfTpbMC05XXsyfSRcIi0tPlxuPCEtLSAgICAgID48L2lvbi1pbnB1dD4tLT5cbjwhLS0gICAgPC9pb24taXRlbT4tLT5cbjwhLS0gIDwvaW9uLWNvbD4tLT5cbkBpZiAoY3VzdG9tTWF4VmFsdWUpIHtcbiAgPCEtLSAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICA8IS0tICAgICAgPGlvbi1idXR0b24tLT5cbiAgPCEtLSAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICA8IS0tICAgICAgICAoY2xpY2spPVwicmVmcmVzaChudWxsLCAnPD0nKVwiLS0+XG4gIDwhLS0gICAgICAgIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTNcIi0tPlxuICA8IS0tICAgICAgPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG59XG48IS0tPC9pb24tcm93Pi0tPlxuIl19","import { Component, signal, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { GuidService } from '@smartsoft001/utils';\nimport { FilterDateComponent } from '../date/date.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterDateWithEditComponent extends FilterDateComponent {\n _subscriptions = new Subscription();\n advanced = signal(false, ...(ngDevMode ? [{ debugName: \"advanced\" }] : []));\n id = GuidService.create();\n // @ViewChild(IonDatetime, { read: IonDatetime, static: false })\n // dateTimePicker: IonDatetime;\n toggleAdvanced() {\n this.advanced.update((val) => !val);\n if (this.advanced()) {\n this.value = null;\n }\n }\n ngOnInit() {\n super.ngOnInit();\n // if (this.dateTimePicker) {\n // this._subscriptions.add(\n // this.dateTimePicker.ionChange.subscribe((val: CustomEvent) => {\n // this.customValue = val.detail.value;\n // }),\n // );\n // } else {\n // console.error('dateTimePicker not found!');\n // }\n }\n ngOnDestroy() {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateWithEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterDateWithEditComponent, isStandalone: true, selector: \"smart-crud-filter-date-with-edit\", usesInheritance: true, ngImport: i0, template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n\\n@if (!advanced()) {\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n}\\n<!-- </ion-col>-->\\n\\n@if (!advanced()) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button id=\\\"open-date-input-{{ id }}\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"calendar-outline\\\"></ion-icon>-->\\n <!-- <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">-->\\n <ng-template>\\n <!-- <ion-datetime-->\\n <!-- displayFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- pickerFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- presentation=\\\"date\\\"-->\\n <!-- first-day-of-week=\\\"1\\\"-->\\n <!-- locale=\\\"{{ lang }}\\\"-->\\n <!-- ></ion-datetime>-->\\n </ng-template>\\n <!-- </ion-popover>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (allowAdvanced) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- (click)=\\\"toggleAdvanced()\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- [disabled]=\\\"minValue || maxValue\\\"-->\\n <!-- >-->\\n @if (!advanced()) {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>-->\\n } @else {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>-->\\n }\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\\n <!-- <ion-row>-->\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'from' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customMinValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (customMinValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'to' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customMaxValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n\\n @if (customMaxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- </ion-row>-->\\n}\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterDateWithEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-date-with-edit', imports: [TranslatePipe, FormsModule], template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n\\n@if (!advanced()) {\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n}\\n<!-- </ion-col>-->\\n\\n@if (!advanced()) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button id=\\\"open-date-input-{{ id }}\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"calendar-outline\\\"></ion-icon>-->\\n <!-- <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">-->\\n <ng-template>\\n <!-- <ion-datetime-->\\n <!-- displayFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- pickerFormat=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customValue\\\"-->\\n <!-- presentation=\\\"date\\\"-->\\n <!-- first-day-of-week=\\\"1\\\"-->\\n <!-- locale=\\\"{{ lang }}\\\"-->\\n <!-- ></ion-datetime>-->\\n </ng-template>\\n <!-- </ion-popover>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (allowAdvanced) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- (click)=\\\"toggleAdvanced()\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- [disabled]=\\\"minValue || maxValue\\\"-->\\n <!-- >-->\\n @if (!advanced()) {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>-->\\n } @else {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>-->\\n }\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n\\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\\n <!-- <ion-row>-->\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'from' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customMinValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (customMinValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'to' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input-->\\n <!-- placeholder=\\\"YYYY-MM-DD\\\"-->\\n <!-- [(ngModel)]=\\\"customMaxValue\\\"-->\\n <!-- [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"-->\\n <!-- ></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n\\n @if (customMaxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- </ion-row>-->\\n}\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZGF0ZS13aXRoLWVkaXQvZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZGF0ZS13aXRoLWVkaXQvZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFHVCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3BDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUFpQjdELE1BQU0sT0FBTywyQkFDWCxTQUFRLG1CQUFzQjtJQUd0QixjQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUU1QyxRQUFRLEdBQTRCLE1BQU0sQ0FBQyxLQUFLLG9EQUFDLENBQUM7SUFDekMsRUFBRSxHQUFHLFdBQVcsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUVuQyxnRUFBZ0U7SUFDaEUsK0JBQStCO0lBRS9CLGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRVEsUUFBUTtRQUNmLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUVqQiw2QkFBNkI7UUFDN0IsNkJBQTZCO1FBQzdCLHNFQUFzRTtRQUN0RSw2Q0FBNkM7UUFDN0MsVUFBVTtRQUNWLE9BQU87UUFDUCxXQUFXO1FBQ1gsZ0RBQWdEO1FBQ2hELElBQUk7SUFDTixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDcEMsQ0FBQztJQUNILENBQUM7dUdBckNVLDJCQUEyQjsyRkFBM0IsMkJBQTJCLG1IQy9CeEMsMjJIQTZHQSw2SUQxRjJCLFdBQVcsMEJBQTFCLGFBQWE7OzJGQVlaLDJCQUEyQjtrQkFmdkMsU0FBUzsrQkFDRSxrQ0FBa0MsV0FFbkMsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5pbXBvcnQgeyBHdWlkU2VydmljZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvdXRpbHMnO1xuXG5pbXBvcnQgeyBGaWx0ZXJEYXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZGF0ZS9kYXRlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWRhdGUtd2l0aC1lZGl0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtd2l0aC1lZGl0LmNvbXBvbmVudC5odG1sJyxcbiAgaW1wb3J0czogW1RyYW5zbGF0ZVBpcGUsIEZvcm1zTW9kdWxlXSxcbiAgc3R5bGVzOiBbXG4gICAgYFxuICAgICAgOmhvc3Qge1xuICAgICAgICB3aWR0aDogMTAwJTtcbiAgICAgICAgLnNxdWFyZS1idXR0b24ge1xuICAgICAgICAgIGhlaWdodDogdmFyKC0tc21hcnQtYnV0dG9uLWhlaWdodCkgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckRhdGVXaXRoRWRpdENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICBleHRlbmRzIEZpbHRlckRhdGVDb21wb25lbnQ8VD5cbiAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveVxue1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGFkdmFuY2VkOiBXcml0YWJsZVNpZ25hbDxib29sZWFuPiA9IHNpZ25hbChmYWxzZSk7XG4gIG92ZXJyaWRlIGlkID0gR3VpZFNlcnZpY2UuY3JlYXRlKCk7XG5cbiAgLy8gQFZpZXdDaGlsZChJb25EYXRldGltZSwgeyByZWFkOiBJb25EYXRldGltZSwgc3RhdGljOiBmYWxzZSB9KVxuICAvLyBkYXRlVGltZVBpY2tlcjogSW9uRGF0ZXRpbWU7XG5cbiAgdG9nZ2xlQWR2YW5jZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZHZhbmNlZC51cGRhdGUoKHZhbCkgPT4gIXZhbCk7XG4gICAgaWYgKHRoaXMuYWR2YW5jZWQoKSkge1xuICAgICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gICAgfVxuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyKSB7XG4gICAgLy8gICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZChcbiAgICAvLyAgICAgdGhpcy5kYXRlVGltZVBpY2tlci5pb25DaGFuZ2Uuc3Vic2NyaWJlKCh2YWw6IEN1c3RvbUV2ZW50KSA9PiB7XG4gICAgLy8gICAgICAgdGhpcy5jdXN0b21WYWx1ZSA9IHZhbC5kZXRhaWwudmFsdWU7XG4gICAgLy8gICAgIH0pLFxuICAgIC8vICAgKTtcbiAgICAvLyB9IGVsc2Uge1xuICAgIC8vICAgY29uc29sZS5lcnJvcignZGF0ZVRpbWVQaWNrZXIgbm90IGZvdW5kIScpO1xuICAgIC8vIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG59XG4iLCI8IS0tPGlvbi1yb3c+LS0+XG48IS0tICA8aW9uLWNvbD4tLT5cbjwhLS0gICAgPGlvbi1sYWJlbD4tLT5cbnt7IGl0ZW0oKT8ubGFiZWwgfHwgJycgfCB0cmFuc2xhdGUgfX1cbjwhLS0gICAgPC9pb24tbGFiZWw+LS0+XG5cbkBpZiAoIWFkdmFuY2VkKCkpIHtcbiAgPCEtLSAgICAgIDxpb24taW5wdXQtLT5cbiAgPCEtLSAgICAgICAgcGxhY2Vob2xkZXI9XCJZWVlZLU1NLUREXCItLT5cbiAgPCEtLSAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21WYWx1ZVwiLS0+XG4gIDwhLS0gICAgICAgIFtwYXR0ZXJuXT1cIicoWzEyXVxcXFxkezN9LSgwWzEtOV18MVswLTJdKS0oMFsxLTldfFsxMl1cXFxcZHwzWzAxXSkpJ1wiLS0+XG4gIDwhLS0gICAgICA+PC9pb24taW5wdXQ+LS0+XG59XG48IS0tICA8L2lvbi1jb2w+LS0+XG5cbkBpZiAoIWFkdmFuY2VkKCkpIHtcbiAgPCEtLSAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICA8IS0tICAgICAgPGlvbi1idXR0b24gaWQ9XCJvcGVuLWRhdGUtaW5wdXQte3sgaWQgfX1cIiBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCI+LS0+XG4gIDwhLS0gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNhbGVuZGFyLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICA8IS0tICAgICAgICA8aW9uLXBvcG92ZXIgdHJpZ2dlcj1cIm9wZW4tZGF0ZS1pbnB1dC17eyBpZCB9fVwiIHNob3ctYmFja2Ryb3A9XCJmYWxzZVwiPi0tPlxuICA8bmctdGVtcGxhdGU+XG4gICAgPCEtLSAgICAgICAgICAgIDxpb24tZGF0ZXRpbWUtLT5cbiAgICA8IS0tICAgICAgICAgICAgICBkaXNwbGF5Rm9ybWF0PVwiWVlZWS1NTS1ERFwiLS0+XG4gICAgPCEtLSAgICAgICAgICAgICAgcGlja2VyRm9ybWF0PVwiWVlZWS1NTS1ERFwiLS0+XG4gICAgPCEtLSAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21WYWx1ZVwiLS0+XG4gICAgPCEtLSAgICAgICAgICAgICAgcHJlc2VudGF0aW9uPVwiZGF0ZVwiLS0+XG4gICAgPCEtLSAgICAgICAgICAgICAgZmlyc3QtZGF5LW9mLXdlZWs9XCIxXCItLT5cbiAgICA8IS0tICAgICAgICAgICAgICBsb2NhbGU9XCJ7eyBsYW5nIH19XCItLT5cbiAgICA8IS0tICAgICAgICAgICAgPjwvaW9uLWRhdGV0aW1lPi0tPlxuICA8L25nLXRlbXBsYXRlPlxuICA8IS0tICAgICAgICA8L2lvbi1wb3BvdmVyPi0tPlxuICA8IS0tICAgICAgPC9pb24tYnV0dG9uPi0tPlxuICA8IS0tICAgIDwvaW9uLWNvbD4tLT5cbn1cbkBpZiAoYWxsb3dBZHZhbmNlZCkge1xuICA8IS0tICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gIDwhLS0gICAgICA8aW9uLWJ1dHRvbi0tPlxuICA8IS0tICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWR2YW5jZWQoKVwiLS0+XG4gIDwhLS0gICAgICAgIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTNcIi0tPlxuICA8IS0tICAgICAgICBbZGlzYWJsZWRdPVwibWluVmFsdWUgfHwgbWF4VmFsdWVcIi0tPlxuICA8IS0tICAgICAgPi0tPlxuICBAaWYgKCFhZHZhbmNlZCgpKSB7XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJzZXR0aW5ncy1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgfSBAZWxzZSB7XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJzZXR0aW5nc1wiPjwvaW9uLWljb24+LS0+XG4gIH1cbiAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG59XG5AaWYgKHZhbHVlIHx8IG1pblZhbHVlIHx8IG1heFZhbHVlKSB7XG4gIDwhLS0gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj4tLT5cbiAgPCEtLSAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cImNsZWFyKClcIiBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCI+LS0+XG4gIDwhLS0gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICA8IS0tICAgICAgPC9pb24tYnV0dG9uPi0tPlxuICA8IS0tICAgIDwvaW9uLWNvbD4tLT5cbn1cbjwhLS08L2lvbi1yb3c+LS0+XG5cbkBpZiAoKGFkdmFuY2VkKCkgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUpICYmIGFsbG93QWR2YW5jZWQpIHtcbiAgPCEtLSAgPGlvbi1yb3c+LS0+XG4gIDwhLS0gICAgPGlvbi1jb2w+LS0+XG4gIDwhLS0gICAgICA8aW9uLWl0ZW0+LS0+XG4gIDwhLS0gICAgICAgIDxpb24tbGFiZWw+LS0+XG4gIHt7ICdmcm9tJyB8IHRyYW5zbGF0ZSB9fVxuICA8IS0tICAgICAgICA8L2lvbi1sYWJlbD4tLT5cbiAgPCEtLSAgICAgICAgPGlvbi1pbnB1dC0tPlxuICA8IS0tICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWVlZWS1NTS1ERFwiLS0+XG4gIDwhLS0gICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21NaW5WYWx1ZVwiLS0+XG4gIDwhLS0gICAgICAgICAgW3BhdHRlcm5dPVwiJyhbMTJdXFxcXGR7M30tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKSknXCItLT5cbiAgPCEtLSAgICAgICAgPjwvaW9uLWlucHV0Pi0tPlxuICA8IS0tICAgICAgPC9pb24taXRlbT4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG4gIEBpZiAoY3VzdG9tTWluVmFsdWUpIHtcbiAgICA8IS0tICAgICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj4tLT5cbiAgICA8IS0tICAgICAgICA8aW9uLWJ1dHRvbi0tPlxuICAgIDwhLS0gICAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICAgIDwhLS0gICAgICAgICAgKGNsaWNrKT1cInJlZnJlc2gobnVsbCwgJz49JylcIi0tPlxuICAgIDwhLS0gICAgICAgICAgY2xhc3M9XCJzcXVhcmUtYnV0dG9uIG0tM1wiLS0+XG4gICAgPCEtLSAgICAgICAgPi0tPlxuICAgIDwhLS0gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+LS0+XG4gICAgPCEtLSAgICAgICAgPC9pb24tYnV0dG9uPi0tPlxuICAgIDwhLS0gICAgICA8L2lvbi1jb2w+LS0+XG4gIH1cbiAgPCEtLSAgICA8aW9uLWNvbD4tLT5cbiAgPCEtLSAgICAgIDxpb24taXRlbT4tLT5cbiAgPCEtLSAgICAgICAgPGlvbi1sYWJlbD4tLT5cbiAge3sgJ3RvJyB8IHRyYW5zbGF0ZSB9fVxuICA8IS0tICAgICAgICA8L2lvbi1sYWJlbD4tLT5cbiAgPCEtLSAgICAgICAgPGlvbi1pbnB1dC0tPlxuICA8IS0tICAgICAgICAgIHBsYWNlaG9sZGVyPVwiWVlZWS1NTS1ERFwiLS0+XG4gIDwhLS0gICAgICAgICAgWyhuZ01vZGVsKV09XCJjdXN0b21NYXhWYWx1ZVwiLS0+XG4gIDwhLS0gICAgICAgICAgW3BhdHRlcm5dPVwiJyhbMTJdXFxcXGR7M30tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKSknXCItLT5cbiAgPCEtLSAgICAgICAgPjwvaW9uLWlucHV0Pi0tPlxuICA8IS0tICAgICAgPC9pb24taXRlbT4tLT5cbiAgPCEtLSAgICA8L2lvbi1jb2w+LS0+XG5cbiAgQGlmIChjdXN0b21NYXhWYWx1ZSkge1xuICAgIDwhLS0gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICAgIDwhLS0gICAgICAgIDxpb24tYnV0dG9uLS0+XG4gICAgPCEtLSAgICAgICAgICBjb2xvcj1cImRhbmdlclwiLS0+XG4gICAgPCEtLSAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaChudWxsLCAnPD0nKVwiLS0+XG4gICAgPCEtLSAgICAgICAgICBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCItLT5cbiAgICA8IS0tICAgICAgICA+LS0+XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgICA8IS0tICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gICAgPCEtLSAgICAgIDwvaW9uLWNvbD4tLT5cbiAgfVxuICA8IS0tICA8L2lvbi1yb3c+LS0+XG59XG4iXX0=","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterFlagComponent extends BaseComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterFlagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterFlagComponent, isStandalone: true, selector: \"smart-crud-filter-flag\", usesInheritance: true, ngImport: i0, template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <div\n class=\"flag-container w-full flex flex-row flex-nowrap justify-between pr-5\"\n >\n <!-- <ion-label class=\"align-middle my-6\" position=\"static\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-checkbox [(ngModel)]=\"value\" slot=\"end\"></ion-checkbox>-->\n </div>\n <!-- </ion-col>-->\n @if (typeof value === 'boolean') {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `, isInline: true, styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterFlagComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-flag', template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <div\n class=\"flag-container w-full flex flex-row flex-nowrap justify-between pr-5\"\n >\n <!-- <ion-label class=\"align-middle my-6\" position=\"static\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-checkbox [(ngModel)]=\"value\" slot=\"end\"></ion-checkbox>-->\n </div>\n <!-- </ion-col>-->\n @if (typeof value === 'boolean') {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `, imports: [TranslatePipe, FormsModule], styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9mbGFnL2ZsYWcuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBOEN2RCxNQUFNLE9BQU8sbUJBRVgsU0FBUSxhQUFnQjt1R0FGYixtQkFBbUI7MkZBQW5CLG1CQUFtQix5R0ExQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F3QlQsNkpBQ3dCLFdBQVcsMEJBQTFCLGFBQWE7OzJGQWlCWixtQkFBbUI7a0JBNUMvQixTQUFTOytCQUNFLHdCQUF3QixZQUN4Qjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBd0JULFdBQ1EsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWZsYWcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gICAgPGlvbi1yb3c+LS0+XG4gICAgPCEtLSAgICAgIDxpb24tY29sPi0tPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiZmxhZy1jb250YWluZXIgdy1mdWxsIGZsZXggZmxleC1yb3cgZmxleC1ub3dyYXAganVzdGlmeS1iZXR3ZWVuIHByLTVcIlxuICAgID5cbiAgICAgIDwhLS0gICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImFsaWduLW1pZGRsZSBteS02XCIgcG9zaXRpb249XCJzdGF0aWNcIj4tLT5cbiAgICAgIHt7IGl0ZW0oKT8ubGFiZWwgfHwgJycgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwhLS0gICAgICAgICAgPC9pb24tbGFiZWw+LS0+XG4gICAgICA8IS0tICAgICAgICAgIDxpb24tY2hlY2tib3ggWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIHNsb3Q9XCJlbmRcIj48L2lvbi1jaGVja2JveD4tLT5cbiAgICA8L2Rpdj5cbiAgICA8IS0tICAgICAgPC9pb24tY29sPi0tPlxuICAgIEBpZiAodHlwZW9mIHZhbHVlID09PSAnYm9vbGVhbicpIHtcbiAgICAgIDwhLS0gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gICAgICA8IS0tICAgICAgICAgIDxpb24tYnV0dG9uLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKG51bGwpXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgPi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICAgICAgPCEtLSAgICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gICAgICA8IS0tICAgICAgICA8L2lvbi1jb2w+LS0+XG4gICAgfVxuICAgIDwhLS0gICAgPC9pb24tcm93Pi0tPlxuICBgLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgRm9ybXNNb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAuZmxhZy1jb250YWluZXIge1xuICAgICAgICAgIGlvbi1sYWJlbCB7XG4gICAgICAgICAgICAvKi0tY29sb3I6IHZhcigtLXNtYXJ0LWNvbG9yLWRhcmspOyovXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIC5zcXVhcmUtYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNtYXJ0LWJ1dHRvbi1oZWlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJGbGFnQ29tcG9uZW50PFxuICBUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LFxuPiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge31cbiJdfQ==","import { Component, signal, } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterIntComponent extends BaseComponent {\n _subscriptions = new Subscription();\n advanced = signal(false, ...(ngDevMode ? [{ debugName: \"advanced\" }] : []));\n get allowAdvanced() {\n return this.item()?.type === '=';\n }\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy() {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n toggleAdvanced() {\n this.advanced.update((val) => !val);\n if (this.advanced())\n this.value = null;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterIntComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterIntComponent, isStandalone: true, selector: \"smart-crud-filter-int\", usesInheritance: true, ngImport: i0, template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n@if (!advanced()) {\\n <!-- <ion-input [(ngModel)]=\\\"value\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n}\\n<!-- </ion-col>-->\\n@if (allowAdvanced) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- (click)=\\\"toggleAdvanced()\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- [disabled]=\\\"minValue || maxValue\\\"-->\\n <!-- >-->\\n @if (!advanced()) {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>-->\\n } @else {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>-->\\n }\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\\n <!-- <ion-row>-->\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'from' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input [(ngModel)]=\\\"minValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (minValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'to' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input [(ngModel)]=\\\"maxValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- </ion-row>-->\\n}\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterIntComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-int', imports: [TranslatePipe, FormsModule], template: \"<!--<ion-row>-->\\n<!-- <ion-col>-->\\n<!-- <ion-label>-->\\n{{ item()?.label || '' | translate }}\\n<!-- </ion-label>-->\\n@if (!advanced()) {\\n <!-- <ion-input [(ngModel)]=\\\"value\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n}\\n<!-- </ion-col>-->\\n@if (allowAdvanced) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- (click)=\\\"toggleAdvanced()\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- [disabled]=\\\"minValue || maxValue\\\"-->\\n <!-- >-->\\n @if (!advanced()) {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>-->\\n } @else {\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>-->\\n }\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n@if (value || minValue || maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"square-button m-3\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n}\\n<!--</ion-row>-->\\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\\n <!-- <ion-row>-->\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'from' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input [(ngModel)]=\\\"minValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (minValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '>=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- <ion-col>-->\\n <!-- <ion-item>-->\\n <!-- <ion-label>-->\\n {{ 'to' | translate }}\\n <!-- </ion-label>-->\\n <!-- <ion-input [(ngModel)]=\\\"maxValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>-->\\n <!-- </ion-item>-->\\n <!-- </ion-col>-->\\n @if (maxValue) {\\n <!-- <ion-col size=\\\"auto\\\">-->\\n <!-- <ion-button-->\\n <!-- color=\\\"danger\\\"-->\\n <!-- (click)=\\\"refresh(null, '<=')\\\"-->\\n <!-- class=\\\"square-button m-3\\\"-->\\n <!-- >-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-col>-->\\n }\\n <!-- </ion-row>-->\\n}\\n\", styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ludC9pbnQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvaW50L2ludC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUdULE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJcEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQWlCdkQsTUFBTSxPQUFPLGtCQUNYLFNBQVEsYUFBZ0I7SUFHaEIsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFFNUMsUUFBUSxHQUE0QixNQUFNLENBQVUsS0FBSyxvREFBQyxDQUFDO0lBRTNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLElBQUksS0FBSyxHQUFHLENBQUM7SUFDbkMsQ0FBQztJQUVRLFFBQVE7UUFDZixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUN4QixJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3BDLENBQUM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUFFLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ3pDLENBQUM7dUdBekJVLGtCQUFrQjsyRkFBbEIsa0JBQWtCLHdHQzlCL0IsZ2tGQTBFQSw2SUR4RDJCLFdBQVcsMEJBQTFCLGFBQWE7OzJGQVlaLGtCQUFrQjtrQkFmOUIsU0FBUzsrQkFDRSx1QkFBdUIsV0FFeEIsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IEJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXItaW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludC5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtUcmFuc2xhdGVQaXBlLCBGb3Jtc01vZHVsZV0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgd2lkdGg6IDEwMCU7XG4gICAgICAgIC5zcXVhcmUtYnV0dG9uIHtcbiAgICAgICAgICBoZWlnaHQ6IHZhcigtLXNtYXJ0LWJ1dHRvbi1oZWlnaHQpICFpbXBvcnRhbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJJbnRDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfc3Vic2NyaXB0aW9ucyA9IG5ldyBTdWJzY3JpcHRpb24oKTtcblxuICBhZHZhbmNlZDogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gIGdldCBhbGxvd0FkdmFuY2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW0oKT8udHlwZSA9PT0gJz0nO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQWR2YW5jZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZHZhbmNlZC51cGRhdGUoKHZhbCkgPT4gIXZhbCk7XG4gICAgaWYgKHRoaXMuYWR2YW5jZWQoKSkgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cbn1cbiIsIjwhLS08aW9uLXJvdz4tLT5cbjwhLS0gIDxpb24tY29sPi0tPlxuPCEtLSAgICA8aW9uLWxhYmVsPi0tPlxue3sgaXRlbSgpPy5sYWJlbCB8fCAnJyB8IHRyYW5zbGF0ZSB9fVxuPCEtLSAgICA8L2lvbi1sYWJlbD4tLT5cbkBpZiAoIWFkdmFuY2VkKCkpIHtcbiAgPCEtLSAgICAgIDxpb24taW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIHR5cGU9XCJudW1iZXJcIiBzdGVwPVwiMVwiPjwvaW9uLWlucHV0Pi0tPlxufVxuPCEtLSAgPC9pb24tY29sPi0tPlxuQGlmIChhbGxvd0FkdmFuY2VkKSB7XG4gIDwhLS0gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIj4tLT5cbiAgPCEtLSAgICAgIDxpb24tYnV0dG9uLS0+XG4gIDwhLS0gICAgICAgIChjbGljayk9XCJ0b2dnbGVBZHZhbmNlZCgpXCItLT5cbiAgPCEtLSAgICAgICAgY2xhc3M9XCJzcXVhcmUtYnV0dG9uIG0tM1wiLS0+XG4gIDwhLS0gICAgICAgIFtkaXNhYmxlZF09XCJtaW5WYWx1ZSB8fCBtYXhWYWx1ZVwiLS0+XG4gIDwhLS0gICAgICA+LS0+XG4gIEBpZiAoIWFkdmFuY2VkKCkpIHtcbiAgICA8IS0tICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInNldHRpbmdzLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICB9IEBlbHNlIHtcbiAgICA8IS0tICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInNldHRpbmdzXCI+PC9pb24taWNvbj4tLT5cbiAgfVxuICA8IS0tICAgICAgPC9pb24tYnV0dG9uPi0tPlxuICA8IS0tICAgIDwvaW9uLWNvbD4tLT5cbn1cbkBpZiAodmFsdWUgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUpIHtcbiAgPCEtLSAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICA8IS0tICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYW5nZXJcIiAoY2xpY2spPVwiY2xlYXIoKVwiIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTNcIj4tLT5cbiAgPCEtLSAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+LS0+XG4gIDwhLS0gICAgICA8L2lvbi1idXR0b24+LS0+XG4gIDwhLS0gICAgPC9pb24tY29sPi0tPlxufVxuPCEtLTwvaW9uLXJvdz4tLT5cbkBpZiAoKGFkdmFuY2VkKCkgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUpICYmIGFsbG93QWR2YW5jZWQpIHtcbiAgPCEtLSAgPGlvbi1yb3c+LS0+XG4gIDwhLS0gICAgPGlvbi1jb2w+LS0+XG4gIDwhLS0gICAgICA8aW9uLWl0ZW0+LS0+XG4gIDwhLS0gICAgICAgIDxpb24tbGFiZWw+LS0+XG4gIHt7ICdmcm9tJyB8IHRyYW5zbGF0ZSB9fVxuICA8IS0tICAgICAgICA8L2lvbi1sYWJlbD4tLT5cbiAgPCEtLSAgICAgICAgPGlvbi1pbnB1dCBbKG5nTW9kZWwpXT1cIm1pblZhbHVlXCIgdHlwZT1cIm51bWJlclwiIHN0ZXA9XCIxXCI+PC9pb24taW5wdXQ+LS0+XG4gIDwhLS0gICAgICA8L2lvbi1pdGVtPi0tPlxuICA8IS0tICAgIDwvaW9uLWNvbD4tLT5cbiAgQGlmIChtaW5WYWx1ZSkge1xuICAgIDwhLS0gICAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiPi0tPlxuICAgIDwhLS0gICAgICAgIDxpb24tYnV0dG9uLS0+XG4gICAgPCEtLSAgICAgICAgICBjb2xvcj1cImRhbmdlclwiLS0+XG4gICAgPCEtLSAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaChudWxsLCAnPj0nKVwiLS0+XG4gICAgPCEtLSAgICAgICAgICBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCItLT5cbiAgICA8IS0tICAgICAgICA+LS0+XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgICA8IS0tICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gICAgPCEtLSAgICAgIDwvaW9uLWNvbD4tLT5cbiAgfVxuICA8IS0tICAgIDxpb24tY29sPi0tPlxuICA8IS0tICAgICAgPGlvbi1pdGVtPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWxhYmVsPi0tPlxuICB7eyAndG8nIHwgdHJhbnNsYXRlIH19XG4gIDwhLS0gICAgICAgIDwvaW9uLWxhYmVsPi0tPlxuICA8IS0tICAgICAgICA8aW9uLWlucHV0IFsobmdNb2RlbCldPVwibWF4VmFsdWVcIiB0eXBlPVwibnVtYmVyXCIgc3RlcD1cIjFcIj48L2lvbi1pbnB1dD4tLT5cbiAgPCEtLSAgICAgIDwvaW9uLWl0ZW0+LS0+XG4gIDwhLS0gICAgPC9pb24tY29sPi0tPlxuICBAaWYgKG1heFZhbHVlKSB7XG4gICAgPCEtLSAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gICAgPCEtLSAgICAgICAgPGlvbi1idXR0b24tLT5cbiAgICA8IS0tICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCItLT5cbiAgICA8IS0tICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKG51bGwsICc8PScpXCItLT5cbiAgICA8IS0tICAgICAgICAgIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTNcIi0tPlxuICAgIDwhLS0gICAgICAgID4tLT5cbiAgICA8IS0tICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICAgIDwhLS0gICAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgICA8IS0tICAgICAgPC9pb24tY29sPi0tPlxuICB9XG4gIDwhLS0gIDwvaW9uLXJvdz4tLT5cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterRadioComponent extends BaseComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterRadioComponent, isStandalone: true, selector: \"smart-crud-filter-radio\", usesInheritance: true, ngImport: i0, template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-radio-group [(ngModel)]=\"value\">-->\n <!-- <ion-item-divider class=\"font-light text-xl\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value || value === false) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-0 text-lg h-9 w-9 p-0\"-->\n <!-- >-->\n <!-- <ion-icon class=\"mr-6 text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (item of possibilities(); track item) {\n <!-- <ion-item>-->\n <!-- <ion-label>{{ item.text | translate }}</ion-label>-->\n <!-- <ion-radio class=\"mr-10\" [value]=\"item.id\"></ion-radio>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-radio-group>-->\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `, isInline: true, styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-item-divider{//--padding-end: .8rem;//--ion-background-color: linear-gradient(// 90deg,// transparent,// var(--ion-color-light) //)}:host ion-item-divider ion-icon{//--color: var(--ion-color-primary)}:host ion-item-divider ion-label{//--padding: var(--smart-button-padding-left) / 2 // var(--smart-button-padding-top) / 2 var(--smart-button-padding-right) / // 2 var(--smart-button-padding-bottom) / 2}:host ion-item-divider .square-button{//--padding-start: .2em;//--padding-end: .2em}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterRadioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-radio', template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-radio-group [(ngModel)]=\"value\">-->\n <!-- <ion-item-divider class=\"font-light text-xl\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value || value === false) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-0 text-lg h-9 w-9 p-0\"-->\n <!-- >-->\n <!-- <ion-icon class=\"mr-6 text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (item of possibilities(); track item) {\n <!-- <ion-item>-->\n <!-- <ion-label>{{ item.text | translate }}</ion-label>-->\n <!-- <ion-radio class=\"mr-10\" [value]=\"item.id\"></ion-radio>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-radio-group>-->\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `, imports: [TranslatePipe, FormsModule], styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-item-divider{//--padding-end: .8rem;//--ion-background-color: linear-gradient(// 90deg,// transparent,// var(--ion-color-light) //)}:host ion-item-divider ion-icon{//--color: var(--ion-color-primary)}:host ion-item-divider ion-label{//--padding: var(--smart-button-padding-left) / 2 // var(--smart-button-padding-top) / 2 var(--smart-button-padding-right) / // 2 var(--smart-button-padding-bottom) / 2}:host ion-item-divider .square-button{//--padding-start: .2em;//--padding-end: .2em}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvcmFkaW8vcmFkaW8uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBaUV2RCxNQUFNLE9BQU8sb0JBRVgsU0FBUSxhQUFnQjt1R0FGYixvQkFBb0I7MkZBQXBCLG9CQUFvQiwwR0E3RHJCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0E4QlQsaW1CQUN3QixXQUFXLDBCQUExQixhQUFhOzsyRkE4Qlosb0JBQW9CO2tCQS9EaEMsU0FBUzsrQkFDRSx5QkFBeUIsWUFDekI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThCVCxXQUNRLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1yYWRpbycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPCEtLSAgICA8aW9uLXJvdz4tLT5cbiAgICA8IS0tICAgICAgPGlvbi1jb2w+LS0+XG4gICAgPCEtLSAgICAgICAgPGlvbi1yYWRpby1ncm91cCBbKG5nTW9kZWwpXT1cInZhbHVlXCI+LS0+XG4gICAgPCEtLSAgICAgICAgICA8aW9uLWl0ZW0tZGl2aWRlciBjbGFzcz1cImZvbnQtbGlnaHQgdGV4dC14bFwiPi0tPlxuICAgIDwhLS0gICAgICAgICAgICA8aW9uLWljb24gY2xhc3M9XCJtci02IHRleHQtMnhsXCIgc2xvdD1cInN0YXJ0XCIgbmFtZT1cImZpbHRlci1vdXRsaW5lXCI+PC9pb24taWNvbj4tLT5cbiAgICA8IS0tICAgICAgICAgICAgPGlvbi1sYWJlbD4tLT5cbiAgICB7eyBpdGVtKCk/LmxhYmVsIHx8ICcnIHwgdHJhbnNsYXRlIH19XG4gICAgPCEtLSAgICAgICAgICAgIDwvaW9uLWxhYmVsPi0tPlxuICAgIEBpZiAodmFsdWUgfHwgdmFsdWUgPT09IGZhbHNlKSB7XG4gICAgICA8IS0tICAgICAgICAgICAgICA8aW9uLWJ1dHRvbi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgICAgICBzbG90PVwiZW5kXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVmcmVzaChudWxsKVwiLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICAgIGNsYXNzPVwic3F1YXJlLWJ1dHRvbiBtLTAgdGV4dC1sZyBoLTkgdy05IHAtMFwiLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICA+LS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICAgIDxpb24taWNvbiBjbGFzcz1cIm1yLTYgdGV4dC0yeGwgbS0wIHAtMFwiIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+LS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gICAgfVxuICAgIDwhLS0gICAgICAgICAgPC9pb24taXRlbS1kaXZpZGVyPi0tPlxuXG4gICAgQGZvciAoaXRlbSBvZiBwb3NzaWJpbGl0aWVzKCk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgIDwhLS0gICAgICAgICAgICA8aW9uLWl0ZW0+LS0+XG4gICAgICA8IS0tICAgICAgICAgICAgICA8aW9uLWxhYmVsPnt7IGl0ZW0udGV4dCB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgICAgPGlvbi1yYWRpbyBjbGFzcz1cIm1yLTEwXCIgW3ZhbHVlXT1cIml0ZW0uaWRcIj48L2lvbi1yYWRpbz4tLT5cbiAgICAgIDwhLS0gICAgICAgICAgICA8L2lvbi1pdGVtPi0tPlxuICAgIH1cbiAgICA8IS0tICAgICAgICA8L2lvbi1yYWRpby1ncm91cD4tLT5cbiAgICA8IS0tICAgICAgPC9pb24tY29sPi0tPlxuICAgIDwhLS0gICAgPC9pb24tcm93Pi0tPlxuICBgLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgRm9ybXNNb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICBtYXJnaW4tYm90dG9tOiAxLjJyZW07XG4gICAgICAgIGlvbi1pdGVtLWRpdmlkZXIge1xuICAgICAgICAgIC8vLS1wYWRkaW5nLWVuZDogMC44cmVtO1xuICAgICAgICAgIC8vLS1pb24tYmFja2dyb3VuZC1jb2xvcjogbGluZWFyLWdyYWRpZW50KFxuICAgICAgICAgIC8vICA5MGRlZyxcbiAgICAgICAgICAvLyAgdHJhbnNwYXJlbnQsXG4gICAgICAgICAgLy8gIHZhcigtLWlvbi1jb2xvci1saWdodClcbiAgICAgICAgICAvLyk7XG4gICAgICAgICAgaW9uLWljb24ge1xuICAgICAgICAgICAgLy8tLWNvbG9yOiB2YXIoLS1pb24tY29sb3ItcHJpbWFyeSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlvbi1sYWJlbCB7XG4gICAgICAgICAgICAvLy0tcGFkZGluZzogdmFyKC0tc21hcnQtYnV0dG9uLXBhZGRpbmctbGVmdCkgLyAyXG4gICAgICAgICAgICAvLyAgdmFyKC0tc21hcnQtYnV0dG9uLXBhZGRpbmctdG9wKSAvIDIgdmFyKC0tc21hcnQtYnV0dG9uLXBhZGRpbmctcmlnaHQpIC9cbiAgICAgICAgICAgIC8vICAyIHZhcigtLXNtYXJ0LWJ1dHRvbi1wYWRkaW5nLWJvdHRvbSkgLyAyO1xuICAgICAgICAgIH1cbiAgICAgICAgICAuc3F1YXJlLWJ1dHRvbiB7XG4gICAgICAgICAgICAvLy0tcGFkZGluZy1zdGFydDogMC4yZW07XG4gICAgICAgICAgICAvLy0tcGFkZGluZy1lbmQ6IDAuMmVtO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIGAsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlclJhZGlvQ29tcG9uZW50PFxuICBUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LFxuPiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge31cbiJdfQ==","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { BaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterTextComponent extends BaseComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterTextComponent, isStandalone: true, selector: \"smart-crud-filter-text\", usesInheritance: true, ngImport: i0, template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-label position=\"floating\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input [(ngModel)]=\"value\"></ion-input>-->\n <!-- </ion-col>-->\n @if (value) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `, isInline: true, styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"], dependencies: [{ kind: \"ngmodule\", type: FormsModule }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterTextComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-text', template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-label position=\"floating\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input [(ngModel)]=\"value\"></ion-input>-->\n <!-- </ion-col>-->\n @if (value) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `, imports: [TranslatePipe, FormsModule], styles: [\":host{width:100%}:host .square-button{height:var(--smart-button-height)!important}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci90ZXh0L3RleHQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUlwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBcUN2RCxNQUFNLE9BQU8sbUJBRVgsU0FBUSxhQUFnQjt1R0FGYixtQkFBbUI7MkZBQW5CLG1CQUFtQix5R0FqQ3BCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW9CVCw2SkFDd0IsV0FBVywwQkFBMUIsYUFBYTs7MkZBWVosbUJBQW1CO2tCQW5DL0IsU0FBUzsrQkFDRSx3QkFBd0IsWUFDeEI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBb0JULFdBQ1EsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS9iYXNlLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLXRleHQnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDwhLS0gICAgPGlvbi1yb3c+LS0+XG4gICAgPCEtLSAgICAgIDxpb24tY29sPi0tPlxuICAgIDwhLS0gICAgICAgIDxpb24tbGFiZWwgcG9zaXRpb249XCJmbG9hdGluZ1wiPi0tPlxuICAgIHt7IGl0ZW0oKT8ubGFiZWwgfHwgJycgfCB0cmFuc2xhdGUgfX1cbiAgICA8IS0tICAgICAgICA8L2lvbi1sYWJlbD4tLT5cbiAgICA8IS0tICAgICAgICA8aW9uLWlucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIj48L2lvbi1pbnB1dD4tLT5cbiAgICA8IS0tICAgICAgPC9pb24tY29sPi0tPlxuICAgIEBpZiAodmFsdWUpIHtcbiAgICAgIDwhLS0gICAgICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCI+LS0+XG4gICAgICA8IS0tICAgICAgICAgIDxpb24tYnV0dG9uLS0+XG4gICAgICA8IS0tICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgIChjbGljayk9XCJyZWZyZXNoKG51bGwpXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgICBjbGFzcz1cInNxdWFyZS1idXR0b24gbS0zXCItLT5cbiAgICAgIDwhLS0gICAgICAgICAgPi0tPlxuICAgICAgPCEtLSAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPi0tPlxuICAgICAgPCEtLSAgICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gICAgICA8IS0tICAgICAgICA8L2lvbi1jb2w+LS0+XG4gICAgfVxuICAgIDwhLS0gICAgPC9pb24tcm93Pi0tPlxuICBgLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZSwgRm9ybXNNb2R1bGVdLFxuICBzdHlsZXM6IFtcbiAgICBgXG4gICAgICA6aG9zdCB7XG4gICAgICAgIHdpZHRoOiAxMDAlO1xuICAgICAgICAuc3F1YXJlLWJ1dHRvbiB7XG4gICAgICAgICAgaGVpZ2h0OiB2YXIoLS1zbWFydC1idXR0b24taGVpZ2h0KSAhaW1wb3J0YW50O1xuICAgICAgICB9XG4gICAgICB9XG4gICAgYCxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVGV4dENvbXBvbmVudDxcbiAgVCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPixcbj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHt9XG4iXX0=","import { Component, input } from '@angular/core';\nimport { FieldType } from '@smartsoft001/models';\nimport { FilterCheckComponent } from './check/check.component';\nimport { FilterDateComponent } from './date/date.component';\nimport { FilterDateTimeComponent } from './date-time/date-time.component';\nimport { FilterDateWithEditComponent } from './date-with-edit/date-with-edit.component';\nimport { FilterFlagComponent } from './flag/flag.component';\nimport { FilterIntComponent } from './int/int.component';\nimport { FilterRadioComponent } from './radio/radio.component';\nimport { FilterTextComponent } from './text/text.component';\nimport * as i0 from \"@angular/core\";\nexport class FilterComponent {\n FieldType = FieldType;\n item = input(...(ngDevMode ? [undefined, { debugName: \"item\" }] : []));\n filter = input(...(ngDevMode ? [undefined, { debugName: \"filter\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FilterComponent, isStandalone: true, selector: \"smart-crud-filter\", inputs: { item: { classPropertyName: \"item\", publicName: \"item\", isSignal: true, isRequired: false, transformFunction: null }, filter: { classPropertyName: \"filter\", publicName: \"filter\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: \"<!--<ion-item>-->\\n@switch (item()?.fieldType) {\\n @case (FieldType.date) {\\n <smart-crud-filter-date\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date>\\n }\\n @case (FieldType.dateWithEdit) {\\n <smart-crud-filter-date-with-edit\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date-with-edit>\\n }\\n @case (FieldType.dateTime) {\\n <smart-crud-filter-date-time\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date-time>\\n }\\n @case (FieldType.radio) {\\n <smart-crud-filter-radio\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-radio>\\n }\\n @case (FieldType.check) {\\n <smart-crud-filter-check\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-check>\\n }\\n @case (FieldType.flag) {\\n <smart-crud-filter-flag\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-flag>\\n }\\n @case (FieldType.int) {\\n <smart-crud-filter-int\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-int>\\n }\\n @default {\\n <smart-crud-filter-text\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-text>\\n }\\n}\\n<!--</ion-item>-->\\n\", dependencies: [{ kind: \"component\", type: FilterTextComponent, selector: \"smart-crud-filter-text\" }, { kind: \"component\", type: FilterIntComponent, selector: \"smart-crud-filter-int\" }, { kind: \"component\", type: FilterFlagComponent, selector: \"smart-crud-filter-flag\" }, { kind: \"component\", type: FilterCheckComponent, selector: \"smart-crud-filter-check\" }, { kind: \"component\", type: FilterRadioComponent, selector: \"smart-crud-filter-radio\" }, { kind: \"component\", type: FilterDateTimeComponent, selector: \"smart-crud-filter-date-time\" }, { kind: \"component\", type: FilterDateWithEditComponent, selector: \"smart-crud-filter-date-with-edit\" }, { kind: \"component\", type: FilterDateComponent, selector: \"smart-crud-filter-date\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FilterComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter', imports: [\n FilterTextComponent,\n FilterIntComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterRadioComponent,\n FilterDateTimeComponent,\n FilterDateWithEditComponent,\n FilterDateComponent,\n ], template: \"<!--<ion-item>-->\\n@switch (item()?.fieldType) {\\n @case (FieldType.date) {\\n <smart-crud-filter-date\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date>\\n }\\n @case (FieldType.dateWithEdit) {\\n <smart-crud-filter-date-with-edit\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date-with-edit>\\n }\\n @case (FieldType.dateTime) {\\n <smart-crud-filter-date-time\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-date-time>\\n }\\n @case (FieldType.radio) {\\n <smart-crud-filter-radio\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-radio>\\n }\\n @case (FieldType.check) {\\n <smart-crud-filter-check\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-check>\\n }\\n @case (FieldType.flag) {\\n <smart-crud-filter-flag\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-flag>\\n }\\n @case (FieldType.int) {\\n <smart-crud-filter-int\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-int>\\n }\\n @default {\\n <smart-crud-filter-text\\n [item]=\\\"item()\\\"\\n [filter]=\\\"filter()\\\"\\n ></smart-crud-filter-text>\\n }\\n}\\n<!--</ion-item>-->\\n\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxzQkFBc0IsQ0FBQztBQUcvRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN4RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7QUFnQjVELE1BQU0sT0FBTyxlQUFlO0lBQzFCLFNBQVMsR0FBRyxTQUFTLENBQUM7SUFFdEIsSUFBSSxHQUFHLEtBQUssMERBQWdCLENBQUM7SUFDN0IsTUFBTSxHQUFHLEtBQUssNERBQWUsQ0FBQzt1R0FKbkIsZUFBZTsyRkFBZixlQUFlLHlVQzVCNUIsMHdDQW9EQSw0Q0RsQ0ksbUJBQW1CLG1FQUNuQixrQkFBa0Isa0VBQ2xCLG1CQUFtQixtRUFDbkIsb0JBQW9CLG9FQUNwQixvQkFBb0Isb0VBQ3BCLHVCQUF1Qix3RUFDdkIsMkJBQTJCLDZFQUMzQixtQkFBbUI7OzJGQUdWLGVBQWU7a0JBZDNCLFNBQVM7K0JBQ0UsbUJBQW1CLFdBRXBCO3dCQUNQLG1CQUFtQjt3QkFDbkIsa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLG9CQUFvQjt3QkFDcEIsb0JBQW9CO3dCQUNwQix1QkFBdUI7d0JBQ3ZCLDJCQUEyQjt3QkFDM0IsbUJBQW1CO3FCQUNwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgRmllbGRUeXBlLCBJTW9kZWxGaWx0ZXIgfSBmcm9tICdAc21hcnRzb2Z0MDAxL21vZGVscyc7XG5cbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbHRlckNoZWNrQ29tcG9uZW50IH0gZnJvbSAnLi9jaGVjay9jaGVjay5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyRGF0ZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS9kYXRlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJEYXRlVGltZUNvbXBvbmVudCB9IGZyb20gJy4vZGF0ZS10aW1lL2RhdGUtdGltZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyRGF0ZVdpdGhFZGl0Q29tcG9uZW50IH0gZnJvbSAnLi9kYXRlLXdpdGgtZWRpdC9kYXRlLXdpdGgtZWRpdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyRmxhZ0NvbXBvbmVudCB9IGZyb20gJy4vZmxhZy9mbGFnLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJJbnRDb21wb25lbnQgfSBmcm9tICcuL2ludC9pbnQuY29tcG9uZW50JztcbmltcG9ydCB7IEZpbHRlclJhZGlvQ29tcG9uZW50IH0gZnJvbSAnLi9yYWRpby9yYWRpby5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsdGVyVGV4dENvbXBvbmVudCB9IGZyb20gJy4vdGV4dC90ZXh0LmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIGltcG9ydHM6IFtcbiAgICBGaWx0ZXJUZXh0Q29tcG9uZW50LFxuICAgIEZpbHRlckludENvbXBvbmVudCxcbiAgICBGaWx0ZXJGbGFnQ29tcG9uZW50LFxuICAgIEZpbHRlckNoZWNrQ29tcG9uZW50LFxuICAgIEZpbHRlclJhZGlvQ29tcG9uZW50LFxuICAgIEZpbHRlckRhdGVUaW1lQ29tcG9uZW50LFxuICAgIEZpbHRlckRhdGVXaXRoRWRpdENvbXBvbmVudCxcbiAgICBGaWx0ZXJEYXRlQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJDb21wb25lbnQge1xuICBGaWVsZFR5cGUgPSBGaWVsZFR5cGU7XG5cbiAgaXRlbSA9IGlucHV0PElNb2RlbEZpbHRlcj4oKTtcbiAgZmlsdGVyID0gaW5wdXQ8SUNydWRGaWx0ZXI+KCk7XG59XG4iLCI8IS0tPGlvbi1pdGVtPi0tPlxuQHN3aXRjaCAoaXRlbSgpPy5maWVsZFR5cGUpIHtcbiAgQGNhc2UgKEZpZWxkVHlwZS5kYXRlKSB7XG4gICAgPHNtYXJ0LWNydWQtZmlsdGVyLWRhdGVcbiAgICAgIFtpdGVtXT1cIml0ZW0oKVwiXG4gICAgICBbZmlsdGVyXT1cImZpbHRlcigpXCJcbiAgICA+PC9zbWFydC1jcnVkLWZpbHRlci1kYXRlPlxuICB9XG4gIEBjYXNlIChGaWVsZFR5cGUuZGF0ZVdpdGhFZGl0KSB7XG4gICAgPHNtYXJ0LWNydWQtZmlsdGVyLWRhdGUtd2l0aC1lZGl0XG4gICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgW2ZpbHRlcl09XCJmaWx0ZXIoKVwiXG4gICAgPjwvc21hcnQtY3J1ZC1maWx0ZXItZGF0ZS13aXRoLWVkaXQ+XG4gIH1cbiAgQGNhc2UgKEZpZWxkVHlwZS5kYXRlVGltZSkge1xuICAgIDxzbWFydC1jcnVkLWZpbHRlci1kYXRlLXRpbWVcbiAgICAgIFtpdGVtXT1cIml0ZW0oKVwiXG4gICAgICBbZmlsdGVyXT1cImZpbHRlcigpXCJcbiAgICA+PC9zbWFydC1jcnVkLWZpbHRlci1kYXRlLXRpbWU+XG4gIH1cbiAgQGNhc2UgKEZpZWxkVHlwZS5yYWRpbykge1xuICAgIDxzbWFydC1jcnVkLWZpbHRlci1yYWRpb1xuICAgICAgW2l0ZW1dPVwiaXRlbSgpXCJcbiAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyKClcIlxuICAgID48L3NtYXJ0LWNydWQtZmlsdGVyLXJhZGlvPlxuICB9XG4gIEBjYXNlIChGaWVsZFR5cGUuY2hlY2spIHtcbiAgICA8c21hcnQtY3J1ZC1maWx0ZXItY2hlY2tcbiAgICAgIFtpdGVtXT1cIml0ZW0oKVwiXG4gICAgICBbZmlsdGVyXT1cImZpbHRlcigpXCJcbiAgICA+PC9zbWFydC1jcnVkLWZpbHRlci1jaGVjaz5cbiAgfVxuICBAY2FzZSAoRmllbGRUeXBlLmZsYWcpIHtcbiAgICA8c21hcnQtY3J1ZC1maWx0ZXItZmxhZ1xuICAgICAgW2l0ZW1dPVwiaXRlbSgpXCJcbiAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyKClcIlxuICAgID48L3NtYXJ0LWNydWQtZmlsdGVyLWZsYWc+XG4gIH1cbiAgQGNhc2UgKEZpZWxkVHlwZS5pbnQpIHtcbiAgICA8c21hcnQtY3J1ZC1maWx0ZXItaW50XG4gICAgICBbaXRlbV09XCJpdGVtKClcIlxuICAgICAgW2ZpbHRlcl09XCJmaWx0ZXIoKVwiXG4gICAgPjwvc21hcnQtY3J1ZC1maWx0ZXItaW50PlxuICB9XG4gIEBkZWZhdWx0IHtcbiAgICA8c21hcnQtY3J1ZC1maWx0ZXItdGV4dFxuICAgICAgW2l0ZW1dPVwiaXRlbSgpXCJcbiAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyKClcIlxuICAgID48L3NtYXJ0LWNydWQtZmlsdGVyLXRleHQ+XG4gIH1cbn1cbjwhLS08L2lvbi1pdGVtPi0tPlxuIl19","import { Component, ElementRef, inject, input, signal, } from '@angular/core';\nimport { MenuService, StyleService } from '@smartsoft001/angular';\nimport { FieldType, getModelFieldsWithOptions, getModelOptions, } from '@smartsoft001/models';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudConfig } from '../../crud.config';\nimport { FilterComponent } from '../filter';\nimport * as i0 from \"@angular/core\";\n/**\n * This component is only to use in crud module\n * @requires CrudModule\n * @example\n *\n * html: <smart-crud-filters></smart-crud-filters>\n *\n * use on the model:\n * @Model({\n titleKey: 'body',\n filters: [\n {\n label: 'testNegation',\n key: 'body',\n type: '!=',\n },\n {\n label: 'fromDate',\n key: 'createDate',\n type: '<=',\n fieldType: FieldType.dateWithEdit\n },\n {\n label: 'select',\n key: 'type',\n type: '=',\n fieldType: FieldType.radio,\n possibilities$: of([\n {\n id: 1, text: 'Test 1'\n },\n {\n id: 2, text: 'Test 2'\n }\n ])\n }\n ]\n})\n *\n * use on the field (list.filter property):\n * @Field({\n create: modifyMetdata,\n update: {\n ...modifyMetdata,\n multi: true\n },\n type: FieldType.longText,\n details: true,\n list: {\n order: 2,\n filter: true\n }\n })\n body: string;\n */\nexport class FiltersComponent {\n menuService = inject(MenuService);\n config = inject((CrudConfig));\n facade = inject((CrudFacade));\n styleService = inject(StyleService);\n elementRef = inject(ElementRef);\n list;\n filter;\n /**\n * Hide menu used only from MenuService\n */\n hideMenu = input(false, ...(ngDevMode ? [{ debugName: \"hideMenu\" }] : []));\n async onClose() {\n await this.menuService.closeEnd();\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n this.list = signal([], ...(ngDevMode ? [{ debugName: \"list\" }] : []));\n const modelFilters = getModelOptions(this.config.type)?.filters;\n this.list.set([\n ...(modelFilters\n ? modelFilters.map((item) => {\n if (!item.label) {\n item.label = 'MODEL.' + item.key;\n }\n return item;\n })\n : []),\n ...getModelFieldsWithOptions(new this.config.type())\n .filter((item) => item.options?.list?.filter)\n .map((item) => ({\n key: item.key,\n type: item.options.type === FieldType.text ||\n item.options.type === FieldType.longText\n ? '~='\n : '=',\n label: 'MODEL.' + item.key,\n fieldType: item.options.type,\n })),\n ]);\n this.filter = this.facade.filter;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FiltersComponent, isStandalone: true, selector: \"smart-crud-filters\", inputs: { hideMenu: { classPropertyName: \"hideMenu\", publicName: \"hideMenu\", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `\n <!--<ion-header [hidden]=\"hideMenu()\">-->\n <!-- <ion-toolbar>-->\n <!-- <ion-buttons slot=\"end\">-->\n <!-- <ion-button (click)=\"onClose()\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-buttons>-->\n <!-- <ion-title>{{ 'filters' | translate }}</ion-title>-->\n <!-- </ion-toolbar>-->\n <!--</ion-header>-->\n <!--<ion-content style=\"height: 100vh\">-->\n <!-- <ion-list>-->\n @for (item of list(); track item) {\n <smart-crud-filter [item]=\"item\" [filter]=\"filter()\"></smart-crud-filter>\n }\n <!-- </ion-list>-->\n <div class=\"h-20\">&nbsp;</div>\n <!--</ion-content>-->\n `, isInline: true, dependencies: [{ kind: \"component\", type: FilterComponent, selector: \"smart-crud-filter\", inputs: [\"item\", \"filter\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-filters',\n template: `\n <!--<ion-header [hidden]=\"hideMenu()\">-->\n <!-- <ion-toolbar>-->\n <!-- <ion-buttons slot=\"end\">-->\n <!-- <ion-button (click)=\"onClose()\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-buttons>-->\n <!-- <ion-title>{{ 'filters' | translate }}</ion-title>-->\n <!-- </ion-toolbar>-->\n <!--</ion-header>-->\n <!--<ion-content style=\"height: 100vh\">-->\n <!-- <ion-list>-->\n @for (item of list(); track item) {\n <smart-crud-filter [item]=\"item\" [filter]=\"filter()\"></smart-crud-filter>\n }\n <!-- </ion-list>-->\n <div class=\"h-20\">&nbsp;</div>\n <!--</ion-content>-->\n `,\n imports: [FilterComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFJTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsU0FBUyxFQUNULHlCQUF5QixFQUN6QixlQUFlLEdBR2hCLE1BQU0sc0JBQXNCLENBQUM7QUFFOUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sV0FBVyxDQUFDOztBQUU1Qzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0RHO0FBeUJILE1BQU0sT0FBTyxnQkFBZ0I7SUFDbkIsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUMvQixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUMvQixZQUFZLEdBQUcsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFeEMsSUFBSSxDQUF1QztJQUUzQyxNQUFNLENBQW1DO0lBRXpDOztPQUVHO0lBQ00sUUFBUSxHQUF5QixLQUFLLENBQVUsS0FBSyxvREFBQyxDQUFDO0lBRWhFLEtBQUssQ0FBQyxPQUFPO1FBQ1gsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3hDLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLEVBQUUsZ0RBQUMsQ0FBQztRQUV2QixNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7UUFFaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUM7WUFDWixHQUFHLENBQUMsWUFBWTtnQkFDZCxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO29CQUN4QixJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO3dCQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO29CQUNuQyxDQUFDO29CQUNELE9BQU8sSUFBSSxDQUFDO2dCQUNkLENBQUMsQ0FBQztnQkFDSixDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ1AsR0FBRyx5QkFBeUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7aUJBQ2pELE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUEyQixFQUFFLE1BQU0sQ0FBQztpQkFDcEUsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNkLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQ0YsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUk7b0JBQ3BDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxRQUFRO29CQUN0QyxDQUFDLENBQUUsSUFBYztvQkFDakIsQ0FBQyxDQUFFLEdBQWE7Z0JBQ3BCLEtBQUssRUFBRSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUc7Z0JBQzFCLFNBQVMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUk7YUFDN0IsQ0FBQyxDQUFDO1NBQ04sQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNuQyxDQUFDO3VHQWpEVSxnQkFBZ0I7MkZBQWhCLGdCQUFnQiwyTkF0QmpCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJULDREQUNTLGVBQWU7OzJGQUVkLGdCQUFnQjtrQkF4QjVCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJUO29CQUNELE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIElucHV0U2lnbmFsLFxuICBPbkluaXQsXG4gIFNpZ25hbCxcbiAgc2lnbmFsLFxuICBXcml0YWJsZVNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IE1lbnVTZXJ2aWNlLCBTdHlsZVNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHtcbiAgRmllbGRUeXBlLFxuICBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zLFxuICBnZXRNb2RlbE9wdGlvbnMsXG4gIElGaWVsZExpc3RNZXRhZGF0YSxcbiAgSU1vZGVsRmlsdGVyLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL21vZGVscyc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgQ3J1ZENvbmZpZyB9IGZyb20gJy4uLy4uL2NydWQuY29uZmlnJztcbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEZpbHRlckNvbXBvbmVudCB9IGZyb20gJy4uL2ZpbHRlcic7XG5cbi8qKlxuICogVGhpcyBjb21wb25lbnQgaXMgb25seSB0byB1c2UgaW4gY3J1ZCBtb2R1bGVcbiAqIEByZXF1aXJlcyBDcnVkTW9kdWxlXG4gKiBAZXhhbXBsZVxuICpcbiAqIGh0bWw6IDxzbWFydC1jcnVkLWZpbHRlcnM+PC9zbWFydC1jcnVkLWZpbHRlcnM+XG4gKlxuICogdXNlIG9uIHRoZSBtb2RlbDpcbiAqIEBNb2RlbCh7XG4gICAgdGl0bGVLZXk6ICdib2R5JyxcbiAgICBmaWx0ZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIGxhYmVsOiAndGVzdE5lZ2F0aW9uJyxcbiAgICAgICAgICAgIGtleTogJ2JvZHknLFxuICAgICAgICAgICAgdHlwZTogJyE9JyxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdmcm9tRGF0ZScsXG4gICAgICAgICAgICBrZXk6ICdjcmVhdGVEYXRlJyxcbiAgICAgICAgICAgIHR5cGU6ICc8PScsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IEZpZWxkVHlwZS5kYXRlV2l0aEVkaXRcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICdzZWxlY3QnLFxuICAgICAgICAgICAga2V5OiAndHlwZScsXG4gICAgICAgICAgICB0eXBlOiAnPScsXG4gICAgICAgICAgICBmaWVsZFR5cGU6IEZpZWxkVHlwZS5yYWRpbyxcbiAgICAgICAgICAgIHBvc3NpYmlsaXRpZXMkOiBvZihbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogMSwgdGV4dDogJ1Rlc3QgMSdcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaWQ6IDIsIHRleHQ6ICdUZXN0IDInXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSlcbiAgICAgICAgfVxuICAgIF1cbn0pXG4gKlxuICogdXNlIG9uIHRoZSBmaWVsZCAobGlzdC5maWx0ZXIgcHJvcGVydHkpOlxuICogQEZpZWxkKHtcbiAgICAgICAgY3JlYXRlOiBtb2RpZnlNZXRkYXRhLFxuICAgICAgICB1cGRhdGU6IHtcbiAgICAgICAgICAgIC4uLm1vZGlmeU1ldGRhdGEsXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZVxuICAgICAgICB9LFxuICAgICAgICB0eXBlOiBGaWVsZFR5cGUubG9uZ1RleHQsXG4gICAgICAgIGRldGFpbHM6IHRydWUsXG4gICAgICAgIGxpc3Q6IHtcbiAgICAgICAgICAgIG9yZGVyOiAyLFxuICAgICAgICAgICAgZmlsdGVyOiB0cnVlXG4gICAgICAgIH1cbiAgICB9KVxuIGJvZHk6IHN0cmluZztcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXJzJyxcbiAgdGVtcGxhdGU6IGBcbiAgICA8IS0tPGlvbi1oZWFkZXIgW2hpZGRlbl09XCJoaWRlTWVudSgpXCI+LS0+XG4gICAgPCEtLSAgPGlvbi10b29sYmFyPi0tPlxuICAgIDwhLS0gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj4tLT5cbiAgICA8IS0tICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm9uQ2xvc2UoKVwiPi0tPlxuICAgIDwhLS0gICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCI+IDwvaW9uLWljb24+LS0+XG4gICAgPCEtLSAgICAgIDwvaW9uLWJ1dHRvbj4tLT5cbiAgICA8IS0tICAgIDwvaW9uLWJ1dHRvbnM+LS0+XG4gICAgPCEtLSAgICA8aW9uLXRpdGxlPnt7ICdmaWx0ZXJzJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLXRpdGxlPi0tPlxuICAgIDwhLS0gIDwvaW9uLXRvb2xiYXI+LS0+XG4gICAgPCEtLTwvaW9uLWhlYWRlcj4tLT5cbiAgICA8IS0tPGlvbi1jb250ZW50IHN0eWxlPVwiaGVpZ2h0OiAxMDB2aFwiPi0tPlxuICAgIDwhLS0gIDxpb24tbGlzdD4tLT5cbiAgICBAZm9yIChpdGVtIG9mIGxpc3QoKTsgdHJhY2sgaXRlbSkge1xuICAgICAgPHNtYXJ0LWNydWQtZmlsdGVyIFtpdGVtXT1cIml0ZW1cIiBbZmlsdGVyXT1cImZpbHRlcigpXCI+PC9zbWFydC1jcnVkLWZpbHRlcj5cbiAgICB9XG4gICAgPCEtLSAgPC9pb24tbGlzdD4tLT5cbiAgICA8ZGl2IGNsYXNzPVwiaC0yMFwiPiZuYnNwOzwvZGl2PlxuICAgIDwhLS08L2lvbi1jb250ZW50Pi0tPlxuICBgLFxuICBpbXBvcnRzOiBbRmlsdGVyQ29tcG9uZW50XSxcbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgbWVudVNlcnZpY2UgPSBpbmplY3QoTWVudVNlcnZpY2UpO1xuICBwcml2YXRlIGNvbmZpZyA9IGluamVjdChDcnVkQ29uZmlnPFQ+KTtcbiAgcHJpdmF0ZSBmYWNhZGUgPSBpbmplY3QoQ3J1ZEZhY2FkZTxUPik7XG4gIHByaXZhdGUgc3R5bGVTZXJ2aWNlID0gaW5qZWN0KFN0eWxlU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICBsaXN0ITogV3JpdGFibGVTaWduYWw8QXJyYXk8SU1vZGVsRmlsdGVyPj47XG5cbiAgZmlsdGVyITogU2lnbmFsPElDcnVkRmlsdGVyIHwgdW5kZWZpbmVkPjtcblxuICAvKipcbiAgICogSGlkZSBtZW51IHVzZWQgb25seSBmcm9tIE1lbnVTZXJ2aWNlXG4gICAqL1xuICByZWFkb25seSBoaWRlTWVudTogSW5wdXRTaWduYWw8Ym9vbGVhbj4gPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgYXN5bmMgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlU2VydmljZS5pbml0KHRoaXMuZWxlbWVudFJlZik7XG4gICAgdGhpcy5saXN0ID0gc2lnbmFsKFtdKTtcblxuICAgIGNvbnN0IG1vZGVsRmlsdGVycyA9IGdldE1vZGVsT3B0aW9ucyh0aGlzLmNvbmZpZy50eXBlKT8uZmlsdGVycztcblxuICAgIHRoaXMubGlzdC5zZXQoW1xuICAgICAgLi4uKG1vZGVsRmlsdGVyc1xuICAgICAgICA/IG1vZGVsRmlsdGVycy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgICBpdGVtLmxhYmVsID0gJ01PREVMLicgKyBpdGVtLmtleTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICAgIH0pXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhuZXcgdGhpcy5jb25maWcudHlwZSgpKVxuICAgICAgICAuZmlsdGVyKChpdGVtKSA9PiAoaXRlbS5vcHRpb25zPy5saXN0IGFzIElGaWVsZExpc3RNZXRhZGF0YSk/LmZpbHRlcilcbiAgICAgICAgLm1hcCgoaXRlbSkgPT4gKHtcbiAgICAgICAgICBrZXk6IGl0ZW0ua2V5LFxuICAgICAgICAgIHR5cGU6XG4gICAgICAgICAgICBpdGVtLm9wdGlvbnMudHlwZSA9PT0gRmllbGRUeXBlLnRleHQgfHxcbiAgICAgICAgICAgIGl0ZW0ub3B0aW9ucy50eXBlID09PSBGaWVsZFR5cGUubG9uZ1RleHRcbiAgICAgICAgICAgICAgPyAoJ349JyBhcyBjb25zdClcbiAgICAgICAgICAgICAgOiAoJz0nIGFzIGNvbnN0KSxcbiAgICAgICAgICBsYWJlbDogJ01PREVMLicgKyBpdGVtLmtleSxcbiAgICAgICAgICBmaWVsZFR5cGU6IGl0ZW0ub3B0aW9ucy50eXBlLFxuICAgICAgICB9KSksXG4gICAgXSk7XG4gICAgdGhpcy5maWx0ZXIgPSB0aGlzLmZhY2FkZS5maWx0ZXI7XG4gIH1cbn1cbiJdfQ==","import { Component, computed, ElementRef, inject, } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { StyleService } from '@smartsoft001/angular';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nexport class FiltersConfigComponent {\n facade = inject((CrudFacade));\n styleService = inject(StyleService);\n elementRef = inject(ElementRef);\n query;\n onRemoveQuery(item) {\n const filter = this.facade.filter();\n if (filter?.query) {\n const index = filter.query.indexOf(item);\n if (index > -1) {\n filter.query.splice(index, 1);\n }\n }\n this.facade.read(this.facade.filter());\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n this.query = computed(() => {\n const filter = this.facade.filter();\n return filter?.query?.filter((i) => !i.hidden) || [];\n }, ...(ngDevMode ? [{ debugName: \"query\" }] : []));\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: FiltersConfigComponent, isStandalone: true, selector: \"smart-crud-filters-config\", ngImport: i0, template: `\n @let query = this.query();\n @if (query && query?.length) {\n <!-- <ion-toolbar>-->\n @for (item of query; track item) {\n <!-- <ion-chip (click)=\"onRemoveQuery(item)\" color=\"medium\" outline=\"true\">-->\n <!-- <ion-icon name=\"filter-circle-outline\" color=\"primary\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ 'MODEL.' + item.key | translate }} {{ item.type }}\n {{ item.value | translate }}\n <!-- </ion-label>-->\n <!-- <ion-icon name=\"close\" color=\"danger\"></ion-icon>-->\n <!-- </ion-chip>-->\n }\n <!-- </ion-toolbar>-->\n }\n `, isInline: true, styles: [\":host ion-label{font-size:var(--small-font-size)}\\n\"], dependencies: [{ kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FiltersConfigComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filters-config', template: `\n @let query = this.query();\n @if (query && query?.length) {\n <!-- <ion-toolbar>-->\n @for (item of query; track item) {\n <!-- <ion-chip (click)=\"onRemoveQuery(item)\" color=\"medium\" outline=\"true\">-->\n <!-- <ion-icon name=\"filter-circle-outline\" color=\"primary\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ 'MODEL.' + item.key | translate }} {{ item.type }}\n {{ item.value | translate }}\n <!-- </ion-label>-->\n <!-- <ion-icon name=\"close\" color=\"danger\"></ion-icon>-->\n <!-- </ion-chip>-->\n }\n <!-- </ion-toolbar>-->\n }\n `, imports: [TranslatePipe], styles: [\":host ion-label{font-size:var(--small-font-size)}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzLWNvbmZpZy9maWx0ZXJzLWNvbmZpZy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQ1IsVUFBVSxFQUNWLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7QUFpQ3RELE1BQU0sT0FBTyxzQkFBc0I7SUFDaEIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWUsQ0FBQSxDQUFDLENBQUM7SUFDMUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRXhDLEtBQUssQ0FBa0M7SUFFdkMsYUFBYSxDQUFDLElBQTBCO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEMsSUFBSSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDbEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDZixNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDaEMsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLEtBQUssR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsT0FBTyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZELENBQUMsaURBQUMsQ0FBQztJQUNMLENBQUM7dUdBekJVLHNCQUFzQjsyRkFBdEIsc0JBQXNCLHFGQTVCdkI7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsd0hBQ1MsYUFBYTs7MkZBV1osc0JBQXNCO2tCQTlCbEMsU0FBUzsrQkFDRSwyQkFBMkIsWUFDM0I7Ozs7Ozs7Ozs7Ozs7Ozs7R0FnQlQsV0FDUSxDQUFDLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgY29tcHV0ZWQsXG4gIEVsZW1lbnRSZWYsXG4gIGluamVjdCxcbiAgT25Jbml0LFxuICBTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlUGlwZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuXG5pbXBvcnQgeyBTdHlsZVNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSAnLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlJztcbmltcG9ydCB7IElDcnVkRmlsdGVyUXVlcnlJdGVtIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXJzLWNvbmZpZycsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGxldCBxdWVyeSA9IHRoaXMucXVlcnkoKTtcbiAgICBAaWYgKHF1ZXJ5ICYmIHF1ZXJ5Py5sZW5ndGgpIHtcbiAgICAgIDwhLS0gIDxpb24tdG9vbGJhcj4tLT5cbiAgICAgIEBmb3IgKGl0ZW0gb2YgcXVlcnk7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgPCEtLSAgICAgIDxpb24tY2hpcCAoY2xpY2spPVwib25SZW1vdmVRdWVyeShpdGVtKVwiIGNvbG9yPVwibWVkaXVtXCIgb3V0bGluZT1cInRydWVcIj4tLT5cbiAgICAgICAgPCEtLSAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJmaWx0ZXItY2lyY2xlLW91dGxpbmVcIiBjb2xvcj1cInByaW1hcnlcIj48L2lvbi1pY29uPi0tPlxuICAgICAgICA8IS0tICAgICAgICA8aW9uLWxhYmVsPi0tPlxuICAgICAgICB7eyAnTU9ERUwuJyArIGl0ZW0ua2V5IHwgdHJhbnNsYXRlIH19IHt7IGl0ZW0udHlwZSB9fVxuICAgICAgICB7eyBpdGVtLnZhbHVlIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwhLS0gICAgICAgIDwvaW9uLWxhYmVsPi0tPlxuICAgICAgICA8IS0tICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlXCIgY29sb3I9XCJkYW5nZXJcIj48L2lvbi1pY29uPi0tPlxuICAgICAgICA8IS0tICAgICAgPC9pb24tY2hpcD4tLT5cbiAgICAgIH1cbiAgICAgIDwhLS0gIDwvaW9uLXRvb2xiYXI+LS0+XG4gICAgfVxuICBgLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlUGlwZV0sXG4gIHN0eWxlczogW1xuICAgIGBcbiAgICAgIDpob3N0IHtcbiAgICAgICAgaW9uLWxhYmVsIHtcbiAgICAgICAgICBmb250LXNpemU6IHZhcigtLXNtYWxsLWZvbnQtc2l6ZSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICBgLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29uZmlnQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSByZWFkb25seSBmYWNhZGUgPSBpbmplY3QoQ3J1ZEZhY2FkZTxhbnk+KTtcbiAgcHJpdmF0ZSBzdHlsZVNlcnZpY2UgPSBpbmplY3QoU3R5bGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gIHF1ZXJ5ITogU2lnbmFsPElDcnVkRmlsdGVyUXVlcnlJdGVtW10+O1xuXG4gIG9uUmVtb3ZlUXVlcnkoaXRlbTogSUNydWRGaWx0ZXJRdWVyeUl0ZW0pOiB2b2lkIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZhY2FkZS5maWx0ZXIoKTtcbiAgICBpZiAoZmlsdGVyPy5xdWVyeSkge1xuICAgICAgY29uc3QgaW5kZXggPSBmaWx0ZXIucXVlcnkuaW5kZXhPZihpdGVtKTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGZpbHRlci5xdWVyeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmFjYWRlLmZpbHRlcigpKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmluaXQodGhpcy5lbGVtZW50UmVmKTtcblxuICAgIHRoaXMucXVlcnkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZhY2FkZS5maWx0ZXIoKTtcbiAgICAgIHJldHVybiBmaWx0ZXI/LnF1ZXJ5Py5maWx0ZXIoKGkpID0+ICFpLmhpZGRlbikgfHwgW107XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { InjectionToken } from '@angular/core';\n/**\n * @deprecated - please, use IModelPossibilitiesProvider from @smartsoft001/angular\n */\nexport class ICrudModelPossibilitiesProvider {\n}\n/**\n * @deprecated - please, use MODEL_POSSIBILITIES_PROVIDER from @smartsoft001/angular\n */\nexport const CRUD_MODEL_POSSIBILITIES_PROVIDER = new InjectionToken('CRUD_MODEL_POSSIBILITIES_PROVIDER');\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtcG9zc2liaWxpdGllcy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3Byb3ZpZGVycy9tb2RlbC1wb3NzaWJpbGl0aWVzL21vZGVsLXBvc3NpYmlsaXRpZXMucHJvdmlkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQzs7R0FFRztBQUNILE1BQU0sT0FBZ0IsK0JBQStCO0NBSXBEO0FBRUQ7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxpQ0FBaUMsR0FDNUMsSUFBSSxjQUFjLENBQ2hCLG1DQUFtQyxDQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBAZGVwcmVjYXRlZCAtIHBsZWFzZSwgdXNlIElNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlciBmcm9tIEBzbWFydHNvZnQwMDEvYW5ndWxhclxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgSUNydWRNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlciB7XG4gIGFic3RyYWN0IGdldDxUPih0eXBlOiBhbnkpOiB7XG4gICAgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IGlkOiBhbnk7IHRleHQ6IHN0cmluZyB9W10+O1xuICB9O1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIC0gcGxlYXNlLCB1c2UgTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUiBmcm9tIEBzbWFydHNvZnQwMDEvYW5ndWxhclxuICovXG5leHBvcnQgY29uc3QgQ1JVRF9NT0RFTF9QT1NTSUJJTElUSUVTX1BST1ZJREVSID1cbiAgbmV3IEluamVjdGlvblRva2VuPElDcnVkTW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXI+KFxuICAgICdDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVInLFxuICApO1xuIl19","import { inject, Pipe } from '@angular/core';\nimport { CRUD_MODEL_POSSIBILITIES_PROVIDER } from '../../providers/model-possibilities/model-possibilities.provider';\nimport * as i0 from \"@angular/core\";\nexport class FormOptionsPipe {\n modelPossibilitiesProvider = inject(CRUD_MODEL_POSSIBILITIES_PROVIDER);\n transform(item, mode, type, uniqueProvider, inputComponents) {\n if (!mode || !type)\n return null;\n let possibilities = {};\n if (type && this.modelPossibilitiesProvider) {\n possibilities = this.modelPossibilitiesProvider.get(type);\n }\n if (mode === 'create') {\n return {\n mode: 'create',\n possibilities,\n inputComponents,\n uniqueProvider,\n model: new type(),\n show: true,\n };\n }\n else {\n const model = new type();\n if (item) {\n Object.keys(item).forEach((key) => {\n model[key] = item[key];\n });\n }\n return {\n mode: mode,\n uniqueProvider,\n possibilities: possibilities,\n inputComponents,\n model: model,\n show: true,\n };\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FormOptionsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });\n static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: FormOptionsPipe, isStandalone: true, name: \"smartFormOptions\" });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: FormOptionsPipe, decorators: [{\n type: Pipe,\n args: [{\n name: 'smartFormOptions',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vcHRpb25zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9waXBlcy9mb3JtLW9wdGlvbnMvZm9ybS1vcHRpb25zLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBS2xFLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRSxNQUFNLGtFQUFrRSxDQUFDOztBQUtySCxNQUFNLE9BQU8sZUFBZTtJQUdsQiwwQkFBMEIsR0FBRyxNQUFNLENBQ3pDLGlDQUFpQyxDQUNsQyxDQUFDO0lBRUYsU0FBUyxDQUNQLElBQU8sRUFDUCxJQUFZLEVBQ1osSUFBUyxFQUNULGNBQW1FLEVBQ25FLGVBQWtFO1FBRWxFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJO1lBQUUsT0FBTyxJQUFXLENBQUM7UUFFdkMsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO1FBRXZCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1lBQzVDLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxJQUFJLElBQUksS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN0QixPQUFPO2dCQUNMLElBQUksRUFBRSxRQUFRO2dCQUNkLGFBQWE7Z0JBQ2IsZUFBZTtnQkFDZixjQUFjO2dCQUNkLEtBQUssRUFBRSxJQUFJLElBQUksRUFBRTtnQkFDakIsSUFBSSxFQUFFLElBQUk7YUFDWCxDQUFDO1FBQ0osQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1lBRXpCLElBQUksSUFBSSxFQUFFLENBQUM7Z0JBQ1QsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDL0IsS0FBYSxDQUFDLEdBQUcsQ0FBQyxHQUFJLElBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDM0MsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDO1lBRUQsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSTtnQkFDVixjQUFjO2dCQUNkLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixlQUFlO2dCQUNmLEtBQUssRUFBRSxLQUFLO2dCQUNaLElBQUksRUFBRSxJQUFJO2FBQ1gsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO3VHQWpEVSxlQUFlO3FHQUFmLGVBQWU7OzJGQUFmLGVBQWU7a0JBSDNCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGtCQUFrQjtpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0sIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgSUZvcm1PcHRpb25zLCBJbnB1dEJhc2VDb21wb25lbnQgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvbW9kZWwtcG9zc2liaWxpdGllcy9tb2RlbC1wb3NzaWJpbGl0aWVzLnByb3ZpZGVyJztcblxuQFBpcGUoe1xuICBuYW1lOiAnc21hcnRGb3JtT3B0aW9ucycsXG59KVxuZXhwb3J0IGNsYXNzIEZvcm1PcHRpb25zUGlwZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm1cbntcbiAgcHJpdmF0ZSBtb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlciA9IGluamVjdChcbiAgICBDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIsXG4gICk7XG5cbiAgdHJhbnNmb3JtKFxuICAgIGl0ZW06IFQsXG4gICAgbW9kZTogc3RyaW5nLFxuICAgIHR5cGU6IGFueSxcbiAgICB1bmlxdWVQcm92aWRlcj86ICh2YWx1ZXM6IFJlY29yZDxrZXlvZiBULCBhbnk+KSA9PiBQcm9taXNlPGJvb2xlYW4+LFxuICAgIGlucHV0Q29tcG9uZW50cz86IHsgW2tleTogc3RyaW5nXTogVHlwZTxJbnB1dEJhc2VDb21wb25lbnQ8YW55Pj4gfSxcbiAgKTogSUZvcm1PcHRpb25zPFQ+IHtcbiAgICBpZiAoIW1vZGUgfHwgIXR5cGUpIHJldHVybiBudWxsIGFzIGFueTtcblxuICAgIGxldCBwb3NzaWJpbGl0aWVzID0ge307XG5cbiAgICBpZiAodHlwZSAmJiB0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyKSB7XG4gICAgICBwb3NzaWJpbGl0aWVzID0gdGhpcy5tb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlci5nZXQodHlwZSk7XG4gICAgfVxuXG4gICAgaWYgKG1vZGUgPT09ICdjcmVhdGUnKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiAnY3JlYXRlJyxcbiAgICAgICAgcG9zc2liaWxpdGllcyxcbiAgICAgICAgaW5wdXRDb21wb25lbnRzLFxuICAgICAgICB1bmlxdWVQcm92aWRlcixcbiAgICAgICAgbW9kZWw6IG5ldyB0eXBlKCksXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyB0eXBlKCk7XG5cbiAgICAgIGlmIChpdGVtKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGl0ZW0pLmZvckVhY2goKGtleSkgPT4ge1xuICAgICAgICAgIChtb2RlbCBhcyBhbnkpW2tleV0gPSAoaXRlbSBhcyBhbnkpW2tleV07XG4gICAgICAgIH0pO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiBtb2RlLFxuICAgICAgICB1bmlxdWVQcm92aWRlcixcbiAgICAgICAgcG9zc2liaWxpdGllczogcG9zc2liaWxpdGllcyxcbiAgICAgICAgaW5wdXRDb21wb25lbnRzLFxuICAgICAgICBtb2RlbDogbW9kZWwsXG4gICAgICAgIHNob3c6IHRydWUsXG4gICAgICB9O1xuICAgIH1cbiAgfVxufVxuIl19","import { NgModule } from '@angular/core';\nimport { FormOptionsPipe } from './form-options/form-options.pipe';\nimport * as i0 from \"@angular/core\";\nexport class CrudPipesModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudPipesModule, imports: [FormOptionsPipe], exports: [FormOptionsPipe] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudPipesModule });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudPipesModule, decorators: [{\n type: NgModule,\n args: [{\n exports: [FormOptionsPipe],\n imports: [FormOptionsPipe],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGlwZXMvcGlwZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQU1uRSxNQUFNLE9BQU8sZUFBZTt1R0FBZixlQUFlO3dHQUFmLGVBQWUsWUFGaEIsZUFBZSxhQURmLGVBQWU7d0dBR2QsZUFBZTs7MkZBQWYsZUFBZTtrQkFKM0IsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBGb3JtT3B0aW9uc1BpcGUgfSBmcm9tICcuL2Zvcm0tb3B0aW9ucy9mb3JtLW9wdGlvbnMucGlwZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtGb3JtT3B0aW9uc1BpcGVdLFxuICBpbXBvcnRzOiBbRm9ybU9wdGlvbnNQaXBlXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZFBpcGVzTW9kdWxlIHt9XG4iXX0=","import { NgComponentOutlet } from '@angular/common';\nimport { Component, computed, inject } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport * as _ from 'lodash';\nimport { DynamicIoDirective } from 'ng-dynamic-component';\nimport { ButtonComponent, FormComponent, MenuService, } from '@smartsoft001/angular';\nimport { getModelFieldsWithOptions, } from '@smartsoft001/models';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudFullConfig } from '../../crud.config';\nimport { FormOptionsPipe } from '../../pipes';\nimport * as i0 from \"@angular/core\";\nexport class MultiselectComponent {\n facade = inject((CrudFacade));\n config = inject((CrudFullConfig));\n menuService = inject(MenuService);\n _list;\n _changes;\n item;\n valid;\n buttonOptions = {\n click: async () => {\n const result = this._list.map((item) => {\n return {\n ...this._changes,\n id: item.id,\n };\n });\n this.facade.updatePartialMany(result);\n await this.menuService.closeEnd();\n },\n confirm: true,\n };\n lock;\n showForm = false;\n list;\n constructor() {\n this.list = computed(() => {\n const list = this.facade.multiSelected() || [];\n this.lock = true;\n const model = new this.config.type();\n const fieldsWithOptions = getModelFieldsWithOptions(model)?.filter((f) => f.options.update?.multi);\n this.showForm = !!fieldsWithOptions.length;\n fieldsWithOptions.forEach(({ key }) => {\n const uniques = _.uniq(list.map((i) => i[key]));\n if (uniques.length === 1) {\n model[key] = uniques[0];\n }\n });\n this.item = model;\n return list;\n }, ...(ngDevMode ? [{ debugName: \"list\" }] : []));\n }\n async onClose() {\n await this.menuService.closeEnd();\n }\n onPartialChange(changes, list) {\n this.lock = false;\n this._list = list;\n this._changes = changes;\n }\n onValidChange(valid) {\n this.valid = valid;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MultiselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: MultiselectComponent, isStandalone: true, selector: \"smart-crud-multiselect\", ngImport: i0, template: \"@let list = this.list();\\n@if (list) {\\n <!-- <ion-header>-->\\n <!-- <ion-toolbar>-->\\n <!-- <ion-buttons slot=\\\"end\\\">-->\\n <!-- <ion-button (click)=\\\"onClose()\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-buttons>-->\\n <!--<ion-title>-->{{ 'selected' | translate }}: {{ list?.length\\n }}<!--</ion-title>-->\\n <!-- </ion-toolbar>-->\\n <!-- </ion-header>-->\\n\\n @if (config?.list?.components?.multi) {\\n <div>\\n <ng-template\\n [ngComponentOutlet]=\\\"config?.list?.components?.multi\\\"\\n [ndcDynamicInputs]=\\\"{ items: list }\\\"\\n ></ng-template>\\n </div>\\n }\\n\\n @if (showForm && item) {\\n <div>\\n <smart-form\\n [options]=\\\"item | smartFormOptions: 'multiUpdate' : config.type\\\"\\n (valuePartialChange)=\\\"onPartialChange($event, list)\\\"\\n (validChange)=\\\"onValidChange($event)\\\"\\n ></smart-form>\\n\\n <smart-button\\n style=\\\"float: right\\\"\\n [disabled]=\\\"lock || !valid\\\"\\n [options]=\\\"buttonOptions\\\"\\n >\\n {{ 'change' | translate }}\\n </smart-button>\\n </div>\\n }\\n}\\n\", dependencies: [{ kind: \"directive\", type: NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInputs\", \"ngComponentOutletInjector\", \"ngComponentOutletEnvironmentInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"], exportAs: [\"ngComponentOutlet\"] }, { kind: \"directive\", type: DynamicIoDirective, selector: \"[ndcDynamicInputs],[ndcDynamicOutputs]\", inputs: [\"ndcDynamicInputs\", \"ndcDynamicOutputs\"], exportAs: [\"ndcDynamicIo\"] }, { kind: \"component\", type: FormComponent, selector: \"smart-form\", inputs: [\"options\"], outputs: [\"invokeSubmit\", \"valueChange\", \"valuePartialChange\", \"validChange\"] }, { kind: \"component\", type: ButtonComponent, selector: \"smart-button\", inputs: [\"options\", \"disabled\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: FormOptionsPipe, name: \"smartFormOptions\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: MultiselectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-multiselect', imports: [\n TranslatePipe,\n NgComponentOutlet,\n DynamicIoDirective,\n FormOptionsPipe,\n FormComponent,\n ButtonComponent,\n ], template: \"@let list = this.list();\\n@if (list) {\\n <!-- <ion-header>-->\\n <!-- <ion-toolbar>-->\\n <!-- <ion-buttons slot=\\\"end\\\">-->\\n <!-- <ion-button (click)=\\\"onClose()\\\">-->\\n <!-- <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>-->\\n <!-- </ion-button>-->\\n <!-- </ion-buttons>-->\\n <!--<ion-title>-->{{ 'selected' | translate }}: {{ list?.length\\n }}<!--</ion-title>-->\\n <!-- </ion-toolbar>-->\\n <!-- </ion-header>-->\\n\\n @if (config?.list?.components?.multi) {\\n <div>\\n <ng-template\\n [ngComponentOutlet]=\\\"config?.list?.components?.multi\\\"\\n [ndcDynamicInputs]=\\\"{ items: list }\\\"\\n ></ng-template>\\n </div>\\n }\\n\\n @if (showForm && item) {\\n <div>\\n <smart-form\\n [options]=\\\"item | smartFormOptions: 'multiUpdate' : config.type\\\"\\n (valuePartialChange)=\\\"onPartialChange($event, list)\\\"\\n (validChange)=\\\"onValidChange($event)\\\"\\n ></smart-form>\\n\\n <smart-button\\n style=\\\"float: right\\\"\\n [disabled]=\\\"lock || !valid\\\"\\n [options]=\\\"buttonOptions\\\"\\n >\\n {{ 'change' | translate }}\\n </smart-button>\\n </div>\\n }\\n}\\n\" }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUNwRSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxLQUFLLENBQUMsTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFMUQsT0FBTyxFQUNMLGVBQWUsRUFDZixhQUFhLEVBRWIsV0FBVyxHQUNaLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUNMLHlCQUF5QixHQUUxQixNQUFNLHNCQUFzQixDQUFDO0FBRTlCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGFBQWEsQ0FBQzs7QUFjOUMsTUFBTSxPQUFPLG9CQUFvQjtJQUN2QixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUNoQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsY0FB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QUNQLGFBQWE7d0JBQ2IsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixlQUFlO3FCQUNoQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nQ29tcG9uZW50T3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgKiBhcyBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBEeW5hbWljSW9EaXJlY3RpdmUgfSBmcm9tICduZy1keW5hbWljLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7XG4gIEJ1dHRvbkNvbXBvbmVudCxcbiAgRm9ybUNvbXBvbmVudCxcbiAgSUJ1dHRvbk9wdGlvbnMsXG4gIE1lbnVTZXJ2aWNlLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHtcbiAgZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyxcbiAgSUZpZWxkRWRpdE1ldGFkYXRhLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL21vZGVscyc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuLi8uLi9jcnVkLmNvbmZpZyc7XG5pbXBvcnQgeyBGb3JtT3B0aW9uc1BpcGUgfSBmcm9tICcuLi8uLi9waXBlcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtbXVsdGlzZWxlY3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbXVsdGlzZWxlY3QuY29tcG9uZW50Lmh0bWwnLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBEeW5hbWljSW9EaXJlY3RpdmUsXG4gICAgRm9ybU9wdGlvbnNQaXBlLFxuICAgIEZvcm1Db21wb25lbnQsXG4gICAgQnV0dG9uQ29tcG9uZW50LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHByaXZhdGUgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuICBwdWJsaWMgY29uZmlnID0gaW5qZWN0KENydWRGdWxsQ29uZmlnPFQ+KTtcbiAgcHJpdmF0ZSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG5cbiAgcHJpdmF0ZSBfbGlzdCE6IEFycmF5PFQ+O1xuICBwcml2YXRlIF9jaGFuZ2VzITogUGFydGlhbDxUPjtcblxuICBpdGVtITogVDtcbiAgdmFsaWQhOiBib29sZWFuO1xuICBidXR0b25PcHRpb25zOiBJQnV0dG9uT3B0aW9ucyA9IHtcbiAgICBjbGljazogYXN5bmMgKCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5fbGlzdC5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi50aGlzLl9jaGFuZ2VzLFxuICAgICAgICAgIGlkOiBpdGVtLmlkLFxuICAgICAgICB9O1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZmFjYWRlLnVwZGF0ZVBhcnRpYWxNYW55KHJlc3VsdCk7XG4gICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gICAgfSxcbiAgICBjb25maXJtOiB0cnVlLFxuICB9O1xuICBsb2NrITogYm9vbGVhbjtcbiAgc2hvd0Zvcm0gPSBmYWxzZTtcblxuICBsaXN0ITogU2lnbmFsPFRbXT47XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5saXN0ID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuZmFjYWRlLm11bHRpU2VsZWN0ZWQoKSB8fCBbXTtcbiAgICAgIHRoaXMubG9jayA9IHRydWU7XG4gICAgICBjb25zdCBtb2RlbCA9IG5ldyB0aGlzLmNvbmZpZy50eXBlKCk7XG5cbiAgICAgIGNvbnN0IGZpZWxkc1dpdGhPcHRpb25zID0gZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhtb2RlbCk/LmZpbHRlcihcbiAgICAgICAgKGYpID0+IChmLm9wdGlvbnMudXBkYXRlIGFzIElGaWVsZEVkaXRNZXRhZGF0YSk/Lm11bHRpLFxuICAgICAgKTtcblxuICAgICAgdGhpcy5zaG93Rm9ybSA9ICEhZmllbGRzV2l0aE9wdGlvbnMubGVuZ3RoO1xuXG4gICAgICBmaWVsZHNXaXRoT3B0aW9ucy5mb3JFYWNoKCh7IGtleSB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHVuaXF1ZXMgPSBfLnVuaXEobGlzdC5tYXAoKGkpID0+IGlba2V5XSkpO1xuXG4gICAgICAgIGlmICh1bmlxdWVzLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgIG1vZGVsW2tleV0gPSB1bmlxdWVzWzBdO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgdGhpcy5pdGVtID0gbW9kZWw7XG5cbiAgICAgIHJldHVybiBsaXN0O1xuICAgIH0pO1xuICB9XG5cbiAgYXN5bmMgb25DbG9zZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gIH1cblxuICBvblBhcnRpYWxDaGFuZ2UoY2hhbmdlczogUGFydGlhbDxUPiwgbGlzdDogQXJyYXk8VD4pIHtcbiAgICB0aGlzLmxvY2sgPSBmYWxzZTtcbiAgICB0aGlzLl9saXN0ID0gbGlzdDtcbiAgICB0aGlzLl9jaGFuZ2VzID0gY2hhbmdlcztcbiAgfVxuXG4gIG9uVmFsaWRDaGFuZ2UodmFsaWQ6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnZhbGlkID0gdmFsaWQ7XG4gIH1cbn1cbiIsIkBsZXQgbGlzdCA9IHRoaXMubGlzdCgpO1xuQGlmIChsaXN0KSB7XG4gIDwhLS0gIDxpb24taGVhZGVyPi0tPlxuICA8IS0tICAgIDxpb24tdG9vbGJhcj4tLT5cbiAgPCEtLSAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+LS0+XG4gIDwhLS0gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJvbkNsb3NlKClcIj4tLT5cbiAgPCEtLSAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZVwiPiA8L2lvbi1pY29uPi0tPlxuICA8IS0tICAgICAgICA8L2lvbi1idXR0b24+LS0+XG4gIDwhLS0gICAgICA8L2lvbi1idXR0b25zPi0tPlxuICA8IS0tPGlvbi10aXRsZT4tLT57eyAnc2VsZWN0ZWQnIHwgdHJhbnNsYXRlIH19OiB7eyBsaXN0Py5sZW5ndGhcbiAgfX08IS0tPC9pb24tdGl0bGU+LS0+XG4gIDwhLS0gICAgPC9pb24tdG9vbGJhcj4tLT5cbiAgPCEtLSAgPC9pb24taGVhZGVyPi0tPlxuXG4gIEBpZiAoY29uZmlnPy5saXN0Py5jb21wb25lbnRzPy5tdWx0aSkge1xuICAgIDxkaXY+XG4gICAgICA8bmctdGVtcGxhdGVcbiAgICAgICAgW25nQ29tcG9uZW50T3V0bGV0XT1cImNvbmZpZz8ubGlzdD8uY29tcG9uZW50cz8ubXVsdGlcIlxuICAgICAgICBbbmRjRHluYW1pY0lucHV0c109XCJ7IGl0ZW1zOiBsaXN0IH1cIlxuICAgICAgPjwvbmctdGVtcGxhdGU+XG4gICAgPC9kaXY+XG4gIH1cblxuICBAaWYgKHNob3dGb3JtICYmIGl0ZW0pIHtcbiAgICA8ZGl2PlxuICAgICAgPHNtYXJ0LWZvcm1cbiAgICAgICAgW29wdGlvbnNdPVwiaXRlbSB8IHNtYXJ0Rm9ybU9wdGlvbnM6ICdtdWx0aVVwZGF0ZScgOiBjb25maWcudHlwZVwiXG4gICAgICAgICh2YWx1ZVBhcnRpYWxDaGFuZ2UpPVwib25QYXJ0aWFsQ2hhbmdlKCRldmVudCwgbGlzdClcIlxuICAgICAgICAodmFsaWRDaGFuZ2UpPVwib25WYWxpZENoYW5nZSgkZXZlbnQpXCJcbiAgICAgID48L3NtYXJ0LWZvcm0+XG5cbiAgICAgIDxzbWFydC1idXR0b25cbiAgICAgICAgc3R5bGU9XCJmbG9hdDogcmlnaHRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwibG9jayB8fCAhdmFsaWRcIlxuICAgICAgICBbb3B0aW9uc109XCJidXR0b25PcHRpb25zXCJcbiAgICAgID5cbiAgICAgICAge3sgJ2NoYW5nZScgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvc21hcnQtYnV0dG9uPlxuICAgIDwvZGl2PlxuICB9XG59XG4iXX0=","import { __decorate, __metadata } from \"tslib\";\nimport { inject, Injectable } from '@angular/core';\nimport { debounce } from 'lodash-decorators';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nexport class CrudListGroupService {\n facade = inject((CrudFacade));\n _destroyed = [];\n change(val, item, force = false) {\n if (val || force) {\n item.changed = true;\n const filter = this.facade.filter();\n let current = filter?.query?.find((q) => q.key === item.key && q.type === '=');\n if (!current) {\n current = {\n key: item.key,\n type: '=',\n value: null,\n };\n if (filter?.query) {\n filter.query.push(current);\n }\n }\n current.value = item.value;\n current.hidden = true;\n this.facade.read({\n ...this.facade.filter(),\n offset: 0,\n });\n }\n }\n destroy(groups) {\n this._destroyed = [\n ...(this._destroyed ? this._destroyed : []),\n ...groups.filter((g) => g.changed),\n ];\n this.refresh();\n }\n refresh() {\n const list = this._destroyed;\n this._destroyed = [];\n const filter = this.facade.filter();\n const newQuery = filter?.query?.filter((q) => !list.some((i) => q.key === i.key)) || [];\n this.facade.read({\n ...this.facade.filter(),\n query: newQuery,\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListGroupService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListGroupService });\n}\n__decorate([\n debounce(250),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], CrudListGroupService.prototype, \"refresh\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListGroupService, decorators: [{\n type: Injectable\n }], propDecorators: { refresh: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ncm91cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvbGlzdC1ncm91cC9saXN0LWdyb3VwLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUk3QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyxvQkFBb0I7SUFDdkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUM7SUFFL0IsVUFBVSxHQUEwQixFQUFFLENBQUM7SUFFL0MsTUFBTSxDQUFDLEdBQVksRUFBRSxJQUFvQixFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3RELElBQUksR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ2pCLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDcEMsSUFBSSxPQUFPLEdBQUcsTUFBTSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQy9CLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQzVDLENBQUM7WUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7Z0JBQ2IsT0FBTyxHQUFHO29CQUNSLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztvQkFDYixJQUFJLEVBQUUsR0FBRztvQkFDVCxLQUFLLEVBQUUsSUFBSTtpQkFDWixDQUFDO2dCQUNGLElBQUksTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO29CQUNsQixNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsQ0FBQztZQUNILENBQUM7WUFFRCxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7WUFDM0IsT0FBTyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFFdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7Z0JBQ2YsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsTUFBTSxFQUFFLENBQUM7YUFDVixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUE2QjtRQUNuQyxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2hCLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDM0MsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUdPLE9BQU87UUFDYixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXJCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDcEMsTUFBTSxRQUFRLEdBQ1osTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUM7UUFFekUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7WUFDZixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFO1lBQ3ZCLEtBQUssRUFBRSxRQUFRO1NBQ2hCLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBekRVLG9CQUFvQjsyR0FBcEIsb0JBQW9COztBQTZDdkI7SUFEUCxRQUFRLENBQUMsR0FBRyxDQUFDOzs7O21EQWFiOzJGQXpEVSxvQkFBb0I7a0JBRGhDLFVBQVU7OEJBOENELE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSAnbG9kYXNoLWRlY29yYXRvcnMnO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgSUNydWRMaXN0R3JvdXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RHcm91cFNlcnZpY2U8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4ge1xuICBwcml2YXRlIGZhY2FkZSA9IGluamVjdChDcnVkRmFjYWRlPFQ+KTtcblxuICBwcml2YXRlIF9kZXN0cm95ZWQ6IEFycmF5PElDcnVkTGlzdEdyb3VwPiA9IFtdO1xuXG4gIGNoYW5nZSh2YWw6IGJvb2xlYW4sIGl0ZW06IElDcnVkTGlzdEdyb3VwLCBmb3JjZSA9IGZhbHNlKTogdm9pZCB7XG4gICAgaWYgKHZhbCB8fCBmb3JjZSkge1xuICAgICAgaXRlbS5jaGFuZ2VkID0gdHJ1ZTtcblxuICAgICAgY29uc3QgZmlsdGVyID0gdGhpcy5mYWNhZGUuZmlsdGVyKCk7XG4gICAgICBsZXQgY3VycmVudCA9IGZpbHRlcj8ucXVlcnk/LmZpbmQoXG4gICAgICAgIChxKSA9PiBxLmtleSA9PT0gaXRlbS5rZXkgJiYgcS50eXBlID09PSAnPScsXG4gICAgICApO1xuXG4gICAgICBpZiAoIWN1cnJlbnQpIHtcbiAgICAgICAgY3VycmVudCA9IHtcbiAgICAgICAgICBrZXk6IGl0ZW0ua2V5LFxuICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICB2YWx1ZTogbnVsbCxcbiAgICAgICAgfTtcbiAgICAgICAgaWYgKGZpbHRlcj8ucXVlcnkpIHtcbiAgICAgICAgICBmaWx0ZXIucXVlcnkucHVzaChjdXJyZW50KTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjdXJyZW50LnZhbHVlID0gaXRlbS52YWx1ZTtcbiAgICAgIGN1cnJlbnQuaGlkZGVuID0gdHJ1ZTtcblxuICAgICAgdGhpcy5mYWNhZGUucmVhZCh7XG4gICAgICAgIC4uLnRoaXMuZmFjYWRlLmZpbHRlcigpLFxuICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBkZXN0cm95KGdyb3VwczogQXJyYXk8SUNydWRMaXN0R3JvdXA+KTogdm9pZCB7XG4gICAgdGhpcy5fZGVzdHJveWVkID0gW1xuICAgICAgLi4uKHRoaXMuX2Rlc3Ryb3llZCA/IHRoaXMuX2Rlc3Ryb3llZCA6IFtdKSxcbiAgICAgIC4uLmdyb3Vwcy5maWx0ZXIoKGcpID0+IGcuY2hhbmdlZCksXG4gICAgXTtcblxuICAgIHRoaXMucmVmcmVzaCgpO1xuICB9XG5cbiAgQGRlYm91bmNlKDI1MClcbiAgcHJpdmF0ZSByZWZyZXNoKCk6IHZvaWQge1xuICAgIGNvbnN0IGxpc3QgPSB0aGlzLl9kZXN0cm95ZWQ7XG4gICAgdGhpcy5fZGVzdHJveWVkID0gW107XG5cbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZhY2FkZS5maWx0ZXIoKTtcbiAgICBjb25zdCBuZXdRdWVyeSA9XG4gICAgICBmaWx0ZXI/LnF1ZXJ5Py5maWx0ZXIoKHEpID0+ICFsaXN0LnNvbWUoKGkpID0+IHEua2V5ID09PSBpLmtleSkpIHx8IFtdO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh7XG4gICAgICAuLi50aGlzLmZhY2FkZS5maWx0ZXIoKSxcbiAgICAgIHF1ZXJ5OiBuZXdRdWVyeSxcbiAgICB9KTtcbiAgfVxufVxuIl19","import { NgClass } from '@angular/common';\nimport { Component, ElementRef, inject, input, } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { AccordionBodyComponent, AccordionComponent, AccordionHeaderComponent, BaseComponent, ListComponent, StyleService, } from '@smartsoft001/angular';\nimport { CrudListGroupService } from '../../services/list-group/list-group.service';\nimport * as i0 from \"@angular/core\";\nexport class GroupComponent extends BaseComponent {\n styleService = inject(StyleService);\n elementRef = inject(ElementRef);\n groupService = inject((CrudListGroupService));\n groups = input(null, ...(ngDevMode ? [{ debugName: \"groups\" }] : []));\n listOptions = input(null, ...(ngDevMode ? [{ debugName: \"listOptions\" }] : []));\n change(val, item, force = false) {\n const groups = this.groups();\n if (groups) {\n groups\n .filter((i) => i.value !== item.value || i.key !== item.key)\n .forEach((i) => {\n i.show = false;\n });\n }\n this.groupService.change(val, item, force);\n item.show = val;\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n }\n ngOnDestroy() {\n const groups = this.groups();\n if (groups) {\n this.groupService.destroy(groups);\n }\n super.ngOnDestroy();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: GroupComponent, isStandalone: true, selector: \"smart-crud-group\", inputs: { groups: { classPropertyName: \"groups\", publicName: \"groups\", isSignal: true, isRequired: false, transformFunction: null }, listOptions: { classPropertyName: \"listOptions\", publicName: \"listOptions\", isSignal: true, isRequired: false, transformFunction: null } }, usesInheritance: true, ngImport: i0, template: `\n @for (item of groups(); track item.key) {\n <smart-accordion\n [show]=\"item.show || false\"\n (showChange)=\"change($event, item)\"\n >\n <smart-accordion-header [ngClass]=\"{ 'font-bold': item.show }\"\n >{{ item.text | translate }}\n </smart-accordion-header>\n <smart-accordion-body>\n @if (item.show && !item.children && listOptions()) {\n <smart-list [options]=\"listOptions()!\"></smart-list>\n }\n @if (item.children) {\n <div style=\"margin-left: 50px\">\n <smart-crud-group\n [groups]=\"item.children\"\n [listOptions]=\"listOptions()\"\n ></smart-crud-group>\n </div>\n }\n </smart-accordion-body>\n </smart-accordion>\n }\n <br /><br /><br />\n `, isInline: true, dependencies: [{ kind: \"component\", type: GroupComponent, selector: \"smart-crud-group\", inputs: [\"groups\", \"listOptions\"] }, { kind: \"component\", type: AccordionComponent, selector: \"smart-accordion\", inputs: [\"show\"], outputs: [\"showChange\"] }, { kind: \"component\", type: AccordionHeaderComponent, selector: \"smart-accordion-header\" }, { kind: \"component\", type: AccordionBodyComponent, selector: \"smart-accordion-body\" }, { kind: \"component\", type: ListComponent, selector: \"smart-list\", inputs: [\"options\"] }, { kind: \"directive\", type: NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"pipe\", type: TranslatePipe, name: \"translate\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: GroupComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-group',\n template: `\n @for (item of groups(); track item.key) {\n <smart-accordion\n [show]=\"item.show || false\"\n (showChange)=\"change($event, item)\"\n >\n <smart-accordion-header [ngClass]=\"{ 'font-bold': item.show }\"\n >{{ item.text | translate }}\n </smart-accordion-header>\n <smart-accordion-body>\n @if (item.show && !item.children && listOptions()) {\n <smart-list [options]=\"listOptions()!\"></smart-list>\n }\n @if (item.children) {\n <div style=\"margin-left: 50px\">\n <smart-crud-group\n [groups]=\"item.children\"\n [listOptions]=\"listOptions()\"\n ></smart-crud-group>\n </div>\n }\n </smart-accordion-body>\n </smart-accordion>\n }\n <br /><br /><br />\n `,\n imports: [\n AccordionComponent,\n AccordionHeaderComponent,\n AccordionBodyComponent,\n ListComponent,\n NgClass,\n TranslatePipe,\n ],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncm91cC9ncm91cC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzFDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEdBSU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXBELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsa0JBQWtCLEVBQ2xCLHdCQUF3QixFQUN4QixhQUFhLEVBRWIsYUFBYSxFQUNiLFlBQVksR0FDYixNQUFNLHVCQUF1QixDQUFDO0FBSS9CLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDOztBQXVDcEYsTUFBTSxPQUFPLGNBQ1gsU0FBUSxhQUFhO0lBR2IsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNwQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hDLFlBQVksR0FBRyxNQUFNLENBQUMsQ0FBQSxvQkFBdUIsQ0FBQSxDQUFDLENBQUM7SUFFOUMsTUFBTSxHQUNiLEtBQUssQ0FBK0IsSUFBSSxrREFBQyxDQUFDO0lBQ25DLFdBQVcsR0FDbEIsS0FBSyxDQUF5QixJQUFJLHVEQUFDLENBQUM7SUFFdEMsTUFBTSxDQUFDLEdBQVksRUFBRSxJQUFvQixFQUFFLEtBQUssR0FBRyxLQUFLO1FBQ3RELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUM3QixJQUFJLE1BQU0sRUFBRSxDQUFDO1lBQ1gsTUFBTTtpQkFDSCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQzNELE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNiLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLENBQUMsQ0FBQyxDQUFDO1FBQ1AsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFM0MsSUFBSSxDQUFDLElBQUksR0FBRyxHQUFHLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVRLFdBQVc7UUFDbEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQzdCLElBQUksTUFBTSxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBQ0QsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3RCLENBQUM7dUdBdENVLGNBQWM7MkZBQWQsY0FBYyxvWEFuQ2Y7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5QlQsNERBVVUsY0FBYyxnR0FSdkIsa0JBQWtCLHVHQUNsQix3QkFBd0IsbUVBQ3hCLHNCQUFzQixpRUFDdEIsYUFBYSw0RUFDYixPQUFPLCtFQUNQLGFBQWE7OzJGQUdKLGNBQWM7a0JBckMxQixTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXlCVDtvQkFDRCxPQUFPLEVBQUU7d0JBQ1Asa0JBQWtCO3dCQUNsQix3QkFBd0I7d0JBQ3hCLHNCQUFzQjt3QkFDdEIsYUFBYTt3QkFDYixPQUFPO3dCQUNQLGFBQWE7cUJBQ2Q7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXRTaWduYWwsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcblxuaW1wb3J0IHtcbiAgQWNjb3JkaW9uQm9keUNvbXBvbmVudCxcbiAgQWNjb3JkaW9uQ29tcG9uZW50LFxuICBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQsXG4gIEJhc2VDb21wb25lbnQsXG4gIElMaXN0T3B0aW9ucyxcbiAgTGlzdENvbXBvbmVudCxcbiAgU3R5bGVTZXJ2aWNlLFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBJQ3J1ZExpc3RHcm91cCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDcnVkTGlzdEdyb3VwU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2xpc3QtZ3JvdXAvbGlzdC1ncm91cC5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1ncm91cCcsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGZvciAoaXRlbSBvZiBncm91cHMoKTsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICAgIDxzbWFydC1hY2NvcmRpb25cbiAgICAgICAgW3Nob3ddPVwiaXRlbS5zaG93IHx8IGZhbHNlXCJcbiAgICAgICAgKHNob3dDaGFuZ2UpPVwiY2hhbmdlKCRldmVudCwgaXRlbSlcIlxuICAgICAgPlxuICAgICAgICA8c21hcnQtYWNjb3JkaW9uLWhlYWRlciBbbmdDbGFzc109XCJ7ICdmb250LWJvbGQnOiBpdGVtLnNob3cgfVwiXG4gICAgICAgICAgPnt7IGl0ZW0udGV4dCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L3NtYXJ0LWFjY29yZGlvbi1oZWFkZXI+XG4gICAgICAgIDxzbWFydC1hY2NvcmRpb24tYm9keT5cbiAgICAgICAgICBAaWYgKGl0ZW0uc2hvdyAmJiAhaXRlbS5jaGlsZHJlbiAmJiBsaXN0T3B0aW9ucygpKSB7XG4gICAgICAgICAgICA8c21hcnQtbGlzdCBbb3B0aW9uc109XCJsaXN0T3B0aW9ucygpIVwiPjwvc21hcnQtbGlzdD5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChpdGVtLmNoaWxkcmVuKSB7XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPVwibWFyZ2luLWxlZnQ6IDUwcHhcIj5cbiAgICAgICAgICAgICAgPHNtYXJ0LWNydWQtZ3JvdXBcbiAgICAgICAgICAgICAgICBbZ3JvdXBzXT1cIml0ZW0uY2hpbGRyZW5cIlxuICAgICAgICAgICAgICAgIFtsaXN0T3B0aW9uc109XCJsaXN0T3B0aW9ucygpXCJcbiAgICAgICAgICAgICAgPjwvc21hcnQtY3J1ZC1ncm91cD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9zbWFydC1hY2NvcmRpb24tYm9keT5cbiAgICAgIDwvc21hcnQtYWNjb3JkaW9uPlxuICAgIH1cbiAgICA8YnIgLz48YnIgLz48YnIgLz5cbiAgYCxcbiAgaW1wb3J0czogW1xuICAgIEFjY29yZGlvbkNvbXBvbmVudCxcbiAgICBBY2NvcmRpb25IZWFkZXJDb21wb25lbnQsXG4gICAgQWNjb3JkaW9uQm9keUNvbXBvbmVudCxcbiAgICBMaXN0Q29tcG9uZW50LFxuICAgIE5nQ2xhc3MsXG4gICAgVHJhbnNsYXRlUGlwZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgR3JvdXBDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBCYXNlQ29tcG9uZW50XG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBzdHlsZVNlcnZpY2UgPSBpbmplY3QoU3R5bGVTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuICBwcml2YXRlIGdyb3VwU2VydmljZSA9IGluamVjdChDcnVkTGlzdEdyb3VwU2VydmljZTxUPik7XG5cbiAgcmVhZG9ubHkgZ3JvdXBzOiBJbnB1dFNpZ25hbDxBcnJheTxJQ3J1ZExpc3RHcm91cD4gfCBudWxsPiA9XG4gICAgaW5wdXQ8QXJyYXk8SUNydWRMaXN0R3JvdXA+IHwgbnVsbD4obnVsbCk7XG4gIHJlYWRvbmx5IGxpc3RPcHRpb25zOiBJbnB1dFNpZ25hbDxJTGlzdE9wdGlvbnM8VD4gfCBudWxsPiA9XG4gICAgaW5wdXQ8SUxpc3RPcHRpb25zPFQ+IHwgbnVsbD4obnVsbCk7XG5cbiAgY2hhbmdlKHZhbDogYm9vbGVhbiwgaXRlbTogSUNydWRMaXN0R3JvdXAsIGZvcmNlID0gZmFsc2UpOiB2b2lkIHtcbiAgICBjb25zdCBncm91cHMgPSB0aGlzLmdyb3VwcygpO1xuICAgIGlmIChncm91cHMpIHtcbiAgICAgIGdyb3Vwc1xuICAgICAgICAuZmlsdGVyKChpKSA9PiBpLnZhbHVlICE9PSBpdGVtLnZhbHVlIHx8IGkua2V5ICE9PSBpdGVtLmtleSlcbiAgICAgICAgLmZvckVhY2goKGkpID0+IHtcbiAgICAgICAgICBpLnNob3cgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5ncm91cFNlcnZpY2UuY2hhbmdlKHZhbCwgaXRlbSwgZm9yY2UpO1xuXG4gICAgaXRlbS5zaG93ID0gdmFsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5zdHlsZVNlcnZpY2UuaW5pdCh0aGlzLmVsZW1lbnRSZWYpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgY29uc3QgZ3JvdXBzID0gdGhpcy5ncm91cHMoKTtcbiAgICBpZiAoZ3JvdXBzKSB7XG4gICAgICB0aGlzLmdyb3VwU2VydmljZS5kZXN0cm95KGdyb3Vwcyk7XG4gICAgfVxuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cbn1cbiJdfQ==","import { computed, inject, Injectable } from '@angular/core';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nexport class CrudListPaginationFactory {\n facade = inject((CrudFacade));\n async create(options) {\n return {\n mode: options.mode,\n limit: options.limit,\n loadNextPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().next)\n return Promise.resolve(false);\n return new Promise((res) => {\n if (this.facade.loaded()) {\n setTimeout(() => {\n res(options.provider.getLinks() && options.provider.getLinks().next);\n });\n }\n const filter = options.provider.getFilter();\n this.facade.read({\n ...filter,\n offset: (filter.offset || 0) + (filter.limit || 0),\n });\n });\n },\n loadPrevPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().prev)\n return Promise.resolve(false);\n return new Promise((res) => {\n const loaded = this.facade.loaded();\n if (loaded) {\n setTimeout(() => {\n res(options.provider.getLinks() && options.provider.getLinks().prev);\n });\n }\n const filter = options.provider.getFilter();\n this.facade.read({\n ...filter,\n offset: (filter.offset || 0) - (filter.limit || 0),\n });\n });\n },\n page: computed(() => {\n const f = this.facade.filter();\n return f?.limit ? (f.offset || 0) / f.limit + 1 : 0;\n }),\n totalPages: computed(() => {\n const filter = this.facade.filter();\n const totalCount = this.facade.totalCount();\n return filter?.limit && totalCount\n ? Math.ceil(totalCount / filter.limit)\n : 0;\n }),\n };\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListPaginationFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListPaginationFactory });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListPaginationFactory, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmF0aW9uLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9mYWN0b3JpZXMvbGlzdC1wYWdpbmF0aW9uL2xpc3QtcGFnaW5hdGlvbi5mYWN0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUs3RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBSXRELE1BQU0sT0FBTyx5QkFBeUI7SUFDbkIsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLFVBQWEsQ0FBQSxDQUFDLENBQUM7SUFFaEQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxPQU9aO1FBQ0MsT0FBTztZQUNMLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUs7WUFDcEIsWUFBWSxFQUFFLEdBQUcsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUk7b0JBQ25FLE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFFaEMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQzt3QkFDekIsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDaEUsQ0FBQzt3QkFDSixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsTUFBTTt3QkFDVCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7cUJBQ25ELENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxZQUFZLEVBQUUsR0FBRyxFQUFFO2dCQUNqQixJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSTtvQkFDbkUsT0FBTyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUVoQyxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ3pCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUM7b0JBQ3BDLElBQUksTUFBTSxFQUFFLENBQUM7d0JBQ1gsVUFBVSxDQUFDLEdBQUcsRUFBRTs0QkFDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDLElBQUksQ0FDaEUsQ0FBQzt3QkFDSixDQUFDLENBQUMsQ0FBQztvQkFDTCxDQUFDO29CQUVELE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUM7b0JBQzVDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsTUFBTTt3QkFDVCxNQUFNLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUM7cUJBQ25ELENBQUMsQ0FBQztnQkFDTCxDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFDRCxJQUFJLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDbEIsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDL0IsT0FBTyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxDQUFDLENBQUM7WUFDRixVQUFVLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRTtnQkFDeEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsQ0FBQztnQkFDNUMsT0FBTyxNQUFNLEVBQUUsS0FBSyxJQUFJLFVBQVU7b0JBQ2hDLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO29CQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ1IsQ0FBQyxDQUFDO1NBQ0gsQ0FBQztJQUNKLENBQUM7dUdBbkVVLHlCQUF5QjsyR0FBekIseUJBQXlCOzsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBJTGlzdFBhZ2luYXRpb25PcHRpb25zLCBQYWdpbmF0aW9uTW9kZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuXG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zOiB7XG4gICAgbW9kZT86IFBhZ2luYXRpb25Nb2RlO1xuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgcHJvdmlkZXI6IHtcbiAgICAgIGdldExpbmtzKCk6IGFueTtcbiAgICAgIGdldEZpbHRlcigpOiBJQ3J1ZEZpbHRlcjtcbiAgICB9O1xuICB9KTogUHJvbWlzZTxJTGlzdFBhZ2luYXRpb25PcHRpb25zPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGU6IG9wdGlvbnMubW9kZSxcbiAgICAgIGxpbWl0OiBvcHRpb25zLmxpbWl0LFxuICAgICAgbG9hZE5leHRQYWdlOiAoKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpIHx8ICFvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkubmV4dClcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLmZhY2FkZS5sb2FkZWQoKSkge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgIHJlcyhcbiAgICAgICAgICAgICAgICBvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkgJiYgb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpLm5leHQsXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBmaWx0ZXIgPSBvcHRpb25zLnByb3ZpZGVyLmdldEZpbHRlcigpO1xuICAgICAgICAgIHRoaXMuZmFjYWRlLnJlYWQoe1xuICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgb2Zmc2V0OiAoZmlsdGVyLm9mZnNldCB8fCAwKSArIChmaWx0ZXIubGltaXQgfHwgMCksXG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGxvYWRQcmV2UGFnZTogKCkgPT4ge1xuICAgICAgICBpZiAoIW9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKSB8fCAhb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpLnByZXYpXG4gICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShmYWxzZSk7XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXMpID0+IHtcbiAgICAgICAgICBjb25zdCBsb2FkZWQgPSB0aGlzLmZhY2FkZS5sb2FkZWQoKTtcbiAgICAgICAgICBpZiAobG9hZGVkKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgcmVzKFxuICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKSAmJiBvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkucHJldixcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGZpbHRlciA9IG9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCk7XG4gICAgICAgICAgdGhpcy5mYWNhZGUucmVhZCh7XG4gICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICBvZmZzZXQ6IChmaWx0ZXIub2Zmc2V0IHx8IDApIC0gKGZpbHRlci5saW1pdCB8fCAwKSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcGFnZTogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmID0gdGhpcy5mYWNhZGUuZmlsdGVyKCk7XG4gICAgICAgIHJldHVybiBmPy5saW1pdCA/IChmLm9mZnNldCB8fCAwKSAvIGYubGltaXQgKyAxIDogMDtcbiAgICAgIH0pLFxuICAgICAgdG90YWxQYWdlczogY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmZhY2FkZS5maWx0ZXIoKTtcbiAgICAgICAgY29uc3QgdG90YWxDb3VudCA9IHRoaXMuZmFjYWRlLnRvdGFsQ291bnQoKTtcbiAgICAgICAgcmV0dXJuIGZpbHRlcj8ubGltaXQgJiYgdG90YWxDb3VudFxuICAgICAgICAgID8gTWF0aC5jZWlsKHRvdGFsQ291bnQgLyBmaWx0ZXIubGltaXQpXG4gICAgICAgICAgOiAwO1xuICAgICAgfSksXG4gICAgfTtcbiAgfVxufVxuIl19","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { CrudConfig } from '../../crud.config';\nimport * as i0 from \"@angular/core\";\nexport class CrudService {\n config = inject((CrudConfig));\n http = inject(HttpClient);\n _formatMap = {\n csv: 'text/csv',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n };\n create(item) {\n return firstValueFrom(this.http\n .post(this.config.apiUrl, item, { observe: 'response' })\n .pipe(map((response) => {\n const location = response.headers['Location'];\n if (!location)\n return null;\n const array = location.split('/');\n return array[array.length - 1];\n })));\n }\n createMany(items, options) {\n return firstValueFrom(this.http.post(this.config.apiUrl + '/bulk?mode=' + options.mode, items));\n }\n getById(id) {\n return firstValueFrom(this.http.get(this.config.apiUrl + '/' + id));\n }\n getList(filter = null) {\n return firstValueFrom(this.http.get(this.config.apiUrl + this.getQuery(filter)));\n }\n exportList(filter = null, format) {\n if (!format) {\n format = 'csv';\n }\n if (format === 'xlsx') {\n return firstValueFrom(this.http\n .get(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n 'Content-Type': this._formatMap[format],\n },\n observe: 'response',\n reportProgress: false,\n responseType: 'blob',\n })\n .pipe(map((res) => {\n const downloadLink = document.createElement('a');\n const blob = res.body;\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.download = 'data.' + format;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n })));\n }\n return firstValueFrom(this.http\n .get(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n 'Content-Type': this._formatMap[format],\n },\n responseType: 'text',\n })\n .pipe(map((res) => {\n const downloadLink = document.createElement('a');\n const blob = new Blob(['\\ufeff', res]);\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.download = 'data.' + format;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n })));\n }\n update(item) {\n return firstValueFrom(this.http.put(this.config.apiUrl + '/' + item.id, item));\n }\n updatePartial(item) {\n return firstValueFrom(this.http.patch(this.config.apiUrl + '/' + item.id, item));\n }\n updatePartialMany(items) {\n const updatePromises = items.map((item) => {\n return this.updatePartial(item);\n });\n return Promise.all(updatePromises);\n }\n delete(id) {\n return firstValueFrom(this.http.delete(this.config.apiUrl + '/' + id));\n }\n getQuery(filter) {\n let query = '';\n if (filter && filter.searchText) {\n query += '&$search=' + filter.searchText;\n }\n if (filter && filter.limit) {\n query += `&limit=${filter.limit}&offset=${filter.offset ? filter.offset : 0}`;\n }\n if (filter && filter.sortBy) {\n query += `&sort=${(filter.sortDesc ? '-' : '') + filter.sortBy}`;\n }\n if (filter && filter.query) {\n filter.query.forEach((q) => {\n if (q.value &&\n typeof q.value === 'string' &&\n q.value.match(/^-?\\d+$/) &&\n q.value[0] !== \"'\" &&\n q.value[0] !== '\"') {\n query += '&' + q.key + q.type + `'${q.value}'`;\n }\n else {\n query += '&' + q.key + q.type + q.value;\n }\n });\n }\n return query ? '?' + query.replace('&', '') : '';\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvY3J1ZC9jcnVkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFJL0MsTUFBTSxPQUFPLFdBQVc7SUFDWixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUMvQixJQUFJLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRTFCLFVBQVUsR0FBRztRQUNyQixHQUFHLEVBQUUsVUFBVTtRQUNmLElBQUksRUFBRSxtRUFBbUU7S0FDMUUsQ0FBQztJQUVGLE1BQU0sQ0FBQyxJQUFPO1FBQ1osT0FBTyxjQUFjLENBQ25CLElBQUksQ0FBQyxJQUFJO2FBQ04sSUFBSSxDQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksRUFBRSxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsQ0FBQzthQUM3RCxJQUFJLENBQ0gsR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7WUFDZixNQUFNLFFBQVEsR0FBSSxRQUFRLENBQUMsT0FBZSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ3ZELElBQUksQ0FBQyxRQUFRO2dCQUFFLE9BQU8sSUFBSSxDQUFDO1lBQzNCLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FB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QkFDRCxLQUFLLElBQUksR0FBRyxHQUFHLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQztnQkFDakQsQ0FBQztxQkFBTSxDQUFDO29CQUNOLEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7Z0JBQzFDLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxPQUFPLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDbkQsQ0FBQzt1R0F4S1UsV0FBVzsyR0FBWCxXQUFXOzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZmlyc3RWYWx1ZUZyb20gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuXG5pbXBvcnQgeyBDcnVkQ29uZmlnIH0gZnJvbSAnLi4vLi4vY3J1ZC5jb25maWcnO1xuaW1wb3J0IHsgSUNydWRDcmVhdGVNYW55T3B0aW9ucywgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZFNlcnZpY2U8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4ge1xuICBwcm90ZWN0ZWQgY29uZmlnID0gaW5qZWN0KENydWRDb25maWc8VD4pO1xuICBwcm90ZWN0ZWQgaHR0cCA9IGluamVjdChIdHRwQ2xpZW50KTtcblxuICBwcm90ZWN0ZWQgX2Zvcm1hdE1hcCA9IHtcbiAgICBjc3Y6ICd0ZXh0L2NzdicsXG4gICAgeGxzeDogJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgfTtcblxuICBjcmVhdGUoaXRlbTogVCk6IFByb21pc2U8c3RyaW5nPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5wb3N0PHZvaWQ+KHRoaXMuY29uZmlnLmFwaVVybCwgaXRlbSwgeyBvYnNlcnZlOiAncmVzcG9uc2UnIH0pXG4gICAgICAgIC5waXBlKFxuICAgICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGxvY2F0aW9uID0gKHJlc3BvbnNlLmhlYWRlcnMgYXMgYW55KVsnTG9jYXRpb24nXTtcbiAgICAgICAgICAgIGlmICghbG9jYXRpb24pIHJldHVybiBudWxsO1xuICAgICAgICAgICAgY29uc3QgYXJyYXkgPSBsb2NhdGlvbi5zcGxpdCgnLycpO1xuICAgICAgICAgICAgcmV0dXJuIGFycmF5W2FycmF5Lmxlbmd0aCAtIDFdO1xuICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICk7XG4gIH1cblxuICBjcmVhdGVNYW55KGl0ZW1zOiBBcnJheTxUPiwgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9ucyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgIHRoaXMuaHR0cC5wb3N0PHZvaWQ+KFxuICAgICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyAnL2J1bGs/bW9kZT0nICsgb3B0aW9ucy5tb2RlLFxuICAgICAgICBpdGVtcyxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGdldEJ5SWQoaWQ6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbSh0aGlzLmh0dHAuZ2V0PFQ+KHRoaXMuY29uZmlnLmFwaVVybCArICcvJyArIGlkKSk7XG4gIH1cblxuICBnZXRMaXN0PFQ+KFxuICAgIGZpbHRlcjogSUNydWRGaWx0ZXIgfCBudWxsID0gbnVsbCxcbiAgKTogUHJvbWlzZTx7IGRhdGE6IFRbXTsgdG90YWxDb3VudDogbnVtYmVyOyBsaW5rczogYW55IH0+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAuZ2V0PHsgZGF0YTogVFtdOyB0b3RhbENvdW50OiBudW1iZXI7IGxpbmtzOiBhbnkgfT4oXG4gICAgICAgIHRoaXMuY29uZmlnLmFwaVVybCArIHRoaXMuZ2V0UXVlcnkoZmlsdGVyIGFzIElDcnVkRmlsdGVyKSxcbiAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIGV4cG9ydExpc3QoXG4gICAgZmlsdGVyOiBJQ3J1ZEZpbHRlciB8IG51bGwgPSBudWxsLFxuICAgIGZvcm1hdDogJ2NzdicgfCAneGxzeCcsXG4gICk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghZm9ybWF0KSB7XG4gICAgICBmb3JtYXQgPSAnY3N2JztcbiAgICB9XG5cbiAgICBpZiAoZm9ybWF0ID09PSAneGxzeCcpIHtcbiAgICAgIHJldHVybiBmaXJzdFZhbHVlRnJvbShcbiAgICAgICAgdGhpcy5odHRwXG4gICAgICAgICAgLmdldCh0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFF1ZXJ5KGZpbHRlciBhcyBJQ3J1ZEZpbHRlciksIHtcbiAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgJ0NvbnRlbnQtVHlwZSc6IHRoaXMuX2Zvcm1hdE1hcFtmb3JtYXRdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIG9ic2VydmU6ICdyZXNwb25zZScsXG4gICAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICAgICAgICByZXNwb25zZVR5cGU6ICdibG9iJyxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnYScpO1xuICAgICAgICAgICAgICBjb25zdCBibG9iID0gcmVzLmJvZHk7XG5cbiAgICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IgYXMgQmxvYik7XG4gICAgICAgICAgICAgIGRvd25sb2FkTGluay5kb3dubG9hZCA9ICdkYXRhLicgKyBmb3JtYXQ7XG5cbiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZExpbmspO1xuICAgICAgICAgICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcbiAgICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZExpbmspO1xuICAgICAgICAgICAgfSksXG4gICAgICAgICAgKSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwXG4gICAgICAgIC5nZXQ8c3RyaW5nPihcbiAgICAgICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFF1ZXJ5KGZpbHRlciBhcyBJQ3J1ZEZpbHRlciksXG4gICAgICAgICAge1xuICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAnQ29udGVudC1UeXBlJzogdGhpcy5fZm9ybWF0TWFwW2Zvcm1hdF0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgcmVzcG9uc2VUeXBlOiAndGV4dCcgYXMgJ2pzb24nLFxuICAgICAgICAgIH0sXG4gICAgICAgIClcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICAgICAgICAgIGNvbnN0IGJsb2IgPSBuZXcgQmxvYihbJ1xcdWZlZmYnLCByZXNdKTtcblxuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmRvd25sb2FkID0gJ2RhdGEuJyArIGZvcm1hdDtcblxuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb3dubG9hZExpbmspO1xuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmNsaWNrKCk7XG4gICAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvd25sb2FkTGluayk7XG4gICAgICAgICAgfSksXG4gICAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZShpdGVtOiBUKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKFxuICAgICAgdGhpcy5odHRwLnB1dDx2b2lkPih0aGlzLmNvbmZpZy5hcGlVcmwgKyAnLycgKyBpdGVtLmlkLCBpdGVtKSxcbiAgICApO1xuICB9XG5cbiAgdXBkYXRlUGFydGlhbChpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAucGF0Y2g8dm9pZD4odGhpcy5jb25maWcuYXBpVXJsICsgJy8nICsgaXRlbS5pZCwgaXRlbSksXG4gICAgKTtcbiAgfVxuXG4gIHVwZGF0ZVBhcnRpYWxNYW55KGl0ZW1zOiAoUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9KVtdKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB1cGRhdGVQcm9taXNlcyA9IGl0ZW1zLm1hcCgoaXRlbSkgPT4ge1xuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlUGFydGlhbChpdGVtKTtcbiAgICB9KTtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwodXBkYXRlUHJvbWlzZXMpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gZmlyc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHRoaXMuY29uZmlnLmFwaVVybCArICcvJyArIGlkKSxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFF1ZXJ5KGZpbHRlcjogSUNydWRGaWx0ZXIpOiBzdHJpbmcge1xuICAgIGxldCBxdWVyeSA9ICcnO1xuXG4gICAgaWYgKGZpbHRlciAmJiBmaWx0ZXIuc2VhcmNoVGV4dCkge1xuICAgICAgcXVlcnkgKz0gJyYkc2VhcmNoPScgKyBmaWx0ZXIuc2VhcmNoVGV4dDtcbiAgICB9XG5cbiAgICBpZiAoZmlsdGVyICYmIGZpbHRlci5saW1pdCkge1xuICAgICAgcXVlcnkgKz0gYCZsaW1pdD0ke2ZpbHRlci5saW1pdH0mb2Zmc2V0PSR7XG4gICAgICAgIGZpbHRlci5vZmZzZXQgPyBmaWx0ZXIub2Zmc2V0IDogMFxuICAgICAgfWA7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlciAmJiBmaWx0ZXIuc29ydEJ5KSB7XG4gICAgICBxdWVyeSArPSBgJnNvcnQ9JHsoZmlsdGVyLnNvcnREZXNjID8gJy0nIDogJycpICsgZmlsdGVyLnNvcnRCeX1gO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgJiYgZmlsdGVyLnF1ZXJ5KSB7XG4gICAgICBmaWx0ZXIucXVlcnkuZm9yRWFjaCgocSkgPT4ge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgcS52YWx1ZSAmJlxuICAgICAgICAgIHR5cGVvZiBxLnZhbHVlID09PSAnc3RyaW5nJyAmJlxuICAgICAgICAgIHEudmFsdWUubWF0Y2goL14tP1xcZCskLykgJiZcbiAgICAgICAgICBxLnZhbHVlWzBdICE9PSBcIidcIiAmJlxuICAgICAgICAgIHEudmFsdWVbMF0gIT09ICdcIidcbiAgICAgICAgKSB7XG4gICAgICAgICAgcXVlcnkgKz0gJyYnICsgcS5rZXkgKyBxLnR5cGUgKyBgJyR7cS52YWx1ZX0nYDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBxdWVyeSArPSAnJicgKyBxLmtleSArIHEudHlwZSArIHEudmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHJldHVybiBxdWVyeSA/ICc/JyArIHF1ZXJ5LnJlcGxhY2UoJyYnLCAnJykgOiAnJztcbiAgfVxufVxuIl19","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicIoModule } from 'ng-dynamic-component';\nimport { SharedModule } from '@smartsoft001/angular';\nimport { ExportComponent } from './export/export.component';\nimport { FilterComponent, FilterDateComponent, FilterDateWithEditComponent, FilterFlagComponent, FilterRadioComponent, FilterTextComponent, FilterCheckComponent, FilterIntComponent, FilterDateTimeComponent, } from './filter';\nimport { CrudPipesModule } from '../pipes';\nimport { FiltersComponent } from './filters/filters.component';\nimport { FiltersConfigComponent } from './filters-config/filters-config.component';\nimport { MultiselectComponent } from './multiselect/multiselect.component';\nimport { CrudFacade } from '../+state/crud.facade';\nimport { GroupComponent } from './group/group.component';\nimport { CrudListPaginationFactory } from '../factories/list-pagination/list-pagination.factory';\nimport { CrudService } from '../services/crud/crud.service';\nimport * as i0 from \"@angular/core\";\nconst COMPONENTS = [\n ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterDateTimeComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent,\n];\nexport class CrudComponentsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudComponentsModule, imports: [ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterDateTimeComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent, SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule], exports: [CrudPipesModule, ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterDateTimeComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudComponentsModule, providers: [CrudService, CrudFacade, CrudListPaginationFactory], imports: [ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterDateTimeComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent, SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule, CrudPipesModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudComponentsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n ...COMPONENTS,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule,\n ],\n exports: [CrudPipesModule, ...COMPONENTS],\n providers: [CrudService, CrudFacade, CrudListPaginationFactory],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBRXJELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBQ0wsZUFBZSxFQUNmLG1CQUFtQixFQUNuQiwyQkFBMkIsRUFDM0IsbUJBQW1CLEVBQ25CLG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNsQix1QkFBdUIsR0FDeEIsTUFBTSxVQUFVLENBQUM7QUFDbEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBQ2pHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFFNUQsTUFBTSxVQUFVLEdBQUc7SUFDakIsZUFBZTtJQUNmLGVBQWU7SUFDZixtQkFBbUI7SUFDbkIsc0JBQXNCO0lBQ3RCLG1CQUFtQjtJQUNuQiwyQkFBMkI7SUFDM0IsdUJBQXVCO0lBQ3ZCLG9CQUFvQjtJQUNwQixnQkFBZ0I7SUFDaEIsbUJBQW1CO0lBQ25CLG9CQUFvQjtJQUNwQixrQkFBa0I7SUFDbEIsb0JBQW9CO0lBQ3BCLGNBQWM7Q0FDZixDQUFDO0FBY0YsTUFBTSxPQUFPLG9CQUFvQjt1R0FBcEIsb0JBQW9CO3dHQUFwQixvQkFBb0IsWUE1Qi9CLGVBQWU7WUFDZixlQUFlO1lBQ2YsbUJBQW1CO1lBQ25CLHNCQUFzQjtZQUN0QixtQkFBbUI7WUFDbkIsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUNuQixvQkFBb0I7WUFDcEIsa0JBQWtCO1lBQ2xCLG9CQUFvQjtZQUNwQixjQUFjLEVBTVosWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsWUFBWTtZQUNaLGVBQWUsYUFFUCxlQUFlLEVBekJ6QixlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUNuQixzQkFBc0I7WUFDdEIsbUJBQW1CO1lBQ25CLDJCQUEyQjtZQUMzQix1QkFBdUI7WUFDdkIsb0JBQW9CO1lBQ3BCLGdCQUFnQjtZQUNoQixtQkFBbUI7WUFDbkIsb0JBQW9CO1lBQ3BCLGtCQUFrQjtZQUNsQixvQkFBb0I7WUFDcEIsY0FBYzt3R0FlSCxvQkFBb0IsYUFGcEIsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLHlCQUF5QixDQUFDLFlBMUIvRCxlQUFlO1lBQ2YsZUFBZTtZQUNmLG1CQUFtQjtZQUVuQixtQkFBbUI7WUFDbkIsMkJBQTJCO1lBQzNCLHVCQUF1QjtZQUN2QixvQkFBb0I7WUFDcEIsZ0JBQWdCO1lBQ2hCLG1CQUFtQjtZQUVuQixrQkFBa0I7WUFDbEIsb0JBQW9CO1lBQ3BCLGNBQWMsRUFNWixZQUFZO1lBQ1osZUFBZTtZQUNmLFdBQVc7WUFDWCxZQUFZO1lBQ1osZUFBZSxFQUVQLGVBQWU7OzJGQUdkLG9CQUFvQjtrQkFaaEMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxVQUFVO3dCQUNiLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFLENBQUMsZUFBZSxFQUFFLEdBQUcsVUFBVSxDQUFDO29CQUN6QyxTQUFTLEVBQUUsQ0FBQyxXQUFXLEVBQUUsVUFBVSxFQUFFLHlCQUF5QixDQUFDO2lCQUNoRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEeW5hbWljSW9Nb2R1bGUgfSBmcm9tICduZy1keW5hbWljLWNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5cbmltcG9ydCB7IEV4cG9ydENvbXBvbmVudCB9IGZyb20gJy4vZXhwb3J0L2V4cG9ydC5jb21wb25lbnQnO1xuaW1wb3J0IHtcbiAgRmlsdGVyQ29tcG9uZW50LFxuICBGaWx0ZXJEYXRlQ29tcG9uZW50LFxuICBGaWx0ZXJEYXRlV2l0aEVkaXRDb21wb25lbnQsXG4gIEZpbHRlckZsYWdDb21wb25lbnQsXG4gIEZpbHRlclJhZGlvQ29tcG9uZW50LFxuICBGaWx0ZXJUZXh0Q29tcG9uZW50LFxuICBGaWx0ZXJDaGVja0NvbXBvbmVudCxcbiAgRmlsdGVySW50Q29tcG9uZW50LFxuICBGaWx0ZXJEYXRlVGltZUNvbXBvbmVudCxcbn0gZnJvbSAnLi9maWx0ZXInO1xuaW1wb3J0IHsgQ3J1ZFBpcGVzTW9kdWxlIH0gZnJvbSAnLi4vcGlwZXMnO1xuaW1wb3J0IHsgRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gJy4vZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBGaWx0ZXJzQ29uZmlnQ29tcG9uZW50IH0gZnJvbSAnLi9maWx0ZXJzLWNvbmZpZy9maWx0ZXJzLWNvbmZpZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgTXVsdGlzZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSAnLi4vK3N0YXRlL2NydWQuZmFjYWRlJztcbmltcG9ydCB7IEdyb3VwQ29tcG9uZW50IH0gZnJvbSAnLi9ncm91cC9ncm91cC5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeSB9IGZyb20gJy4uL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZSc7XG5cbmNvbnN0IENPTVBPTkVOVFMgPSBbXG4gIEV4cG9ydENvbXBvbmVudCxcbiAgRmlsdGVyQ29tcG9uZW50LFxuICBGaWx0ZXJUZXh0Q29tcG9uZW50LFxuICBGaWx0ZXJzQ29uZmlnQ29tcG9uZW50LFxuICBGaWx0ZXJEYXRlQ29tcG9uZW50LFxuICBGaWx0ZXJEYXRlV2l0aEVkaXRDb21wb25lbnQsXG4gIEZpbHRlckRhdGVUaW1lQ29tcG9uZW50LFxuICBGaWx0ZXJSYWRpb0NvbXBvbmVudCxcbiAgRmlsdGVyc0NvbXBvbmVudCxcbiAgRmlsdGVyRmxhZ0NvbXBvbmVudCxcbiAgRmlsdGVyQ2hlY2tDb21wb25lbnQsXG4gIEZpbHRlckludENvbXBvbmVudCxcbiAgTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gIEdyb3VwQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIC4uLkNPTVBPTkVOVFMsXG4gICAgU2hhcmVkTW9kdWxlLFxuICAgIENydWRQaXBlc01vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRHluYW1pY0lvTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbQ3J1ZFBpcGVzTW9kdWxlLCAuLi5DT01QT05FTlRTXSxcbiAgcHJvdmlkZXJzOiBbQ3J1ZFNlcnZpY2UsIENydWRGYWNhZGUsIENydWRMaXN0UGFnaW5hdGlvbkZhY3RvcnldLFxufSlcbmV4cG9ydCBjbGFzcyBDcnVkQ29tcG9uZW50c01vZHVsZSB7fVxuIl19","import { PaginationMode } from '@smartsoft001/angular';\nexport const initialState = {\n loaded: false,\n};\nconst crudReducer = (state, action, entity) => {\n if (!state) {\n state = { ...initialState };\n }\n switch (action.type) {\n case `[${entity}] Create`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Create Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n case `[${entity}] Create Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Create Many`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Create Many Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n case `[${entity}] Create Many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Export`:\n return {\n ...state,\n loaded: false,\n };\n case `[${entity}] Export Success`:\n return {\n ...state,\n loaded: true,\n };\n case `[${entity}] Export Failure`:\n return {\n ...state,\n loaded: true,\n };\n case `[${entity}] Read`:\n return {\n ...state,\n loaded: false,\n filter: action?.filter,\n error: null,\n totalCount: null,\n links: null,\n };\n case `[${entity}] Read Success`: {\n let list = [];\n if (action?.filter &&\n action?.filter.offset &&\n state.list &&\n action?.filter.paginationMode !== PaginationMode.singlePage) {\n state.list.forEach((i) => {\n list.push(i);\n });\n list = [...list, ...action.result.data];\n }\n else {\n list = action.result.data;\n }\n return {\n ...state,\n loaded: true,\n list,\n totalCount: action?.result?.totalCount,\n links: action.result.links,\n error: null,\n };\n }\n case `[${entity}] Clear`:\n return { ...initialState };\n case `[${entity}] Read Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Select`:\n return {\n ...state,\n loaded: false,\n selected: null,\n error: null,\n };\n case `[${entity}] Select Success`:\n return {\n ...state,\n loaded: true,\n selected: action.item,\n error: null,\n };\n case `[${entity}] Select Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] MultiSelect`:\n return {\n ...state,\n multiSelected: [...action.items],\n };\n case `[${entity}] Unselect`:\n return {\n ...state,\n loaded: true,\n selected: null,\n error: null,\n };\n case `[${entity}] Update`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Update Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n case `[${entity}] Update Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Update partial`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Update partial Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n case `[${entity}] Update partial Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Update partial many`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Update partial many Success`:\n return {\n ...state,\n multiSelected: [],\n loaded: true,\n error: null,\n };\n case `[${entity}] Update partial many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n case `[${entity}] Delete`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n case `[${entity}] Delete Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n case `[${entity}] Delete Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n default:\n return state;\n }\n};\nexport function getReducer(entity) {\n return (state, action) => {\n return crudReducer(state, action, entity);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvK3N0YXRlL2NydWQucmVkdWNlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFnQnZELE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBZTtJQUN0QyxNQUFNLEVBQUUsS0FBSztDQUNkLENBQUM7QUFFRixNQUFNLFdBQVcsR0FBRyxDQUNsQixLQUFpQixFQUNqQixNQUFvQixFQUNwQixNQUFjLEVBQ2QsRUFBRTtJQUNGLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLEtBQUssR0FBRyxFQUFFLEdBQUcsWUFBWSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVELFFBQVEsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3BCLEtBQUssSUFBSSxNQUFNLFVBQVU7WUFDdkIsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDO1FBRUosS0FBSyxJQUFJLE1BQU0sa0JBQWtCO1lBQy9CLE9BQU87Z0JBQ0wsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJQUFJO2FBQ1osQ0FBQztRQUVKLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUMvQixPQUFPO2dCQUNMLEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDcEIsQ0FBQztRQUVKLEtBQUssSUFBSSxNQUFNLGVBQWU7WUFDNUIsT0FBTztnQkFDTCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDWixDQUFDO1FBRUosS0FB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QU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM1QyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aW9uIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuXG5pbXBvcnQgeyBQYWdpbmF0aW9uTW9kZSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSAnLi4vbW9kZWxzJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHNlbGVjdGVkPzogVDtcbiAgbXVsdGlTZWxlY3RlZD86IEFycmF5PFQ+O1xuICBsaXN0PzogVFtdO1xuICB0b3RhbENvdW50PzogbnVtYmVyO1xuICBmaWx0ZXI/OiBJQ3J1ZEZpbHRlcjtcbiAgbGlua3M/OiBhbnk7XG4gIGxvYWRlZDogYm9vbGVhbjsgLy8gaGFzIHRoZSBBdXRoIGxpc3QgYmVlbiBsb2FkZWRcbiAgZXJyb3I/OiBzdHJpbmcgfCBudWxsOyAvLyBsYXN0IG5vbmUgZXJyb3IgKGlmIGFueSlcbn1cblxuZXhwb3J0IGNvbnN0IGluaXRpYWxTdGF0ZTogU3RhdGU8YW55PiA9IHtcbiAgbG9hZGVkOiBmYWxzZSxcbn07XG5cbmNvbnN0IGNydWRSZWR1Y2VyID0gKFxuICBzdGF0ZTogU3RhdGU8YW55PixcbiAgYWN0aW9uOiBBY3Rpb24gJiBhbnksXG4gIGVudGl0eTogc3RyaW5nLFxuKSA9PiB7XG4gIGlmICghc3RhdGUpIHtcbiAgICBzdGF0ZSA9IHsgLi4uaW5pdGlhbFN0YXRlIH07XG4gIH1cblxuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGUgU3VjY2Vzc2A6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGUgRmFpbHVyZWA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBNYW55YDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGUgTWFueSBTdWNjZXNzYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBNYW55IEZhaWx1cmVgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5lcnJvcixcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBFeHBvcnRgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IFN1Y2Nlc3NgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBFeHBvcnQgRmFpbHVyZWA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWRgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgIGZpbHRlcjogYWN0aW9uPy5maWx0ZXIsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICB0b3RhbENvdW50OiBudWxsLFxuICAgICAgICBsaW5rczogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBSZWFkIFN1Y2Nlc3NgOiB7XG4gICAgICBsZXQgbGlzdDogYW55W10gPSBbXTtcblxuICAgICAgaWYgKFxuICAgICAgICBhY3Rpb24/LmZpbHRlciAmJlxuICAgICAgICBhY3Rpb24/LmZpbHRlci5vZmZzZXQgJiZcbiAgICAgICAgc3RhdGUubGlzdCAmJlxuICAgICAgICBhY3Rpb24/LmZpbHRlci5wYWdpbmF0aW9uTW9kZSAhPT0gUGFnaW5hdGlvbk1vZGUuc2luZ2xlUGFnZVxuICAgICAgKSB7XG4gICAgICAgIHN0YXRlLmxpc3QuZm9yRWFjaCgoaSkgPT4ge1xuICAgICAgICAgIGxpc3QucHVzaChpKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgbGlzdCA9IFsuLi5saXN0LCAuLi5hY3Rpb24ucmVzdWx0LmRhdGFdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbGlzdCA9IGFjdGlvbi5yZXN1bHQuZGF0YTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgbGlzdCxcbiAgICAgICAgdG90YWxDb3VudDogYWN0aW9uPy5yZXN1bHQ/LnRvdGFsQ291bnQsXG4gICAgICAgIGxpbmtzOiBhY3Rpb24ucmVzdWx0LmxpbmtzLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gQ2xlYXJgOlxuICAgICAgcmV0dXJuIHsgLi4uaW5pdGlhbFN0YXRlIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBSZWFkIEZhaWx1cmVgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IGFjdGlvbi5lcnJvcixcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBTZWxlY3RgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgIHNlbGVjdGVkOiBudWxsLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBTZWxlY3QgU3VjY2Vzc2A6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBzZWxlY3RlZDogYWN0aW9uLml0ZW0sXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdCBGYWlsdXJlYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3IsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gTXVsdGlTZWxlY3RgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIG11bHRpU2VsZWN0ZWQ6IFsuLi5hY3Rpb24uaXRlbXNdLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVuc2VsZWN0YDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIHNlbGVjdGVkOiBudWxsLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGVgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBTdWNjZXNzYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBGYWlsdXJlYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3IsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgRmFpbHVyZWA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgfTtcblxuICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnkgU3VjY2Vzc2A6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbXVsdGlTZWxlY3RlZDogW10sXG4gICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgZXJyb3I6IG51bGwsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBGYWlsdXJlYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3IsXG4gICAgICB9O1xuXG4gICAgY2FzZSBgWyR7ZW50aXR5fV0gRGVsZXRlYDpcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBEZWxldGUgU3VjY2Vzc2A6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogbnVsbCxcbiAgICAgIH07XG5cbiAgICBjYXNlIGBbJHtlbnRpdHl9XSBEZWxldGUgRmFpbHVyZWA6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yLFxuICAgICAgfTtcblxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gc3RhdGU7XG4gIH1cbn07XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZWR1Y2VyKGVudGl0eTogc3RyaW5nKSB7XG4gIHJldHVybiAoc3RhdGU6IGFueSwgYWN0aW9uOiBBY3Rpb24pID0+IHtcbiAgICByZXR1cm4gY3J1ZFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgZW50aXR5KTtcbiAgfTtcbn1cbiJdfQ==","import 'reflect-metadata';\nimport { Injectable } from '@angular/core';\nimport { ActionsSubject, select, State, Store } from '@ngrx/store';\nimport { first } from 'rxjs/operators';\nimport * as CrudActions from './crud.actions';\nimport { CrudConfig } from '../crud.config';\nimport { getCrudFilter } from './crud.selectors';\nimport { CrudService } from '../services/crud/crud.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrx/store\";\nimport * as i2 from \"../services/crud/crud.service\";\nimport * as i3 from \"../crud.config\";\nexport class CrudEffects {\n actions$;\n service;\n config;\n store;\n state;\n constructor(actions$, service, config, store, state) {\n this.actions$ = actions$;\n this.service = service;\n this.config = config;\n this.store = store;\n this.state = state;\n }\n init() {\n const metadata = Reflect.getMetadata(this.config.entity, CrudEffects);\n if (metadata)\n return;\n Reflect.defineMetadata(this.config.entity, true, CrudEffects);\n this.actions$.subscribe((action) => {\n switch (action.type) {\n case `[${this.config.entity}] Create`:\n this.service\n .create(action.item)\n .then(() => this.store.dispatch(CrudActions.createSuccess(this.config.entity, action.item)))\n .catch((error) => {\n this.store.dispatch(CrudActions.createFailure(this.config.entity, action.item, error));\n });\n break;\n case `[${this.config.entity}] Create Success`: {\n const createState = this.state.getValue()[this.config.entity];\n this.store.dispatch(CrudActions.read(this.config.entity, createState?.filter ? { ...createState.filter, offset: 0 } : null));\n break;\n }\n case `[${this.config.entity}] Create Many`:\n this.service\n .createMany(action.data.items, action.data.options)\n .then(() => this.store.dispatch(CrudActions.createManySuccess(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n })))\n .catch((error) => {\n this.store.dispatch(CrudActions.createManyFailure(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n }, error));\n });\n break;\n case `[${this.config.entity}] Create Many Success`: {\n const createManyState = this.state.getValue()[this.config.entity];\n this.store.dispatch(CrudActions.read(this.config.entity, createManyState?.filter\n ? { ...createManyState.filter, offset: 0 }\n : null));\n break;\n }\n case `[${this.config.entity}] Read`:\n this.service\n .getList(action?.filter)\n .then((result) => this.store.dispatch(CrudActions.readSuccess(this.config.entity, action?.filter, result)))\n .catch((error) => {\n this.store.dispatch(CrudActions.readFailure(this.config.entity, action?.filter, error));\n });\n break;\n case `[${this.config.entity}] Export`:\n this.service\n .exportList(action?.filter, action.format)\n .then(() => this.store.dispatch(CrudActions.exportListSuccess(this.config.entity, action?.filter)))\n .catch((error) => {\n this.store.dispatch(CrudActions.exportListFailure(this.config.entity, action?.filter, error));\n });\n break;\n case `[${this.config.entity}] Select`:\n this.service\n .getById(action.id)\n .then((result) => this.store.dispatch(CrudActions.selectSuccess(this.config.entity, action.id, result)))\n .catch((error) => {\n this.store.dispatch(CrudActions.selectFailure(this.config.entity, action.id, error));\n });\n break;\n case `[${this.config.entity}] Update`:\n this.service\n .updatePartial(action.item)\n .then(() => this.store.dispatch(CrudActions.updateSuccess(this.config.entity, action.item)))\n .catch((error) => {\n this.store.dispatch(CrudActions.updateFailure(this.config.entity, action.item, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n case `[${this.config.entity}] Update Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n case `[${this.config.entity}] Update partial`:\n this.service\n .updatePartial(action.item)\n .then(() => this.store.dispatch(CrudActions.updatePartialSuccess(this.config.entity, action.item)))\n .catch((error) => {\n this.store.dispatch(CrudActions.updatePartialFailure(this.config.entity, action.item, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n case `[${this.config.entity}] Update partial Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n case `[${this.config.entity}] Update partial many`:\n this.service\n .updatePartialMany(action.items)\n .then(() => this.store.dispatch(CrudActions.updatePartialManySuccess(this.config.entity, action.items)))\n .catch((error) => {\n this.store.dispatch(CrudActions.updatePartialManyFailure(this.config.entity, action.items, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n case `[${this.config.entity}] Update partial many Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n });\n break;\n case `[${this.config.entity}] Delete`:\n this.service\n .delete(action.id)\n .then(() => this.store.dispatch(CrudActions.deleteSuccess(this.config.entity, action.id)))\n .catch((error) => {\n this.store.dispatch(CrudActions.deleteFailure(this.config.entity, action.id, error));\n });\n break;\n case `[${this.config.entity}] Delete Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n });\n break;\n default:\n console.warn(`No effect for action type ${action.type} in entity ${this.config.entity}`);\n break;\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudEffects, deps: [{ token: i1.ActionsSubject }, { token: i2.CrudService }, { token: i3.CrudConfig }, { token: i1.Store }, { token: i1.State }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudEffects });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudEffects, decorators: [{\n type: Injectable\n }], ctorParameters: () => [{ type: i1.ActionsSubject }, { type: i2.CrudService }, { type: i3.CrudConfig }, { type: i1.Store }, { type: i1.State }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvK3N0YXRlL2NydWQuZWZmZWN0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFVLGNBQWMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUMzRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkMsT0FBTyxLQUFLLFdBQVcsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7Ozs7QUFHNUQsTUFBTSxPQUFPLFdBQVc7SUFFWjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBTFYsWUFDVSxRQUF3QixFQUN4QixPQUF1QixFQUN2QixNQUFxQixFQUNyQixLQUFpQixFQUNqQixLQUFpQjtRQUpqQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUN4QixDQUFDO0lBRUosSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFdEUsSUFBSSxRQUFRO1lBQUUsT0FBTztRQUVy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OzRCQUNULE1BQU0sRUFBRSxDQUFDO3lCQUNWLENBQUMsQ0FDSCxDQUFDO29CQUNKLENBQUMsQ0FBQyxDQUFDO29CQUNMLE1BQU07Z0JBRVI7b0JBQ0UsT0FBTyxDQUFDLElBQUksQ0FDViw2QkFBNkIsTUFBTSxDQUFDLElBQUksY0FBYyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUMzRSxDQUFDO29CQUNGLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO3VHQTFTVSxXQUFXOzJHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgJ3JlZmxlY3QtbWV0YWRhdGEnO1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3Rpb24sIEFjdGlvbnNTdWJqZWN0LCBzZWxlY3QsIFN0YXRlLCBTdG9yZSB9IGZyb20gJ0BuZ3J4L3N0b3JlJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCAqIGFzIENydWRBY3Rpb25zIGZyb20gJy4vY3J1ZC5hY3Rpb25zJztcbmltcG9ydCB7IENydWRDb25maWcgfSBmcm9tICcuLi9jcnVkLmNvbmZpZyc7XG5pbXBvcnQgeyBnZXRDcnVkRmlsdGVyIH0gZnJvbSAnLi9jcnVkLnNlbGVjdG9ycyc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2NydWQvY3J1ZC5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRFZmZlY3RzPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IHtcbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBhY3Rpb25zJDogQWN0aW9uc1N1YmplY3QsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBDcnVkU2VydmljZTxUPixcbiAgICBwcml2YXRlIGNvbmZpZzogQ3J1ZENvbmZpZzxUPixcbiAgICBwcml2YXRlIHN0b3JlOiBTdG9yZTxhbnk+LFxuICAgIHByaXZhdGUgc3RhdGU6IFN0YXRlPGFueT4sXG4gICkge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gUmVmbGVjdC5nZXRNZXRhZGF0YSh0aGlzLmNvbmZpZy5lbnRpdHksIENydWRFZmZlY3RzKTtcblxuICAgIGlmIChtZXRhZGF0YSkgcmV0dXJuO1xuXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSh0aGlzLmNvbmZpZy5lbnRpdHksIHRydWUsIENydWRFZmZlY3RzKTtcblxuICAgIHRoaXMuYWN0aW9ucyQuc3Vic2NyaWJlKChhY3Rpb246IEFjdGlvbiAmIGFueSkgPT4ge1xuICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBDcmVhdGVgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZShhY3Rpb24uaXRlbSlcbiAgICAgICAgICAgIC50aGVuKCgpID0+XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlU3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5jcmVhdGVGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uLml0ZW0sXG4gICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gQ3JlYXRlIFN1Y2Nlc3NgOiB7XG4gICAgICAgICAgY29uc3QgY3JlYXRlU3RhdGUgPSB0aGlzLnN0YXRlLmdldFZhbHVlKClbdGhpcy5jb25maWcuZW50aXR5XTtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZChcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICBjcmVhdGVTdGF0ZT8uZmlsdGVyID8geyAuLi5jcmVhdGVTdGF0ZS5maWx0ZXIsIG9mZnNldDogMCB9IDogbnVsbCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIENyZWF0ZSBNYW55YDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGVNYW55KGFjdGlvbi5kYXRhLml0ZW1zLCBhY3Rpb24uZGF0YS5vcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5jcmVhdGVNYW55U3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgIGl0ZW1zOiBhY3Rpb24uZGF0YS5pdGVtcyxcbiAgICAgICAgICAgICAgICAgIG9wdGlvbnM6IGFjdGlvbi5kYXRhLm9wdGlvbnMsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlTWFueUZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW1zOiBhY3Rpb24uZGF0YS5pdGVtcyxcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogYWN0aW9uLmRhdGEub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBlcnJvcixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gQ3JlYXRlIE1hbnkgU3VjY2Vzc2A6IHtcbiAgICAgICAgICBjb25zdCBjcmVhdGVNYW55U3RhdGUgPSB0aGlzLnN0YXRlLmdldFZhbHVlKClbdGhpcy5jb25maWcuZW50aXR5XTtcbiAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZChcbiAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICBjcmVhdGVNYW55U3RhdGU/LmZpbHRlclxuICAgICAgICAgICAgICAgID8geyAuLi5jcmVhdGVNYW55U3RhdGUuZmlsdGVyLCBvZmZzZXQ6IDAgfVxuICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFJlYWRgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmdldExpc3QoYWN0aW9uPy5maWx0ZXIpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PlxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWRTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uPy5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICByZXN1bHQgYXMgeyBkYXRhOiBUW107IHRvdGFsQ291bnQ6IG51bWJlcjsgbGlua3M6IGFueSB9LFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZEZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICBhY3Rpb24/LmZpbHRlcixcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBFeHBvcnRgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmV4cG9ydExpc3QoYWN0aW9uPy5maWx0ZXIsIGFjdGlvbi5mb3JtYXQpXG4gICAgICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmV4cG9ydExpc3RTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uPy5maWx0ZXIsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5leHBvcnRMaXN0RmFpbHVyZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbj8uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFNlbGVjdGA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuZ2V0QnlJZChhY3Rpb24uaWQpXG4gICAgICAgICAgICAudGhlbigocmVzdWx0KSA9PlxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnNlbGVjdFN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICBhY3Rpb24uaWQsXG4gICAgICAgICAgICAgICAgICByZXN1bHQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5zZWxlY3RGYWlsdXJlKHRoaXMuY29uZmlnLmVudGl0eSwgYWN0aW9uLmlkLCBlcnJvciksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGVgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVBhcnRpYWwoYWN0aW9uLml0ZW0pXG4gICAgICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVN1Y2Nlc3ModGhpcy5jb25maWcuZW50aXR5LCBhY3Rpb24uaXRlbSksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gVXBkYXRlIFN1Y2Nlc3NgOlxuICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgIC5waXBlKHNlbGVjdChnZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLCBmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtLmlkKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsYDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVQYXJ0aWFsKGFjdGlvbi5pdGVtKVxuICAgICAgICAgICAgLnRoZW4oKCkgPT5cbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy51cGRhdGVQYXJ0aWFsU3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbEZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbSxcbiAgICAgICAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHkpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgICAgIHRoaXMuc3RvcmVcbiAgICAgICAgICAgIC5waXBlKHNlbGVjdChnZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLCBmaXJzdCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZmlsdGVyKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgIC4uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgIG9mZnNldDogMCxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtLmlkKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVBhcnRpYWxNYW55KGFjdGlvbi5pdGVtcylcbiAgICAgICAgICAgIC50aGVuKCgpID0+XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnlTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uLml0ZW1zLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnlGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgYWN0aW9uLml0ZW1zLFxuICAgICAgICAgICAgICAgICAgZXJyb3IsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBTdWNjZXNzYDpcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAucGlwZShzZWxlY3QoZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSwgZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCB7XG4gICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBEZWxldGVgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmRlbGV0ZShhY3Rpb24uaWQpXG4gICAgICAgICAgICAudGhlbigoKSA9PlxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmRlbGV0ZVN1Y2Nlc3ModGhpcy5jb25maWcuZW50aXR5LCBhY3Rpb24uaWQpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmRlbGV0ZUZhaWx1cmUodGhpcy5jb25maWcuZW50aXR5LCBhY3Rpb24uaWQsIGVycm9yKSxcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIERlbGV0ZSBTdWNjZXNzYDpcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAucGlwZShzZWxlY3QoZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSwgZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCB7XG4gICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgIGBObyBlZmZlY3QgZm9yIGFjdGlvbiB0eXBlICR7YWN0aW9uLnR5cGV9IGluIGVudGl0eSAke3RoaXMuY29uZmlnLmVudGl0eX1gLFxuICAgICAgICAgICk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, inject, input, output, viewChild, viewChildren, } from '@angular/core';\nimport { BaseComponent, FormComponent, } from '@smartsoft001/angular';\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport { CrudFullConfig } from '../../../crud.config';\nimport * as i0 from \"@angular/core\";\nexport class CrudItemPageBaseComponent extends BaseComponent {\n config = inject((CrudFullConfig));\n facade = inject((CrudFacade));\n static smartType = 'crud-item-page';\n selected;\n contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n formComponents = viewChildren(FormComponent, ...(ngDevMode ? [{ debugName: \"formComponents\" }] : []));\n detailsOptions = input(...(ngDevMode ? [undefined, { debugName: \"detailsOptions\" }] : []));\n mode = input(...(ngDevMode ? [undefined, { debugName: \"mode\" }] : []));\n uniqueProvider = input(...(ngDevMode ? [undefined, { debugName: \"uniqueProvider\" }] : []));\n onPartialChange = output();\n onChange = output();\n onValidChange = output();\n constructor() {\n super();\n this.selected = this.facade.selected;\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudItemPageBaseComponent, deps: [], target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.1.0\", type: CrudItemPageBaseComponent, isStandalone: true, inputs: { detailsOptions: { classPropertyName: \"detailsOptions\", publicName: \"detailsOptions\", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: \"mode\", publicName: \"mode\", isSignal: true, isRequired: false, transformFunction: null }, uniqueProvider: { classPropertyName: \"uniqueProvider\", publicName: \"uniqueProvider\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { onPartialChange: \"onPartialChange\", onChange: \"onChange\", onValidChange: \"onValidChange\" }, viewQueries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }, { propertyName: \"formComponents\", predicate: FormComponent, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudItemPageBaseComponent, decorators: [{\n type: Directive\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9pdGVtL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsWUFBWSxHQUViLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDTCxhQUFhLEVBRWIsYUFBYSxHQUVkLE1BQU0sdUJBQXVCLENBQUM7QUFHL0IsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFHdEQsTUFBTSxPQUFnQix5QkFFcEIsU0FBUSxhQUFhO0lBQ2QsTUFBTSxHQUFHLE1BQU0sQ0FBQyxDQUFBLGNBQWlCLENBQUEsQ0FBQyxDQUFDO0lBQ25DLE1BQU0sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUFhLENBQUEsQ0FBQyxDQUFDO0lBRXRDLE1BQU0sQ0FBQyxTQUFTLEdBQXlCLGdCQUFnQixDQUFDO0lBRTFELFFBQVEsQ0FBWTtJQUVwQixVQUFVLEdBQUcsU0FBUyxDQUFtQixZQUFZLHNEQUFDLENBQUM7SUFFdkQsY0FBYyxHQUFHLFlBQVksQ0FBQyxhQUFhLDBEQUFDLENBQUM7SUFFN0MsY0FBYyxHQUFHLEtBQUssb0VBQXNCLENBQUM7SUFFN0MsSUFBSSxHQUFHLEtBQUssMERBQVUsQ0FBQztJQUV2QixjQUFjLEdBQUcsS0FBSyxvRUFBc0QsQ0FBQztJQUU3RSxlQUFlLEdBQUcsTUFBTSxFQUFjLENBQUM7SUFFdkMsUUFBUSxHQUFHLE1BQU0sRUFBSyxDQUFDO0lBRXZCLGFBQWEsR0FBRyxNQUFNLEVBQVcsQ0FBQztJQUVsQztRQUNFLEtBQUssRUFBRSxDQUFDO1FBQ1IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUN2QyxDQUFDO3VHQTdCbUIseUJBQXlCOzJGQUF6Qix5QkFBeUIsMHNCQVlmLGFBQWE7OzJGQVp2Qix5QkFBeUI7a0JBRDlDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBEaXJlY3RpdmUsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgU2lnbmFsLFxuICB2aWV3Q2hpbGQsXG4gIHZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7XG4gIEJhc2VDb21wb25lbnQsXG4gIER5bmFtaWNDb21wb25lbnRUeXBlLFxuICBGb3JtQ29tcG9uZW50LFxuICBJRGV0YWlsc09wdGlvbnMsXG59IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jcnVkLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENydWRJdGVtUGFnZUJhc2VDb21wb25lbnQ8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4sXG4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHB1YmxpYyBjb25maWcgPSBpbmplY3QoQ3J1ZEZ1bGxDb25maWc8VD4pO1xuICBwdWJsaWMgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuXG4gIHN0YXRpYyBzbWFydFR5cGU6IER5bmFtaWNDb21wb25lbnRUeXBlID0gJ2NydWQtaXRlbS1wYWdlJztcblxuICBzZWxlY3RlZDogU2lnbmFsPFQ+O1xuXG4gIGNvbnRlbnRUcGwgPSB2aWV3Q2hpbGQ8Vmlld0NvbnRhaW5lclJlZj4oJ2NvbnRlbnRUcGwnKTtcblxuICBmb3JtQ29tcG9uZW50cyA9IHZpZXdDaGlsZHJlbihGb3JtQ29tcG9uZW50KTtcblxuICBkZXRhaWxzT3B0aW9ucyA9IGlucHV0PElEZXRhaWxzT3B0aW9uczxUPj4oKTtcblxuICBtb2RlID0gaW5wdXQ8c3RyaW5nPigpO1xuXG4gIHVuaXF1ZVByb3ZpZGVyID0gaW5wdXQ8KHZhbHVlczogUmVjb3JkPGtleW9mIFQsIGFueT4pID0+IFByb21pc2U8Ym9vbGVhbj4+KCk7XG5cbiAgb25QYXJ0aWFsQ2hhbmdlID0gb3V0cHV0PFBhcnRpYWw8VD4+KCk7XG5cbiAgb25DaGFuZ2UgPSBvdXRwdXQ8VD4oKTtcblxuICBvblZhbGlkQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5mYWNhZGUuc2VsZWN0ZWQ7XG4gIH1cbn1cbiJdfQ==","import { NgTemplateOutlet } from '@angular/common';\nimport { Component } from '@angular/core';\nimport { DetailsComponent, FormComponent } from '@smartsoft001/angular';\nimport { FormOptionsPipe } from '../../../pipes';\nimport { CrudItemPageBaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class ItemStandardComponent extends CrudItemPageBaseComponent {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ItemStandardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ItemStandardComponent, isStandalone: true, selector: \"smart-crud-item-standard-page\", usesInheritance: true, ngImport: i0, template: `\n @if (mode() === 'details') {\n @if (detailsOptions()) {\n <smart-details [options]=\"detailsOptions()\"></smart-details>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"editTpl\"></ng-container>\n }\n\n <ng-template #editTpl>\n <smart-form\n [options]=\"\n selected()\n | smartFormOptions\n : mode()\n : config?.type\n : uniqueProvider()\n : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n </ng-template>\n\n <br /><br />\n `, isInline: true, styles: [\"\"], dependencies: [{ kind: \"component\", type: DetailsComponent, selector: \"smart-details\", inputs: [\"options\"] }, { kind: \"component\", type: FormComponent, selector: \"smart-form\", inputs: [\"options\"], outputs: [\"invokeSubmit\", \"valueChange\", \"valuePartialChange\", \"validChange\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"pipe\", type: FormOptionsPipe, name: \"smartFormOptions\" }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ItemStandardComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-item-standard-page', template: `\n @if (mode() === 'details') {\n @if (detailsOptions()) {\n <smart-details [options]=\"detailsOptions()\"></smart-details>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"editTpl\"></ng-container>\n }\n\n <ng-template #editTpl>\n <smart-form\n [options]=\"\n selected()\n | smartFormOptions\n : mode()\n : config?.type\n : uniqueProvider()\n : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n </ng-template>\n\n <br /><br />\n `, imports: [\n DetailsComponent,\n FormComponent,\n FormOptionsPipe,\n NgTemplateOutlet,\n FormComponent,\n ] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGFnZXMvaXRlbS9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHeEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDOztBQXdDbkUsTUFBTSxPQUFPLHFCQUVYLFNBQVEseUJBQTRCO3VHQUZ6QixxQkFBcUI7MkZBQXJCLHFCQUFxQixnSEFwQ3RCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTBCVCwwRUFHQyxnQkFBZ0IsK0VBQ2hCLGFBQWEsMkpBRWIsZ0JBQWdCLCtJQURoQixlQUFlOzsyRkFLTixxQkFBcUI7a0JBdENqQyxTQUFTOytCQUNFLCtCQUErQixZQUMvQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQlQsV0FFUTt3QkFDUCxnQkFBZ0I7d0JBQ2hCLGFBQWE7d0JBQ2IsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGFBQWE7cUJBQ2QiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBEZXRhaWxzQ29tcG9uZW50LCBGb3JtQ29tcG9uZW50IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgRm9ybU9wdGlvbnNQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xuaW1wb3J0IHsgQ3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gJy4uL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWl0ZW0tc3RhbmRhcmQtcGFnZScsXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChtb2RlKCkgPT09ICdkZXRhaWxzJykge1xuICAgICAgQGlmIChkZXRhaWxzT3B0aW9ucygpKSB7XG4gICAgICAgIDxzbWFydC1kZXRhaWxzIFtvcHRpb25zXT1cImRldGFpbHNPcHRpb25zKClcIj48L3NtYXJ0LWRldGFpbHM+XG4gICAgICB9XG4gICAgfSBAZWxzZSB7XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImVkaXRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICB9XG5cbiAgICA8bmctdGVtcGxhdGUgI2VkaXRUcGw+XG4gICAgICA8c21hcnQtZm9ybVxuICAgICAgICBbb3B0aW9uc109XCJcbiAgICAgICAgICBzZWxlY3RlZCgpXG4gICAgICAgICAgICB8IHNtYXJ0Rm9ybU9wdGlvbnNcbiAgICAgICAgICAgICAgOiBtb2RlKClcbiAgICAgICAgICAgICAgOiBjb25maWc/LnR5cGVcbiAgICAgICAgICAgICAgOiB1bmlxdWVQcm92aWRlcigpXG4gICAgICAgICAgICAgIDogY29uZmlnLmlucHV0Q29tcG9uZW50c1xuICAgICAgICBcIlxuICAgICAgICAodmFsdWVQYXJ0aWFsQ2hhbmdlKT1cIm9uUGFydGlhbENoYW5nZS5lbWl0KCRldmVudClcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgKHZhbGlkQ2hhbmdlKT1cIm9uVmFsaWRDaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgID48L3NtYXJ0LWZvcm0+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxiciAvPjxiciAvPlxuICBgLFxuICBzdHlsZVVybHM6IFsnLi9zdGFuZGFyZC5jb21wb25lbnQuc2NzcyddLFxuICBpbXBvcnRzOiBbXG4gICAgRGV0YWlsc0NvbXBvbmVudCxcbiAgICBGb3JtQ29tcG9uZW50LFxuICAgIEZvcm1PcHRpb25zUGlwZSxcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEZvcm1Db21wb25lbnQsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEl0ZW1TdGFuZGFyZENvbXBvbmVudDxcbiAgVCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPixcbj4gZXh0ZW5kcyBDcnVkSXRlbVBhZ2VCYXNlQ29tcG9uZW50PFQ+IHt9XG4iXX0=","import { inject, Injectable } from '@angular/core';\nimport { AuthService } from '@smartsoft001/angular';\nimport { getModelOptions } from '@smartsoft001/models';\nimport { CrudFullConfig } from '../../crud.config';\nimport * as i0 from \"@angular/core\";\nexport class PageService {\n authService = inject(AuthService);\n config = inject((CrudFullConfig));\n checkPermissions() {\n const val = this.config;\n const modelOptions = getModelOptions(val.type);\n if (val.add &&\n modelOptions.create &&\n modelOptions.create.permissions &&\n !this.authService.expectPermissions(modelOptions.create.permissions)) {\n val.add = false;\n }\n if (val.edit &&\n modelOptions.update &&\n modelOptions.update.permissions &&\n !this.authService.expectPermissions(modelOptions.update.permissions)) {\n val.edit = false;\n }\n if (val.remove &&\n modelOptions.remove &&\n modelOptions.remove.permissions &&\n !this.authService.expectPermissions(modelOptions.remove.permissions)) {\n val.remove = false;\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageService });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: PageService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvc2VydmljZXMvcGFnZS9wYWdlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBR25ELE1BQU0sT0FBTyxXQUFXO0lBQ2QsV0FBVyxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNsQyxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsY0FBaUIsQ0FBQSxDQUFDLENBQUM7SUFFM0MsZ0JBQWdCO1FBQ2QsTUFBTSxHQUFHLEdBQXNCLElBQUksQ0FBQyxNQUFNLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsZUFBZSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUUvQyxJQUNFLEdBQUcsQ0FBQyxHQUFHO1lBQ1AsWUFBWSxDQUFDLE1BQU07WUFDbkIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUNwRSxDQUFDO1lBQ0QsR0FBRyxDQUFDLEdBQUcsR0FBRyxLQUFLLENBQUM7UUFDbEIsQ0FBQztRQUVELElBQ0UsR0FBRyxDQUFDLElBQUk7WUFDUixZQUFZLENBQUMsTUFBTTtZQUNuQixZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDL0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQ3BFLENBQUM7WUFDRCxHQUFHLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztRQUNuQixDQUFDO1FBRUQsSUFDRSxHQUFHLENBQUMsTUFBTTtZQUNWLFlBQVksQ0FBQyxNQUFNO1lBQ25CLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVztZQUMvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDcEUsQ0FBQztZQUNELEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO3VHQWxDVSxXQUFXOzJHQUFYLFdBQVc7OzJGQUFYLFdBQVc7a0JBRHZCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQXV0aFNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgZ2V0TW9kZWxPcHRpb25zIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9tb2RlbHMnO1xuXG5pbXBvcnQgeyBDcnVkRnVsbENvbmZpZyB9IGZyb20gJy4uLy4uL2NydWQuY29uZmlnJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBhZ2VTZXJ2aWNlPFQ+IHtcbiAgcHJpdmF0ZSBhdXRoU2VydmljZSA9IGluamVjdChBdXRoU2VydmljZSk7XG4gIHByaXZhdGUgY29uZmlnID0gaW5qZWN0KENydWRGdWxsQ29uZmlnPFQ+KTtcblxuICBjaGVja1Blcm1pc3Npb25zKCk6IHZvaWQge1xuICAgIGNvbnN0IHZhbDogQ3J1ZEZ1bGxDb25maWc8VD4gPSB0aGlzLmNvbmZpZztcbiAgICBjb25zdCBtb2RlbE9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModmFsLnR5cGUpO1xuXG4gICAgaWYgKFxuICAgICAgdmFsLmFkZCAmJlxuICAgICAgbW9kZWxPcHRpb25zLmNyZWF0ZSAmJlxuICAgICAgbW9kZWxPcHRpb25zLmNyZWF0ZS5wZXJtaXNzaW9ucyAmJlxuICAgICAgIXRoaXMuYXV0aFNlcnZpY2UuZXhwZWN0UGVybWlzc2lvbnMobW9kZWxPcHRpb25zLmNyZWF0ZS5wZXJtaXNzaW9ucylcbiAgICApIHtcbiAgICAgIHZhbC5hZGQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICB2YWwuZWRpdCAmJlxuICAgICAgbW9kZWxPcHRpb25zLnVwZGF0ZSAmJlxuICAgICAgbW9kZWxPcHRpb25zLnVwZGF0ZS5wZXJtaXNzaW9ucyAmJlxuICAgICAgIXRoaXMuYXV0aFNlcnZpY2UuZXhwZWN0UGVybWlzc2lvbnMobW9kZWxPcHRpb25zLnVwZGF0ZS5wZXJtaXNzaW9ucylcbiAgICApIHtcbiAgICAgIHZhbC5lZGl0ID0gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdmFsLnJlbW92ZSAmJlxuICAgICAgbW9kZWxPcHRpb25zLnJlbW92ZSAmJlxuICAgICAgbW9kZWxPcHRpb25zLnJlbW92ZS5wZXJtaXNzaW9ucyAmJlxuICAgICAgIXRoaXMuYXV0aFNlcnZpY2UuZXhwZWN0UGVybWlzc2lvbnMobW9kZWxPcHRpb25zLnJlbW92ZS5wZXJtaXNzaW9ucylcbiAgICApIHtcbiAgICAgIHZhbC5yZW1vdmUgPSBmYWxzZTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Location, NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, effect, ElementRef, inject, signal, viewChild, viewChildren, } from '@angular/core';\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, } from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\nimport { CreateDynamicComponent, DetailsService, DynamicComponentLoader, DynamicContentDirective, PageComponent, StyleService, ToastService, } from '@smartsoft001/angular';\nimport { getModelOptions } from '@smartsoft001/models';\nimport { SpecificationService } from '@smartsoft001/utils';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudFullConfig } from '../../crud.config';\nimport { ItemStandardComponent } from './standard/standard.component';\nimport { CrudService } from '../../services/crud/crud.service';\nimport { PageService } from '../../services/page/page.service';\nimport * as i0 from \"@angular/core\";\nexport class ItemComponent extends CreateDynamicComponent('crud-item-page') {\n router = inject(Router);\n activeRoute = inject(ActivatedRoute);\n facade = inject((CrudFacade));\n service = inject((CrudService));\n dynamicComponentLoader = inject((DynamicComponentLoader));\n translateService = inject(TranslateService);\n config = inject((CrudFullConfig));\n location = inject(Location);\n cd = inject(ChangeDetectorRef);\n styleService = inject(StyleService);\n elementRef = inject(ElementRef);\n toastService = inject(ToastService);\n pageService = inject((PageService));\n detailsService = inject(DetailsService);\n _mode;\n pageOptions = signal({\n title: '',\n showBackButton: true,\n hideMenuButton: true,\n }, ...(ngDevMode ? [{ debugName: \"pageOptions\" }] : []));\n detailsOptions;\n id;\n formValue;\n formValid = false;\n item;\n formPartialValue;\n uniqueProvider;\n set mode(val) {\n this._mode = signal(val, ...(ngDevMode ? [{ debugName: \"_mode\" }] : []));\n this.refreshDynamicInstance();\n }\n get mode() {\n return this._mode();\n }\n selected;\n standardComponents = viewChildren(ItemStandardComponent, ...(ngDevMode ? [{ debugName: \"standardComponents\" }] : []));\n // @ViewChild(IonContent, { static: true }) content: IonContent; //TODO: rewrite when rewriting ionic\n contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n topTpl = viewChild('topTpl', ...(ngDevMode ? [{ debugName: \"topTpl\" }] : []));\n bottomTpl = viewChild('bottomTpl', ...(ngDevMode ? [{ debugName: \"bottomTpl\" }] : []));\n dynamicContents = viewChildren(DynamicContentDirective, ...(ngDevMode ? [{ debugName: \"dynamicContents\" }] : []));\n subscription = new Subscription();\n constructor() {\n super();\n this.selected = this.facade.selected;\n effect(() => {\n this.item = this.facade.selected();\n this.initPageOptions();\n this.cd.detectChanges();\n });\n }\n refreshProperties() {\n this.baseComponentRef.setInput('detailsOptions', this.detailsOptions());\n this.baseComponentRef.setInput('mode', this.mode);\n this.baseComponentRef.setInput('uniqueProvider', this.uniqueProvider());\n this.subscription.add(this.baseInstance.onPartialChange.subscribe((val) => this.onPartialChange(val)));\n this.subscription.add(this.baseInstance.onChange.subscribe((val) => this.onChange(val)));\n this.subscription.add(this.baseInstance.onValidChange.subscribe((val) => this.onValidChange(val)));\n }\n async ngOnInit() {\n this.detailsService.init();\n this.styleService.init(this.elementRef);\n this.pageService.checkPermissions();\n if (this.router.routerState.snapshot.url.split('?')[0].endsWith('/add')) {\n this.mode = 'create';\n await this.generateComponents('add');\n }\n else {\n this.mode = this.config.details ? 'details' : 'update';\n if (this.mode === 'update') {\n await this.generateComponents('edit');\n }\n this.activeRoute.params\n .pipe(this.takeUntilDestroy)\n .subscribe(({ id }) => {\n this.facade.select(id);\n this.id = id;\n });\n this.activeRoute.queryParams\n .pipe(this.takeUntilDestroy)\n .subscribe(({ edit }) => {\n if (edit) {\n this.mode = 'update';\n this.generateComponents('edit');\n }\n });\n }\n this.uniqueProvider.set(async (values) => {\n const filter = {\n query: [],\n };\n Object.keys(values).forEach((key) => {\n filter.query.push({\n key: key,\n value: values[key],\n type: '=',\n });\n });\n if (this.id) {\n filter.query.push({\n key: 'id',\n value: this.id,\n type: '!=',\n });\n }\n const { totalCount } = await this.service.getList(filter);\n return !totalCount;\n });\n if (this.config.details) {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n this.config.details['components'] &&\n this.config.details['components'].top\n ? [this.config.details['components'].top]\n : []),\n ...(this.config.details &&\n this.config.details['components'] &&\n this.config.details['components'].bottom\n ? [this.config.details['components'].bottom]\n : []),\n ],\n });\n this.detailsOptions.set({\n type: this.config.type,\n item: this.facade.selected,\n cellPipe: this.config.details\n ? this.config.details.cellPipe\n : undefined,\n componentFactories: {\n top: this.config.details &&\n this.config.details['components'] &&\n this.config.details['components'].top\n ? compiledComponents.find((cc) => cc.component ===\n this.config.details['components'].top)?.factory\n : undefined,\n bottom: this.config.details &&\n this.config.details['components'] &&\n this.config.details['components'].bottom\n ? compiledComponents.find((cc) => cc.component ===\n this.config.details['components'].bottom)?.factory\n : undefined,\n },\n });\n }\n this.initPageOptions();\n this.refreshDynamicInstance();\n }\n ngOnDestroy() {\n super.ngOnDestroy();\n this.subscription.unsubscribe();\n }\n async generateComponents(mode) {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config[mode] &&\n this.config[mode]['components'] &&\n this.config[mode]['components'].top\n ? [this.config[mode]['components'].top]\n : []),\n ...(this.config[mode] &&\n this.config[mode]['components'] &&\n this.config[mode]['components'].bottom\n ? [this.config[mode]['components'].bottom]\n : []),\n ],\n });\n const topComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode]['components']?.top)?.factory;\n const bottomComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode]['components']?.bottom)?.factory;\n if (!this.topTpl()?.get(0) && topComponentFactory) {\n this.topTpl()?.createComponent(topComponentFactory);\n }\n if (!this.bottomTpl()?.get(0) && bottomComponentFactory) {\n this.bottomTpl()?.createComponent(bottomComponentFactory);\n }\n }\n onPartialChange(val) {\n this.formPartialValue = val;\n }\n onChange(val) {\n this.formValue = val;\n }\n onValidChange(val) {\n this.formValid = val;\n }\n initPageOptions() {\n this.pageOptions.set({\n ...this.pageOptions(),\n title: this.getTitle() || '',\n endButtons: this.getButtons(),\n });\n }\n getButtons() {\n const options = getModelOptions(this.config.type);\n switch (this.mode) {\n case 'create':\n return [\n {\n icon: 'add',\n text: 'add',\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n this.facade.create(this.formValue);\n this.location.back();\n },\n },\n ];\n case 'update':\n return [\n ...(this.config.details\n ? [\n {\n icon: 'close',\n text: 'cancel',\n handler: () => {\n this.mode = 'details';\n this.initPageOptions();\n this.topTpl()?.clear();\n this.bottomTpl()?.clear();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : []),\n {\n icon: 'save',\n text: 'save',\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n this.formPartialValue.id = this.id;\n this.facade.updatePartial(this.formPartialValue);\n if (this.config.details) {\n this.mode = 'details';\n this.initPageOptions();\n }\n else {\n this.location.back();\n }\n },\n },\n ];\n case 'details':\n return this.config.edit &&\n (!options?.update?.enabled ||\n SpecificationService.valid(this.item, options?.update?.enabled))\n ? [\n {\n icon: 'create',\n text: 'edit',\n handler: () => {\n this.mode = 'update';\n this.generateComponents('edit');\n this.initPageOptions();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : [];\n default:\n return undefined;\n }\n }\n getTitle() {\n const options = getModelOptions(this.config.type);\n const prefix = options.titleKey && this.item\n ? this.removeParagraph(this.item[options.titleKey]) + ' - '\n : '';\n switch (this.mode) {\n case 'create':\n return 'add';\n case 'update':\n return prefix + this.translateService.instant('change');\n case 'details':\n return prefix + this.translateService.instant('details');\n default:\n return undefined;\n }\n }\n removeParagraph(val) {\n if (!val || val.indexOf('<p>') !== 0)\n return val;\n const div = document.createElement('div');\n div.innerHTML = val;\n const item = div.querySelectorAll('p').item(0);\n return item.innerHTML;\n }\n checkFirstInvalid() {\n this.cd.detectChanges();\n const form = this.template() === 'default'\n ? this.standardComponents()?.[0]?.formComponents?.[0]?.form\n : this.baseInstance.formComponents()[0].form;\n this.cd.detectChanges();\n if (form.valid)\n return false;\n const invalidFields = [];\n this.getInvalidFields(form, invalidFields, '');\n this.toastService.info({\n title: this.translateService.instant('INPUT.ERRORS.requires'),\n message: invalidFields.slice(0, 3).join('<br/>'),\n });\n return true;\n }\n getInvalidFields(control, invalidFields, baseField, key = null) {\n if (control.valid)\n return;\n const field = key\n ? baseField + ' > ' + this.translateService.instant('MODEL.' + key)\n : baseField;\n if (control.errors?.['customMessage']) {\n invalidFields.push(field + ` (${control.errors['customMessage']})`);\n return;\n }\n if (control instanceof UntypedFormControl) {\n invalidFields.push(field);\n }\n if (control instanceof UntypedFormGroup) {\n Object.keys(control.controls).forEach((groupKey) => {\n this.getInvalidFields(control.controls[groupKey], invalidFields, field, groupKey);\n });\n }\n if (control instanceof UntypedFormArray) {\n control.controls.forEach((c, index) => {\n this.getInvalidFields(c, invalidFields, field + `(${index + 1})`);\n });\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ItemComponent, isStandalone: true, selector: \"smart-crud-item-page\", viewQueries: [{ propertyName: \"standardComponents\", predicate: ItemStandardComponent, descendants: true, isSignal: true }, { propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }, { propertyName: \"topTpl\", first: true, predicate: [\"topTpl\"], descendants: true, isSignal: true }, { propertyName: \"bottomTpl\", first: true, predicate: [\"bottomTpl\"], descendants: true, isSignal: true }, { propertyName: \"dynamicContents\", predicate: DynamicContentDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl class=\"text-xl py-2.5 separator\"></div>\n @if (template() === 'default') {\n <smart-crud-item-standard-page\n [detailsOptions]=\"detailsOptions()\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider()\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"text-xl py-2.5 separator\"></div>\n </smart-page>\n `, isInline: true, dependencies: [{ kind: \"component\", type: PageComponent, selector: \"smart-page\", inputs: [\"options\"] }, { kind: \"component\", type: ItemStandardComponent, selector: \"smart-crud-item-standard-page\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ItemComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-item-page',\n imports: [PageComponent, ItemStandardComponent, NgTemplateOutlet],\n template: `\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl class=\"text-xl py-2.5 separator\"></div>\n @if (template() === 'default') {\n <smart-crud-item-standard-page\n [detailsOptions]=\"detailsOptions()\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider()\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"text-xl py-2.5 separator\"></div>\n </smart-page>\n `,\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9pdGVtL2l0ZW0uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM3RCxPQUFPLEVBQ0wsaUJBQWlCLEVBQ2pCLFNBQVMsRUFFVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFLTixNQUFNLEVBRU4sU0FBUyxFQUNULFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsR0FDakIsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxlQUFlLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRXJELE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsY0FBYyxFQUNkLHNCQUFzQixFQUN0Qix1QkFBdUIsRUFLdkIsYUFBYSxFQUNiLFlBQVksRUFDWixZQUFZLEdBQ2IsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwrQkFBK0Is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SixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxJQUFJLE9BQU8sWUFBWSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFO2dCQUNwQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxFQUFFLGFBQWEsRUFBRSxLQUFLLEdBQUcsSUFBSSxLQUFLLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDO3VHQXJiVSxhQUFhOzJGQUFiLGFBQWEsdUhBZ0RVLHFCQUFxQiw0WUFVckQsdUJBQXVCLHVGQWpGZjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBcUJULDREQXRCUyxhQUFhLDRFQUFFLHFCQUFxQiwwRUFBRSxnQkFBZ0I7OzJGQXdCckQsYUFBYTtrQkExQnpCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHNCQUFzQjtvQkFDaEMsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLHFCQUFxQixFQUFFLGdCQUFnQixDQUFDO29CQUNqRSxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCVDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFNpZ25hbCxcbiAgc2lnbmFsLFxuICBUZW1wbGF0ZVJlZixcbiAgdmlld0NoaWxkLFxuICB2aWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFdyaXRhYmxlU2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgVW50eXBlZEZvcm1BcnJheSxcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7XG4gIENyZWF0ZUR5bmFtaWNDb21wb25lbnQsXG4gIERldGFpbHNTZXJ2aWNlLFxuICBEeW5hbWljQ29tcG9uZW50TG9hZGVyLFxuICBEeW5hbWljQ29udGVudERpcmVjdGl2ZSxcbiAgSUNlbGxQaXBlLFxuICBJRGV0YWlsc09wdGlvbnMsXG4gIElJY29uQnV0dG9uT3B0aW9ucyxcbiAgSVBhZ2VPcHRpb25zLFxuICBQYWdlQ29tcG9uZW50LFxuICBTdHlsZVNlcnZpY2UsXG4gIFRvYXN0U2VydmljZSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcbmltcG9ydCB7IGdldE1vZGVsT3B0aW9ucyB9IGZyb20gJ0BzbWFydHNvZnQwMDEvbW9kZWxzJztcbmltcG9ydCB7IFNwZWNpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS91dGlscyc7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuLi8uLi9jcnVkLmNvbmZpZyc7XG5pbXBvcnQgeyBJQ3J1ZEZpbHRlciB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBDcnVkSXRlbVBhZ2VCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcbmltcG9ydCB7IEl0ZW1TdGFuZGFyZENvbXBvbmVudCB9IGZyb20gJy4vc3RhbmRhcmQvc3RhbmRhcmQuY29tcG9uZW50JztcbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY3J1ZC9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtaXRlbS1wYWdlJyxcbiAgaW1wb3J0czogW1BhZ2VDb21wb25lbnQsIEl0ZW1TdGFuZGFyZENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgPHNtYXJ0LXBhZ2UgW29wdGlvbnNdPVwicGFnZU9wdGlvbnMoKVwiPlxuICAgICAgPGRpdiAjdG9wVHBsIGNsYXNzPVwidGV4dC14bCBweS0yLjUgc2VwYXJhdG9yXCI+PC9kaXY+XG4gICAgICBAaWYgKHRlbXBsYXRlKCkgPT09ICdkZWZhdWx0Jykge1xuICAgICAgICA8c21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2VcbiAgICAgICAgICBbZGV0YWlsc09wdGlvbnNdPVwiZGV0YWlsc09wdGlvbnMoKVwiXG4gICAgICAgICAgW21vZGVdPVwibW9kZVwiXG4gICAgICAgICAgW3VuaXF1ZVByb3ZpZGVyXT1cInVuaXF1ZVByb3ZpZGVyKClcIlxuICAgICAgICAgIChvblBhcnRpYWxDaGFuZ2UpPVwib25QYXJ0aWFsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAob25WYWxpZENoYW5nZSk9XCJvblZhbGlkQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50VHBsXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvc21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2U+XG4gICAgICB9XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnRUcGw+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1jb250ZW50XCI+PC9kaXY+XG4gICAgICA8ZGl2ICNib3R0b21UcGwgY2xhc3M9XCJ0ZXh0LXhsIHB5LTIuNSBzZXBhcmF0b3JcIj48L2Rpdj5cbiAgICA8L3NtYXJ0LXBhZ2U+XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIEl0ZW1Db21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBDcmVhdGVEeW5hbWljQ29tcG9uZW50PENydWRJdGVtUGFnZUJhc2VDb21wb25lbnQ8YW55Pj4oXG4gICAgJ2NydWQtaXRlbS1wYWdlJyxcbiAgKVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XG4gIHByaXZhdGUgYWN0aXZlUm91dGUgPSBpbmplY3QoQWN0aXZhdGVkUm91dGUpO1xuICBwcml2YXRlIGZhY2FkZSA9IGluamVjdChDcnVkRmFjYWRlPFQ+KTtcbiAgcHJpdmF0ZSBzZXJ2aWNlID0gaW5qZWN0KENydWRTZXJ2aWNlPFQ+KTtcbiAgcHJpdmF0ZSBkeW5hbWljQ29tcG9uZW50TG9hZGVyID0gaW5qZWN0KER5bmFtaWNDb21wb25lbnRMb2FkZXI8VD4pO1xuICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2UgPSBpbmplY3QoVHJhbnNsYXRlU2VydmljZSk7XG4gIHB1YmxpYyBjb25maWcgPSBpbmplY3QoQ3J1ZEZ1bGxDb25maWc8VD4pO1xuICBwcml2YXRlIGxvY2F0aW9uID0gaW5qZWN0KExvY2F0aW9uKTtcbiAgcHJpdmF0ZSBjZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gIHByaXZhdGUgc3R5bGVTZXJ2aWNlID0gaW5qZWN0KFN0eWxlU2VydmljZSk7XG4gIHByaXZhdGUgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcHJpdmF0ZSB0b2FzdFNlcnZpY2UgPSBpbmplY3QoVG9hc3RTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBwYWdlU2VydmljZSA9IGluamVjdChQYWdlU2VydmljZTxUPik7XG4gIHByaXZhdGUgZGV0YWlsc1NlcnZpY2UgPSBpbmplY3QoRGV0YWlsc1NlcnZpY2UpO1xuXG4gIHByaXZhdGUgX21vZGUhOiBXcml0YWJsZVNpZ25hbDxzdHJpbmc+O1xuXG4gIHBhZ2VPcHRpb25zOiBXcml0YWJsZVNpZ25hbDxJUGFnZU9wdGlvbnM+ID0gc2lnbmFsKHtcbiAgICB0aXRsZTogJycsXG4gICAgc2hvd0JhY2tCdXR0b246IHRydWUsXG4gICAgaGlkZU1lbnVCdXR0b246IHRydWUsXG4gIH0pO1xuICBkZXRhaWxzT3B0aW9ucyE6IFdyaXRhYmxlU2lnbmFsPElEZXRhaWxzT3B0aW9uczxUPj47XG4gIGlkITogc3RyaW5nO1xuICBmb3JtVmFsdWUhOiBUO1xuICBmb3JtVmFsaWQgPSBmYWxzZTtcbiAgaXRlbSE6IFQ7XG4gIGZvcm1QYXJ0aWFsVmFsdWUhOiBQYXJ0aWFsPFQ+O1xuICB1bmlxdWVQcm92aWRlciE6IFdyaXRhYmxlU2lnbmFsPFxuICAgICh2YWx1ZXM6IFJlY29yZDxrZXlvZiBULCBhbnk+KSA9PiBQcm9taXNlPGJvb2xlYW4+XG4gID47XG5cbiAgc2V0IG1vZGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9tb2RlID0gc2lnbmFsKHZhbCk7XG4gICAgdGhpcy5yZWZyZXNoRHluYW1pY0luc3RhbmNlKCk7XG4gIH1cbiAgZ2V0IG1vZGUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fbW9kZSgpO1xuICB9XG5cbiAgc2VsZWN0ZWQ6IFNpZ25hbDxUPjtcblxuICBzdGFuZGFyZENvbXBvbmVudHMgPSB2aWV3Q2hpbGRyZW4oSXRlbVN0YW5kYXJkQ29tcG9uZW50KTtcbiAgLy8gQFZpZXdDaGlsZChJb25Db250ZW50LCB7IHN0YXRpYzogdHJ1ZSB9KSBjb250ZW50OiBJb25Db250ZW50OyAvL1RPRE86IHJld3JpdGUgd2hlbiByZXdyaXRpbmcgaW9uaWNcblxuICBvdmVycmlkZSBjb250ZW50VHBsID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdjb250ZW50VHBsJyk7XG5cbiAgdG9wVHBsID0gdmlld0NoaWxkPFZpZXdDb250YWluZXJSZWY+KCd0b3BUcGwnKTtcblxuICBib3R0b21UcGwgPSB2aWV3Q2hpbGQ8Vmlld0NvbnRhaW5lclJlZj4oJ2JvdHRvbVRwbCcpO1xuXG4gIG92ZXJyaWRlIGR5bmFtaWNDb250ZW50cyA9IHZpZXdDaGlsZHJlbjxEeW5hbWljQ29udGVudERpcmVjdGl2ZT4oXG4gICAgRHluYW1pY0NvbnRlbnREaXJlY3RpdmUsXG4gICk7XG5cbiAgc3Vic2NyaXB0aW9uID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLnNlbGVjdGVkID0gdGhpcy5mYWNhZGUuc2VsZWN0ZWQ7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgdGhpcy5pdGVtID0gdGhpcy5mYWNhZGUuc2VsZWN0ZWQoKTtcbiAgICAgIHRoaXMuaW5pdFBhZ2VPcHRpb25zKCk7XG4gICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICB9KTtcbiAgfVxuXG4gIG92ZXJyaWRlIHJlZnJlc2hQcm9wZXJ0aWVzKCkge1xuICAgIHRoaXMuYmFzZUNvbXBvbmVudFJlZi5zZXRJbnB1dCgnZGV0YWlsc09wdGlvbnMnLCB0aGlzLmRldGFpbHNPcHRpb25zKCkpO1xuICAgIHRoaXMuYmFzZUNvbXBvbmVudFJlZi5zZXRJbnB1dCgnbW9kZScsIHRoaXMubW9kZSk7XG4gICAgdGhpcy5iYXNlQ29tcG9uZW50UmVmLnNldElucHV0KCd1bmlxdWVQcm92aWRlcicsIHRoaXMudW5pcXVlUHJvdmlkZXIoKSk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5iYXNlSW5zdGFuY2Uub25QYXJ0aWFsQ2hhbmdlLnN1YnNjcmliZSgodmFsKSA9PlxuICAgICAgICB0aGlzLm9uUGFydGlhbENoYW5nZSh2YWwpLFxuICAgICAgKSxcbiAgICApO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLmFkZChcbiAgICAgIHRoaXMuYmFzZUluc3RhbmNlLm9uQ2hhbmdlLnN1YnNjcmliZSgodmFsKSA9PiB0aGlzLm9uQ2hhbmdlKHZhbCkpLFxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24uYWRkKFxuICAgICAgdGhpcy5iYXNlSW5zdGFuY2Uub25WYWxpZENoYW5nZS5zdWJzY3JpYmUoKHZhbCkgPT5cbiAgICAgICAgdGhpcy5vblZhbGlkQ2hhbmdlKHZhbCksXG4gICAgICApLFxuICAgICk7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLmRldGFpbHNTZXJ2aWNlLmluaXQoKTtcbiAgICB0aGlzLnN0eWxlU2VydmljZS5pbml0KHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLnBhZ2VTZXJ2aWNlLmNoZWNrUGVybWlzc2lvbnMoKTtcblxuICAgIGlmICh0aGlzLnJvdXRlci5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmwuc3BsaXQoJz8nKVswXS5lbmRzV2l0aCgnL2FkZCcpKSB7XG4gICAgICB0aGlzLm1vZGUgPSAnY3JlYXRlJztcbiAgICAgIGF3YWl0IHRoaXMuZ2VuZXJhdGVDb21wb25lbnRzKCdhZGQnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5tb2RlID0gdGhpcy5jb25maWcuZGV0YWlscyA/ICdkZXRhaWxzJyA6ICd1cGRhdGUnO1xuXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCB0aGlzLmdlbmVyYXRlQ29tcG9uZW50cygnZWRpdCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnBhcmFtc1xuICAgICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAgIC5zdWJzY3JpYmUoKHsgaWQgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuZmFjYWRlLnNlbGVjdChpZCk7XG4gICAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAgIC5zdWJzY3JpYmUoKHsgZWRpdCB9KSA9PiB7XG4gICAgICAgICAgaWYgKGVkaXQpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZSA9ICd1cGRhdGUnO1xuICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNvbXBvbmVudHMoJ2VkaXQnKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudW5pcXVlUHJvdmlkZXIuc2V0KGFzeW5jICh2YWx1ZXMpID0+IHtcbiAgICAgIGNvbnN0IGZpbHRlcjogSUNydWRGaWx0ZXIgPSB7XG4gICAgICAgIHF1ZXJ5OiBbXSxcbiAgICAgIH07XG5cbiAgICAgIE9iamVjdC5rZXlzKHZhbHVlcykuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgIGZpbHRlci5xdWVyeSEucHVzaCh7XG4gICAgICAgICAga2V5OiBrZXksXG4gICAgICAgICAgdmFsdWU6ICh2YWx1ZXMgYXMgYW55KVtrZXldLFxuICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgZmlsdGVyLnF1ZXJ5IS5wdXNoKHtcbiAgICAgICAgICBrZXk6ICdpZCcsXG4gICAgICAgICAgdmFsdWU6IHRoaXMuaWQsXG4gICAgICAgICAgdHlwZTogJyE9JyxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCB7IHRvdGFsQ291bnQgfSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRMaXN0KGZpbHRlcik7XG5cbiAgICAgIHJldHVybiAhdG90YWxDb3VudDtcbiAgICB9KTtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5kZXRhaWxzKSB7XG4gICAgICBjb25zdCBjb21waWxlZENvbXBvbmVudHM6IHtcbiAgICAgICAgY29tcG9uZW50OiBhbnk7XG4gICAgICAgIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8YW55PjtcbiAgICAgIH1bXSA9IGF3YWl0IHRoaXMuZHluYW1pY0NvbXBvbmVudExvYWRlci5nZXRDb21wb25lbnRzV2l0aEZhY3Rvcmllcyh7XG4gICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXSAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXS50b3BcbiAgICAgICAgICAgID8gWyh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXS50b3BdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXSAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXS5ib3R0b21cbiAgICAgICAgICAgID8gWyh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXS5ib3R0b21dXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLmRldGFpbHNPcHRpb25zLnNldCh7XG4gICAgICAgIHR5cGU6IHRoaXMuY29uZmlnLnR5cGUsXG4gICAgICAgIGl0ZW06IHRoaXMuZmFjYWRlLnNlbGVjdGVkLFxuICAgICAgICBjZWxsUGlwZTogdGhpcy5jb25maWcuZGV0YWlsc1xuICAgICAgICAgID8gKHRoaXMuY29uZmlnLmRldGFpbHMgYXMgeyBjZWxsUGlwZT86IElDZWxsUGlwZTxUPiB9KS5jZWxsUGlwZVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBjb21wb25lbnRGYWN0b3JpZXM6IHtcbiAgICAgICAgICB0b3A6XG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICAodGhpcy5jb25maWcuZGV0YWlscyBhcyBhbnkpWydjb21wb25lbnRzJ10gJiZcbiAgICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSlbJ2NvbXBvbmVudHMnXS50b3BcbiAgICAgICAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAgIChjYykgPT5cbiAgICAgICAgICAgICAgICAgICAgY2MuY29tcG9uZW50ID09PVxuICAgICAgICAgICAgICAgICAgICAodGhpcy5jb25maWcuZGV0YWlscyBhcyBhbnkpWydjb21wb25lbnRzJ10udG9wLFxuICAgICAgICAgICAgICAgICk/LmZhY3RvcnlcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICAgKHRoaXMuY29uZmlnLmRldGFpbHMgYXMgYW55KVsnY29tcG9uZW50cyddICYmXG4gICAgICAgICAgICAodGhpcy5jb25maWcuZGV0YWlscyBhcyBhbnkpWydjb21wb25lbnRzJ10uYm90dG9tXG4gICAgICAgICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAoY2MpID0+XG4gICAgICAgICAgICAgICAgICAgIGNjLmNvbXBvbmVudCA9PT1cbiAgICAgICAgICAgICAgICAgICAgKHRoaXMuY29uZmlnLmRldGFpbHMgYXMgYW55KVsnY29tcG9uZW50cyddLmJvdHRvbSxcbiAgICAgICAgICAgICAgICApPy5mYWN0b3J5XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcblxuICAgIHRoaXMucmVmcmVzaER5bmFtaWNJbnN0YW5jZSgpO1xuICB9XG5cbiAgb3ZlcnJpZGUgbmdPbkRlc3Ryb3koKSB7XG4gICAgc3VwZXIubmdPbkRlc3Ryb3koKTtcblxuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlQ29tcG9uZW50cyhtb2RlOiAnYWRkJyB8ICdlZGl0Jykge1xuICAgIGNvbnN0IGNvbXBpbGVkQ29tcG9uZW50cyA9XG4gICAgICBhd2FpdCB0aGlzLmR5bmFtaWNDb21wb25lbnRMb2FkZXIuZ2V0Q29tcG9uZW50c1dpdGhGYWN0b3JpZXMoe1xuICAgICAgICBjb21wb25lbnRzOiBbXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnW21vZGVdICYmXG4gICAgICAgICAgKHRoaXMuY29uZmlnW21vZGVdIGFzIGFueSlbJ2NvbXBvbmVudHMnXSAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZ1ttb2RlXSBhcyBhbnkpWydjb21wb25lbnRzJ10udG9wXG4gICAgICAgICAgICA/IFsodGhpcy5jb25maWdbbW9kZV0gYXMgYW55KVsnY29tcG9uZW50cyddLnRvcF1cbiAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIC4uLih0aGlzLmNvbmZpZ1ttb2RlXSAmJlxuICAgICAgICAgICh0aGlzLmNvbmZpZ1ttb2RlXSBhcyBhbnkpWydjb21wb25lbnRzJ10gJiZcbiAgICAgICAgICAodGhpcy5jb25maWdbbW9kZV0gYXMgYW55KVsnY29tcG9uZW50cyddLmJvdHRvbVxuICAgICAgICAgICAgPyBbKHRoaXMuY29uZmlnW21vZGVdIGFzIGFueSlbJ2NvbXBvbmVudHMnXS5ib3R0b21dXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgdG9wQ29tcG9uZW50RmFjdG9yeSA9IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09ICh0aGlzLmNvbmZpZ1ttb2RlXSBhcyBhbnkpWydjb21wb25lbnRzJ10/LnRvcCxcbiAgICApPy5mYWN0b3J5O1xuXG4gICAgY29uc3QgYm90dG9tQ29tcG9uZW50RmFjdG9yeSA9IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09ICh0aGlzLmNvbmZpZ1ttb2RlXSBhcyBhbnkpWydjb21wb25lbnRzJ10/LmJvdHRvbSxcbiAgICApPy5mYWN0b3J5O1xuXG4gICAgaWYgKCF0aGlzLnRvcFRwbCgpPy5nZXQoMCkgJiYgdG9wQ29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgdGhpcy50b3BUcGwoKT8uY3JlYXRlQ29tcG9uZW50KHRvcENvbXBvbmVudEZhY3RvcnkpO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5ib3R0b21UcGwoKT8uZ2V0KDApICYmIGJvdHRvbUNvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgIHRoaXMuYm90dG9tVHBsKCk/LmNyZWF0ZUNvbXBvbmVudChib3R0b21Db21wb25lbnRGYWN0b3J5KTtcbiAgICB9XG4gIH1cblxuICBvblBhcnRpYWxDaGFuZ2UodmFsOiBQYXJ0aWFsPFQ+KSB7XG4gICAgdGhpcy5mb3JtUGFydGlhbFZhbHVlID0gdmFsO1xuICB9XG5cbiAgb25DaGFuZ2UodmFsOiBUKSB7XG4gICAgdGhpcy5mb3JtVmFsdWUgPSB2YWw7XG4gIH1cblxuICBvblZhbGlkQ2hhbmdlKHZhbDogYm9vbGVhbikge1xuICAgIHRoaXMuZm9ybVZhbGlkID0gdmFsO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0UGFnZU9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlT3B0aW9ucy5zZXQoe1xuICAgICAgLi4udGhpcy5wYWdlT3B0aW9ucygpLFxuICAgICAgdGl0bGU6IHRoaXMuZ2V0VGl0bGUoKSB8fCAnJyxcbiAgICAgIGVuZEJ1dHRvbnM6IHRoaXMuZ2V0QnV0dG9ucygpLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRCdXR0b25zKCk6IEFycmF5PElJY29uQnV0dG9uT3B0aW9ucz4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModGhpcy5jb25maWcudHlwZSk7XG5cbiAgICBzd2l0Y2ggKHRoaXMubW9kZSkge1xuICAgICAgY2FzZSAnY3JlYXRlJzpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpY29uOiAnYWRkJyxcbiAgICAgICAgICAgIHRleHQ6ICdhZGQnLFxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0ZpcnN0SW52YWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5mYWNhZGUuY3JlYXRlKHRoaXMuZm9ybVZhbHVlKTtcbiAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICBjYXNlICd1cGRhdGUnOlxuICAgICAgICByZXR1cm4gW1xuICAgICAgICAgIC4uLih0aGlzLmNvbmZpZy5kZXRhaWxzXG4gICAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBpY29uOiAnY2xvc2UnLFxuICAgICAgICAgICAgICAgICAgdGV4dDogJ2NhbmNlbCcsXG4gICAgICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9ICdkZXRhaWxzJztcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy50b3BUcGwoKT8uY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ib3R0b21UcGwoKT8uY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBkaXNhYmxlZCQ6IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIDogW10pLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIGljb246ICdzYXZlJyxcbiAgICAgICAgICAgIHRleHQ6ICdzYXZlJyxcbiAgICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuY2hlY2tGaXJzdEludmFsaWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHRoaXMuZm9ybVBhcnRpYWxWYWx1ZS5pZCA9IHRoaXMuaWQ7XG4gICAgICAgICAgICAgIHRoaXMuZmFjYWRlLnVwZGF0ZVBhcnRpYWwodGhpcy5mb3JtUGFydGlhbFZhbHVlIGFzIGFueSk7XG5cbiAgICAgICAgICAgICAgaWYgKHRoaXMuY29uZmlnLmRldGFpbHMpIHtcbiAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSAnZGV0YWlscyc7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgY2FzZSAnZGV0YWlscyc6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5lZGl0ICYmXG4gICAgICAgICAgKCFvcHRpb25zPy51cGRhdGU/LmVuYWJsZWQgfHxcbiAgICAgICAgICAgIFNwZWNpZmljYXRpb25TZXJ2aWNlLnZhbGlkKHRoaXMuaXRlbSwgb3B0aW9ucz8udXBkYXRlPy5lbmFibGVkKSlcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGljb246ICdjcmVhdGUnLFxuICAgICAgICAgICAgICAgIHRleHQ6ICdlZGl0JyxcbiAgICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLm1vZGUgPSAndXBkYXRlJztcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDb21wb25lbnRzKCdlZGl0Jyk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmluaXRQYWdlT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQkOiBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdldFRpdGxlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGdldE1vZGVsT3B0aW9ucyh0aGlzLmNvbmZpZy50eXBlKTtcblxuICAgIGNvbnN0IHByZWZpeCA9XG4gICAgICBvcHRpb25zLnRpdGxlS2V5ICYmIHRoaXMuaXRlbVxuICAgICAgICA/IHRoaXMucmVtb3ZlUGFyYWdyYXBoKCh0aGlzLml0ZW0gYXMgYW55KVtvcHRpb25zLnRpdGxlS2V5XSkgKyAnIC0gJ1xuICAgICAgICA6ICcnO1xuXG4gICAgc3dpdGNoICh0aGlzLm1vZGUpIHtcbiAgICAgIGNhc2UgJ2NyZWF0ZSc6XG4gICAgICAgIHJldHVybiAnYWRkJztcbiAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgIHJldHVybiBwcmVmaXggKyB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnY2hhbmdlJyk7XG4gICAgICBjYXNlICdkZXRhaWxzJzpcbiAgICAgICAgcmV0dXJuIHByZWZpeCArIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KCdkZXRhaWxzJyk7XG4gICAgICBkZWZhdWx0OlxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGFyYWdyYXBoKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCB8fCB2YWwuaW5kZXhPZignPHA+JykgIT09IDApIHJldHVybiB2YWw7XG5cbiAgICBjb25zdCBkaXYgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICBkaXYuaW5uZXJIVE1MID0gdmFsO1xuXG4gICAgY29uc3QgaXRlbSA9IGRpdi5xdWVyeVNlbGVjdG9yQWxsKCdwJykuaXRlbSgwKTtcblxuICAgIHJldHVybiBpdGVtLmlubmVySFRNTDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGaXJzdEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBjb25zdCBmb3JtID1cbiAgICAgIHRoaXMudGVtcGxhdGUoKSA9PT0gJ2RlZmF1bHQnXG4gICAgICAgID8gKHRoaXMuc3RhbmRhcmRDb21wb25lbnRzKCkgYXMgYW55KT8uWzBdPy5mb3JtQ29tcG9uZW50cz8uWzBdPy5mb3JtXG4gICAgICAgIDogdGhpcy5iYXNlSW5zdGFuY2UuZm9ybUNvbXBvbmVudHMoKVswXS5mb3JtO1xuXG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBpZiAoZm9ybS52YWxpZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgY29uc3QgaW52YWxpZEZpZWxkczogc3RyaW5nW10gPSBbXTtcblxuICAgIHRoaXMuZ2V0SW52YWxpZEZpZWxkcyhmb3JtLCBpbnZhbGlkRmllbGRzLCAnJyk7XG5cbiAgICB0aGlzLnRvYXN0U2VydmljZS5pbmZvKHtcbiAgICAgIHRpdGxlOiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudCgnSU5QVVQuRVJST1JTLnJlcXVpcmVzJyksXG4gICAgICBtZXNzYWdlOiBpbnZhbGlkRmllbGRzLnNsaWNlKDAsIDMpLmpvaW4oJzxici8+JyksXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW52YWxpZEZpZWxkcyhcbiAgICBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsXG4gICAgaW52YWxpZEZpZWxkczogYW55W10sXG4gICAgYmFzZUZpZWxkOiBzdHJpbmcsXG4gICAga2V5ID0gbnVsbCxcbiAgKSB7XG4gICAgaWYgKGNvbnRyb2wudmFsaWQpIHJldHVybjtcblxuICAgIGNvbnN0IGZpZWxkID0ga2V5XG4gICAgICA/IGJhc2VGaWVsZCArICcgPiAnICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01PREVMLicgKyBrZXkpXG4gICAgICA6IGJhc2VGaWVsZDtcblxuICAgIGlmIChjb250cm9sLmVycm9ycz8uWydjdXN0b21NZXNzYWdlJ10pIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaChmaWVsZCArIGAgKCR7Y29udHJvbC5lcnJvcnNbJ2N1c3RvbU1lc3NhZ2UnXX0pYCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgIGludmFsaWRGaWVsZHMucHVzaChmaWVsZCk7XG4gICAgfVxuXG4gICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUdyb3VwKSB7XG4gICAgICBPYmplY3Qua2V5cyhjb250cm9sLmNvbnRyb2xzKS5mb3JFYWNoKChncm91cEtleSkgPT4ge1xuICAgICAgICB0aGlzLmdldEludmFsaWRGaWVsZHMoXG4gICAgICAgICAgY29udHJvbC5jb250cm9sc1tncm91cEtleV0sXG4gICAgICAgICAgaW52YWxpZEZpZWxkcyxcbiAgICAgICAgICBmaWVsZCxcbiAgICAgICAgICBncm91cEtleSBhcyBhbnksXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQXJyYXkpIHtcbiAgICAgIGNvbnRyb2wuY29udHJvbHMuZm9yRWFjaCgoYywgaW5kZXgpID0+IHtcbiAgICAgICAgdGhpcy5nZXRJbnZhbGlkRmllbGRzKGMsIGludmFsaWRGaWVsZHMsIGZpZWxkICsgYCgke2luZGV4ICsgMX0pYCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==","import { Directive, inject, input, viewChild, } from '@angular/core';\nimport { BaseComponent, } from '@smartsoft001/angular';\nimport { CrudFullConfig } from '../../../crud.config';\nimport * as i0 from \"@angular/core\";\nexport class CrudListPageBaseComponent extends BaseComponent {\n config = inject((CrudFullConfig));\n static smartType = 'crud-list-page';\n contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n listOptions = input(...(ngDevMode ? [undefined, { debugName: \"listOptions\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListPageBaseComponent, deps: null, target: i0.ɵɵFactoryTarget.Directive });\n static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.2.0\", version: \"20.1.0\", type: CrudListPageBaseComponent, isStandalone: true, inputs: { listOptions: { classPropertyName: \"listOptions\", publicName: \"listOptions\", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0 });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudListPageBaseComponent, decorators: [{\n type: Directive\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9saXN0L2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxNQUFNLEVBQ04sS0FBSyxFQUNMLFNBQVMsR0FFVixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0wsYUFBYSxHQUdkLE1BQU0sdUJBQXVCLENBQUM7QUFHL0IsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHNCQUFzQixDQUFDOztBQUd0RCxNQUFNLE9BQWdCLHlCQUVwQixTQUFRLGFBQWE7SUFDZCxNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsY0FBaUIsQ0FBQSxDQUFDLENBQUM7SUFFMUMsTUFBTSxDQUFDLFNBQVMsR0FBeUIsZ0JBQWdCLENBQUM7SUFFMUQsVUFBVSxHQUFHLFNBQVMsQ0FBbUIsWUFBWSxzREFBQyxDQUFDO0lBRXZELFdBQVcsR0FBRyxLQUFLLGlFQUEwQixDQUFDO3VHQVQxQix5QkFBeUI7MkZBQXpCLHlCQUF5Qjs7MkZBQXpCLHlCQUF5QjtrQkFEOUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgdmlld0NoaWxkLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtcbiAgQmFzZUNvbXBvbmVudCxcbiAgRHluYW1pY0NvbXBvbmVudFR5cGUsXG4gIElMaXN0T3B0aW9ucyxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jcnVkLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQ8XG4gIFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4sXG4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gIHB1YmxpYyBjb25maWcgPSBpbmplY3QoQ3J1ZEZ1bGxDb25maWc8VD4pO1xuXG4gIHN0YXRpYyBzbWFydFR5cGU6IER5bmFtaWNDb21wb25lbnRUeXBlID0gJ2NydWQtbGlzdC1wYWdlJztcblxuICBjb250ZW50VHBsID0gdmlld0NoaWxkPFZpZXdDb250YWluZXJSZWY+KCdjb250ZW50VHBsJyk7XG5cbiAgbGlzdE9wdGlvbnMgPSBpbnB1dDxJTGlzdE9wdGlvbnM8VD4gfCBudWxsPigpO1xufVxuIl19","import { Component, computed, inject } from '@angular/core';\nimport { ListComponent } from '@smartsoft001/angular';\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport { FiltersConfigComponent, GroupComponent } from '../../../components';\nimport { CrudFullConfig } from '../../../crud.config';\nimport { CrudListGroupService } from '../../../services/list-group/list-group.service';\nimport { CrudListPageBaseComponent } from '../base/base.component';\nimport * as i0 from \"@angular/core\";\nexport class ListStandardComponent extends CrudListPageBaseComponent {\n facade = inject((CrudFacade));\n config = inject((CrudFullConfig));\n isSearch = computed(() => !!this.facade.filter()?.searchText, ...(ngDevMode ? [{ debugName: \"isSearch\" }] : []));\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ListStandardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ListStandardComponent, isStandalone: true, selector: \"smart-crud-list-standard-page\", providers: [CrudListGroupService], usesInheritance: true, ngImport: i0, template: `\n <smart-crud-filters-config></smart-crud-filters-config>\n @let groups = config.list?.groups;\n @if (listOptions()) {\n <smart-list\n [hidden]=\"groups && !isSearch()\"\n [options]=\"listOptions()!\"\n ></smart-list>\n }\n @if (groups && !isSearch()) {\n <smart-crud-group\n [groups]=\"groups\"\n [listOptions]=\"listOptions() || null\"\n ></smart-crud-group>\n }\n `, isInline: true, dependencies: [{ kind: \"component\", type: FiltersConfigComponent, selector: \"smart-crud-filters-config\" }, { kind: \"component\", type: ListComponent, selector: \"smart-list\", inputs: [\"options\"] }, { kind: \"component\", type: GroupComponent, selector: \"smart-crud-group\", inputs: [\"groups\", \"listOptions\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ListStandardComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-list-standard-page',\n template: `\n <smart-crud-filters-config></smart-crud-filters-config>\n @let groups = config.list?.groups;\n @if (listOptions()) {\n <smart-list\n [hidden]=\"groups && !isSearch()\"\n [options]=\"listOptions()!\"\n ></smart-list>\n }\n @if (groups && !isSearch()) {\n <smart-crud-group\n [groups]=\"groups\"\n [listOptions]=\"listOptions() || null\"\n ></smart-crud-group>\n }\n `,\n imports: [FiltersConfigComponent, ListComponent, GroupComponent],\n providers: [CrudListGroupService],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGFnZXMvbGlzdC9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUd0RCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUN2RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQzs7QUF1Qm5FLE1BQU0sT0FBTyxxQkFFWCxTQUFRLHlCQUE0QjtJQUNuQixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBYSxDQUFBLENBQUMsQ0FBQztJQUN2QixNQUFNLEdBQUcsTUFBTSxDQUFDLENBQUEsY0FBaUIsQ0FBQSxDQUFDLENBQUM7SUFFNUQsUUFBUSxHQUFvQixRQUFRLENBQ2xDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLFVBQVUsb0RBQ3pDLENBQUM7dUdBUlMscUJBQXFCOzJGQUFyQixxQkFBcUIsNEVBRnJCLENBQUMsb0JBQW9CLENBQUMsaURBakJ2Qjs7Ozs7Ozs7Ozs7Ozs7O0dBZVQsNERBQ1Msc0JBQXNCLHNFQUFFLGFBQWEsNEVBQUUsY0FBYzs7MkZBR3BELHFCQUFxQjtrQkFyQmpDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLCtCQUErQjtvQkFDekMsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7R0FlVDtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO29CQUNoRSxTQUFTLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIFNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBMaXN0Q29tcG9uZW50IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gJy4uLy4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZSc7XG5pbXBvcnQgeyBGaWx0ZXJzQ29uZmlnQ29tcG9uZW50LCBHcm91cENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuLi8uLi8uLi9jcnVkLmNvbmZpZyc7XG5pbXBvcnQgeyBDcnVkTGlzdEdyb3VwU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2xpc3QtZ3JvdXAvbGlzdC1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlL2Jhc2UuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1saXN0LXN0YW5kYXJkLXBhZ2UnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzbWFydC1jcnVkLWZpbHRlcnMtY29uZmlnPjwvc21hcnQtY3J1ZC1maWx0ZXJzLWNvbmZpZz5cbiAgICBAbGV0IGdyb3VwcyA9IGNvbmZpZy5saXN0Py5ncm91cHM7XG4gICAgQGlmIChsaXN0T3B0aW9ucygpKSB7XG4gICAgICA8c21hcnQtbGlzdFxuICAgICAgICBbaGlkZGVuXT1cImdyb3VwcyAmJiAhaXNTZWFyY2goKVwiXG4gICAgICAgIFtvcHRpb25zXT1cImxpc3RPcHRpb25zKCkhXCJcbiAgICAgID48L3NtYXJ0LWxpc3Q+XG4gICAgfVxuICAgIEBpZiAoZ3JvdXBzICYmICFpc1NlYXJjaCgpKSB7XG4gICAgICA8c21hcnQtY3J1ZC1ncm91cFxuICAgICAgICBbZ3JvdXBzXT1cImdyb3Vwc1wiXG4gICAgICAgIFtsaXN0T3B0aW9uc109XCJsaXN0T3B0aW9ucygpIHx8IG51bGxcIlxuICAgICAgPjwvc21hcnQtY3J1ZC1ncm91cD5cbiAgICB9XG4gIGAsXG4gIGltcG9ydHM6IFtGaWx0ZXJzQ29uZmlnQ29tcG9uZW50LCBMaXN0Q29tcG9uZW50LCBHcm91cENvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW0NydWRMaXN0R3JvdXBTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgTGlzdFN0YW5kYXJkQ29tcG9uZW50PFxuICBUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LFxuPiBleHRlbmRzIENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQ8VD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGZhY2FkZSA9IGluamVjdChDcnVkRmFjYWRlPFQ+KTtcbiAgcHVibGljIG92ZXJyaWRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdChDcnVkRnVsbENvbmZpZzxUPik7XG5cbiAgaXNTZWFyY2g6IFNpZ25hbDxib29sZWFuPiA9IGNvbXB1dGVkKFxuICAgICgpID0+ICEhdGhpcy5mYWNhZGUuZmlsdGVyKCk/LnNlYXJjaFRleHQsXG4gICk7XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport * as i0 from \"@angular/core\";\nexport class CrudSearchService {\n _filterSource = new BehaviorSubject({});\n _enabledSource = new BehaviorSubject(false);\n get filter() {\n if (!this._enabledSource.value)\n return {};\n return this._filterSource.value || {};\n }\n get enabled() {\n return this._enabledSource.value;\n }\n enabled$ = this._enabledSource.asObservable();\n filter$ = combineLatest([\n this._filterSource.asObservable(),\n this.enabled$,\n ]).pipe(map(([filter, enabled]) => {\n if (!enabled)\n return {};\n return filter;\n }));\n setFilter(val) {\n this._filterSource.next(val);\n }\n setEnabled(val) {\n this._enabledSource.next(val);\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudSearchService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudSearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9zZWFyY2gvc2VhcmNoLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFjLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNsRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBT3JDLE1BQU0sT0FBTyxpQkFBaUI7SUFDcEIsYUFBYSxHQUFHLElBQUksZUFBZSxDQUF1QixFQUFFLENBQUMsQ0FBQztJQUM5RCxjQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7SUFFN0QsSUFBSSxNQUFNO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQzFDLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO0lBQ3hDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25DLENBQUM7SUFFRCxRQUFRLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUU5QyxPQUFPLEdBQXFDLGFBQWEsQ0FBQztRQUN4RCxJQUFJLENBQUMsYUFBYSxDQUFDLFlBQVksRUFBRTtRQUNqQyxJQUFJLENBQUMsUUFBUTtLQUNkLENBQUMsQ0FBQyxJQUFJLENBQ0wsR0FBRyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLEVBQUUsRUFBRTtRQUN4QixJQUFJLENBQUMsT0FBTztZQUFFLE9BQU8sRUFBRSxDQUFDO1FBQ3hCLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsQ0FBQyxDQUNILENBQUM7SUFFRixTQUFTLENBQUMsR0FBeUI7UUFDakMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFZO1FBQ3JCLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7dUdBL0JVLGlCQUFpQjsyR0FBakIsaUJBQWlCLGNBRmhCLE1BQU07OzJGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUsIGNvbWJpbmVMYXRlc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZFNlYXJjaFNlcnZpY2Uge1xuICBwcml2YXRlIF9maWx0ZXJTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFBhcnRpYWw8SUNydWRGaWx0ZXI+Pih7fSk7XG4gIHByaXZhdGUgX2VuYWJsZWRTb3VyY2UgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICBnZXQgZmlsdGVyKCk6IFBhcnRpYWw8SUNydWRGaWx0ZXI+IHtcbiAgICBpZiAoIXRoaXMuX2VuYWJsZWRTb3VyY2UudmFsdWUpIHJldHVybiB7fTtcbiAgICByZXR1cm4gdGhpcy5fZmlsdGVyU291cmNlLnZhbHVlIHx8IHt9O1xuICB9XG5cbiAgZ2V0IGVuYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2VuYWJsZWRTb3VyY2UudmFsdWU7XG4gIH1cblxuICBlbmFibGVkJCA9IHRoaXMuX2VuYWJsZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgZmlsdGVyJDogT2JzZXJ2YWJsZTxQYXJ0aWFsPElDcnVkRmlsdGVyPj4gPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9maWx0ZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCksXG4gICAgdGhpcy5lbmFibGVkJCxcbiAgXSkucGlwZShcbiAgICBtYXAoKFtmaWx0ZXIsIGVuYWJsZWRdKSA9PiB7XG4gICAgICBpZiAoIWVuYWJsZWQpIHJldHVybiB7fTtcbiAgICAgIHJldHVybiBmaWx0ZXI7XG4gICAgfSksXG4gICk7XG5cbiAgc2V0RmlsdGVyKHZhbDogUGFydGlhbDxJQ3J1ZEZpbHRlcj4pOiB2b2lkIHtcbiAgICB0aGlzLl9maWx0ZXJTb3VyY2UubmV4dCh2YWwpO1xuICB9XG5cbiAgc2V0RW5hYmxlZCh2YWw6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLl9lbmFibGVkU291cmNlLm5leHQodmFsKTtcbiAgfVxufVxuIl19","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectorRef, Component, computed, inject, Injector, signal, viewChild, viewChildren, } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\nimport { CreateDynamicComponent, DynamicComponentLoader, DynamicContentDirective, HardwareService, ListMode, MenuService, PageComponent, } from '@smartsoft001/angular';\nimport { getModelFieldsWithOptions, getModelOptions, } from '@smartsoft001/models';\nimport { SpecificationService } from '@smartsoft001/utils';\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { ExportComponent } from '../../components';\nimport { FiltersComponent } from '../../components';\nimport { MultiselectComponent } from '../../components';\nimport { CrudFullConfig } from '../../crud.config';\nimport { CrudListPaginationFactory } from '../../factories/list-pagination/list-pagination.factory';\nimport { ListStandardComponent } from './standard/standard.component';\nimport { PageService } from '../../services/page/page.service';\nimport { CrudSearchService } from '../../services/search/search.service';\nimport * as i0 from \"@angular/core\";\nexport class ListComponent extends CreateDynamicComponent('crud-list-page') {\n facade = inject((CrudFacade));\n router = inject(Router);\n dynamicComponentLoader = inject((DynamicComponentLoader));\n injector = inject(Injector);\n cd = inject(ChangeDetectorRef);\n menuService = inject(MenuService);\n hardwareService = inject(HardwareService);\n paginationFacade = inject((CrudListPaginationFactory));\n pageService = inject((PageService));\n config = inject((CrudFullConfig));\n searchService = inject(CrudSearchService);\n _cleanMultiSelected$ = new Subject();\n pageOptions = signal(null, ...(ngDevMode ? [{ debugName: \"pageOptions\" }] : []));\n listOptions = signal(null, ...(ngDevMode ? [{ debugName: \"listOptions\" }] : []));\n links = this.facade.links;\n filter = this.facade.filter;\n topTpl = viewChild('topTpl', ...(ngDevMode ? [{ debugName: \"topTpl\" }] : []));\n contentTpl = viewChild('contentTpl', ...(ngDevMode ? [{ debugName: \"contentTpl\" }] : []));\n dynamicContents = viewChildren(DynamicContentDirective, ...(ngDevMode ? [{ debugName: \"dynamicContents\" }] : []));\n refreshProperties() {\n this.baseComponentRef.setInput('listOptions', this.listOptions());\n }\n async ngOnInit() {\n this.pageService.checkPermissions();\n const options = getModelOptions(this.config.type);\n let newFilter = null;\n if (this.config.list?.resetQuery === 'beforeInit') {\n newFilter = {\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n paginationMode: this.config.list.paginationMode,\n limit: this.config.pagination\n ? this.config.pagination.limit\n : undefined,\n offset: this.config.pagination ? 0 : undefined,\n sortBy: this.config.sort\n ? this.config.sort['default']\n : undefined,\n sortDesc: this.config.sort\n ? this.config.sort['defaultDesc']\n : undefined,\n ...this.searchService.filter,\n };\n }\n else if (this.filter()) {\n newFilter = this.filter();\n }\n else {\n newFilter = {\n paginationMode: this.config.list.paginationMode,\n limit: this.searchService.filter?.limit\n ? this.searchService.filter.limit\n : this.config.pagination\n ? this.config.pagination.limit\n : undefined,\n offset: this.searchService.filter?.offset ||\n this.searchService.filter?.offset === 0\n ? this.searchService.filter.offset\n : this.config.pagination\n ? 0\n : undefined,\n sortBy: this.searchService.filter?.sortBy\n ? this.searchService.filter.sortBy\n : this.config.sort\n ? this.config.sort['default']\n : undefined,\n sortDesc: this.searchService.filter?.sortDesc\n ? this.searchService.filter.sortDesc\n : this.config.sort\n ? this.config.sort['defaultDesc']\n : undefined,\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n ...this.searchService.filter,\n };\n }\n this.facade.read(newFilter);\n const endButtons = this.getEndButtons();\n this.pageOptions.set({\n title: this.config.title || '',\n search: this.config.search\n ? {\n text: computed(() => this.filter()?.searchText ?? ''),\n set: (txt) => {\n if (txt !== this.filter()?.searchText)\n this.facade.read({\n ...this.filter(),\n searchText: txt,\n offset: 0,\n });\n },\n }\n : undefined,\n endButtons: endButtons,\n });\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.top\n ? [this.config.details.components.top]\n : []),\n ...(this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.bottom\n ? [this.config.details.components.bottom]\n : []),\n ...(this.config.list &&\n typeof this.config.list === 'object' &&\n 'components' in this.config.list &&\n this.config.list.components?.top\n ? [this.config.list.components.top]\n : []),\n ],\n });\n this.listOptions.set({\n provider: {\n getData: (filter) => {\n const global = {\n ...this.filter(),\n ...filter,\n };\n this.facade.read(global);\n },\n onChangeMultiSelected: async (list) => {\n if (list.length && !this.menuService.openedEnd) {\n await this.menuService.openEnd({\n injector: this.injector,\n component: MultiselectComponent,\n });\n }\n else if (!list.length && this.menuService.openedEnd) {\n await this.menuService.closeEnd();\n }\n this.facade.multiSelect(list);\n },\n list: computed(() => this.facade.list() || []),\n loading: this.facade.loading,\n onCleanMultiSelected$: this._cleanMultiSelected$,\n },\n cellPipe: this.config.list ? this.config.list.cellPipe : undefined,\n mode: this.config.list?.mode,\n type: this.config.type,\n details: this.config.details\n ? {\n provider: {\n getData: (id) => {\n this.facade.select(id);\n },\n clearData: () => {\n this.facade.unselect();\n },\n item: this.facade.selected,\n loading: this.facade.loading,\n },\n componentFactories: {\n top: this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.top\n ? compiledComponents.find((cc) => cc.component ===\n this.config.details.components.top)?.factory\n : undefined,\n bottom: this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.bottom\n ? compiledComponents.find((cc) => cc.component ===\n this.config.details.components.bottom)?.factory\n : undefined,\n },\n }\n : undefined,\n item: !!this.config.edit || this.config.details\n ? {\n options: {\n routingPrefix: '/' + this.router.routerState.snapshot.url + '/',\n edit: !!this.config.edit,\n },\n }\n : undefined,\n remove: this.config.remove\n ? {\n provider: {\n invoke: (id) => this.facade.delete(id),\n check: (item) => {\n return options?.remove?.enabled\n ? SpecificationService.valid(item, options?.remove?.enabled)\n : true;\n },\n },\n }\n : undefined,\n pagination: await this.paginationFacade.create({\n mode: this.config.list.paginationMode,\n limit: this.config.pagination.limit,\n provider: {\n getFilter: () => {\n return this.filter() || {};\n },\n getLinks: () => this.links(),\n },\n }),\n sort: this.config.sort,\n });\n this.cd.detectChanges();\n this.initCloseMenu();\n this.initTopComponent(compiledComponents);\n this.refreshDynamicInstance();\n }\n initCloseMenu() {\n this.router.events.pipe(this.takeUntilDestroy).subscribe(async () => {\n await this.clear();\n });\n }\n async clear() {\n await this.menuService.closeEnd();\n this.listOptions.update((val) => ({\n ...val,\n select: undefined,\n }));\n this.facade.multiSelect([]);\n }\n getEndButtons() {\n const fieldsWithOptions = getModelFieldsWithOptions(new this.config.type());\n const modelOptions = getModelOptions(this.config.type);\n const showFilters = fieldsWithOptions.some((x) => x.options?.list?.filter) || modelOptions?.filters?.length;\n const showMultiEdit = this.config.list?.components?.multi ||\n (this.config.edit &&\n fieldsWithOptions.some((x) => x.options?.update?.multi) &&\n !this.hardwareService.isMobile &&\n (!this.config?.list?.mode ||\n this.config?.list?.mode === ListMode.desktop));\n return [\n ...(showMultiEdit\n ? [\n {\n icon: 'checkbox-outline',\n text: 'multi',\n handler: () => {\n this.facade.multiSelect([]);\n this._cleanMultiSelected$.next();\n setTimeout(async () => {\n this.listOptions.update((val) => ({\n ...val,\n select: val?.select === 'multi' ? undefined : 'multi',\n }));\n if (this.menuService.openedEnd)\n await this.menuService.closeEnd();\n this.cd.detectChanges();\n });\n },\n },\n ]\n : []),\n ...(showFilters\n ? [\n {\n icon: 'filter-outline',\n text: 'filters',\n handler: async () => {\n await this.menuService.openEnd({\n injector: this.injector,\n component: FiltersComponent,\n });\n },\n },\n ]\n : []),\n ...(this.config.add\n ? [\n {\n icon: 'add',\n text: 'add',\n handler: () => {\n this.router.navigate([\n '/' + this.router.routerState.snapshot.url + '/add',\n ]);\n },\n },\n ]\n : []),\n ...(this.config.export\n ? [\n {\n text: 'export',\n icon: 'download-outline',\n type: 'popover',\n component: ExportComponent,\n },\n ]\n : []),\n ...(this.config.buttons ? this.config.buttons : []),\n ];\n }\n initTopComponent(compiledComponents) {\n const factory = this.config.list &&\n typeof this.config.list === 'object' &&\n 'components' in this.config.list &&\n this.config.list.components?.top\n ? compiledComponents.find((cc) => cc.component === this.config.list.components.top)?.factory\n : null;\n setTimeout(() => {\n if (factory && !this.topTpl()?.get(0)) {\n this.topTpl()?.createComponent(factory);\n }\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.0\", type: ListComponent, isStandalone: true, selector: \"smart-crud-list-page\", viewQueries: [{ propertyName: \"topTpl\", first: true, predicate: [\"topTpl\"], descendants: true, isSignal: true }, { propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, isSignal: true }, { propertyName: \"dynamicContents\", predicate: DynamicContentDirective, descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: `\n @if (filter() && pageOptions()) {\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl></div>\n\n @if (template() === 'default' && listOptions()) {\n <smart-crud-list-standard-page [listOptions]=\"listOptions()\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n }\n `, isInline: true, dependencies: [{ kind: \"component\", type: PageComponent, selector: \"smart-page\", inputs: [\"options\"] }, { kind: \"component\", type: ListStandardComponent, selector: \"smart-crud-list-standard-page\" }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: ListComponent, decorators: [{\n type: Component,\n args: [{\n selector: 'smart-crud-list-page',\n imports: [PageComponent, ListStandardComponent, NgTemplateOutlet],\n template: `\n @if (filter() && pageOptions()) {\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl></div>\n\n @if (template() === 'default' && listOptions()) {\n <smart-crud-list-standard-page [listOptions]=\"listOptions()\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n }\n `,\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9saXN0L2xpc3QuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFDTCxpQkFBaUIsRUFDakIsU0FBUyxFQUVULFFBQVEsRUFDUixNQUFNLEVBQ04sUUFBUSxFQUlSLE1BQU0sRUFHTixTQUFTLEVBQ1QsWUFBWSxHQUdiLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQ3RCLHVCQUF1QixFQUN2QixlQUFlLEVBSWYsUUFBUSxFQUNSLFdBQVcsRUFDWCxhQUFhLEdBQ2QsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGVBQWUsR0FHaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQs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IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgY29tcHV0ZWQsXG4gIGluamVjdCxcbiAgSW5qZWN0b3IsXG4gIGlucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgc2lnbmFsLFxuICBTaWduYWwsXG4gIFRlbXBsYXRlUmVmLFxuICB2aWV3Q2hpbGQsXG4gIHZpZXdDaGlsZHJlbixcbiAgVmlld0NvbnRhaW5lclJlZixcbiAgV3JpdGFibGVTaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHtcbiAgQ3JlYXRlRHluYW1pY0NvbXBvbmVudCxcbiAgRHluYW1pY0NvbXBvbmVudExvYWRlcixcbiAgRHluYW1pY0NvbnRlbnREaXJlY3RpdmUsXG4gIEhhcmR3YXJlU2VydmljZSxcbiAgSUljb25CdXR0b25PcHRpb25zLFxuICBJTGlzdE9wdGlvbnMsXG4gIElQYWdlT3B0aW9ucyxcbiAgTGlzdE1vZGUsXG4gIE1lbnVTZXJ2aWNlLFxuICBQYWdlQ29tcG9uZW50LFxufSBmcm9tICdAc21hcnRzb2Z0MDAxL2FuZ3VsYXInO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJ0BzbWFydHNvZnQwMDEvZG9tYWluLWNvcmUnO1xuaW1wb3J0IHtcbiAgZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyxcbiAgZ2V0TW9kZWxPcHRpb25zLFxuICBJRmllbGRFZGl0TWV0YWRhdGEsXG4gIElGaWVsZExpc3RNZXRhZGF0YSxcbn0gZnJvbSAnQHNtYXJ0c29mdDAwMS9tb2RlbHMnO1xuaW1wb3J0IHsgU3BlY2lmaWNhdGlvblNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL3V0aWxzJztcblxuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gJy4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZSc7XG5pbXBvcnQgeyBFeHBvcnRDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IEZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuLi8uLi9jb21wb25lbnRzJztcbmltcG9ydCB7IE11bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vY29tcG9uZW50cyc7XG5pbXBvcnQgeyBDcnVkRnVsbENvbmZpZyB9IGZyb20gJy4uLy4uL2NydWQuY29uZmlnJztcbmltcG9ydCB7IENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQgfSBmcm9tICcuL2Jhc2UvYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeSB9IGZyb20gJy4uLy4uL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgSUNydWRGaWx0ZXIgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgTGlzdFN0YW5kYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDcnVkU2VhcmNoU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtbGlzdC1wYWdlJyxcbiAgaW1wb3J0czogW1BhZ2VDb21wb25lbnQsIExpc3RTdGFuZGFyZENvbXBvbmVudCwgTmdUZW1wbGF0ZU91dGxldF0sXG4gIHRlbXBsYXRlOiBgXG4gICAgQGlmIChmaWx0ZXIoKSAmJiBwYWdlT3B0aW9ucygpKSB7XG4gICAgICA8c21hcnQtcGFnZSBbb3B0aW9uc109XCJwYWdlT3B0aW9ucygpXCI+XG4gICAgICAgIDxkaXYgI3RvcFRwbD48L2Rpdj5cblxuICAgICAgICBAaWYgKHRlbXBsYXRlKCkgPT09ICdkZWZhdWx0JyAmJiBsaXN0T3B0aW9ucygpKSB7XG4gICAgICAgICAgPHNtYXJ0LWNydWQtbGlzdC1zdGFuZGFyZC1wYWdlIFtsaXN0T3B0aW9uc109XCJsaXN0T3B0aW9ucygpXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L3NtYXJ0LWNydWQtbGlzdC1zdGFuZGFyZC1wYWdlPlxuICAgICAgICB9XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICAgICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNvbnRlbnRcIj48L2Rpdj5cbiAgICAgIDwvc21hcnQtcGFnZT5cbiAgICB9XG4gIGAsXG59KVxuZXhwb3J0IGNsYXNzIExpc3RDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj5cbiAgZXh0ZW5kcyBDcmVhdGVEeW5hbWljQ29tcG9uZW50PENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQ8YW55Pj4oXG4gICAgJ2NydWQtbGlzdC1wYWdlJyxcbiAgKVxuICBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgZmFjYWRlID0gaW5qZWN0KENydWRGYWNhZGU8VD4pO1xuICBwcml2YXRlIHJvdXRlciA9IGluamVjdChSb3V0ZXIpO1xuICBwcml2YXRlIGR5bmFtaWNDb21wb25lbnRMb2FkZXIgPSBpbmplY3QoRHluYW1pY0NvbXBvbmVudExvYWRlcjxUPik7XG4gIHByaXZhdGUgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICBwcml2YXRlIGNkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcbiAgcHJpdmF0ZSBtZW51U2VydmljZSA9IGluamVjdChNZW51U2VydmljZSk7XG4gIHByaXZhdGUgaGFyZHdhcmVTZXJ2aWNlID0gaW5qZWN0KEhhcmR3YXJlU2VydmljZSk7XG4gIHByaXZhdGUgcGFnaW5hdGlvbkZhY2FkZSA9IGluamVjdChDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5PFQ+KTtcbiAgcHJpdmF0ZSBwYWdlU2VydmljZSA9IGluamVjdChQYWdlU2VydmljZTxUPik7XG4gIHB1YmxpYyBjb25maWcgPSBpbmplY3QoQ3J1ZEZ1bGxDb25maWc8VD4pO1xuICBwcml2YXRlIHNlYXJjaFNlcnZpY2UgPSBpbmplY3QoQ3J1ZFNlYXJjaFNlcnZpY2UpO1xuXG4gIHByaXZhdGUgX2NsZWFuTXVsdGlTZWxlY3RlZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHBhZ2VPcHRpb25zID0gc2lnbmFsPElQYWdlT3B0aW9ucyB8IG51bGw+KG51bGwpO1xuICBsaXN0T3B0aW9ucyA9IHNpZ25hbDxJTGlzdE9wdGlvbnM8VD4gfCBudWxsPihudWxsKTtcbiAgbGlua3MgPSB0aGlzLmZhY2FkZS5saW5rcztcblxuICBmaWx0ZXI6IFNpZ25hbDxJQ3J1ZEZpbHRlciB8IHVuZGVmaW5lZD4gPSB0aGlzLmZhY2FkZS5maWx0ZXI7XG5cbiAgdG9wVHBsID0gdmlld0NoaWxkPFZpZXdDb250YWluZXJSZWY+KCd0b3BUcGwnKTtcblxuICBvdmVycmlkZSBjb250ZW50VHBsID0gdmlld0NoaWxkPFRlbXBsYXRlUmVmPGFueT4+KCdjb250ZW50VHBsJyk7XG5cbiAgb3ZlcnJpZGUgZHluYW1pY0NvbnRlbnRzID0gdmlld0NoaWxkcmVuPER5bmFtaWNDb250ZW50RGlyZWN0aXZlPihcbiAgICBEeW5hbWljQ29udGVudERpcmVjdGl2ZSxcbiAgKTtcblxuICBvdmVycmlkZSByZWZyZXNoUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2VDb21wb25lbnRSZWYuc2V0SW5wdXQoJ2xpc3RPcHRpb25zJywgdGhpcy5saXN0T3B0aW9ucygpKTtcbiAgfVxuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMucGFnZVNlcnZpY2UuY2hlY2tQZXJtaXNzaW9ucygpO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGdldE1vZGVsT3B0aW9ucyh0aGlzLmNvbmZpZy50eXBlKTtcblxuICAgIGxldCBuZXdGaWx0ZXIgPSBudWxsO1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmxpc3Q/LnJlc2V0UXVlcnkgPT09ICdiZWZvcmVJbml0Jykge1xuICAgICAgbmV3RmlsdGVyID0ge1xuICAgICAgICBxdWVyeTogdGhpcy5jb25maWcuYmFzZVF1ZXJ5ID8gWy4uLnRoaXMuY29uZmlnLmJhc2VRdWVyeV0gOiBbXSxcbiAgICAgICAgcGFnaW5hdGlvbk1vZGU6IHRoaXMuY29uZmlnLmxpc3QhLnBhZ2luYXRpb25Nb2RlLFxuICAgICAgICBsaW1pdDogdGhpcy5jb25maWcucGFnaW5hdGlvblxuICAgICAgICAgID8gdGhpcy5jb25maWcucGFnaW5hdGlvbi5saW1pdFxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBvZmZzZXQ6IHRoaXMuY29uZmlnLnBhZ2luYXRpb24gPyAwIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3J0Qnk6IHRoaXMuY29uZmlnLnNvcnRcbiAgICAgICAgICA/ICh0aGlzLmNvbmZpZy5zb3J0IGFzIGFueSlbJ2RlZmF1bHQnXVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3J0RGVzYzogdGhpcy5jb25maWcuc29ydFxuICAgICAgICAgID8gKHRoaXMuY29uZmlnLnNvcnQgYXMgYW55KVsnZGVmYXVsdERlc2MnXVxuICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAuLi50aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLFxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyKCkpIHtcbiAgICAgIG5ld0ZpbHRlciA9IHRoaXMuZmlsdGVyKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG5ld0ZpbHRlciA9IHtcbiAgICAgICAgcGFnaW5hdGlvbk1vZGU6IHRoaXMuY29uZmlnLmxpc3QhLnBhZ2luYXRpb25Nb2RlLFxuICAgICAgICBsaW1pdDogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8ubGltaXRcbiAgICAgICAgICA/IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXIubGltaXRcbiAgICAgICAgICA6IHRoaXMuY29uZmlnLnBhZ2luYXRpb25cbiAgICAgICAgICAgID8gdGhpcy5jb25maWcucGFnaW5hdGlvbi5saW1pdFxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIG9mZnNldDpcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyPy5vZmZzZXQgfHxcbiAgICAgICAgICB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyPy5vZmZzZXQgPT09IDBcbiAgICAgICAgICAgID8gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlci5vZmZzZXRcbiAgICAgICAgICAgIDogdGhpcy5jb25maWcucGFnaW5hdGlvblxuICAgICAgICAgICAgICA/IDBcbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHNvcnRCeTogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8uc29ydEJ5XG4gICAgICAgICAgPyB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLnNvcnRCeVxuICAgICAgICAgIDogdGhpcy5jb25maWcuc29ydFxuICAgICAgICAgICAgPyAodGhpcy5jb25maWcuc29ydCBhcyBhbnkpWydkZWZhdWx0J11cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICBzb3J0RGVzYzogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8uc29ydERlc2NcbiAgICAgICAgICA/IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXIuc29ydERlc2NcbiAgICAgICAgICA6IHRoaXMuY29uZmlnLnNvcnRcbiAgICAgICAgICAgID8gKHRoaXMuY29uZmlnLnNvcnQgYXMgYW55KVsnZGVmYXVsdERlc2MnXVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgIHF1ZXJ5OiB0aGlzLmNvbmZpZy5iYXNlUXVlcnkgPyBbLi4udGhpcy5jb25maWcuYmFzZVF1ZXJ5XSA6IFtdLFxuICAgICAgICAuLi50aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmZhY2FkZS5yZWFkKG5ld0ZpbHRlcik7XG5cbiAgICBjb25zdCBlbmRCdXR0b25zID0gdGhpcy5nZXRFbmRCdXR0b25zKCk7XG5cbiAgICB0aGlzLnBhZ2VPcHRpb25zLnNldCh7XG4gICAgICB0aXRsZTogdGhpcy5jb25maWcudGl0bGUgfHwgJycsXG4gICAgICBzZWFyY2g6IHRoaXMuY29uZmlnLnNlYXJjaFxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHRleHQ6IGNvbXB1dGVkKCgpID0+IHRoaXMuZmlsdGVyKCk/LnNlYXJjaFRleHQgPz8gJycpLFxuICAgICAgICAgICAgc2V0OiAodHh0KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eHQgIT09IHRoaXMuZmlsdGVyKCk/LnNlYXJjaFRleHQpXG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUucmVhZCh7XG4gICAgICAgICAgICAgICAgICAuLi50aGlzLmZpbHRlcigpLFxuICAgICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogdHh0LFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgZW5kQnV0dG9uczogZW5kQnV0dG9ucyxcbiAgICB9KTtcblxuICAgIGNvbnN0IGNvbXBpbGVkQ29tcG9uZW50cyA9XG4gICAgICBhd2FpdCB0aGlzLmR5bmFtaWNDb21wb25lbnRMb2FkZXIuZ2V0Q29tcG9uZW50c1dpdGhGYWN0b3JpZXMoe1xuICAgICAgICBjb21wb25lbnRzOiBbXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5jb25maWcuZGV0YWlscyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAnY29tcG9uZW50cycgaW4gdGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMuY29tcG9uZW50cz8udG9wXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5kZXRhaWxzLmNvbXBvbmVudHMudG9wXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5jb25maWcuZGV0YWlscyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAnY29tcG9uZW50cycgaW4gdGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMuY29tcG9uZW50cz8uYm90dG9tXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5kZXRhaWxzLmNvbXBvbmVudHMuYm90dG9tXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmxpc3QgJiZcbiAgICAgICAgICB0eXBlb2YgdGhpcy5jb25maWcubGlzdCA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAnY29tcG9uZW50cycgaW4gdGhpcy5jb25maWcubGlzdCAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3QuY29tcG9uZW50cz8udG9wXG4gICAgICAgICAgICA/IFt0aGlzLmNvbmZpZy5saXN0LmNvbXBvbmVudHMudG9wXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIHRoaXMubGlzdE9wdGlvbnMuc2V0KHtcbiAgICAgIHByb3ZpZGVyOiB7XG4gICAgICAgIGdldERhdGE6IChmaWx0ZXIpOiB2b2lkID0+IHtcbiAgICAgICAgICBjb25zdCBnbG9iYWwgPSB7XG4gICAgICAgICAgICAuLi50aGlzLmZpbHRlcigpLFxuICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgIH07XG4gICAgICAgICAgdGhpcy5mYWNhZGUucmVhZChnbG9iYWwpO1xuICAgICAgICB9LFxuICAgICAgICBvbkNoYW5nZU11bHRpU2VsZWN0ZWQ6IGFzeW5jIChsaXN0KSA9PiB7XG4gICAgICAgICAgaWYgKGxpc3QubGVuZ3RoICYmICF0aGlzLm1lbnVTZXJ2aWNlLm9wZW5lZEVuZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5tZW51U2VydmljZS5vcGVuRW5kKHtcbiAgICAgICAgICAgICAgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogTXVsdGlzZWxlY3RDb21wb25lbnQsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9IGVsc2UgaWYgKCFsaXN0Lmxlbmd0aCAmJiB0aGlzLm1lbnVTZXJ2aWNlLm9wZW5lZEVuZCkge1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5tZW51U2VydmljZS5jbG9zZUVuZCgpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHRoaXMuZmFjYWRlLm11bHRpU2VsZWN0KGxpc3QpO1xuICAgICAgICB9LFxuICAgICAgICBsaXN0OiBjb21wdXRlZCgoKSA9PiB0aGlzLmZhY2FkZS5saXN0KCkgfHwgW10pLFxuICAgICAgICBsb2FkaW5nOiB0aGlzLmZhY2FkZS5sb2FkaW5nLFxuICAgICAgICBvbkNsZWFuTXVsdGlTZWxlY3RlZCQ6IHRoaXMuX2NsZWFuTXVsdGlTZWxlY3RlZCQsXG4gICAgICB9LFxuICAgICAgY2VsbFBpcGU6IHRoaXMuY29uZmlnLmxpc3QgPyB0aGlzLmNvbmZpZy5saXN0LmNlbGxQaXBlIDogdW5kZWZpbmVkLFxuICAgICAgbW9kZTogdGhpcy5jb25maWcubGlzdD8ubW9kZSxcbiAgICAgIHR5cGU6IHRoaXMuY29uZmlnLnR5cGUsXG4gICAgICBkZXRhaWxzOiB0aGlzLmNvbmZpZy5kZXRhaWxzXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgICAgZ2V0RGF0YTogKGlkKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUuc2VsZWN0KGlkKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgY2xlYXJEYXRhOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUudW5zZWxlY3QoKTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgaXRlbTogdGhpcy5mYWNhZGUuc2VsZWN0ZWQsXG4gICAgICAgICAgICAgIGxvYWRpbmc6IHRoaXMuZmFjYWRlLmxvYWRpbmcsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY29tcG9uZW50RmFjdG9yaWVzOiB7XG4gICAgICAgICAgICAgIHRvcDpcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICAgICAgdHlwZW9mIHRoaXMuY29uZmlnLmRldGFpbHMgPT09ICdvYmplY3QnICYmXG4gICAgICAgICAgICAgICAgJ2NvbXBvbmVudHMnIGluIHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzLmNvbXBvbmVudHM/LnRvcFxuICAgICAgICAgICAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAoY2MpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5jb21wb25lbnQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICAodGhpcy5jb25maWcuZGV0YWlscyBhcyBhbnkpLmNvbXBvbmVudHMudG9wLFxuICAgICAgICAgICAgICAgICAgICApPy5mYWN0b3J5XG4gICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgICAgICB0eXBlb2YgdGhpcy5jb25maWcuZGV0YWlscyA9PT0gJ29iamVjdCcgJiZcbiAgICAgICAgICAgICAgICAnY29tcG9uZW50cycgaW4gdGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMuY29tcG9uZW50cz8uYm90dG9tXG4gICAgICAgICAgICAgICAgICA/IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAgIChjYykgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgIGNjLmNvbXBvbmVudCA9PT1cbiAgICAgICAgICAgICAgICAgICAgICAgICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIGFueSkuY29tcG9uZW50cy5ib3R0b20sXG4gICAgICAgICAgICAgICAgICAgICk/LmZhY3RvcnlcbiAgICAgICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgaXRlbTpcbiAgICAgICAgISF0aGlzLmNvbmZpZy5lZGl0IHx8IHRoaXMuY29uZmlnLmRldGFpbHNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHJvdXRpbmdQcmVmaXg6ICcvJyArIHRoaXMucm91dGVyLnJvdXRlclN0YXRlLnNuYXBzaG90LnVybCArICcvJyxcbiAgICAgICAgICAgICAgICBlZGl0OiAhIXRoaXMuY29uZmlnLmVkaXQsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICByZW1vdmU6IHRoaXMuY29uZmlnLnJlbW92ZVxuICAgICAgICA/IHtcbiAgICAgICAgICAgIHByb3ZpZGVyOiB7XG4gICAgICAgICAgICAgIGludm9rZTogKGlkKSA9PiB0aGlzLmZhY2FkZS5kZWxldGUoaWQpLFxuICAgICAgICAgICAgICBjaGVjazogKGl0ZW06IFQpID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gb3B0aW9ucz8ucmVtb3ZlPy5lbmFibGVkXG4gICAgICAgICAgICAgICAgICA/IFNwZWNpZmljYXRpb25TZXJ2aWNlLnZhbGlkKGl0ZW0sIG9wdGlvbnM/LnJlbW92ZT8uZW5hYmxlZClcbiAgICAgICAgICAgICAgICAgIDogdHJ1ZTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIHBhZ2luYXRpb246IGF3YWl0IHRoaXMucGFnaW5hdGlvbkZhY2FkZS5jcmVhdGUoe1xuICAgICAgICBtb2RlOiB0aGlzLmNvbmZpZy5saXN0IS5wYWdpbmF0aW9uTW9kZSxcbiAgICAgICAgbGltaXQ6IHRoaXMuY29uZmlnLnBhZ2luYXRpb24hLmxpbWl0LFxuICAgICAgICBwcm92aWRlcjoge1xuICAgICAgICAgIGdldEZpbHRlcjogKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyKCkgfHwgKHt9IGFzIElDcnVkRmlsdGVyKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldExpbmtzOiAoKSA9PiB0aGlzLmxpbmtzKCksXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHNvcnQ6IHRoaXMuY29uZmlnLnNvcnQsXG4gICAgfSk7XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuaW5pdENsb3NlTWVudSgpO1xuICAgIHRoaXMuaW5pdFRvcENvbXBvbmVudChjb21waWxlZENvbXBvbmVudHMpO1xuXG4gICAgdGhpcy5yZWZyZXNoRHluYW1pY0luc3RhbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDbG9zZU1lbnUoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5jbGVhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhcigpIHtcbiAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG5cbiAgICB0aGlzLmxpc3RPcHRpb25zLnVwZGF0ZSgodmFsKSA9PiAoe1xuICAgICAgLi4uKHZhbCBhcyBJTGlzdE9wdGlvbnM8VD4pLFxuICAgICAgc2VsZWN0OiB1bmRlZmluZWQsXG4gICAgfSkpO1xuXG4gICAgdGhpcy5mYWNhZGUubXVsdGlTZWxlY3QoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbmRCdXR0b25zKCk6IEFycmF5PElJY29uQnV0dG9uT3B0aW9ucz4ge1xuICAgIGNvbnN0IGZpZWxkc1dpdGhPcHRpb25zID0gZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhuZXcgdGhpcy5jb25maWcudHlwZSgpKTtcbiAgICBjb25zdCBtb2RlbE9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModGhpcy5jb25maWcudHlwZSk7XG5cbiAgICBjb25zdCBzaG93RmlsdGVycyA9XG4gICAgICBmaWVsZHNXaXRoT3B0aW9ucy5zb21lKFxuICAgICAgICAoeCkgPT4gKHgub3B0aW9ucz8ubGlzdCBhcyBJRmllbGRMaXN0TWV0YWRhdGEpPy5maWx0ZXIsXG4gICAgICApIHx8IG1vZGVsT3B0aW9ucz8uZmlsdGVycz8ubGVuZ3RoO1xuXG4gICAgY29uc3Qgc2hvd011bHRpRWRpdCA9XG4gICAgICB0aGlzLmNvbmZpZy5saXN0Py5jb21wb25lbnRzPy5tdWx0aSB8fFxuICAgICAgKHRoaXMuY29uZmlnLmVkaXQgJiZcbiAgICAgICAgZmllbGRzV2l0aE9wdGlvbnMuc29tZShcbiAgICAgICAgICAoeCkgPT4gKHgub3B0aW9ucz8udXBkYXRlIGFzIElGaWVsZEVkaXRNZXRhZGF0YSk/Lm11bHRpLFxuICAgICAgICApICYmXG4gICAgICAgICF0aGlzLmhhcmR3YXJlU2VydmljZS5pc01vYmlsZSAmJlxuICAgICAgICAoIXRoaXMuY29uZmlnPy5saXN0Py5tb2RlIHx8XG4gICAgICAgICAgdGhpcy5jb25maWc/Lmxpc3Q/Lm1vZGUgPT09IExpc3RNb2RlLmRlc2t0b3ApKTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oc2hvd011bHRpRWRpdFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogJ2NoZWNrYm94LW91dGxpbmUnLFxuICAgICAgICAgICAgICB0ZXh0OiAnbXVsdGknLFxuICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5mYWNhZGUubXVsdGlTZWxlY3QoW10pO1xuICAgICAgICAgICAgICAgIHRoaXMuX2NsZWFuTXVsdGlTZWxlY3RlZCQubmV4dCgpO1xuXG4gICAgICAgICAgICAgICAgc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICB0aGlzLmxpc3RPcHRpb25zLnVwZGF0ZSgodmFsKSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAuLi4odmFsIGFzIElMaXN0T3B0aW9uczxUPiksXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdDogdmFsPy5zZWxlY3QgPT09ICdtdWx0aScgPyB1bmRlZmluZWQgOiAnbXVsdGknLFxuICAgICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgICAgaWYgKHRoaXMubWVudVNlcnZpY2Uub3BlbmVkRW5kKVxuICAgICAgICAgICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLihzaG93RmlsdGVyc1xuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogJ2ZpbHRlci1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgdGV4dDogJ2ZpbHRlcnMnLFxuICAgICAgICAgICAgICBoYW5kbGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tZW51U2VydmljZS5vcGVuRW5kKHtcbiAgICAgICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29uZmlnLmFkZFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogJ2FkZCcsXG4gICAgICAgICAgICAgIHRleHQ6ICdhZGQnLFxuICAgICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW1xuICAgICAgICAgICAgICAgICAgJy8nICsgdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsICsgJy9hZGQnLFxuICAgICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29uZmlnLmV4cG9ydFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgdGV4dDogJ2V4cG9ydCcsXG4gICAgICAgICAgICAgIGljb246ICdkb3dubG9hZC1vdXRsaW5lJyxcbiAgICAgICAgICAgICAgdHlwZTogJ3BvcG92ZXInIGFzIGNvbnN0LFxuICAgICAgICAgICAgICBjb21wb25lbnQ6IEV4cG9ydENvbXBvbmVudCxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtdKSxcbiAgICAgIC4uLih0aGlzLmNvbmZpZy5idXR0b25zID8gdGhpcy5jb25maWcuYnV0dG9ucyA6IFtdKSxcbiAgICBdO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0VG9wQ29tcG9uZW50KFxuICAgIGNvbXBpbGVkQ29tcG9uZW50czoge1xuICAgICAgY29tcG9uZW50OiBhbnk7XG4gICAgICBmYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PGFueT47XG4gICAgfVtdLFxuICApIHtcbiAgICBjb25zdCBmYWN0b3J5ID1cbiAgICAgIHRoaXMuY29uZmlnLmxpc3QgJiZcbiAgICAgIHR5cGVvZiB0aGlzLmNvbmZpZy5saXN0ID09PSAnb2JqZWN0JyAmJlxuICAgICAgJ2NvbXBvbmVudHMnIGluIHRoaXMuY29uZmlnLmxpc3QgJiZcbiAgICAgIHRoaXMuY29uZmlnLmxpc3QuY29tcG9uZW50cz8udG9wXG4gICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAoY2MpID0+IGNjLmNvbXBvbmVudCA9PT0gKHRoaXMuY29uZmlnLmxpc3QgYXMgYW55KS5jb21wb25lbnRzLnRvcCxcbiAgICAgICAgICApPy5mYWN0b3J5XG4gICAgICAgIDogbnVsbDtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKGZhY3RvcnkgJiYgIXRoaXMudG9wVHBsKCk/LmdldCgwKSkge1xuICAgICAgICB0aGlzLnRvcFRwbCgpPy5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\nimport { NgrxStoreService, SharedModule } from '@smartsoft001/angular';\nimport { getReducer, CrudFacade } from './+state';\nimport { CrudEffects } from './+state/crud.effects';\nimport { CrudComponentsModule } from './components';\nimport { CrudConfig } from './crud.config';\nimport { CrudListPaginationFactory } from './factories/list-pagination/list-pagination.factory';\nimport { ListComponent } from './pages';\nimport { ItemComponent } from './pages';\nimport { ListStandardComponent } from './pages';\nimport { ItemStandardComponent } from './pages';\nimport { CrudPipesModule } from './pipes';\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudListGroupService } from './services/list-group/list-group.service';\nimport { PageService } from './services/page/page.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./crud.config\";\nimport * as i2 from \"./+state/crud.effects\";\nimport * as i3 from \"@angular/router\";\nexport const PAGES = [\n ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent,\n];\nexport class CrudFullModule {\n constructor(config, effects) {\n NgrxStoreService.addReducer(config.entity, config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity));\n effects.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullModule, deps: [{ token: i1.CrudConfig }, { token: i2.CrudEffects }], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullModule, imports: [ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent, SharedModule,\n CrudPipesModule, i3.RouterModule, FormsModule,\n CommonModule,\n CrudComponentsModule], exports: [ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent, CrudComponentsModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullModule, providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudFacade,\n CrudEffects,\n CrudListPaginationFactory,\n ], imports: [PAGES, SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent },\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule, CrudComponentsModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudFullModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n ...PAGES,\n SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent },\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n ],\n exports: [...PAGES, CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudFacade,\n CrudEffects,\n CrudListPaginationFactory,\n ],\n }]\n }], ctorParameters: () => [{ type: i1.CrudConfig }, { type: i2.CrudEffects }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1mdWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NydWQtZnVsbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsWUFBWSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHdkUsT0FBTyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDeEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4QyxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFFM0QsTUFBTSxDQUFDLE1BQU0sS0FBSyxHQUFHO0lBQ25CLGFBQWE7SUFDYixhQUFhO0lBQ2IscUJBQXFCO0lBQ3JCLHFCQUFxQjtDQUN0QixDQUFDO0FBMEJGLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQVksTUFBcUIsRUFBRSxPQUF5QjtRQUMxRCxnQkFBZ0IsQ0FBQyxVQUFVLENBQ3pCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLGNBQWM7WUFDbkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDekIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQzlCLENBQUM7UUFDRixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzt1R0FUVSxjQUFjO3dHQUFkLGNBQWMsWUE5QnpCLGFBQWE7WUFDYixhQUFhO1lBQ2IscUJBQXFCO1lBQ3JCLHFCQUFxQixFQU1uQixZQUFZO1lBQ1osZUFBZSxtQkFNZixXQUFXO1lBQ1gsWUFBWTtZQUNaLG9CQUFvQixhQWxCdEIsYUFBYTtZQUNiLGFBQWE7WUFDYixxQkFBcUI7WUFDckIscUJBQXFCLEVBaUJELG9CQUFvQjt3R0FVN0IsY0FBYyxhQVRkO1lBQ1QsV0FBVztZQUNYLG9CQUFvQjtZQUNwQixXQUFXO1lBQ1gsVUFBVTtZQUNWLFdBQVc7WUFDWCx5QkFBeUI7U0FDMUIsWUFwQkksS0FBSyxFQUNSLFlBQVk7WUFDWixlQUFlO1lBQ2YsWUFBWSxDQUFDLFFBQVEsQ0FBQztnQkFDcEIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7Z0JBQ3RDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO2dCQUN6QyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTthQUMxQyxDQUFDO1lBQ0YsV0FBVztZQUNYLFlBQVk7WUFDWixvQkFBb0IsRUFFRixvQkFBb0I7OzJGQVU3QixjQUFjO2tCQXhCMUIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUU7d0JBQ1AsR0FBRyxLQUFLO3dCQUNSLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNwQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTs0QkFDdEMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7NEJBQ3pDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO3lCQUMxQyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixvQkFBb0I7cUJBQ3JCO29CQUNELE9BQU8sRUFBRSxDQUFDLEdBQUcsS0FBSyxFQUFFLG9CQUFvQixDQUFDO29CQUN6QyxTQUFTLEVBQUU7d0JBQ1QsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixXQUFXO3dCQUNYLHlCQUF5QjtxQkFDMUI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgTmdyeFN0b3JlU2VydmljZSwgU2hhcmVkTW9kdWxlIH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9hbmd1bGFyJztcbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tICdAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlJztcblxuaW1wb3J0IHsgZ2V0UmVkdWNlciwgQ3J1ZEZhY2FkZSB9IGZyb20gJy4vK3N0YXRlJztcbmltcG9ydCB7IENydWRFZmZlY3RzIH0gZnJvbSAnLi8rc3RhdGUvY3J1ZC5lZmZlY3RzJztcbmltcG9ydCB7IENydWRDb21wb25lbnRzTW9kdWxlIH0gZnJvbSAnLi9jb21wb25lbnRzJztcbmltcG9ydCB7IENydWRDb25maWcgfSBmcm9tICcuL2NydWQuY29uZmlnJztcbmltcG9ydCB7IENydWRMaXN0UGFnaW5hdGlvbkZhY3RvcnkgfSBmcm9tICcuL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgTGlzdENvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMnO1xuaW1wb3J0IHsgSXRlbUNvbXBvbmVudCB9IGZyb20gJy4vcGFnZXMnO1xuaW1wb3J0IHsgTGlzdFN0YW5kYXJkQ29tcG9uZW50IH0gZnJvbSAnLi9wYWdlcyc7XG5pbXBvcnQgeyBJdGVtU3RhbmRhcmRDb21wb25lbnQgfSBmcm9tICcuL3BhZ2VzJztcbmltcG9ydCB7IENydWRQaXBlc01vZHVsZSB9IGZyb20gJy4vcGlwZXMnO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NydWQvY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRMaXN0R3JvdXBTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9saXN0LWdyb3VwL2xpc3QtZ3JvdXAuc2VydmljZSc7XG5pbXBvcnQgeyBQYWdlU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcGFnZS9wYWdlLnNlcnZpY2UnO1xuXG5leHBvcnQgY29uc3QgUEFHRVMgPSBbXG4gIEl0ZW1Db21wb25lbnQsXG4gIExpc3RDb21wb25lbnQsXG4gIExpc3RTdGFuZGFyZENvbXBvbmVudCxcbiAgSXRlbVN0YW5kYXJkQ29tcG9uZW50LFxuXTtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIC4uLlBBR0VTLFxuICAgIFNoYXJlZE1vZHVsZSxcbiAgICBDcnVkUGlwZXNNb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLmZvckNoaWxkKFtcbiAgICAgIHsgcGF0aDogJycsIGNvbXBvbmVudDogTGlzdENvbXBvbmVudCB9LFxuICAgICAgeyBwYXRoOiAnYWRkJywgY29tcG9uZW50OiBJdGVtQ29tcG9uZW50IH0sXG4gICAgICB7IHBhdGg6ICc6aWQnLCBjb21wb25lbnQ6IEl0ZW1Db21wb25lbnQgfSxcbiAgICBdKSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgQ3J1ZENvbXBvbmVudHNNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFsuLi5QQUdFUywgQ3J1ZENvbXBvbmVudHNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDcnVkU2VydmljZSxcbiAgICBDcnVkTGlzdEdyb3VwU2VydmljZSxcbiAgICBQYWdlU2VydmljZSxcbiAgICBDcnVkRmFjYWRlLFxuICAgIENydWRFZmZlY3RzLFxuICAgIENydWRMaXN0UGFnaW5hdGlvbkZhY3RvcnksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENydWRGdWxsTW9kdWxlPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IHtcbiAgY29uc3RydWN0b3IoY29uZmlnOiBDcnVkQ29uZmlnPFQ+LCBlZmZlY3RzOiBDcnVkRWZmZWN0czxhbnk+KSB7XG4gICAgTmdyeFN0b3JlU2VydmljZS5hZGRSZWR1Y2VyKFxuICAgICAgY29uZmlnLmVudGl0eSxcbiAgICAgIGNvbmZpZy5yZWR1Y2VyRmFjdG9yeVxuICAgICAgICA/IGNvbmZpZy5yZWR1Y2VyRmFjdG9yeSgpXG4gICAgICAgIDogZ2V0UmVkdWNlcihjb25maWcuZW50aXR5KSxcbiAgICApO1xuICAgIGVmZmVjdHMuaW5pdCgpO1xuICB9XG59XG4iXX0=","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { FILE_SERVICE_CONFIG, NgrxStoreService, SharedModule, } from '@smartsoft001/angular';\nimport { getReducer } from './+state';\nimport { CrudEffects } from './+state/crud.effects';\nimport { CrudFacade } from './+state/crud.facade';\nimport { CrudComponentsModule } from './components';\nimport { CrudFullModule } from './crud-full.module';\nimport { CrudConfig, CrudFullConfig } from './crud.config';\nimport { CrudListPaginationFactory } from './factories/list-pagination/list-pagination.factory';\nimport { CrudPipesModule } from './pipes';\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudListGroupService } from './services/list-group/list-group.service';\nimport { PageService } from './services/page/page.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./crud.config\";\nimport * as i2 from \"./+state/crud.effects\";\nexport class CrudCoreModule {\n constructor(config, effects) {\n NgrxStoreService.addReducer(config.entity, config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity));\n effects.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudCoreModule, deps: [{ token: i1.CrudConfig }, { token: i2.CrudEffects }], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudCoreModule, imports: [SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule], exports: [CrudComponentsModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudCoreModule, providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ], imports: [SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule, CrudComponentsModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudCoreModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n ],\n exports: [CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ],\n }]\n }], ctorParameters: () => [{ type: i1.CrudConfig }, { type: i2.CrudEffects }] });\nexport class CrudModule {\n static forFeature(options) {\n return {\n ngModule: options.routing ? CrudFullModule : CrudCoreModule,\n providers: [\n { provide: CrudConfig, useValue: options.config },\n { provide: CrudFullConfig, useValue: options.config },\n {\n provide: FILE_SERVICE_CONFIG,\n useValue: { apiUrl: options.config.apiUrl },\n },\n ],\n };\n }\n constructor(config, effects) {\n NgrxStoreService.addReducer(config.entity, config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity));\n effects.init();\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudModule, deps: [{ token: i1.CrudConfig }, { token: i2.CrudEffects }], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudModule });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudModule, providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.0\", ngImport: i0, type: CrudModule, decorators: [{\n type: NgModule,\n args: [{\n providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ],\n }]\n }], ctorParameters: () => [{ type: i1.CrudConfig }, { type: i2.CrudEffects }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jcnVkLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUF1QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTdDLE9BQU8sRUFDTCxtQkFBbUIsRUFFbkIsZ0JBQWdCLEVBQ2hCLFlBQVksR0FDYixNQUFNLHVCQUF1QixDQUFDO0FBRy9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDdEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDMUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQW9CM0QsTUFBTSxPQUFPLGNBQWM7SUFDekIsWUFBWSxNQUFxQixFQUFFLE9BQXlCO1FBQzFELGdCQUFnQixDQUFDLFVBQVUsQ0FDekIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsY0FBYztZQUNuQixDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUN6QixDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDOUIsQ0FBQztRQUNGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNqQixDQUFDO3VHQVRVLGNBQWM7d0dBQWQsY0FBYyxZQWhCdkIsWUFBWTtZQUNaLGVBQWU7WUFDZixXQUFXO1lBQ1gsWUFBWTtZQUNaLG9CQUFvQixhQUVaLG9CQUFvQjt3R0FVbkIsY0FBYyxhQVRkO1lBQ1QsV0FBVztZQUNYLG9CQUFvQjtZQUNwQixXQUFXO1lBQ1gsV0FBVztZQUNYLFVBQVU7WUFDVix5QkFBeUI7U0FDMUIsWUFkQyxZQUFZO1lBQ1osZUFBZTtZQUNmLFdBQVc7WUFDWCxZQUFZO1lBQ1osb0JBQW9CLEVBRVosb0JBQW9COzsyRkFVbkIsY0FBYztrQkFsQjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixXQUFXO3dCQUNYLFlBQVk7d0JBQ1osb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsU0FBUyxFQUFFO3dCQUNULFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVix5QkFBeUI7cUJBQzFCO2lCQUNGOztBQXVCRCxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsVUFBVSxDQUNmLE9BRXNDO1FBRXRDLE9BQU87WUFDTCxRQUFRLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLENBQUMsQ0FBQyxjQUFjO1lBQzNELFNBQVMsRUFBRTtnQkFDVCxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ2pELEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDLE1BQU0sRUFBRTtnQkFDckQ7b0JBQ0UsT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsUUFBUSxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUF3QjtpQkFDbEU7YUFDRjtTQUNGLENBQUM7SUFDSixDQUFDO0lBRUMsWUFBWSxNQUFxQixFQUFFLE9BQXlCO1FBQ3hELGdCQUFnQixDQUFDLFVBQVUsQ0FDdkIsTUFBTSxDQUFDLE1BQU0sRUFDYixNQUFNLENBQUMsY0FBYztZQUNqQixDQUFDLENBQUMsTUFBTSxDQUFDLGNBQWMsRUFBRTtZQUN6QixDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FDbEMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNuQixDQUFDO3VHQTNCUSxVQUFVO3dHQUFWLFVBQVU7d0dBQVYsVUFBVSxhQVRSO1lBQ1AsV0FBVztZQUNYLG9CQUFvQjtZQUNwQixXQUFXO1lBQ1gsV0FBVztZQUNYLFVBQVU7WUFDVix5QkFBeUI7U0FDNUI7OzJGQUVRLFVBQVU7a0JBVnRCLFFBQVE7bUJBQUM7b0JBQ04sU0FBUyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVix5QkFBeUI7cUJBQzVCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMsIE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHtcbiAgRklMRV9TRVJWSUNFX0NPTkZJRyxcbiAgSUZpbGVTZXJ2aWNlQ29uZmlnLFxuICBOZ3J4U3RvcmVTZXJ2aWNlLFxuICBTaGFyZWRNb2R1bGUsXG59IGZyb20gJ0BzbWFydHNvZnQwMDEvYW5ndWxhcic7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZSc7XG5cbmltcG9ydCB7IGdldFJlZHVjZXIgfSBmcm9tICcuLytzdGF0ZSc7XG5pbXBvcnQgeyBDcnVkRWZmZWN0cyB9IGZyb20gJy4vK3N0YXRlL2NydWQuZWZmZWN0cyc7XG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSAnLi8rc3RhdGUvY3J1ZC5mYWNhZGUnO1xuaW1wb3J0IHsgQ3J1ZENvbXBvbmVudHNNb2R1bGUgfSBmcm9tICcuL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxNb2R1bGUgfSBmcm9tICcuL2NydWQtZnVsbC5tb2R1bGUnO1xuaW1wb3J0IHsgQ3J1ZENvbmZpZywgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tICcuL2NydWQuY29uZmlnJztcbmltcG9ydCB7IENydWRMaXN0UGFnaW5hdGlvbkZhY3RvcnkgfSBmcm9tICcuL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnknO1xuaW1wb3J0IHsgQ3J1ZFBpcGVzTW9kdWxlIH0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvY3J1ZC9jcnVkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ3J1ZExpc3RHcm91cFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2xpc3QtZ3JvdXAvbGlzdC1ncm91cC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgQ3J1ZFBpcGVzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDcnVkQ29tcG9uZW50c01vZHVsZSxcbiAgXSxcbiAgZXhwb3J0czogW0NydWRDb21wb25lbnRzTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ3J1ZFNlcnZpY2UsXG4gICAgQ3J1ZExpc3RHcm91cFNlcnZpY2UsXG4gICAgQ3J1ZEVmZmVjdHMsXG4gICAgUGFnZVNlcnZpY2UsXG4gICAgQ3J1ZEZhY2FkZSxcbiAgICBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDcnVkQ29yZU1vZHVsZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIGNvbnN0cnVjdG9yKGNvbmZpZzogQ3J1ZENvbmZpZzxUPiwgZWZmZWN0czogQ3J1ZEVmZmVjdHM8YW55Pikge1xuICAgIE5ncnhTdG9yZVNlcnZpY2UuYWRkUmVkdWNlcihcbiAgICAgIGNvbmZpZy5lbnRpdHksXG4gICAgICBjb25maWcucmVkdWNlckZhY3RvcnlcbiAgICAgICAgPyBjb25maWcucmVkdWNlckZhY3RvcnkoKVxuICAgICAgICA6IGdldFJlZHVjZXIoY29uZmlnLmVudGl0eSksXG4gICAgKTtcbiAgICBlZmZlY3RzLmluaXQoKTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe1xuICAgIHByb3ZpZGVyczogW1xuICAgICAgICBDcnVkU2VydmljZSxcbiAgICAgICAgQ3J1ZExpc3RHcm91cFNlcnZpY2UsXG4gICAgICAgIENydWRFZmZlY3RzLFxuICAgICAgICBQYWdlU2VydmljZSxcbiAgICAgICAgQ3J1ZEZhY2FkZSxcbiAgICAgICAgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDcnVkTW9kdWxlPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IHtcbiAgc3RhdGljIGZvckZlYXR1cmU8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gICAgb3B0aW9uczpcbiAgICAgIHwgSUNydWRNb2R1bGVPcHRpb25zV2l0aFJvdXRuZzxUPlxuICAgICAgfCBJQ3J1ZE1vZHVsZU9wdGlvbnNXaXRob3V0Um91dG5nPFQ+LFxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENydWRNb2R1bGU8YW55Pj4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogb3B0aW9ucy5yb3V0aW5nID8gQ3J1ZEZ1bGxNb2R1bGUgOiBDcnVkQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENydWRDb25maWcsIHVzZVZhbHVlOiBvcHRpb25zLmNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IENydWRGdWxsQ29uZmlnLCB1c2VWYWx1ZTogb3B0aW9ucy5jb25maWcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZJTEVfU0VSVklDRV9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IHsgYXBpVXJsOiBvcHRpb25zLmNvbmZpZy5hcGlVcmwgfSBhcyBJRmlsZVNlcnZpY2VDb25maWcsXG4gICAgICAgIH0sXG4gICAgICBdLFxuICAgIH07XG4gIH1cblxuICAgIGNvbnN0cnVjdG9yKGNvbmZpZzogQ3J1ZENvbmZpZzxUPiwgZWZmZWN0czogQ3J1ZEVmZmVjdHM8YW55Pikge1xuICAgICAgICBOZ3J4U3RvcmVTZXJ2aWNlLmFkZFJlZHVjZXIoXG4gICAgICAgICAgICBjb25maWcuZW50aXR5LFxuICAgICAgICAgICAgY29uZmlnLnJlZHVjZXJGYWN0b3J5XG4gICAgICAgICAgICAgICAgPyBjb25maWcucmVkdWNlckZhY3RvcnkoKVxuICAgICAgICAgICAgICAgIDogZ2V0UmVkdWNlcihjb25maWcuZW50aXR5KSxcbiAgICAgICAgKTtcbiAgICAgICAgZWZmZWN0cy5pbml0KCk7XG4gICAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDcnVkTW9kdWxlT3B0aW9uc1dpdGhSb3V0bmc8VD4ge1xuICBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+O1xuICBzb2NrZXQ/OiBib29sZWFuO1xuICByb3V0aW5nOiB0cnVlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDcnVkTW9kdWxlT3B0aW9uc1dpdGhvdXRSb3V0bmc8VD4ge1xuICBjb25maWc6IENydWRDb25maWc8VD47XG4gIHNvY2tldD86IGJvb2xlYW47XG4gIHJvdXRpbmc6IGZhbHNlO1xufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2Z0MDAxLWNydWQtc2hlbGwtYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvc21hcnRzb2Z0MDAxLWNydWQtc2hlbGwtYW5ndWxhci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["select","CrudSelectors.getCrudLoaded","CrudSelectors.getCrudSelected","CrudSelectors.getCrudMultiSelected","CrudSelectors.getCrudList","CrudSelectors.getCrudFilter","CrudSelectors.getCrudTotalCount","CrudSelectors.getCrudLinks","CrudSelectors.getCrudError","CrudActions.create","CrudActions.createMany","CrudActions.read","CrudActions.clear","CrudActions.select","CrudActions.unselect","CrudActions.multiSelect","CrudActions.update","CrudActions.exportList","CrudActions.updatePartial","CrudActions.updatePartialMany","CrudActions.deleteItem","i2.CrudConfig","BaseComponent","ListComponent","CrudActions.createSuccess","CrudActions.createFailure","CrudActions.createManySuccess","CrudActions.createManyFailure","CrudActions.readSuccess","CrudActions.readFailure","CrudActions.exportListSuccess","CrudActions.exportListFailure","CrudActions.selectSuccess","CrudActions.selectFailure","CrudActions.updateSuccess","CrudActions.updateFailure","CrudActions.updatePartialSuccess","CrudActions.updatePartialFailure","CrudActions.updatePartialManySuccess","CrudActions.updatePartialManyFailure","CrudActions.deleteSuccess","CrudActions.deleteFailure","i2.CrudService","i3.CrudConfig","i1.CrudConfig","i2.CrudEffects"],"mappings":"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"}
1
+ {"version":3,"file":"smartsoft001-crud-shell-angular.mjs","sources":["../../../../../../packages/crud/shell/angular/src/lib/crud.config.ts","../../../../../../packages/crud/shell/angular/src/lib/+state/crud.actions.ts","../../../../../../packages/crud/shell/angular/src/lib/+state/crud.selectors.ts","../../../../../../packages/crud/shell/angular/src/lib/+state/crud.facade.ts","../../../../../../packages/crud/shell/angular/src/lib/components/export/export.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/base/base.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/check/check.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date/date.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date/date.component.html","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date-time/date-time.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date-time/date-time.component.html","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date-with-edit/date-with-edit.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/date-with-edit/date-with-edit.component.html","../../../../../../packages/crud/shell/angular/src/lib/components/filter/flag/flag.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/int/int.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/int/int.component.html","../../../../../../packages/crud/shell/angular/src/lib/components/filter/radio/radio.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/text/text.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/filter.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filter/filter.component.html","../../../../../../packages/crud/shell/angular/src/lib/components/filters/filters.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/filters-config/filters-config.component.ts","../../../../../../packages/crud/shell/angular/src/lib/providers/model-possibilities/model-possibilities.provider.ts","../../../../../../packages/crud/shell/angular/src/lib/pipes/form-options/form-options.pipe.ts","../../../../../../packages/crud/shell/angular/src/lib/pipes/pipes.module.ts","../../../../../../packages/crud/shell/angular/src/lib/components/multiselect/multiselect.component.ts","../../../../../../packages/crud/shell/angular/src/lib/components/multiselect/multiselect.component.html","../../../../../../packages/crud/shell/angular/src/lib/services/list-group/list-group.service.ts","../../../../../../packages/crud/shell/angular/src/lib/components/group/group.component.ts","../../../../../../packages/crud/shell/angular/src/lib/factories/list-pagination/list-pagination.factory.ts","../../../../../../packages/crud/shell/angular/src/lib/services/crud/crud.service.ts","../../../../../../packages/crud/shell/angular/src/lib/components/components.module.ts","../../../../../../packages/crud/shell/angular/src/lib/+state/crud.reducer.ts","../../../../../../packages/crud/shell/angular/src/lib/+state/crud.effects.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/item/base/base.component.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/item/standard/standard.component.ts","../../../../../../packages/crud/shell/angular/src/lib/services/page/page.service.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/item/item.component.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/list/base/base.component.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/list/standard/standard.component.ts","../../../../../../packages/crud/shell/angular/src/lib/services/search/search.service.ts","../../../../../../packages/crud/shell/angular/src/lib/pages/list/list.component.ts","../../../../../../packages/crud/shell/angular/src/lib/crud-full.module.ts","../../../../../../packages/crud/shell/angular/src/lib/crud.module.ts","../../../../../../packages/crud/shell/angular/src/smartsoft001-crud-shell-angular.ts"],"sourcesContent":["import { Injectable, Type } from '@angular/core';\n\nimport {\n IIconButtonOptions,\n ICellPipe,\n InputBaseComponent,\n ListMode,\n PaginationMode,\n} from '@smartsoft001/angular';\n\nimport { ICrudFilterQueryItem, ICrudListGroup } from './models';\n\n@Injectable()\nexport class CrudConfig<T> {\n apiUrl!: string;\n entity!: string;\n type?: any;\n reducerFactory?: () => any;\n baseQuery?: Array<ICrudFilterQueryItem>;\n}\n\n@Injectable()\nexport class CrudFullConfig<T> extends CrudConfig<T> {\n title!: string;\n details?:\n | boolean\n | {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any;\n bottom?: any;\n };\n };\n edit?:\n | boolean\n | {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any;\n bottom?: any;\n };\n };\n add?:\n | boolean\n | {\n components?: {\n top?: any;\n bottom?: any;\n };\n };\n remove?: boolean;\n search?: boolean;\n export?: boolean;\n pagination?: {\n limit: number;\n };\n sort?:\n | boolean\n | {\n default?: string;\n defaultDesc?: boolean;\n };\n list?: {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any;\n multi?: any;\n };\n mode?: ListMode;\n paginationMode?: PaginationMode;\n resetQuery?: 'beforeInit';\n groups?: Array<ICrudListGroup>;\n };\n buttons?: Array<IIconButtonOptions>;\n inputComponents?: {\n [key: string]: Type<InputBaseComponent<T>>;\n };\n}\n","import { Action } from '@ngrx/store';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { ICrudCreateManyOptions, ICrudFilter } from '../models';\n\n/*\n * Create\n */\nexport const create = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n): Action & { item: T } {\n return {\n type: `[${entity}] Create`,\n item,\n };\n};\n\nexport const createSuccess = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n): Action & { item: T } {\n return {\n type: `[${entity}] Create Success`,\n item,\n };\n};\n\nexport const createFailure = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n error: any,\n): Action & { item: T; error: any } {\n return {\n type: `[${entity}] Create Failure`,\n item,\n error,\n };\n};\n\n/*\n * Create many\n */\nexport const createMany = function <T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions },\n): Action & { data: { items: T[]; options: ICrudCreateManyOptions } } {\n return {\n type: `[${entity}] Create Many`,\n data,\n };\n};\n\nexport const createManySuccess = function <T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions },\n): Action & { data: { items: T[]; options: ICrudCreateManyOptions } } {\n return {\n type: `[${entity}] Create Many Success`,\n data,\n };\n};\n\nexport const createManyFailure = function <T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions },\n error: any,\n): Action & {\n data: { items: T[]; options: ICrudCreateManyOptions };\n error: any;\n} {\n return {\n type: `[${entity}] Create Many Failure`,\n data,\n error,\n };\n};\n\n/*\n * Read\n */\nexport const read = function (\n entity: string,\n filter?: ICrudFilter,\n): Action & { filter?: ICrudFilter } {\n return {\n type: `[${entity}] Read`,\n filter: filter,\n };\n};\n\nexport const readSuccess = function <T extends IEntity<string>, F>(\n entity: string,\n filter: F,\n result: { data: T[]; totalCount: number; links: any },\n): Action & {\n result: { data: T[]; totalCount: number; links: any };\n filter: F;\n} {\n return {\n type: `[${entity}] Read Success`,\n result,\n filter,\n };\n};\n\nexport const readFailure = function <F>(\n entity: string,\n filter: F,\n error: any,\n): Action & { filter: F; error: any } {\n return {\n type: `[${entity}] Read Failure`,\n filter,\n error,\n };\n};\n\n/*\n * Clear\n */\nexport const clear = function (entity: string): Action {\n return {\n type: `[${entity}] Clear`,\n };\n};\n\n/*\n * Export\n */\nexport const exportList = function (\n entity: string,\n filter: ICrudFilter | null = null,\n format: any,\n): Action & { filter: ICrudFilter; format: any } {\n return {\n type: `[${entity}] Export`,\n filter: filter as any,\n format,\n };\n};\n\nexport const exportListSuccess = function <T extends IEntity<string>, F>(\n entity: string,\n filter: F,\n): Action & { filter: F } {\n return {\n type: `[${entity}] Export Success`,\n filter,\n };\n};\n\nexport const exportListFailure = function <F>(\n entity: string,\n filter: F,\n error: any,\n): Action & { filter: F; error: any } {\n return {\n type: `[${entity}] Export Failure`,\n filter,\n error,\n };\n};\n\n/*\n * Select\n */\nexport const select = function (\n entity: string,\n id: string,\n): Action & { id: string } {\n return {\n type: `[${entity}] Select`,\n id,\n };\n};\n\nexport const selectSuccess = function <T extends IEntity<string>, F>(\n entity: string,\n id: string,\n item: T,\n): Action & { id: string; item: T } {\n return {\n type: `[${entity}] Select Success`,\n id,\n item,\n };\n};\n\nexport const selectFailure = function <F>(\n entity: string,\n id: string,\n error: any,\n): Action & { id: string; error: any } {\n return {\n type: `[${entity}] Select Failure`,\n id,\n error,\n };\n};\n\nexport const unselect = function (entity: string): Action {\n return {\n type: `[${entity}] Unselect`,\n };\n};\n\n/*\n * MultiSelect\n */\nexport const multiSelect = function <T extends IEntity<string>>(\n entity: string,\n items: Array<T>,\n): Action & { items: Array<T> } {\n return {\n type: `[${entity}] MultiSelect`,\n items,\n };\n};\n\n/*\n * Update\n */\nexport const update = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n): Action & { item: T } {\n return {\n type: `[${entity}] Update`,\n item,\n };\n};\n\nexport const updateSuccess = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n): Action & { item: T } {\n return {\n type: `[${entity}] Update Success`,\n item,\n };\n};\n\nexport const updateFailure = function <T extends IEntity<string>>(\n entity: string,\n item: T,\n error: any,\n): Action & { item: T; error: any } {\n return {\n type: `[${entity}] Update Failure`,\n item,\n error,\n };\n};\n\n/*\n * Update partial\n */\nexport const updatePartial = function <T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string },\n): Action & { item: Partial<T> & { id: string } } {\n return {\n type: `[${entity}] Update partial`,\n item,\n };\n};\n\nexport const updatePartialSuccess = function <T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string },\n): Action & { item: Partial<T> & { id: string } } {\n return {\n type: `[${entity}] Update partial Success`,\n item,\n };\n};\n\nexport const updatePartialFailure = function <T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string },\n error: any,\n): Action & { item: Partial<T> & { id: string }; error: any } {\n return {\n type: `[${entity}] Update partial Failure`,\n item,\n error,\n };\n};\n\n/*\n * Update partial many\n */\nexport const updatePartialMany = function <T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[],\n): Action & { items: Partial<T> & { id: string }[] } {\n return {\n type: `[${entity}] Update partial many`,\n items,\n };\n};\n\nexport const updatePartialManySuccess = function <T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[],\n): Action & { items: Partial<T> & { id: string }[] } {\n return {\n type: `[${entity}] Update partial many Success`,\n items,\n };\n};\n\nexport const updatePartialManyFailure = function <T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[],\n error: any,\n): Action & { items: Partial<T> & { id: string }[]; error: any } {\n return {\n type: `[${entity}] Update partial many Failure`,\n items,\n error,\n };\n};\n\n/*\n * Delete\n */\nexport const deleteItem = function (\n entity: string,\n id: string,\n): Action & { id: string } {\n return {\n type: `[${entity}] Delete`,\n id,\n };\n};\n\nexport const deleteSuccess = function (\n entity: string,\n id: string,\n): Action & { id: string } {\n return {\n type: `[${entity}] Delete Success`,\n id,\n };\n};\n\nexport const deleteFailure = function <F>(\n entity: string,\n id: string,\n error: any,\n): Action & { id: string; error: any } {\n return {\n type: `[${entity}] Delete Failure`,\n id,\n error,\n };\n};\n","import { createFeatureSelector, createSelector } from '@ngrx/store';\n\nexport const getCrudState = (entity: string) =>\n createFeatureSelector<any>(entity);\n\nexport const getCrudSelected = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state.selected);\n\nexport const getCrudMultiSelected = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state.multiSelected);\n\nexport const getCrudList = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.list);\n\nexport const getCrudTotalCount = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.totalCount);\n\nexport const getCrudLinks = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.links);\n\nexport const getCrudLoaded = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.loaded);\n\nexport const getCrudFilter = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.filter);\n\nexport const getCrudError = (entity: string) =>\n createSelector(getCrudState(entity), (state) => state?.error);\n","import { Injectable, Signal } from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { select, Store } from '@ngrx/store';\nimport { map } from 'rxjs/operators';\n\nimport { NgrxStoreService } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudConfig } from '../crud.config';\nimport * as CrudActions from './crud.actions';\nimport * as CrudSelectors from './crud.selectors';\nimport {\n ICrudCreateManyOptions,\n ICrudFilter,\n ICrudFilterQueryItem,\n} from '../models';\n\n@Injectable()\nexport class CrudFacade<T extends IEntity<string>> {\n readonly loaded: Signal<boolean | undefined>;\n readonly loading: Signal<boolean>;\n readonly selected: Signal<T | undefined>;\n readonly multiSelected: Signal<T[] | undefined>;\n readonly list: Signal<T[] | undefined>;\n readonly filter: Signal<ICrudFilter | undefined>;\n readonly totalCount: Signal<number | undefined>;\n readonly links: Signal<any>;\n readonly error: Signal<any>;\n\n constructor(\n private readonly store: Store<any>,\n private config: CrudConfig<T>,\n ) {\n if (NgrxStoreService.store) {\n this.store = NgrxStoreService.store;\n }\n\n // Initialize all signals in the constructor (injection context)\n this.loaded = toSignal<boolean>(\n this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity))),\n );\n\n this.loading = toSignal<boolean>(\n this.store.pipe(\n select(CrudSelectors.getCrudLoaded(this.config.entity)),\n map((l) => !l),\n ),\n ) as Signal<boolean>;\n\n this.selected = toSignal<T>(\n this.store.pipe(\n select(CrudSelectors.getCrudSelected(this.config.entity)),\n ),\n );\n\n this.multiSelected = toSignal<T[]>(\n this.store.pipe(\n select(CrudSelectors.getCrudMultiSelected(this.config.entity)),\n ),\n );\n\n this.list = toSignal<T[]>(\n this.store.pipe(select(CrudSelectors.getCrudList(this.config.entity))),\n );\n\n this.filter = toSignal<ICrudFilter>(\n this.store.pipe(select(CrudSelectors.getCrudFilter(this.config.entity))),\n );\n\n this.totalCount = toSignal<number>(\n this.store.pipe(\n select(CrudSelectors.getCrudTotalCount(this.config.entity)),\n ),\n );\n\n this.links = toSignal<any>(\n this.store.pipe(select(CrudSelectors.getCrudLinks(this.config.entity))),\n );\n\n this.error = toSignal<any>(\n this.store.pipe(select(CrudSelectors.getCrudError(this.config.entity))),\n );\n }\n\n create(item: T): void {\n this.store.dispatch(CrudActions.create(this.config.entity, item));\n }\n\n createMany(items: Array<T>, options: ICrudCreateManyOptions): void {\n this.store.dispatch(\n CrudActions.createMany(this.config.entity, { items, options }),\n );\n }\n\n read(filter: ICrudFilter = {}): void {\n let baseQuery: ICrudFilterQueryItem[] = [];\n if (this.config.baseQuery) {\n baseQuery = this.config.baseQuery;\n }\n\n const fullFilter = {\n ...(filter ? filter : {}),\n query: filter && filter.query ? filter.query : baseQuery,\n };\n\n this.store.dispatch(CrudActions.read(this.config.entity, fullFilter));\n }\n\n clear(): void {\n this.store.dispatch(CrudActions.clear(this.config.entity));\n }\n\n select(id: string): void {\n this.store.dispatch(CrudActions.select(this.config.entity, id));\n }\n\n unselect(): void {\n this.store.dispatch(CrudActions.unselect(this.config.entity));\n }\n\n multiSelect(items: Array<T>): void {\n this.store.dispatch(CrudActions.multiSelect(this.config.entity, items));\n }\n\n update(item: T): void {\n this.getStore().dispatch(CrudActions.update(this.config.entity, item));\n }\n\n export(filter: ICrudFilter = {}, format?: string): void {\n this.getStore().dispatch(\n CrudActions.exportList(this.config.entity, filter, format),\n );\n }\n\n updatePartial(item: Partial<T> & { id: string }): void {\n this.getStore().dispatch(\n CrudActions.updatePartial(this.config.entity, item),\n );\n }\n\n updatePartialMany(items: (Partial<T> & { id: string })[]) {\n this.getStore().dispatch(\n CrudActions.updatePartialMany(this.config.entity, items),\n );\n }\n\n delete(id: string): void {\n this.getStore().dispatch(CrudActions.deleteItem(this.config.entity, id));\n }\n\n private getStore(): Store {\n if (NgrxStoreService.store) return NgrxStoreService.store;\n\n return this.store;\n }\n}\n","import { Component, ElementRef, inject, OnInit } from '@angular/core';\n\nimport {\n BaseComponent,\n ButtonComponent,\n IButtonOptions,\n PopoverService,\n StyleService,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFacade } from '../../+state/crud.facade';\n\n@Component({\n selector: 'smart-crud-export',\n template: `\n <div class=\"p-5\">\n <p class=\"my-2.5 mx-0\">\n <smart-button [options]=\"buttonExportCsvOptions\" class=\"w-full block\"\n >CSV</smart-button\n >\n </p>\n <p>\n <smart-button [options]=\"buttonExportXlsxOptions\" class=\"w-full block\"\n >XLSX</smart-button\n >\n </p>\n </div>\n `,\n imports: [ButtonComponent],\n})\nexport class ExportComponent<T extends IEntity<string>>\n extends BaseComponent\n implements OnInit\n{\n private facade = inject(CrudFacade<T>);\n private popoverService = inject(PopoverService);\n private styleService = inject(StyleService);\n private elementRef = inject(ElementRef);\n\n buttonExportCsvOptions: IButtonOptions = this.initButtonExportOptions('csv');\n buttonExportXlsxOptions: IButtonOptions =\n this.initButtonExportOptions('xlsx');\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n }\n\n private initButtonExportOptions(format: string): IButtonOptions {\n return {\n click: () => {\n this.facade.export(\n {\n ...this.facade.filter(),\n offset: undefined,\n limit: undefined,\n },\n format,\n );\n\n const loading = this.facade.loading();\n if (loading) return;\n this.popoverService.close().then();\n },\n loading: this.facade.loading,\n expand: 'block',\n };\n }\n}\n","import {\n Directive,\n inject,\n input,\n InputSignal,\n OnInit,\n Signal,\n} from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport { Debounce } from 'lodash-decorators';\n\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { FieldType, IModelFilter } from '@smartsoft001/models';\n\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport { ICrudFilter } from '../../../models';\n\n@Directive()\nexport class BaseComponent<T extends IEntity<string>> implements OnInit {\n protected facade = inject(CrudFacade<T>);\n protected translateService = inject(TranslateService);\n\n possibilities!: Signal<{ id: any; text: string }[]>;\n\n readonly item: InputSignal<IModelFilter | undefined> = input<IModelFilter>();\n readonly filter: InputSignal<ICrudFilter | undefined> = input<ICrudFilter>();\n\n get value(): any {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query) return null;\n\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === item.type)\n .map((q) => q.value);\n }\n\n const query = filter.query.find(\n (q) => q.key === item.key && q.type === item.type,\n );\n return query?.value;\n }\n\n set value(val: any) {\n this.refresh(val);\n }\n\n get minValue(): any {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query) return null;\n\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === '>=')\n .map((q) => q.value);\n }\n\n const query = filter.query.find(\n (q) => q.key === item.key && q.type === '>=',\n );\n return query?.value;\n }\n\n set minValue(val: any) {\n this.refresh(val, '>=');\n }\n\n get maxValue(): any {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query) return null;\n\n if (this.isArrayType()) {\n return filter.query\n .filter((q) => q.key === item.key && q.type === '<=')\n .map((q) => q.value);\n }\n\n const query = filter.query.find(\n (q) => q.key === item.key && q.type === '<=',\n );\n return query?.value;\n }\n\n set maxValue(val: any) {\n this.refresh(val, '<=');\n }\n\n get lang(): string {\n return this.translateService.currentLang;\n }\n\n @Debounce(500)\n refresh(val: any, type: string | null = null): void {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item) return;\n\n if (!type) type = item.type;\n if (!filter.query) filter.query = [];\n\n filter.offset = 0;\n\n if (this.isArrayType()) {\n this.refreshForArray(val as [], type);\n return;\n }\n\n let query = filter.query!.find(\n (q) => q.key === item.key && q.type === type,\n );\n\n if (val === null || val === undefined || val === '') {\n if (query) {\n const index = filter.query!.indexOf(query);\n if (index > -1) {\n filter.query!.splice(index, 1);\n }\n }\n\n this.facade.read(filter);\n return;\n }\n\n if (!query) {\n query = {\n key: item.key,\n type: type as '=' | '!=' | '>=' | '<=' | '<' | '>',\n value: null,\n };\n\n filter.query!.push(query);\n }\n\n query.value = val;\n query.label = item.label;\n\n this.facade.read(filter);\n }\n\n clear(): void {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item || !filter.query) return;\n\n filter.query = filter.query?.filter((q) => q.key !== item.key);\n filter.offset = 0;\n this.facade.read(filter);\n }\n\n ngOnInit(): void {\n this.initPossibilities();\n }\n\n private initPossibilities(): void {\n const item = this.item();\n if (item?.possibilities) {\n this.possibilities = item.possibilities;\n }\n }\n\n private isArrayType(): boolean {\n const item = this.item();\n return item?.fieldType === FieldType.check;\n }\n\n private refreshForArray(vals: [], type: string): void {\n const filter = this.filter();\n const item = this.item();\n if (!filter || !item) return;\n if (!filter.query) filter.query = [];\n\n const queries =\n filter.query?.filter((q) => q.key === item.key && q.type === type) || [];\n\n queries.forEach((query) => {\n const index = filter.query!.indexOf(query);\n if (index > -1) {\n filter.query!.splice(index, 1);\n }\n });\n\n if (vals === null || vals === undefined || !vals.length) {\n this.facade.read(filter);\n return;\n }\n\n vals.forEach((val) => {\n const query = {\n key: item.key,\n type: type as '=' | '!=' | '>=' | '<=' | '<' | '>',\n value: val,\n };\n\n filter.query!.push(query);\n });\n\n this.facade.read(filter);\n }\n}\n","import { AfterContentInit, Component, computed, Signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-check',\n template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-item-divider class=\"text-xl font-light\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value?.length) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh([])\"-->\n <!-- class=\"square-button m-0 p-0 text-lg h-9 w-9\"-->\n <!-- >-->\n <!-- <ion-icon class=\"text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (entry of list(); track entry) {\n <!-- <ion-item>-->\n <!--<ion-label>-->{{ entry.value.text | translate\n }}<!--</ion-label>-->\n <!-- <ion-checkbox-->\n <!-- slot=\"end\"-->\n <!-- [checked]=\"entry.isCheck\"-->\n <!-- (ionChange)=\"onCheckChange($event.detail.checked, entry)\"-->\n <!-- ></ion-checkbox>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `,\n imports: [TranslatePipe],\n styleUrls: ['./check.component.scss'],\n})\nexport class FilterCheckComponent<T extends IEntity<string>>\n extends BaseComponent<T>\n implements AfterContentInit\n{\n list!: Signal<{ value: any; isCheck: boolean }[]>;\n\n ngAfterContentInit(): void {\n this.list = computed(() => {\n const possibilities = this.possibilities();\n return possibilities.map((pos) => ({\n value: pos,\n isCheck: this.value.some((r: any) => r === pos.id),\n }));\n });\n }\n\n onCheckChange(checked: boolean, entry: { value: any; isCheck: boolean }) {\n if (checked && !this.value.some((r: any) => r === entry.value.id)) {\n this.value = [...this.value, entry.value.id];\n }\n\n if (!checked && this.value.some((r: any) => r === entry.value.id)) {\n this.value = this.value?.filter((r: any) => r !== entry.value.id);\n }\n }\n}\n","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport moment from 'moment';\n\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { GuidService } from '@smartsoft001/utils';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-date',\n templateUrl: './date.component.html',\n imports: [FormsModule, TranslatePipe],\n styles: [\n `\n :host {\n width: 100%;\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterDateComponent<\n T extends IEntity<string>,\n> extends BaseComponent<T> {\n id = GuidService.create();\n\n get allowAdvanced(): boolean {\n const item = this.item();\n return item?.type === '=';\n }\n\n set customValue(val) {\n const momentDate = moment(val);\n this.value =\n (val as string)?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n\n get customValue(): any {\n return this.value;\n }\n\n set customMinValue(val) {\n const momentDate = moment(val);\n this.minValue =\n (val as string)?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n\n get customMinValue(): any {\n return this.minValue;\n }\n\n set customMaxValue(val) {\n const momentDate = moment(val);\n this.maxValue =\n (val as string)?.length >= 10 && momentDate.isValid()\n ? momentDate.format('YYYY-MM-DD')\n : val;\n }\n\n get customMaxValue(): any {\n return this.maxValue;\n }\n}\n","<!--<ion-row>-->\n<!-- <ion-col>-->\n<!-- <ion-label>-->\n{{ item()?.label || '' | translate }}\n<!-- </ion-label>-->\n<!-- <ion-item button=\"true\" id=\"open-date-input-{{ id }}\" color=\"primary\">-->\n<!-- <ion-text>-->\n{{ customValue ? customValue : ('select' | translate) }}\n<!-- </ion-text>-->\n<!-- <ion-popover trigger=\"open-date-input-{{ id }}\" show-backdrop=\"false\">-->\n<ng-template>\n <!-- <ion-datetime-->\n <!-- displayFormat=\"YYYY-MM-DD\"-->\n <!-- pickerFormat=\"YYYY-MM-DD\"-->\n <!-- [(ngModel)]=\"customValue\"-->\n <!-- presentation=\"date\"-->\n <!-- ></ion-datetime>-->\n</ng-template>\n<!-- </ion-popover>-->\n<!-- </ion-item>-->\n<!-- </ion-col>-->\n\n@if (value) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"square-button m-3\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!--</ion-row>-->\n","import { Component, OnDestroy, OnInit } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\n\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { GuidService } from '@smartsoft001/utils';\n\nimport { FilterDateComponent } from '../date/date.component';\n\n@Component({\n selector: 'smart-crud-filter-date-time',\n templateUrl: './date-time.component.html',\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterDateTimeComponent<T extends IEntity<string>>\n extends FilterDateComponent<T>\n implements OnInit, OnDestroy\n{\n private _subscriptions = new Subscription();\n\n override id = GuidService.create();\n\n // @ViewChild(IonDatetime, { read: IonDatetime, static: false })\n // dateTimePicker: IonDatetime;\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n // if (this.dateTimePicker) {\n // this._subscriptions.add(\n // this.dateTimePicker.ionChange.subscribe((val: CustomEvent) => {\n // this.customValue = val.detail.value;\n // }),\n // );\n // } else {\n // console.error('dateTimePicker not found!');\n // }\n }\n\n ngOnDestroy(): void {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n}\n","<!--<ion-row>-->\n<!-- <ion-col>-->\n<!-- <ion-label>-->\n{{ item()?.label || '' | translate }}\n<!-- </ion-label>-->\n<!-- </ion-col>-->\n@if (value || minValue || maxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button color=\"danger\" (click)=\"clear()\" class=\"square-button m-3\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!--</ion-row>-->\n<!--<ion-row>-->\n<!-- <ion-col>-->\n<!-- <ion-item>-->\n<!-- <ion-label>-->\n{{ 'from' | translate }}\n<!-- </ion-label>-->\n<!-- <ion-input-->\n<!-- placeholder=\"YYYY-MM-DD HH:mm:ss\"-->\n<!-- [(ngModel)]=\"customMinValue\"-->\n<!-- pattern=\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\"-->\n<!-- ></ion-input>-->\n<!-- </ion-item>-->\n<!-- </ion-col>-->\n@if (customMinValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '>=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!-- <ion-col>-->\n<!-- <ion-item>-->\n<!-- <ion-label>-->\n{{ 'to' | translate }}\n<!-- </ion-label>-->\n<!-- <ion-input-->\n<!-- placeholder=\"YYYY-MM-DD HH:mm:ss\"-->\n<!-- [(ngModel)]=\"customMaxValue\"-->\n<!-- pattern=\"^[0-9]{4}-[0-9]{2}-[0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2}$\"-->\n<!-- ></ion-input>-->\n<!-- </ion-item>-->\n<!-- </ion-col>-->\n@if (customMaxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '<=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!--</ion-row>-->\n","import {\n Component,\n OnDestroy,\n OnInit,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\n\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { GuidService } from '@smartsoft001/utils';\n\nimport { FilterDateComponent } from '../date/date.component';\n\n@Component({\n selector: 'smart-crud-filter-date-with-edit',\n templateUrl: './date-with-edit.component.html',\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterDateWithEditComponent<T extends IEntity<string>>\n extends FilterDateComponent<T>\n implements OnInit, OnDestroy\n{\n private _subscriptions = new Subscription();\n\n advanced: WritableSignal<boolean> = signal(false);\n override id = GuidService.create();\n\n // @ViewChild(IonDatetime, { read: IonDatetime, static: false })\n // dateTimePicker: IonDatetime;\n\n toggleAdvanced(): void {\n this.advanced.update((val) => !val);\n if (this.advanced()) {\n this.value = null;\n }\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n\n // if (this.dateTimePicker) {\n // this._subscriptions.add(\n // this.dateTimePicker.ionChange.subscribe((val: CustomEvent) => {\n // this.customValue = val.detail.value;\n // }),\n // );\n // } else {\n // console.error('dateTimePicker not found!');\n // }\n }\n\n ngOnDestroy(): void {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n}\n","<!--<ion-row>-->\n<!-- <ion-col>-->\n<!-- <ion-label>-->\n{{ item()?.label || '' | translate }}\n<!-- </ion-label>-->\n\n@if (!advanced()) {\n <!-- <ion-input-->\n <!-- placeholder=\"YYYY-MM-DD\"-->\n <!-- [(ngModel)]=\"customValue\"-->\n <!-- [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"-->\n <!-- ></ion-input>-->\n}\n<!-- </ion-col>-->\n\n@if (!advanced()) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button id=\"open-date-input-{{ id }}\" class=\"square-button m-3\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"calendar-outline\"></ion-icon>-->\n <!-- <ion-popover trigger=\"open-date-input-{{ id }}\" show-backdrop=\"false\">-->\n <ng-template>\n <!-- <ion-datetime-->\n <!-- displayFormat=\"YYYY-MM-DD\"-->\n <!-- pickerFormat=\"YYYY-MM-DD\"-->\n <!-- [(ngModel)]=\"customValue\"-->\n <!-- presentation=\"date\"-->\n <!-- first-day-of-week=\"1\"-->\n <!-- locale=\"{{ lang }}\"-->\n <!-- ></ion-datetime>-->\n </ng-template>\n <!-- </ion-popover>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n@if (allowAdvanced) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- (click)=\"toggleAdvanced()\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- [disabled]=\"minValue || maxValue\"-->\n <!-- >-->\n @if (!advanced()) {\n <!-- <ion-icon slot=\"icon-only\" name=\"settings-outline\"></ion-icon>-->\n } @else {\n <!-- <ion-icon slot=\"icon-only\" name=\"settings\"></ion-icon>-->\n }\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n@if (value || minValue || maxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button color=\"danger\" (click)=\"clear()\" class=\"square-button m-3\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!--</ion-row>-->\n\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-item>-->\n <!-- <ion-label>-->\n {{ 'from' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input-->\n <!-- placeholder=\"YYYY-MM-DD\"-->\n <!-- [(ngModel)]=\"customMinValue\"-->\n <!-- [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"-->\n <!-- ></ion-input>-->\n <!-- </ion-item>-->\n <!-- </ion-col>-->\n @if (customMinValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '>=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- <ion-col>-->\n <!-- <ion-item>-->\n <!-- <ion-label>-->\n {{ 'to' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input-->\n <!-- placeholder=\"YYYY-MM-DD\"-->\n <!-- [(ngModel)]=\"customMaxValue\"-->\n <!-- [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"-->\n <!-- ></ion-input>-->\n <!-- </ion-item>-->\n <!-- </ion-col>-->\n\n @if (customMaxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '<=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n}\n","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-flag',\n template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <div\n class=\"flag-container w-full flex flex-row flex-nowrap justify-between pr-5\"\n >\n <!-- <ion-label class=\"align-middle my-6\" position=\"static\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-checkbox [(ngModel)]=\"value\" slot=\"end\"></ion-checkbox>-->\n </div>\n <!-- </ion-col>-->\n @if (typeof value === 'boolean') {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `,\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n .flag-container {\n ion-label {\n /*--color: var(--smart-color-dark);*/\n }\n }\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterFlagComponent<\n T extends IEntity<string>,\n> extends BaseComponent<T> {}\n","import {\n Component,\n OnDestroy,\n OnInit,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport { Subscription } from 'rxjs';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-int',\n templateUrl: './int.component.html',\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterIntComponent<T extends IEntity<string>>\n extends BaseComponent<T>\n implements OnInit, OnDestroy\n{\n private _subscriptions = new Subscription();\n\n advanced: WritableSignal<boolean> = signal<boolean>(false);\n\n get allowAdvanced(): boolean {\n return this.item()?.type === '=';\n }\n\n override ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n\n toggleAdvanced(): void {\n this.advanced.update((val) => !val);\n if (this.advanced()) this.value = null;\n }\n}\n","<!--<ion-row>-->\n<!-- <ion-col>-->\n<!-- <ion-label>-->\n{{ item()?.label || '' | translate }}\n<!-- </ion-label>-->\n@if (!advanced()) {\n <!-- <ion-input [(ngModel)]=\"value\" type=\"number\" step=\"1\"></ion-input>-->\n}\n<!-- </ion-col>-->\n@if (allowAdvanced) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- (click)=\"toggleAdvanced()\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- [disabled]=\"minValue || maxValue\"-->\n <!-- >-->\n @if (!advanced()) {\n <!-- <ion-icon slot=\"icon-only\" name=\"settings-outline\"></ion-icon>-->\n } @else {\n <!-- <ion-icon slot=\"icon-only\" name=\"settings\"></ion-icon>-->\n }\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n@if (value || minValue || maxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button color=\"danger\" (click)=\"clear()\" class=\"square-button m-3\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n}\n<!--</ion-row>-->\n@if ((advanced() || minValue || maxValue) && allowAdvanced) {\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-item>-->\n <!-- <ion-label>-->\n {{ 'from' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input [(ngModel)]=\"minValue\" type=\"number\" step=\"1\"></ion-input>-->\n <!-- </ion-item>-->\n <!-- </ion-col>-->\n @if (minValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '>=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- <ion-col>-->\n <!-- <ion-item>-->\n <!-- <ion-label>-->\n {{ 'to' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input [(ngModel)]=\"maxValue\" type=\"number\" step=\"1\"></ion-input>-->\n <!-- </ion-item>-->\n <!-- </ion-col>-->\n @if (maxValue) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null, '<=')\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n}\n","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-radio',\n template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-radio-group [(ngModel)]=\"value\">-->\n <!-- <ion-item-divider class=\"font-light text-xl\">-->\n <!-- <ion-icon class=\"mr-6 text-2xl\" slot=\"start\" name=\"filter-outline\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n @if (value || value === false) {\n <!-- <ion-button-->\n <!-- slot=\"end\"-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-0 text-lg h-9 w-9 p-0\"-->\n <!-- >-->\n <!-- <ion-icon class=\"mr-6 text-2xl m-0 p-0\" slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n }\n <!-- </ion-item-divider>-->\n\n @for (item of possibilities(); track item) {\n <!-- <ion-item>-->\n <!-- <ion-label>{{ item.text | translate }}</ion-label>-->\n <!-- <ion-radio class=\"mr-10\" [value]=\"item.id\"></ion-radio>-->\n <!-- </ion-item>-->\n }\n <!-- </ion-radio-group>-->\n <!-- </ion-col>-->\n <!-- </ion-row>-->\n `,\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n margin-bottom: 1.2rem;\n ion-item-divider {\n //--padding-end: 0.8rem;\n //--ion-background-color: linear-gradient(\n // 90deg,\n // transparent,\n // var(--ion-color-light)\n //);\n ion-icon {\n //--color: var(--ion-color-primary);\n }\n ion-label {\n //--padding: var(--smart-button-padding-left) / 2\n // var(--smart-button-padding-top) / 2 var(--smart-button-padding-right) /\n // 2 var(--smart-button-padding-bottom) / 2;\n }\n .square-button {\n //--padding-start: 0.2em;\n //--padding-end: 0.2em;\n }\n }\n }\n `,\n ],\n})\nexport class FilterRadioComponent<\n T extends IEntity<string>,\n> extends BaseComponent<T> {}\n","import { Component } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { BaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-filter-text',\n template: `\n <!-- <ion-row>-->\n <!-- <ion-col>-->\n <!-- <ion-label position=\"floating\">-->\n {{ item()?.label || '' | translate }}\n <!-- </ion-label>-->\n <!-- <ion-input [(ngModel)]=\"value\"></ion-input>-->\n <!-- </ion-col>-->\n @if (value) {\n <!-- <ion-col size=\"auto\">-->\n <!-- <ion-button-->\n <!-- color=\"danger\"-->\n <!-- (click)=\"refresh(null)\"-->\n <!-- class=\"square-button m-3\"-->\n <!-- >-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-col>-->\n }\n <!-- </ion-row>-->\n `,\n imports: [TranslatePipe, FormsModule],\n styles: [\n `\n :host {\n width: 100%;\n .square-button {\n height: var(--smart-button-height) !important;\n }\n }\n `,\n ],\n})\nexport class FilterTextComponent<\n T extends IEntity<string>,\n> extends BaseComponent<T> {}\n","import { Component, input } from '@angular/core';\n\nimport { FieldType, IModelFilter } from '@smartsoft001/models';\n\nimport { ICrudFilter } from '../../models';\nimport { FilterCheckComponent } from './check/check.component';\nimport { FilterDateComponent } from './date/date.component';\nimport { FilterDateTimeComponent } from './date-time/date-time.component';\nimport { FilterDateWithEditComponent } from './date-with-edit/date-with-edit.component';\nimport { FilterFlagComponent } from './flag/flag.component';\nimport { FilterIntComponent } from './int/int.component';\nimport { FilterRadioComponent } from './radio/radio.component';\nimport { FilterTextComponent } from './text/text.component';\n\n@Component({\n selector: 'smart-crud-filter',\n templateUrl: './filter.component.html',\n imports: [\n FilterTextComponent,\n FilterIntComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterRadioComponent,\n FilterDateTimeComponent,\n FilterDateWithEditComponent,\n FilterDateComponent,\n ],\n})\nexport class FilterComponent {\n FieldType = FieldType;\n\n item = input<IModelFilter>();\n filter = input<ICrudFilter>();\n}\n","<!--<ion-item>-->\n@switch (item()?.fieldType) {\n @case (FieldType.date) {\n <smart-crud-filter-date\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-date>\n }\n @case (FieldType.dateWithEdit) {\n <smart-crud-filter-date-with-edit\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-date-with-edit>\n }\n @case (FieldType.dateTime) {\n <smart-crud-filter-date-time\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-date-time>\n }\n @case (FieldType.radio) {\n <smart-crud-filter-radio\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-radio>\n }\n @case (FieldType.check) {\n <smart-crud-filter-check\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-check>\n }\n @case (FieldType.flag) {\n <smart-crud-filter-flag\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-flag>\n }\n @case (FieldType.int) {\n <smart-crud-filter-int\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-int>\n }\n @default {\n <smart-crud-filter-text\n [item]=\"item()\"\n [filter]=\"filter()\"\n ></smart-crud-filter-text>\n }\n}\n<!--</ion-item>-->\n","import {\n Component,\n ElementRef,\n inject,\n input,\n InputSignal,\n OnInit,\n Signal,\n signal,\n WritableSignal,\n} from '@angular/core';\n\nimport { MenuService, StyleService } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport {\n FieldType,\n getModelFieldsWithOptions,\n getModelOptions,\n IFieldListMetadata,\n IModelFilter,\n} from '@smartsoft001/models';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudConfig } from '../../crud.config';\nimport { ICrudFilter } from '../../models';\nimport { FilterComponent } from '../filter';\n\n/**\n * This component is only to use in crud module\n * @requires CrudModule\n * @example\n *\n * html: <smart-crud-filters></smart-crud-filters>\n *\n * use on the model:\n * @Model({\n titleKey: 'body',\n filters: [\n {\n label: 'testNegation',\n key: 'body',\n type: '!=',\n },\n {\n label: 'fromDate',\n key: 'createDate',\n type: '<=',\n fieldType: FieldType.dateWithEdit\n },\n {\n label: 'select',\n key: 'type',\n type: '=',\n fieldType: FieldType.radio,\n possibilities$: of([\n {\n id: 1, text: 'Test 1'\n },\n {\n id: 2, text: 'Test 2'\n }\n ])\n }\n ]\n})\n *\n * use on the field (list.filter property):\n * @Field({\n create: modifyMetdata,\n update: {\n ...modifyMetdata,\n multi: true\n },\n type: FieldType.longText,\n details: true,\n list: {\n order: 2,\n filter: true\n }\n })\n body: string;\n */\n@Component({\n selector: 'smart-crud-filters',\n template: `\n <!--<ion-header [hidden]=\"hideMenu()\">-->\n <!-- <ion-toolbar>-->\n <!-- <ion-buttons slot=\"end\">-->\n <!-- <ion-button (click)=\"onClose()\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-buttons>-->\n <!-- <ion-title>{{ 'filters' | translate }}</ion-title>-->\n <!-- </ion-toolbar>-->\n <!--</ion-header>-->\n <!--<ion-content style=\"height: 100vh\">-->\n <!-- <ion-list>-->\n @for (item of list(); track item) {\n <smart-crud-filter [item]=\"item\" [filter]=\"filter()\"></smart-crud-filter>\n }\n <!-- </ion-list>-->\n <div class=\"h-20\">&nbsp;</div>\n <!--</ion-content>-->\n `,\n imports: [FilterComponent],\n})\nexport class FiltersComponent<T extends IEntity<string>> implements OnInit {\n private menuService = inject(MenuService);\n private config = inject(CrudConfig<T>);\n private facade = inject(CrudFacade<T>);\n private styleService = inject(StyleService);\n private elementRef = inject(ElementRef);\n\n list!: WritableSignal<Array<IModelFilter>>;\n\n filter!: Signal<ICrudFilter | undefined>;\n\n /**\n * Hide menu used only from MenuService\n */\n readonly hideMenu: InputSignal<boolean> = input<boolean>(false);\n\n async onClose(): Promise<void> {\n await this.menuService.closeEnd();\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n this.list = signal([]);\n\n const modelFilters = getModelOptions(this.config.type)?.filters;\n\n this.list.set([\n ...(modelFilters\n ? modelFilters.map((item) => {\n if (!item.label) {\n item.label = 'MODEL.' + item.key;\n }\n return item;\n })\n : []),\n ...getModelFieldsWithOptions(new this.config.type())\n .filter((item) => (item.options?.list as IFieldListMetadata)?.filter)\n .map((item) => ({\n key: item.key,\n type:\n item.options.type === FieldType.text ||\n item.options.type === FieldType.longText\n ? ('~=' as const)\n : ('=' as const),\n label: 'MODEL.' + item.key,\n fieldType: item.options.type,\n })),\n ]);\n this.filter = this.facade.filter;\n }\n}\n","import {\n Component,\n computed,\n ElementRef,\n inject,\n OnInit,\n Signal,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { StyleService } from '@smartsoft001/angular';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { ICrudFilterQueryItem } from '../../models';\n\n@Component({\n selector: 'smart-crud-filters-config',\n template: `\n @let query = this.query();\n @if (query && query?.length) {\n <!-- <ion-toolbar>-->\n @for (item of query; track item) {\n <!-- <ion-chip (click)=\"onRemoveQuery(item)\" color=\"medium\" outline=\"true\">-->\n <!-- <ion-icon name=\"filter-circle-outline\" color=\"primary\"></ion-icon>-->\n <!-- <ion-label>-->\n {{ 'MODEL.' + item.key | translate }} {{ item.type }}\n {{ item.value | translate }}\n <!-- </ion-label>-->\n <!-- <ion-icon name=\"close\" color=\"danger\"></ion-icon>-->\n <!-- </ion-chip>-->\n }\n <!-- </ion-toolbar>-->\n }\n `,\n imports: [TranslatePipe],\n styles: [\n `\n :host {\n ion-label {\n font-size: var(--small-font-size);\n }\n }\n `,\n ],\n})\nexport class FiltersConfigComponent implements OnInit {\n private readonly facade = inject(CrudFacade<any>);\n private styleService = inject(StyleService);\n private elementRef = inject(ElementRef);\n\n query!: Signal<ICrudFilterQueryItem[]>;\n\n onRemoveQuery(item: ICrudFilterQueryItem): void {\n const filter = this.facade.filter();\n if (filter?.query) {\n const index = filter.query.indexOf(item);\n if (index > -1) {\n filter.query.splice(index, 1);\n }\n }\n this.facade.read(this.facade.filter());\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n\n this.query = computed(() => {\n const filter = this.facade.filter();\n return filter?.query?.filter((i) => !i.hidden) || [];\n });\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\n/**\n * @deprecated - please, use IModelPossibilitiesProvider from @smartsoft001/angular\n */\nexport abstract class ICrudModelPossibilitiesProvider {\n abstract get<T>(type: any): {\n [key: string]: Observable<{ id: any; text: string }[]>;\n };\n}\n\n/**\n * @deprecated - please, use MODEL_POSSIBILITIES_PROVIDER from @smartsoft001/angular\n */\nexport const CRUD_MODEL_POSSIBILITIES_PROVIDER =\n new InjectionToken<ICrudModelPossibilitiesProvider>(\n 'CRUD_MODEL_POSSIBILITIES_PROVIDER',\n );\n","import { inject, Pipe, PipeTransform, Type } from '@angular/core';\n\nimport { IFormOptions, InputBaseComponent } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CRUD_MODEL_POSSIBILITIES_PROVIDER } from '../../providers/model-possibilities/model-possibilities.provider';\n\n@Pipe({\n name: 'smartFormOptions',\n})\nexport class FormOptionsPipe<T extends IEntity<string>>\n implements PipeTransform\n{\n private modelPossibilitiesProvider = inject(\n CRUD_MODEL_POSSIBILITIES_PROVIDER,\n );\n\n transform(\n item: T,\n mode: string,\n type: any,\n uniqueProvider?: (values: Record<keyof T, any>) => Promise<boolean>,\n inputComponents?: { [key: string]: Type<InputBaseComponent<any>> },\n ): IFormOptions<T> {\n if (!mode || !type) return null as any;\n\n let possibilities = {};\n\n if (type && this.modelPossibilitiesProvider) {\n possibilities = this.modelPossibilitiesProvider.get(type);\n }\n\n if (mode === 'create') {\n return {\n mode: 'create',\n possibilities,\n inputComponents,\n uniqueProvider,\n model: new type(),\n show: true,\n };\n } else {\n const model = new type();\n\n if (item) {\n Object.keys(item).forEach((key) => {\n (model as any)[key] = (item as any)[key];\n });\n }\n\n return {\n mode: mode,\n uniqueProvider,\n possibilities: possibilities,\n inputComponents,\n model: model,\n show: true,\n };\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { FormOptionsPipe } from './form-options/form-options.pipe';\n\n@NgModule({\n exports: [FormOptionsPipe],\n imports: [FormOptionsPipe],\n})\nexport class CrudPipesModule {}\n","import { NgComponentOutlet } from '@angular/common';\nimport { Component, computed, inject, Signal } from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\nimport * as _ from 'lodash';\nimport { DynamicIoDirective } from 'ng-dynamic-component';\n\nimport {\n ButtonComponent,\n FormComponent,\n IButtonOptions,\n MenuService,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport {\n getModelFieldsWithOptions,\n IFieldEditMetadata,\n} from '@smartsoft001/models';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudFullConfig } from '../../crud.config';\nimport { FormOptionsPipe } from '../../pipes';\n\n@Component({\n selector: 'smart-crud-multiselect',\n templateUrl: './multiselect.component.html',\n imports: [\n TranslatePipe,\n NgComponentOutlet,\n DynamicIoDirective,\n FormOptionsPipe,\n FormComponent,\n ButtonComponent,\n ],\n})\nexport class MultiselectComponent<T extends IEntity<string>> {\n private facade = inject(CrudFacade<T>);\n public config = inject(CrudFullConfig<T>);\n private menuService = inject(MenuService);\n\n private _list!: Array<T>;\n private _changes!: Partial<T>;\n\n item!: T;\n valid!: boolean;\n buttonOptions: IButtonOptions = {\n click: async () => {\n const result = this._list.map((item) => {\n return {\n ...this._changes,\n id: item.id,\n };\n });\n\n this.facade.updatePartialMany(result);\n await this.menuService.closeEnd();\n },\n confirm: true,\n };\n lock!: boolean;\n showForm = false;\n\n list!: Signal<T[]>;\n\n constructor() {\n this.list = computed(() => {\n const list = this.facade.multiSelected() || [];\n this.lock = true;\n const model = new this.config.type();\n\n const fieldsWithOptions = getModelFieldsWithOptions(model)?.filter(\n (f) => (f.options.update as IFieldEditMetadata)?.multi,\n );\n\n this.showForm = !!fieldsWithOptions.length;\n\n fieldsWithOptions.forEach(({ key }) => {\n const uniques = _.uniq(list.map((i) => i[key]));\n\n if (uniques.length === 1) {\n model[key] = uniques[0];\n }\n });\n\n this.item = model;\n\n return list;\n });\n }\n\n async onClose(): Promise<void> {\n await this.menuService.closeEnd();\n }\n\n onPartialChange(changes: Partial<T>, list: Array<T>) {\n this.lock = false;\n this._list = list;\n this._changes = changes;\n }\n\n onValidChange(valid: boolean) {\n this.valid = valid;\n }\n}\n","@let list = this.list();\n@if (list) {\n <!-- <ion-header>-->\n <!-- <ion-toolbar>-->\n <!-- <ion-buttons slot=\"end\">-->\n <!-- <ion-button (click)=\"onClose()\">-->\n <!-- <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>-->\n <!-- </ion-button>-->\n <!-- </ion-buttons>-->\n <!--<ion-title>-->{{ 'selected' | translate }}: {{ list?.length\n }}<!--</ion-title>-->\n <!-- </ion-toolbar>-->\n <!-- </ion-header>-->\n\n @if (config?.list?.components?.multi) {\n <div>\n <ng-template\n [ngComponentOutlet]=\"config?.list?.components?.multi\"\n [ndcDynamicInputs]=\"{ items: list }\"\n ></ng-template>\n </div>\n }\n\n @if (showForm && item) {\n <div>\n <smart-form\n [options]=\"item | smartFormOptions: 'multiUpdate' : config.type\"\n (valuePartialChange)=\"onPartialChange($event, list)\"\n (validChange)=\"onValidChange($event)\"\n ></smart-form>\n\n <smart-button\n style=\"float: right\"\n [disabled]=\"lock || !valid\"\n [options]=\"buttonOptions\"\n >\n {{ 'change' | translate }}\n </smart-button>\n </div>\n }\n}\n","import { inject, Injectable } from '@angular/core';\nimport { debounce } from 'lodash-decorators';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { ICrudListGroup } from '../../models';\n\n@Injectable()\nexport class CrudListGroupService<T extends IEntity<string>> {\n private facade = inject(CrudFacade<T>);\n\n private _destroyed: Array<ICrudListGroup> = [];\n\n change(val: boolean, item: ICrudListGroup, force = false): void {\n if (val || force) {\n item.changed = true;\n\n const filter = this.facade.filter();\n let current = filter?.query?.find(\n (q) => q.key === item.key && q.type === '=',\n );\n\n if (!current) {\n current = {\n key: item.key,\n type: '=',\n value: null,\n };\n if (filter?.query) {\n filter.query.push(current);\n }\n }\n\n current.value = item.value;\n current.hidden = true;\n\n this.facade.read({\n ...this.facade.filter(),\n offset: 0,\n });\n }\n }\n\n destroy(groups: Array<ICrudListGroup>): void {\n this._destroyed = [\n ...(this._destroyed ? this._destroyed : []),\n ...groups.filter((g) => g.changed),\n ];\n\n this.refresh();\n }\n\n @debounce(250)\n private refresh(): void {\n const list = this._destroyed;\n this._destroyed = [];\n\n const filter = this.facade.filter();\n const newQuery =\n filter?.query?.filter((q) => !list.some((i) => q.key === i.key)) || [];\n\n this.facade.read({\n ...this.facade.filter(),\n query: newQuery,\n });\n }\n}\n","import { NgClass } from '@angular/common';\nimport {\n Component,\n ElementRef,\n inject,\n input,\n InputSignal,\n OnDestroy,\n OnInit,\n} from '@angular/core';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport {\n AccordionBodyComponent,\n AccordionComponent,\n AccordionHeaderComponent,\n BaseComponent,\n IListOptions,\n ListComponent,\n StyleService,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { ICrudListGroup } from '../../models';\nimport { CrudListGroupService } from '../../services/list-group/list-group.service';\n\n@Component({\n selector: 'smart-crud-group',\n template: `\n @for (item of groups(); track item.key) {\n <smart-accordion\n [show]=\"item.show || false\"\n (showChange)=\"change($event, item)\"\n >\n <smart-accordion-header [ngClass]=\"{ 'font-bold': item.show }\"\n >{{ item.text | translate }}\n </smart-accordion-header>\n <smart-accordion-body>\n @if (item.show && !item.children && listOptions()) {\n <smart-list [options]=\"listOptions()!\"></smart-list>\n }\n @if (item.children) {\n <div style=\"margin-left: 50px\">\n <smart-crud-group\n [groups]=\"item.children\"\n [listOptions]=\"listOptions()\"\n ></smart-crud-group>\n </div>\n }\n </smart-accordion-body>\n </smart-accordion>\n }\n <br /><br /><br />\n `,\n imports: [\n AccordionComponent,\n AccordionHeaderComponent,\n AccordionBodyComponent,\n ListComponent,\n NgClass,\n TranslatePipe,\n ],\n})\nexport class GroupComponent<T extends IEntity<string>>\n extends BaseComponent\n implements OnInit, OnDestroy\n{\n private styleService = inject(StyleService);\n private elementRef = inject(ElementRef);\n private groupService = inject(CrudListGroupService<T>);\n\n readonly groups: InputSignal<Array<ICrudListGroup> | null> =\n input<Array<ICrudListGroup> | null>(null);\n readonly listOptions: InputSignal<IListOptions<T> | null> =\n input<IListOptions<T> | null>(null);\n\n change(val: boolean, item: ICrudListGroup, force = false): void {\n const groups = this.groups();\n if (groups) {\n groups\n .filter((i) => i.value !== item.value || i.key !== item.key)\n .forEach((i) => {\n i.show = false;\n });\n }\n\n this.groupService.change(val, item, force);\n\n item.show = val;\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n }\n\n override ngOnDestroy(): void {\n const groups = this.groups();\n if (groups) {\n this.groupService.destroy(groups);\n }\n super.ngOnDestroy();\n }\n}\n","import { computed, inject, Injectable } from '@angular/core';\n\nimport { IListPaginationOptions, PaginationMode } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { ICrudFilter } from '../../models';\n\n@Injectable()\nexport class CrudListPaginationFactory<T extends IEntity<string>> {\n private readonly facade = inject(CrudFacade<T>);\n\n async create(options: {\n mode?: PaginationMode;\n limit: number;\n provider: {\n getLinks(): any;\n getFilter(): ICrudFilter;\n };\n }): Promise<IListPaginationOptions> {\n return {\n mode: options.mode,\n limit: options.limit,\n loadNextPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().next)\n return Promise.resolve(false);\n\n return new Promise((res) => {\n if (this.facade.loaded()) {\n setTimeout(() => {\n res(\n options.provider.getLinks() && options.provider.getLinks().next,\n );\n });\n }\n\n const filter = options.provider.getFilter();\n this.facade.read({\n ...filter,\n offset: (filter.offset || 0) + (filter.limit || 0),\n });\n });\n },\n loadPrevPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().prev)\n return Promise.resolve(false);\n\n return new Promise((res) => {\n const loaded = this.facade.loaded();\n if (loaded) {\n setTimeout(() => {\n res(\n options.provider.getLinks() && options.provider.getLinks().prev,\n );\n });\n }\n\n const filter = options.provider.getFilter();\n this.facade.read({\n ...filter,\n offset: (filter.offset || 0) - (filter.limit || 0),\n });\n });\n },\n page: computed(() => {\n const f = this.facade.filter();\n return f?.limit ? (f.offset || 0) / f.limit + 1 : 0;\n }),\n totalPages: computed(() => {\n const filter = this.facade.filter();\n const totalCount = this.facade.totalCount();\n return filter?.limit && totalCount\n ? Math.ceil(totalCount / filter.limit)\n : 0;\n }),\n };\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { inject, Injectable } from '@angular/core';\nimport { firstValueFrom } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudConfig } from '../../crud.config';\nimport { ICrudCreateManyOptions, ICrudFilter } from '../../models';\n\n@Injectable()\nexport class CrudService<T extends IEntity<string>> {\n protected config = inject(CrudConfig<T>);\n protected http = inject(HttpClient);\n\n protected _formatMap = {\n csv: 'text/csv',\n xlsx: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n };\n\n create(item: T): Promise<string> {\n return firstValueFrom(\n this.http\n .post<void>(this.config.apiUrl, item, { observe: 'response' })\n .pipe(\n map((response) => {\n const location = (response.headers as any)['Location'];\n if (!location) return null;\n const array = location.split('/');\n return array[array.length - 1];\n }),\n ),\n );\n }\n\n createMany(items: Array<T>, options: ICrudCreateManyOptions): Promise<void> {\n return firstValueFrom(\n this.http.post<void>(\n this.config.apiUrl + '/bulk?mode=' + options.mode,\n items,\n ),\n );\n }\n\n getById(id: string): Promise<T> {\n return firstValueFrom(this.http.get<T>(this.config.apiUrl + '/' + id));\n }\n\n getList<T>(\n filter: ICrudFilter | null = null,\n ): Promise<{ data: T[]; totalCount: number; links: any }> {\n return firstValueFrom(\n this.http.get<{ data: T[]; totalCount: number; links: any }>(\n this.config.apiUrl + this.getQuery(filter as ICrudFilter),\n ),\n );\n }\n\n exportList(\n filter: ICrudFilter | null = null,\n format: 'csv' | 'xlsx',\n ): Promise<void> {\n if (!format) {\n format = 'csv';\n }\n\n if (format === 'xlsx') {\n return firstValueFrom(\n this.http\n .get(this.config.apiUrl + this.getQuery(filter as ICrudFilter), {\n headers: {\n 'Content-Type': this._formatMap[format],\n },\n observe: 'response',\n reportProgress: false,\n responseType: 'blob',\n })\n .pipe(\n map((res) => {\n const downloadLink = document.createElement('a');\n const blob = res.body;\n\n downloadLink.href = URL.createObjectURL(blob as Blob);\n downloadLink.download = 'data.' + format;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }),\n ),\n );\n }\n\n return firstValueFrom(\n this.http\n .get<string>(\n this.config.apiUrl + this.getQuery(filter as ICrudFilter),\n {\n headers: {\n 'Content-Type': this._formatMap[format],\n },\n responseType: 'text' as 'json',\n },\n )\n .pipe(\n map((res) => {\n const downloadLink = document.createElement('a');\n const blob = new Blob(['\\ufeff', res]);\n\n downloadLink.href = URL.createObjectURL(blob);\n downloadLink.download = 'data.' + format;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }),\n ),\n );\n }\n\n update(item: T): Promise<void> {\n return firstValueFrom(\n this.http.put<void>(this.config.apiUrl + '/' + item.id, item),\n );\n }\n\n updatePartial(item: Partial<T> & { id: string }): Promise<void> {\n return firstValueFrom(\n this.http.patch<void>(this.config.apiUrl + '/' + item.id, item),\n );\n }\n\n updatePartialMany(items: (Partial<T> & { id: string })[]): Promise<any> {\n const updatePromises = items.map((item) => {\n return this.updatePartial(item);\n });\n return Promise.all(updatePromises);\n }\n\n delete(id: string): Promise<void> {\n return firstValueFrom(\n this.http.delete<void>(this.config.apiUrl + '/' + id),\n );\n }\n\n protected getQuery(filter: ICrudFilter): string {\n let query = '';\n\n if (filter && filter.searchText) {\n query += '&$search=' + filter.searchText;\n }\n\n if (filter && filter.limit) {\n query += `&limit=${filter.limit}&offset=${\n filter.offset ? filter.offset : 0\n }`;\n }\n\n if (filter && filter.sortBy) {\n query += `&sort=${(filter.sortDesc ? '-' : '') + filter.sortBy}`;\n }\n\n if (filter && filter.query) {\n filter.query.forEach((q) => {\n if (\n q.value &&\n typeof q.value === 'string' &&\n q.value.match(/^-?\\d+$/) &&\n q.value[0] !== \"'\" &&\n q.value[0] !== '\"'\n ) {\n query += '&' + q.key + q.type + `'${q.value}'`;\n } else {\n query += '&' + q.key + q.type + q.value;\n }\n });\n }\n\n return query ? '?' + query.replace('&', '') : '';\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { DynamicIoModule } from 'ng-dynamic-component';\n\nimport { SharedModule } from '@smartsoft001/angular';\n\nimport { ExportComponent } from './export/export.component';\nimport {\n FilterComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterFlagComponent,\n FilterRadioComponent,\n FilterTextComponent,\n FilterCheckComponent,\n FilterIntComponent,\n FilterDateTimeComponent,\n} from './filter';\nimport { CrudPipesModule } from '../pipes';\nimport { FiltersComponent } from './filters/filters.component';\nimport { FiltersConfigComponent } from './filters-config/filters-config.component';\nimport { MultiselectComponent } from './multiselect/multiselect.component';\nimport { CrudFacade } from '../+state/crud.facade';\nimport { GroupComponent } from './group/group.component';\nimport { CrudListPaginationFactory } from '../factories/list-pagination/list-pagination.factory';\nimport { CrudService } from '../services/crud/crud.service';\n\nconst COMPONENTS = [\n ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterDateTimeComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent,\n];\n\n@NgModule({\n imports: [\n ...COMPONENTS,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule,\n ],\n exports: [CrudPipesModule, ...COMPONENTS],\n providers: [CrudService, CrudFacade, CrudListPaginationFactory],\n})\nexport class CrudComponentsModule {}\n","import { Action } from '@ngrx/store';\n\nimport { PaginationMode } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { ICrudFilter } from '../models';\n\nexport interface State<T extends IEntity<string>> {\n selected?: T;\n multiSelected?: Array<T>;\n list?: T[];\n totalCount?: number;\n filter?: ICrudFilter;\n links?: any;\n loaded: boolean; // has the Auth list been loaded\n error?: string | null; // last none error (if any)\n}\n\nexport const initialState: State<any> = {\n loaded: false,\n};\n\nconst crudReducer = (\n state: State<any>,\n action: Action & any,\n entity: string,\n) => {\n if (!state) {\n state = { ...initialState };\n }\n\n switch (action.type) {\n case `[${entity}] Create`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Create Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Create Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Create Many`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Create Many Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Create Many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Export`:\n return {\n ...state,\n loaded: false,\n };\n\n case `[${entity}] Export Success`:\n return {\n ...state,\n loaded: true,\n };\n\n case `[${entity}] Export Failure`:\n return {\n ...state,\n loaded: true,\n };\n\n case `[${entity}] Read`:\n return {\n ...state,\n loaded: false,\n filter: action?.filter,\n error: null,\n totalCount: null,\n links: null,\n };\n\n case `[${entity}] Read Success`: {\n let list: any[] = [];\n\n if (\n action?.filter &&\n action?.filter.offset &&\n state.list &&\n action?.filter.paginationMode !== PaginationMode.singlePage\n ) {\n state.list.forEach((i) => {\n list.push(i);\n });\n\n list = [...list, ...action.result.data];\n } else {\n list = action.result.data;\n }\n\n return {\n ...state,\n loaded: true,\n list,\n totalCount: action?.result?.totalCount,\n links: action.result.links,\n error: null,\n };\n }\n\n case `[${entity}] Clear`:\n return { ...initialState };\n\n case `[${entity}] Read Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Select`:\n return {\n ...state,\n loaded: false,\n selected: null,\n error: null,\n };\n\n case `[${entity}] Select Success`:\n return {\n ...state,\n loaded: true,\n selected: action.item,\n error: null,\n };\n\n case `[${entity}] Select Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] MultiSelect`:\n return {\n ...state,\n multiSelected: [...action.items],\n };\n\n case `[${entity}] Unselect`:\n return {\n ...state,\n loaded: true,\n selected: null,\n error: null,\n };\n\n case `[${entity}] Update`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Update Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Update Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Update partial`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Update partial Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Update partial Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Update partial many`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Update partial many Success`:\n return {\n ...state,\n multiSelected: [],\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Update partial many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n case `[${entity}] Delete`:\n return {\n ...state,\n loaded: false,\n error: null,\n };\n\n case `[${entity}] Delete Success`:\n return {\n ...state,\n loaded: true,\n error: null,\n };\n\n case `[${entity}] Delete Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error,\n };\n\n default:\n return state;\n }\n};\n\nexport function getReducer(entity: string) {\n return (state: any, action: Action) => {\n return crudReducer(state, action, entity);\n };\n}\n","import 'reflect-metadata';\n\nimport { Injectable } from '@angular/core';\nimport { Action, ActionsSubject, select, State, Store } from '@ngrx/store';\nimport { first } from 'rxjs/operators';\n\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport * as CrudActions from './crud.actions';\nimport { CrudConfig } from '../crud.config';\nimport { getCrudFilter } from './crud.selectors';\nimport { CrudService } from '../services/crud/crud.service';\n\n@Injectable()\nexport class CrudEffects<T extends IEntity<string>> {\n constructor(\n private actions$: ActionsSubject,\n private service: CrudService<T>,\n private config: CrudConfig<T>,\n private store: Store<any>,\n private state: State<any>,\n ) {}\n\n init(): void {\n const metadata = Reflect.getMetadata(this.config.entity, CrudEffects);\n\n if (metadata) return;\n\n Reflect.defineMetadata(this.config.entity, true, CrudEffects);\n\n this.actions$.subscribe((action: Action & any) => {\n switch (action.type) {\n case `[${this.config.entity}] Create`:\n this.service\n .create(action.item)\n .then(() =>\n this.store.dispatch(\n CrudActions.createSuccess(this.config.entity, action.item),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.createFailure(\n this.config.entity,\n action.item,\n error,\n ),\n );\n });\n break;\n\n case `[${this.config.entity}] Create Success`: {\n const createState = this.state.getValue()[this.config.entity];\n this.store.dispatch(\n CrudActions.read(\n this.config.entity,\n createState?.filter ? { ...createState.filter, offset: 0 } : null,\n ),\n );\n break;\n }\n\n case `[${this.config.entity}] Create Many`:\n this.service\n .createMany(action.data.items, action.data.options)\n .then(() =>\n this.store.dispatch(\n CrudActions.createManySuccess(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n }),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.createManyFailure(\n this.config.entity,\n {\n items: action.data.items,\n options: action.data.options,\n },\n error,\n ),\n );\n });\n break;\n\n case `[${this.config.entity}] Create Many Success`: {\n const createManyState = this.state.getValue()[this.config.entity];\n this.store.dispatch(\n CrudActions.read(\n this.config.entity,\n createManyState?.filter\n ? { ...createManyState.filter, offset: 0 }\n : null,\n ),\n );\n break;\n }\n\n case `[${this.config.entity}] Read`:\n this.service\n .getList(action?.filter)\n .then((result) =>\n this.store.dispatch(\n CrudActions.readSuccess(\n this.config.entity,\n action?.filter,\n result as { data: T[]; totalCount: number; links: any },\n ),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.readFailure(\n this.config.entity,\n action?.filter,\n error,\n ),\n );\n });\n break;\n\n case `[${this.config.entity}] Export`:\n this.service\n .exportList(action?.filter, action.format)\n .then(() =>\n this.store.dispatch(\n CrudActions.exportListSuccess(\n this.config.entity,\n action?.filter,\n ),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.exportListFailure(\n this.config.entity,\n action?.filter,\n error,\n ),\n );\n });\n break;\n\n case `[${this.config.entity}] Select`:\n this.service\n .getById(action.id)\n .then((result) =>\n this.store.dispatch(\n CrudActions.selectSuccess(\n this.config.entity,\n action.id,\n result,\n ),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.selectFailure(this.config.entity, action.id, error),\n );\n });\n break;\n\n case `[${this.config.entity}] Update`:\n this.service\n .updatePartial(action.item)\n .then(() =>\n this.store.dispatch(\n CrudActions.updateSuccess(this.config.entity, action.item),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.updateFailure(\n this.config.entity,\n action.item,\n error,\n ),\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n\n case `[${this.config.entity}] Update Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }),\n );\n\n this.store.dispatch(\n CrudActions.select(this.config.entity, action.item.id),\n );\n });\n break;\n\n case `[${this.config.entity}] Update partial`:\n this.service\n .updatePartial(action.item)\n .then(() =>\n this.store.dispatch(\n CrudActions.updatePartialSuccess(\n this.config.entity,\n action.item,\n ),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.updatePartialFailure(\n this.config.entity,\n action.item,\n error,\n ),\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n\n case `[${this.config.entity}] Update partial Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }),\n );\n\n this.store.dispatch(\n CrudActions.select(this.config.entity, action.item.id),\n );\n });\n break;\n\n case `[${this.config.entity}] Update partial many`:\n this.service\n .updatePartialMany(action.items)\n .then(() =>\n this.store.dispatch(\n CrudActions.updatePartialManySuccess(\n this.config.entity,\n action.items,\n ),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.updatePartialManyFailure(\n this.config.entity,\n action.items,\n error,\n ),\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n });\n break;\n\n case `[${this.config.entity}] Update partial many Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }),\n );\n });\n break;\n\n case `[${this.config.entity}] Delete`:\n this.service\n .delete(action.id)\n .then(() =>\n this.store.dispatch(\n CrudActions.deleteSuccess(this.config.entity, action.id),\n ),\n )\n .catch((error) => {\n this.store.dispatch(\n CrudActions.deleteFailure(this.config.entity, action.id, error),\n );\n });\n break;\n\n case `[${this.config.entity}] Delete Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }),\n );\n });\n break;\n\n default:\n console.warn(\n `No effect for action type ${action.type} in entity ${this.config.entity}`,\n );\n break;\n }\n });\n }\n}\n","import {\n Directive,\n inject,\n input,\n output,\n Signal,\n viewChild,\n viewChildren,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n BaseComponent,\n DynamicComponentType,\n FormComponent,\n IDetailsOptions,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport { CrudFullConfig } from '../../../crud.config';\n\n@Directive()\nexport abstract class CrudItemPageBaseComponent<\n T extends IEntity<string>,\n> extends BaseComponent {\n public config = inject(CrudFullConfig<T>);\n public facade = inject(CrudFacade<T>);\n\n static smartType: DynamicComponentType = 'crud-item-page';\n\n selected: Signal<T>;\n\n contentTpl = viewChild<ViewContainerRef>('contentTpl');\n\n formComponents = viewChildren(FormComponent);\n\n detailsOptions = input<IDetailsOptions<T>>();\n\n mode = input<string>();\n\n uniqueProvider = input<(values: Record<keyof T, any>) => Promise<boolean>>();\n\n onPartialChange = output<Partial<T>>();\n\n onChange = output<T>();\n\n onValidChange = output<boolean>();\n\n constructor() {\n super();\n this.selected = this.facade.selected;\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { Component } from '@angular/core';\n\nimport { DetailsComponent, FormComponent } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { FormOptionsPipe } from '../../../pipes';\nimport { CrudItemPageBaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-item-standard-page',\n template: `\n @if (mode() === 'details') {\n @if (detailsOptions()) {\n <smart-details [options]=\"detailsOptions()\"></smart-details>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"editTpl\"></ng-container>\n }\n\n <ng-template #editTpl>\n <smart-form\n [options]=\"\n selected()\n | smartFormOptions\n : mode()\n : config?.type\n : uniqueProvider()\n : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n </ng-template>\n\n <br /><br />\n `,\n styleUrls: ['./standard.component.scss'],\n imports: [\n DetailsComponent,\n FormComponent,\n FormOptionsPipe,\n NgTemplateOutlet,\n FormComponent,\n ],\n})\nexport class ItemStandardComponent<\n T extends IEntity<string>,\n> extends CrudItemPageBaseComponent<T> {}\n","import { inject, Injectable } from '@angular/core';\n\nimport { AuthService } from '@smartsoft001/angular';\nimport { getModelOptions } from '@smartsoft001/models';\n\nimport { CrudFullConfig } from '../../crud.config';\n\n@Injectable()\nexport class PageService<T> {\n private authService = inject(AuthService);\n private config = inject(CrudFullConfig<T>);\n\n checkPermissions(): void {\n const val: CrudFullConfig<T> = this.config;\n const modelOptions = getModelOptions(val.type);\n\n if (\n val.add &&\n modelOptions.create &&\n modelOptions.create.permissions &&\n !this.authService.expectPermissions(modelOptions.create.permissions)\n ) {\n val.add = false;\n }\n\n if (\n val.edit &&\n modelOptions.update &&\n modelOptions.update.permissions &&\n !this.authService.expectPermissions(modelOptions.update.permissions)\n ) {\n val.edit = false;\n }\n\n if (\n val.remove &&\n modelOptions.remove &&\n modelOptions.remove.permissions &&\n !this.authService.expectPermissions(modelOptions.remove.permissions)\n ) {\n val.remove = false;\n }\n }\n}\n","import { Location, NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n effect,\n ElementRef,\n inject,\n input,\n OnDestroy,\n OnInit,\n Signal,\n signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewContainerRef,\n WritableSignal,\n} from '@angular/core';\nimport {\n AbstractControl,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n} from '@angular/forms';\nimport { ActivatedRoute, Router } from '@angular/router';\nimport { TranslateService } from '@ngx-translate/core';\nimport { BehaviorSubject, Subscription } from 'rxjs';\n\nimport {\n CreateDynamicComponent,\n DetailsService,\n DynamicComponentLoader,\n DynamicContentDirective,\n ICellPipe,\n IDetailsOptions,\n IIconButtonOptions,\n IPageOptions,\n PageComponent,\n StyleService,\n ToastService,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport { getModelOptions } from '@smartsoft001/models';\nimport { SpecificationService } from '@smartsoft001/utils';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { CrudFullConfig } from '../../crud.config';\nimport { ICrudFilter } from '../../models';\nimport { CrudItemPageBaseComponent } from './base/base.component';\nimport { ItemStandardComponent } from './standard/standard.component';\nimport { CrudService } from '../../services/crud/crud.service';\nimport { PageService } from '../../services/page/page.service';\n\n@Component({\n selector: 'smart-crud-item-page',\n imports: [PageComponent, ItemStandardComponent, NgTemplateOutlet],\n template: `\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl class=\"text-xl py-2.5 separator\"></div>\n @if (template() === 'default') {\n <smart-crud-item-standard-page\n [detailsOptions]=\"detailsOptions()\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider()\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"text-xl py-2.5 separator\"></div>\n </smart-page>\n `,\n})\nexport class ItemComponent<T extends IEntity<string>>\n extends CreateDynamicComponent<CrudItemPageBaseComponent<any>>(\n 'crud-item-page',\n )\n implements OnInit, OnDestroy\n{\n private router = inject(Router);\n private activeRoute = inject(ActivatedRoute);\n private facade = inject(CrudFacade<T>);\n private service = inject(CrudService<T>);\n private dynamicComponentLoader = inject(DynamicComponentLoader<T>);\n private translateService = inject(TranslateService);\n public config = inject(CrudFullConfig<T>);\n private location = inject(Location);\n private cd = inject(ChangeDetectorRef);\n private styleService = inject(StyleService);\n private elementRef = inject(ElementRef);\n private toastService = inject(ToastService);\n private pageService = inject(PageService<T>);\n private detailsService = inject(DetailsService);\n\n private _mode!: WritableSignal<string>;\n\n pageOptions: WritableSignal<IPageOptions> = signal({\n title: '',\n showBackButton: true,\n hideMenuButton: true,\n });\n detailsOptions!: WritableSignal<IDetailsOptions<T>>;\n id!: string;\n formValue!: T;\n formValid = false;\n item!: T;\n formPartialValue!: Partial<T>;\n uniqueProvider!: WritableSignal<\n (values: Record<keyof T, any>) => Promise<boolean>\n >;\n\n set mode(val: string) {\n this._mode = signal(val);\n this.refreshDynamicInstance();\n }\n get mode(): string {\n return this._mode();\n }\n\n selected: Signal<T>;\n\n standardComponents = viewChildren(ItemStandardComponent);\n // @ViewChild(IonContent, { static: true }) content: IonContent; //TODO: rewrite when rewriting ionic\n\n override contentTpl = viewChild<TemplateRef<any>>('contentTpl');\n\n topTpl = viewChild<ViewContainerRef>('topTpl');\n\n bottomTpl = viewChild<ViewContainerRef>('bottomTpl');\n\n override dynamicContents = viewChildren<DynamicContentDirective>(\n DynamicContentDirective,\n );\n\n subscription = new Subscription();\n\n constructor() {\n super();\n\n this.selected = this.facade.selected;\n\n effect(() => {\n this.item = this.facade.selected();\n this.initPageOptions();\n this.cd.detectChanges();\n });\n }\n\n override refreshProperties() {\n this.baseComponentRef.setInput('detailsOptions', this.detailsOptions());\n this.baseComponentRef.setInput('mode', this.mode);\n this.baseComponentRef.setInput('uniqueProvider', this.uniqueProvider());\n this.subscription.add(\n this.baseInstance.onPartialChange.subscribe((val) =>\n this.onPartialChange(val),\n ),\n );\n this.subscription.add(\n this.baseInstance.onChange.subscribe((val) => this.onChange(val)),\n );\n this.subscription.add(\n this.baseInstance.onValidChange.subscribe((val) =>\n this.onValidChange(val),\n ),\n );\n }\n\n async ngOnInit() {\n this.detailsService.init();\n this.styleService.init(this.elementRef);\n\n this.pageService.checkPermissions();\n\n if (this.router.routerState.snapshot.url.split('?')[0].endsWith('/add')) {\n this.mode = 'create';\n await this.generateComponents('add');\n } else {\n this.mode = this.config.details ? 'details' : 'update';\n\n if (this.mode === 'update') {\n await this.generateComponents('edit');\n }\n\n this.activeRoute.params\n .pipe(this.takeUntilDestroy)\n .subscribe(({ id }) => {\n this.facade.select(id);\n this.id = id;\n });\n\n this.activeRoute.queryParams\n .pipe(this.takeUntilDestroy)\n .subscribe(({ edit }) => {\n if (edit) {\n this.mode = 'update';\n this.generateComponents('edit');\n }\n });\n }\n\n this.uniqueProvider.set(async (values) => {\n const filter: ICrudFilter = {\n query: [],\n };\n\n Object.keys(values).forEach((key) => {\n filter.query!.push({\n key: key,\n value: (values as any)[key],\n type: '=',\n });\n });\n\n if (this.id) {\n filter.query!.push({\n key: 'id',\n value: this.id,\n type: '!=',\n });\n }\n const { totalCount } = await this.service.getList(filter);\n\n return !totalCount;\n });\n\n if (this.config.details) {\n const compiledComponents: {\n component: any;\n factory: ComponentFactory<any>;\n }[] = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n (this.config.details as any)['components'] &&\n (this.config.details as any)['components'].top\n ? [(this.config.details as any)['components'].top]\n : []),\n ...(this.config.details &&\n (this.config.details as any)['components'] &&\n (this.config.details as any)['components'].bottom\n ? [(this.config.details as any)['components'].bottom]\n : []),\n ],\n });\n\n this.detailsOptions.set({\n type: this.config.type,\n item: this.facade.selected,\n cellPipe: this.config.details\n ? (this.config.details as { cellPipe?: ICellPipe<T> }).cellPipe\n : undefined,\n componentFactories: {\n top:\n this.config.details &&\n (this.config.details as any)['components'] &&\n (this.config.details as any)['components'].top\n ? compiledComponents.find(\n (cc) =>\n cc.component ===\n (this.config.details as any)['components'].top,\n )?.factory\n : undefined,\n bottom:\n this.config.details &&\n (this.config.details as any)['components'] &&\n (this.config.details as any)['components'].bottom\n ? compiledComponents.find(\n (cc) =>\n cc.component ===\n (this.config.details as any)['components'].bottom,\n )?.factory\n : undefined,\n },\n });\n }\n\n this.initPageOptions();\n\n this.refreshDynamicInstance();\n }\n\n override ngOnDestroy() {\n super.ngOnDestroy();\n\n this.subscription.unsubscribe();\n }\n\n private async generateComponents(mode: 'add' | 'edit') {\n const compiledComponents =\n await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config[mode] &&\n (this.config[mode] as any)['components'] &&\n (this.config[mode] as any)['components'].top\n ? [(this.config[mode] as any)['components'].top]\n : []),\n ...(this.config[mode] &&\n (this.config[mode] as any)['components'] &&\n (this.config[mode] as any)['components'].bottom\n ? [(this.config[mode] as any)['components'].bottom]\n : []),\n ],\n });\n\n const topComponentFactory = compiledComponents.find(\n (cc) => cc.component === (this.config[mode] as any)['components']?.top,\n )?.factory;\n\n const bottomComponentFactory = compiledComponents.find(\n (cc) => cc.component === (this.config[mode] as any)['components']?.bottom,\n )?.factory;\n\n if (!this.topTpl()?.get(0) && topComponentFactory) {\n this.topTpl()?.createComponent(topComponentFactory);\n }\n\n if (!this.bottomTpl()?.get(0) && bottomComponentFactory) {\n this.bottomTpl()?.createComponent(bottomComponentFactory);\n }\n }\n\n onPartialChange(val: Partial<T>) {\n this.formPartialValue = val;\n }\n\n onChange(val: T) {\n this.formValue = val;\n }\n\n onValidChange(val: boolean) {\n this.formValid = val;\n }\n\n private initPageOptions(): void {\n this.pageOptions.set({\n ...this.pageOptions(),\n title: this.getTitle() || '',\n endButtons: this.getButtons(),\n });\n }\n\n private getButtons(): Array<IIconButtonOptions> | undefined {\n const options = getModelOptions(this.config.type);\n\n switch (this.mode) {\n case 'create':\n return [\n {\n icon: 'add',\n text: 'add',\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n\n this.facade.create(this.formValue);\n this.location.back();\n },\n },\n ];\n case 'update':\n return [\n ...(this.config.details\n ? [\n {\n icon: 'close',\n text: 'cancel',\n handler: () => {\n this.mode = 'details';\n this.initPageOptions();\n this.topTpl()?.clear();\n this.bottomTpl()?.clear();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : []),\n {\n icon: 'save',\n text: 'save',\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n\n this.formPartialValue.id = this.id;\n this.facade.updatePartial(this.formPartialValue as any);\n\n if (this.config.details) {\n this.mode = 'details';\n this.initPageOptions();\n } else {\n this.location.back();\n }\n },\n },\n ];\n case 'details':\n return this.config.edit &&\n (!options?.update?.enabled ||\n SpecificationService.valid(this.item, options?.update?.enabled))\n ? [\n {\n icon: 'create',\n text: 'edit',\n handler: () => {\n this.mode = 'update';\n this.generateComponents('edit');\n this.initPageOptions();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : [];\n default:\n return undefined;\n }\n }\n\n private getTitle(): string | undefined {\n const options = getModelOptions(this.config.type);\n\n const prefix =\n options.titleKey && this.item\n ? this.removeParagraph((this.item as any)[options.titleKey]) + ' - '\n : '';\n\n switch (this.mode) {\n case 'create':\n return 'add';\n case 'update':\n return prefix + this.translateService.instant('change');\n case 'details':\n return prefix + this.translateService.instant('details');\n default:\n return undefined;\n }\n }\n\n private removeParagraph(val: string): string {\n if (!val || val.indexOf('<p>') !== 0) return val;\n\n const div = document.createElement('div');\n div.innerHTML = val;\n\n const item = div.querySelectorAll('p').item(0);\n\n return item.innerHTML;\n }\n\n private checkFirstInvalid(): boolean {\n this.cd.detectChanges();\n\n const form =\n this.template() === 'default'\n ? (this.standardComponents() as any)?.[0]?.formComponents?.[0]?.form\n : this.baseInstance.formComponents()[0].form;\n\n this.cd.detectChanges();\n\n if (form.valid) return false;\n\n const invalidFields: string[] = [];\n\n this.getInvalidFields(form, invalidFields, '');\n\n this.toastService.info({\n title: this.translateService.instant('INPUT.ERRORS.requires'),\n message: invalidFields.slice(0, 3).join('<br/>'),\n });\n\n return true;\n }\n\n private getInvalidFields(\n control: AbstractControl,\n invalidFields: any[],\n baseField: string,\n key = null,\n ) {\n if (control.valid) return;\n\n const field = key\n ? baseField + ' > ' + this.translateService.instant('MODEL.' + key)\n : baseField;\n\n if (control.errors?.['customMessage']) {\n invalidFields.push(field + ` (${control.errors['customMessage']})`);\n return;\n }\n\n if (control instanceof UntypedFormControl) {\n invalidFields.push(field);\n }\n\n if (control instanceof UntypedFormGroup) {\n Object.keys(control.controls).forEach((groupKey) => {\n this.getInvalidFields(\n control.controls[groupKey],\n invalidFields,\n field,\n groupKey as any,\n );\n });\n }\n\n if (control instanceof UntypedFormArray) {\n control.controls.forEach((c, index) => {\n this.getInvalidFields(c, invalidFields, field + `(${index + 1})`);\n });\n }\n }\n}\n","import {\n Directive,\n inject,\n input,\n viewChild,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {\n BaseComponent,\n DynamicComponentType,\n IListOptions,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFullConfig } from '../../../crud.config';\n\n@Directive()\nexport abstract class CrudListPageBaseComponent<\n T extends IEntity<string>,\n> extends BaseComponent {\n public config = inject(CrudFullConfig<T>);\n\n static smartType: DynamicComponentType = 'crud-list-page';\n\n contentTpl = viewChild<ViewContainerRef>('contentTpl');\n\n listOptions = input<IListOptions<T> | null>();\n}\n","import { Component, computed, inject, Signal } from '@angular/core';\n\nimport { ListComponent } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { CrudFacade } from '../../../+state/crud.facade';\nimport { FiltersConfigComponent, GroupComponent } from '../../../components';\nimport { CrudFullConfig } from '../../../crud.config';\nimport { CrudListGroupService } from '../../../services/list-group/list-group.service';\nimport { CrudListPageBaseComponent } from '../base/base.component';\n\n@Component({\n selector: 'smart-crud-list-standard-page',\n template: `\n <smart-crud-filters-config></smart-crud-filters-config>\n @let groups = config.list?.groups;\n @if (listOptions()) {\n <smart-list\n [hidden]=\"groups && !isSearch()\"\n [options]=\"listOptions()!\"\n ></smart-list>\n }\n @if (groups && !isSearch()) {\n <smart-crud-group\n [groups]=\"groups\"\n [listOptions]=\"listOptions() || null\"\n ></smart-crud-group>\n }\n `,\n imports: [FiltersConfigComponent, ListComponent, GroupComponent],\n providers: [CrudListGroupService],\n})\nexport class ListStandardComponent<\n T extends IEntity<string>,\n> extends CrudListPageBaseComponent<T> {\n private readonly facade = inject(CrudFacade<T>);\n public override readonly config = inject(CrudFullConfig<T>);\n\n isSearch: Signal<boolean> = computed(\n () => !!this.facade.filter()?.searchText,\n );\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable, combineLatest } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nimport { ICrudFilter } from '../../models';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class CrudSearchService {\n private _filterSource = new BehaviorSubject<Partial<ICrudFilter>>({});\n private _enabledSource = new BehaviorSubject<boolean>(false);\n\n get filter(): Partial<ICrudFilter> {\n if (!this._enabledSource.value) return {};\n return this._filterSource.value || {};\n }\n\n get enabled(): boolean {\n return this._enabledSource.value;\n }\n\n enabled$ = this._enabledSource.asObservable();\n\n filter$: Observable<Partial<ICrudFilter>> = combineLatest([\n this._filterSource.asObservable(),\n this.enabled$,\n ]).pipe(\n map(([filter, enabled]) => {\n if (!enabled) return {};\n return filter;\n }),\n );\n\n setFilter(val: Partial<ICrudFilter>): void {\n this._filterSource.next(val);\n }\n\n setEnabled(val: boolean): void {\n this._enabledSource.next(val);\n }\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ComponentFactory,\n computed,\n inject,\n Injector,\n input,\n OnDestroy,\n OnInit,\n signal,\n Signal,\n TemplateRef,\n viewChild,\n viewChildren,\n ViewContainerRef,\n WritableSignal,\n} from '@angular/core';\nimport { Router } from '@angular/router';\nimport { Subject } from 'rxjs';\n\nimport {\n CreateDynamicComponent,\n DynamicComponentLoader,\n DynamicContentDirective,\n HardwareService,\n IIconButtonOptions,\n IListOptions,\n IPageOptions,\n ListMode,\n MenuService,\n PageComponent,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\nimport {\n getModelFieldsWithOptions,\n getModelOptions,\n IFieldEditMetadata,\n IFieldListMetadata,\n} from '@smartsoft001/models';\nimport { SpecificationService } from '@smartsoft001/utils';\n\nimport { CrudFacade } from '../../+state/crud.facade';\nimport { ExportComponent } from '../../components';\nimport { FiltersComponent } from '../../components';\nimport { MultiselectComponent } from '../../components';\nimport { CrudFullConfig } from '../../crud.config';\nimport { CrudListPageBaseComponent } from './base/base.component';\nimport { CrudListPaginationFactory } from '../../factories/list-pagination/list-pagination.factory';\nimport { ICrudFilter } from '../../models';\nimport { ListStandardComponent } from './standard/standard.component';\nimport { PageService } from '../../services/page/page.service';\nimport { CrudSearchService } from '../../services/search/search.service';\n\n@Component({\n selector: 'smart-crud-list-page',\n imports: [PageComponent, ListStandardComponent, NgTemplateOutlet],\n template: `\n @if (filter() && pageOptions()) {\n <smart-page [options]=\"pageOptions()\">\n <div #topTpl></div>\n\n @if (template() === 'default' && listOptions()) {\n <smart-crud-list-standard-page [listOptions]=\"listOptions()\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n }\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n }\n `,\n})\nexport class ListComponent<T extends IEntity<string>>\n extends CreateDynamicComponent<CrudListPageBaseComponent<any>>(\n 'crud-list-page',\n )\n implements OnInit, OnDestroy\n{\n private facade = inject(CrudFacade<T>);\n private router = inject(Router);\n private dynamicComponentLoader = inject(DynamicComponentLoader<T>);\n private injector = inject(Injector);\n private cd = inject(ChangeDetectorRef);\n private menuService = inject(MenuService);\n private hardwareService = inject(HardwareService);\n private paginationFacade = inject(CrudListPaginationFactory<T>);\n private pageService = inject(PageService<T>);\n public config = inject(CrudFullConfig<T>);\n private searchService = inject(CrudSearchService);\n\n private _cleanMultiSelected$ = new Subject<void>();\n\n pageOptions = signal<IPageOptions | null>(null);\n listOptions = signal<IListOptions<T> | null>(null);\n links = this.facade.links;\n\n filter: Signal<ICrudFilter | undefined> = this.facade.filter;\n\n topTpl = viewChild<ViewContainerRef>('topTpl');\n\n override contentTpl = viewChild<TemplateRef<any>>('contentTpl');\n\n override dynamicContents = viewChildren<DynamicContentDirective>(\n DynamicContentDirective,\n );\n\n override refreshProperties(): void {\n this.baseComponentRef.setInput('listOptions', this.listOptions());\n }\n\n async ngOnInit(): Promise<void> {\n this.pageService.checkPermissions();\n\n const options = getModelOptions(this.config.type);\n\n let newFilter = null;\n\n if (this.config.list?.resetQuery === 'beforeInit') {\n newFilter = {\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n paginationMode: this.config.list!.paginationMode,\n limit: this.config.pagination\n ? this.config.pagination.limit\n : undefined,\n offset: this.config.pagination ? 0 : undefined,\n sortBy: this.config.sort\n ? (this.config.sort as any)['default']\n : undefined,\n sortDesc: this.config.sort\n ? (this.config.sort as any)['defaultDesc']\n : undefined,\n ...this.searchService.filter,\n };\n } else if (this.filter()) {\n newFilter = this.filter();\n } else {\n newFilter = {\n paginationMode: this.config.list!.paginationMode,\n limit: this.searchService.filter?.limit\n ? this.searchService.filter.limit\n : this.config.pagination\n ? this.config.pagination.limit\n : undefined,\n offset:\n this.searchService.filter?.offset ||\n this.searchService.filter?.offset === 0\n ? this.searchService.filter.offset\n : this.config.pagination\n ? 0\n : undefined,\n sortBy: this.searchService.filter?.sortBy\n ? this.searchService.filter.sortBy\n : this.config.sort\n ? (this.config.sort as any)['default']\n : undefined,\n sortDesc: this.searchService.filter?.sortDesc\n ? this.searchService.filter.sortDesc\n : this.config.sort\n ? (this.config.sort as any)['defaultDesc']\n : undefined,\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n ...this.searchService.filter,\n };\n }\n\n this.facade.read(newFilter);\n\n const endButtons = this.getEndButtons();\n\n this.pageOptions.set({\n title: this.config.title || '',\n search: this.config.search\n ? {\n text: computed(() => this.filter()?.searchText ?? ''),\n set: (txt) => {\n if (txt !== this.filter()?.searchText)\n this.facade.read({\n ...this.filter(),\n searchText: txt,\n offset: 0,\n });\n },\n }\n : undefined,\n endButtons: endButtons,\n });\n\n const compiledComponents =\n await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.top\n ? [this.config.details.components.top]\n : []),\n ...(this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.bottom\n ? [this.config.details.components.bottom]\n : []),\n ...(this.config.list &&\n typeof this.config.list === 'object' &&\n 'components' in this.config.list &&\n this.config.list.components?.top\n ? [this.config.list.components.top]\n : []),\n ],\n });\n\n this.listOptions.set({\n provider: {\n getData: (filter): void => {\n const global = {\n ...this.filter(),\n ...filter,\n };\n this.facade.read(global);\n },\n onChangeMultiSelected: async (list) => {\n if (list.length && !this.menuService.openedEnd) {\n await this.menuService.openEnd({\n injector: this.injector,\n component: MultiselectComponent,\n });\n } else if (!list.length && this.menuService.openedEnd) {\n await this.menuService.closeEnd();\n }\n\n this.facade.multiSelect(list);\n },\n list: computed(() => this.facade.list() || []),\n loading: this.facade.loading,\n onCleanMultiSelected$: this._cleanMultiSelected$,\n },\n cellPipe: this.config.list ? this.config.list.cellPipe : undefined,\n mode: this.config.list?.mode,\n type: this.config.type,\n details: this.config.details\n ? {\n provider: {\n getData: (id) => {\n this.facade.select(id);\n },\n clearData: () => {\n this.facade.unselect();\n },\n item: this.facade.selected,\n loading: this.facade.loading,\n },\n componentFactories: {\n top:\n this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.top\n ? compiledComponents.find(\n (cc) =>\n cc.component ===\n (this.config.details as any).components.top,\n )?.factory\n : undefined,\n bottom:\n this.config.details &&\n typeof this.config.details === 'object' &&\n 'components' in this.config.details &&\n this.config.details.components?.bottom\n ? compiledComponents.find(\n (cc) =>\n cc.component ===\n (this.config.details as any).components.bottom,\n )?.factory\n : undefined,\n },\n }\n : undefined,\n item:\n !!this.config.edit || this.config.details\n ? {\n options: {\n routingPrefix: '/' + this.router.routerState.snapshot.url + '/',\n edit: !!this.config.edit,\n },\n }\n : undefined,\n remove: this.config.remove\n ? {\n provider: {\n invoke: (id) => this.facade.delete(id),\n check: (item: T) => {\n return options?.remove?.enabled\n ? SpecificationService.valid(item, options?.remove?.enabled)\n : true;\n },\n },\n }\n : undefined,\n pagination: await this.paginationFacade.create({\n mode: this.config.list!.paginationMode,\n limit: this.config.pagination!.limit,\n provider: {\n getFilter: () => {\n return this.filter() || ({} as ICrudFilter);\n },\n getLinks: () => this.links(),\n },\n }),\n sort: this.config.sort,\n });\n\n this.cd.detectChanges();\n\n this.initCloseMenu();\n this.initTopComponent(compiledComponents);\n\n this.refreshDynamicInstance();\n }\n\n private initCloseMenu() {\n this.router.events.pipe(this.takeUntilDestroy).subscribe(async () => {\n await this.clear();\n });\n }\n\n private async clear() {\n await this.menuService.closeEnd();\n\n this.listOptions.update((val) => ({\n ...(val as IListOptions<T>),\n select: undefined,\n }));\n\n this.facade.multiSelect([]);\n }\n\n private getEndButtons(): Array<IIconButtonOptions> {\n const fieldsWithOptions = getModelFieldsWithOptions(new this.config.type());\n const modelOptions = getModelOptions(this.config.type);\n\n const showFilters =\n fieldsWithOptions.some(\n (x) => (x.options?.list as IFieldListMetadata)?.filter,\n ) || modelOptions?.filters?.length;\n\n const showMultiEdit =\n this.config.list?.components?.multi ||\n (this.config.edit &&\n fieldsWithOptions.some(\n (x) => (x.options?.update as IFieldEditMetadata)?.multi,\n ) &&\n !this.hardwareService.isMobile &&\n (!this.config?.list?.mode ||\n this.config?.list?.mode === ListMode.desktop));\n\n return [\n ...(showMultiEdit\n ? [\n {\n icon: 'checkbox-outline',\n text: 'multi',\n handler: () => {\n this.facade.multiSelect([]);\n this._cleanMultiSelected$.next();\n\n setTimeout(async () => {\n this.listOptions.update((val) => ({\n ...(val as IListOptions<T>),\n select: val?.select === 'multi' ? undefined : 'multi',\n }));\n if (this.menuService.openedEnd)\n await this.menuService.closeEnd();\n this.cd.detectChanges();\n });\n },\n },\n ]\n : []),\n ...(showFilters\n ? [\n {\n icon: 'filter-outline',\n text: 'filters',\n handler: async () => {\n await this.menuService.openEnd({\n injector: this.injector,\n component: FiltersComponent,\n });\n },\n },\n ]\n : []),\n ...(this.config.add\n ? [\n {\n icon: 'add',\n text: 'add',\n handler: () => {\n this.router.navigate([\n '/' + this.router.routerState.snapshot.url + '/add',\n ]);\n },\n },\n ]\n : []),\n ...(this.config.export\n ? [\n {\n text: 'export',\n icon: 'download-outline',\n type: 'popover' as const,\n component: ExportComponent,\n },\n ]\n : []),\n ...(this.config.buttons ? this.config.buttons : []),\n ];\n }\n\n private initTopComponent(\n compiledComponents: {\n component: any;\n factory: ComponentFactory<any>;\n }[],\n ) {\n const factory =\n this.config.list &&\n typeof this.config.list === 'object' &&\n 'components' in this.config.list &&\n this.config.list.components?.top\n ? compiledComponents.find(\n (cc) => cc.component === (this.config.list as any).components.top,\n )?.factory\n : null;\n\n setTimeout(() => {\n if (factory && !this.topTpl()?.get(0)) {\n this.topTpl()?.createComponent(factory);\n }\n });\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { RouterModule } from '@angular/router';\n\nimport { NgrxStoreService, SharedModule } from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { getReducer, CrudFacade } from './+state';\nimport { CrudEffects } from './+state/crud.effects';\nimport { CrudComponentsModule } from './components';\nimport { CrudConfig } from './crud.config';\nimport { CrudListPaginationFactory } from './factories/list-pagination/list-pagination.factory';\nimport { ListComponent } from './pages';\nimport { ItemComponent } from './pages';\nimport { ListStandardComponent } from './pages';\nimport { ItemStandardComponent } from './pages';\nimport { CrudPipesModule } from './pipes';\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudListGroupService } from './services/list-group/list-group.service';\nimport { PageService } from './services/page/page.service';\n\nexport const PAGES = [\n ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent,\n];\n\n@NgModule({\n imports: [\n ...PAGES,\n SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent },\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n ],\n exports: [...PAGES, CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudFacade,\n CrudEffects,\n CrudListPaginationFactory,\n ],\n})\nexport class CrudFullModule<T extends IEntity<string>> {\n constructor(config: CrudConfig<T>, effects: CrudEffects<any>) {\n NgrxStoreService.addReducer(\n config.entity,\n config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity),\n );\n effects.init();\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { ModuleWithProviders, NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\nimport {\n FILE_SERVICE_CONFIG,\n IFileServiceConfig,\n NgrxStoreService,\n SharedModule,\n} from '@smartsoft001/angular';\nimport { IEntity } from '@smartsoft001/domain-core';\n\nimport { getReducer } from './+state';\nimport { CrudEffects } from './+state/crud.effects';\nimport { CrudFacade } from './+state/crud.facade';\nimport { CrudComponentsModule } from './components';\nimport { CrudFullModule } from './crud-full.module';\nimport { CrudConfig, CrudFullConfig } from './crud.config';\nimport { CrudListPaginationFactory } from './factories/list-pagination/list-pagination.factory';\nimport { CrudPipesModule } from './pipes';\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudListGroupService } from './services/list-group/list-group.service';\nimport { PageService } from './services/page/page.service';\n\n@NgModule({\n imports: [\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n ],\n exports: [CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ],\n})\nexport class CrudCoreModule<T extends IEntity<string>> {\n constructor(config: CrudConfig<T>, effects: CrudEffects<any>) {\n NgrxStoreService.addReducer(\n config.entity,\n config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity),\n );\n effects.init();\n }\n}\n\n@NgModule({\n providers: [\n CrudService,\n CrudListGroupService,\n CrudEffects,\n PageService,\n CrudFacade,\n CrudListPaginationFactory,\n ],\n})\nexport class CrudModule<T extends IEntity<string>> {\n static forFeature<T extends IEntity<string>>(\n options:\n | ICrudModuleOptionsWithRoutng<T>\n | ICrudModuleOptionsWithoutRoutng<T>,\n ): ModuleWithProviders<CrudModule<any>> {\n return {\n ngModule: options.routing ? CrudFullModule : CrudCoreModule,\n providers: [\n { provide: CrudConfig, useValue: options.config },\n { provide: CrudFullConfig, useValue: options.config },\n {\n provide: FILE_SERVICE_CONFIG,\n useValue: { apiUrl: options.config.apiUrl } as IFileServiceConfig,\n },\n ],\n };\n }\n\n constructor(config: CrudConfig<T>, effects: CrudEffects<any>) {\n NgrxStoreService.addReducer(\n config.entity,\n config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity),\n );\n effects.init();\n }\n}\n\nexport interface ICrudModuleOptionsWithRoutng<T> {\n config: CrudFullConfig<T>;\n socket?: boolean;\n routing: true;\n}\n\nexport interface ICrudModuleOptionsWithoutRoutng<T> {\n config: CrudConfig<T>;\n socket?: boolean;\n routing: false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["select","CrudSelectors.getCrudLoaded","CrudSelectors.getCrudSelected","CrudSelectors.getCrudMultiSelected","CrudSelectors.getCrudList","CrudSelectors.getCrudFilter","CrudSelectors.getCrudTotalCount","CrudSelectors.getCrudLinks","CrudSelectors.getCrudError","CrudActions.create","CrudActions.createMany","CrudActions.read","CrudActions.clear","CrudActions.select","CrudActions.unselect","CrudActions.multiSelect","CrudActions.update","CrudActions.exportList","CrudActions.updatePartial","CrudActions.updatePartialMany","CrudActions.deleteItem","i2.CrudConfig","BaseComponent","ListComponent","CrudActions.createSuccess","CrudActions.createFailure","CrudActions.createManySuccess","CrudActions.createManyFailure","CrudActions.readSuccess","CrudActions.readFailure","CrudActions.exportListSuccess","CrudActions.exportListFailure","CrudActions.selectSuccess","CrudActions.selectFailure","CrudActions.updateSuccess","CrudActions.updateFailure","CrudActions.updatePartialSuccess","CrudActions.updatePartialFailure","CrudActions.updatePartialManySuccess","CrudActions.updatePartialManyFailure","CrudActions.deleteSuccess","CrudActions.deleteFailure","i2.CrudService","i3.CrudConfig","i1.CrudConfig","i2.CrudEffects"],"mappings":"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"}