@recursyve/nice-data-filter-kit 12.1.20 → 12.1.24
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/recursyve-nice-data-filter-kit.umd.js +20 -7
- package/bundles/recursyve-nice-data-filter-kit.umd.js.map +1 -1
- package/esm2015/lib/components/base-list/base-list.component.js +8 -5
- package/esm2015/lib/components/base-list/store/base-list.service.js +12 -3
- package/esm2015/lib/components/multi-state-list/multi-state-list.component.js +2 -2
- package/esm2015/lib/components/query-builder/rule/rule.component.js +2 -2
- package/fesm2015/recursyve-nice-data-filter-kit.js +20 -8
- package/fesm2015/recursyve-nice-data-filter-kit.js.map +1 -1
- package/lib/components/base-list/store/base-list.service.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recursyve-nice-data-filter-kit.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/nice-data-filter-kit/src/lib/utils/query-params.utils.ts","../../../projects/nice-data-filter-kit/src/lib/api/filter.api.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-buttons.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-cards.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-custom-content.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-table.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-title.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-directives.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/models/columns.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/models/layout.model.ts","../../../projects/nice-data-filter-kit/src/lib/utils/filter.utils.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/providers/base-filter.service.ts","../../../projects/nice-data-filter-kit/src/lib/api/saved-report.api.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/providers/base-list-saved-report.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.constant.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.store.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.query.ts","../../../projects/nice-data-filter-kit/src/lib/models/filter.model.ts","../../../projects/nice-data-filter-kit/src/lib/models/query.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/utils/qb-filter.utils.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.form.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/text/text-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/text/text-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/number/number-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/number/number-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/radio/radio-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/radio/radio-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/select/select-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/select/select-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/date/date-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/date/date-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/providers/filter-group.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/pipes/filter-group-icon.pipe.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/filter-selection/filter-selection.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/filter-selection/filter-selection.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder-trigger.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/rule.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/rule.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.template.html","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.template.html","../../../projects/nice-data-filter-kit/src/lib/utils/date.adapter.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/models/list-states.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/providers/multi-state-filter.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.store.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.query.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.constant.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.module.ts","../../../projects/nice-data-filter-kit/src/lib/utils/string.utils.ts","../../../projects/nice-data-filter-kit/src/public-api.ts","../../../projects/nice-data-filter-kit/src/recursyve-nice-data-filter-kit.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { HttpParams } from \"@angular/common/http\";\nimport { isNullOrUndefined } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel } from \"../models/filter.model\";\n\nexport class QueryParamsUtils {\n public static extractFilterParameters(params: { [key: string]: any }): FilterParametersModel {\n const filters: FilterParametersModel = {};\n if (!isNullOrUndefined(params.start)) {\n filters.start = Number(params.start);\n }\n if (!isNullOrUndefined(params.length)) {\n filters.length = Number(params.length);\n }\n if (!isNullOrUndefined(params.order)) {\n try {\n filters.order = JSON.parse(params.order);\n } catch (e) {\n delete filters.order;\n }\n }\n if (!isNullOrUndefined(params.search)) {\n filters.search = params.search;\n }\n if (!isNullOrUndefined(params.rules)) {\n try {\n filters.rules = JSON.parse(params.rules);\n } catch (e) {\n delete filters.rules;\n }\n }\n\n return filters;\n }\n\n public static filterParametersToParamsMap(filterParameters: FilterParametersModel): { [key: string]: any } {\n const params: { [key: string]: any } = {};\n if (!isNullOrUndefined(filterParameters.start)) {\n params.start = filterParameters.start;\n }\n if (!isNullOrUndefined(filterParameters.length)) {\n params.length = filterParameters.length;\n }\n if (!isNullOrUndefined(filterParameters.order)) {\n params.order = JSON.stringify(filterParameters.order);\n } else {\n params.order = null;\n }\n if (!isNullOrUndefined(filterParameters.search)) {\n params.search = filterParameters.search;\n }\n if (!isNullOrUndefined(filterParameters.rules)) {\n params.rules = JSON.stringify(filterParameters.rules);\n }\n\n return params;\n }\n\n public static fromObject(obj: any): string {\n Object.entries(obj).forEach(([key, value]) => {\n if (value === undefined) {\n delete obj[key];\n }\n });\n return new HttpParams({\n fromObject: obj\n }).toString();\n }\n}\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { FilterConfigurationModel, FilterQueryModel, FilterResultModel, SelectFilterValue } from \"../models/filter.model\";\nimport { QueryParamsUtils } from \"../utils/query-params.utils\";\n\nexport class NiceFilterApi<T> {\n constructor(private filterApiUrl: string, private path: string, protected http: HttpClient) {}\n\n public filter(queryModel: FilterQueryModel): Observable<FilterResultModel> {\n return this.http.post<FilterResultModel>(this.url(\"filter\"), queryModel);\n }\n\n public filterCount(queryModel: FilterQueryModel): Observable<number> {\n return this.http.post<number>(this.url(\"filter-count\"), queryModel);\n }\n\n public downloadData(type: string, queryModel: FilterQueryModel): Observable<Blob> {\n return this.http.post(this.url(`download/${type}`), queryModel, { responseType: \"blob\" });\n }\n\n public getPrintableHtml(queryModel: FilterQueryModel): Observable<string> {\n return this.http.post(this.url(`download/html`), queryModel, { responseType: \"text\" });\n }\n\n public getFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.http.get<FilterConfigurationModel[]>(this.url(\"filter/config\"));\n }\n\n public searchFilterValue(id: string, value: string): Observable<SelectFilterValue[]> {\n if (value === undefined) {\n value = \"\";\n }\n\n return this.http.get<SelectFilterValue[]>(this.url(`filter/config/value?id=${id}&value=${value}`));\n }\n\n public searchFilterResourceValue(id: string, resourceId: number): Observable<SelectFilterValue> {\n return this.http.get<SelectFilterValue>(this.url(`filter/config/id?id=${id}&resourceId=${resourceId}`));\n }\n\n protected url(route?: string, queryParams?: object): string;\n protected url(queryParams: object): string;\n protected url(...args: [string | object, object?]): string {\n const [route, queryParams] = this.transformUrlArgs(args);\n const params = queryParams ? `?${QueryParamsUtils.fromObject(queryParams)}` : \"\";\n if (route) {\n return `${this.filterApiUrl}/${this.path}/${route}${params}`;\n }\n\n return `${this.filterApiUrl}/${this.path}${params}`;\n }\n\n private transformUrlArgs(args: [string | object, object?]): [route: string, queryParams?: object] {\n const [routeOfQueryParams, query] = args;\n if (args.length === 1) {\n if (typeof routeOfQueryParams === \"string\") {\n return [routeOfQueryParams];\n }\n\n return [\"\", routeOfQueryParams];\n }\n\n return [(routeOfQueryParams as string) ?? \"\", query];\n }\n}\n","import { Directive, Input, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListButton]\" })\nexport class NiceBaseListButtonsDirective {\n @Input()\n public position: \"prefix\" | \"suffix\" = \"suffix\";\n\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListCards]\" })\nexport class NiceBaseListCardsDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListContent]\" })\nexport class NiceBaseListCustomContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListTable]\" })\nexport class NiceBaseListTableDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListTitle]\" })\nexport class NiceBaseListTitleDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceBaseListButtonsDirective } from \"./base-list-buttons.directive\";\n\nimport { NiceBaseListCardsDirective } from \"./base-list-cards.directive\";\nimport { NiceBaseListCustomContentDirective } from \"./base-list-custom-content.directive\";\nimport { NiceBaseListTableDirective } from \"./base-list-table.directive\";\nimport { NiceBaseListTitleDirective } from \"./base-list-title.directive\";\n\n@NgModule({\n declarations: [\n NiceBaseListButtonsDirective,\n NiceBaseListTitleDirective,\n NiceBaseListTableDirective,\n NiceBaseListCardsDirective,\n NiceBaseListCustomContentDirective\n ],\n exports: [\n NiceBaseListButtonsDirective,\n NiceBaseListTitleDirective,\n NiceBaseListTableDirective,\n NiceBaseListCardsDirective,\n NiceBaseListCustomContentDirective\n ]\n})\nexport class NiceBaseListDirectiveModule {}\n","export interface TableColumnsModel {\n id: string;\n sortable?: boolean;\n}\n\nexport class TableColumns implements TableColumnsModel {\n public id: string;\n public sortable: boolean;\n\n constructor(id: string, sortable = true) {\n this.id = id;\n this.sortable = sortable;\n }\n}\n","export type AvailableLayoutItem = \"title\" |\n \"search\" |\n \"prefixButtons\" |\n \"suffixButtons\" |\n \"exportButtons\" |\n \"content\" |\n \"pagination\" |\n \"queryBuilder\";\n\nexport enum LayoutContent {\n Table = \"table\",\n Cards = \"cards\",\n Custom = \"custom\"\n}\n\nexport interface LayoutItem {\n name: AvailableLayoutItem;\n flex?: string;\n align?: string;\n classes?: string[];\n}\n\nexport interface Layout {\n type: \"row\" | \"column\";\n flex?: string;\n align?: string;\n gap?: string;\n classes?: string[];\n items: (LayoutItem | Layout)[];\n}\n\nexport type BaseListPageLayout = (LayoutItem | Layout);\nexport interface BaseListLayout {\n default: Layout | BaseListPageLayout[];\n xs?: Layout | BaseListPageLayout[];\n sm?: Layout | BaseListPageLayout[];\n md?: Layout | BaseListPageLayout[];\n lg?: Layout | BaseListPageLayout[];\n xl?: Layout | BaseListPageLayout[];\n}\n\nexport const defaultLayout: BaseListLayout = {\n default: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n items: [\n {\n name: \"title\",\n flex: \"33\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"center center\",\n items: [\n {\n name: \"search\",\n flex: \"1 0 auto\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end\",\n items: [\n {\n name: \"prefixButtons\",\n align: \"end center\"\n },\n {\n name: \"exportButtons\",\n align: \"end center\"\n },\n {\n name: \"suffixButtons\",\n align: \"end center\"\n }\n ]\n }\n ]\n }\n ]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n },\n sm: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n align: \"center center\",\n items: [\n {\n name: \"title\",\n flex: \"50\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end center\",\n items: [\n {\n name: \"prefixButtons\"\n },\n {\n name: \"exportButtons\"\n },\n {\n name: \"suffixButtons\"\n }\n ]\n }\n ]\n },\n {\n name: \"search\",\n align: \"center center\",\n classes: [\"mb-8\"]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n },\n xs: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n align: \"center center\",\n items: [\n {\n name: \"title\",\n flex: \"50\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end center\",\n items: [\n {\n name: \"prefixButtons\"\n },\n {\n name: \"exportButtons\"\n },\n {\n name: \"suffixButtons\"\n }\n ]\n }\n ]\n },\n {\n name: \"search\",\n align: \"center center\",\n classes: [\"mb-8\"]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n }\n};\n","import { ObjectUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel, FilterQueryModel } from \"../models/filter.model\";\n\nexport class FilterUtils {\n public static parametersToRequest(filterParameters: FilterParametersModel): FilterQueryModel {\n return {\n page: {\n number: Math.ceil((filterParameters.start ?? 0) / (filterParameters.length ?? 1)),\n size: filterParameters.length ?? 0\n },\n search: {\n value: filterParameters.search ?? \"\"\n },\n query: {\n condition: \"and\",\n rules: filterParameters.rules ?? []\n },\n order: filterParameters.order ?? undefined,\n data: filterParameters.data\n };\n }\n\n public static filterChangeNeedsRefresh(currentFilters: FilterParametersModel, newFilters: FilterParametersModel): boolean {\n const newFilterKeys = Object.keys(newFilters).sort();\n if (newFilterKeys.length === 0) {\n return true;\n }\n return newFilterKeys.some((key) => {\n const currentValue = (currentFilters as any)[key];\n const newValue = (currentFilters as any)[key];\n if (Array.isArray(currentValue)) {\n return !ObjectUtils.areObjectsEqual(currentValue, newValue);\n } else if (typeof currentValue === \"object\" && currentValue !== null) {\n return !ObjectUtils.areObjectsEqual(currentValue, newValue);\n } else {\n return currentValue !== newValue;\n }\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { NiceFilterApi } from \"../../../api/filter.api\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel, SelectFilterValue } from \"../../../models/filter.model\";\nimport { FilterUtils } from \"../../../utils/filter.utils\";\n\nexport interface INiceFilterService<T> {\n getFilterConfig(): Observable<FilterConfigurationModel[]>;\n\n filter(params: FilterParametersModel): Observable<FilterResultModel<T>>;\n\n getFile(type: string, parameters: FilterParametersModel): Observable<Blob>;\n\n getPrintableHtml(parameters: FilterParametersModel): Observable<string>;\n}\n\n@Injectable()\nexport class NiceFilterService<T> implements INiceFilterService<T> {\n constructor(protected api?: NiceFilterApi<T>) {}\n\n public filter(params: FilterParametersModel): Observable<FilterResultModel<T>> {\n return this.api?.filter(FilterUtils.parametersToRequest(params));\n }\n\n public getFile(type: string, parameters: FilterParametersModel): Observable<Blob> {\n return this.api?.downloadData(type, FilterUtils.parametersToRequest(parameters));\n }\n\n public getPrintableHtml(parameters: FilterParametersModel): Observable<string> {\n return this.api?.getPrintableHtml(FilterUtils.parametersToRequest(parameters));\n }\n\n public getFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.api?.getFilterConfig();\n }\n\n public searchFilterValue(filterConfig: FilterConfigurationModel, value: string): Observable<SelectFilterValue[]> {\n return this.api?.searchFilterValue(filterConfig.id, value);\n }\n\n public searchFilterResourceValue(\n filterConfig: FilterConfigurationModel,\n resourceId: number\n ): Observable<SelectFilterValue> {\n return this.api?.searchFilterResourceValue(filterConfig.id, resourceId);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { QueryParamsUtils } from \"../utils/query-params.utils\";\nimport { NiceSavedReportDto } from \"./dto/saved-reports.dto\";\nimport { NiceSavedReports } from \"./models/saved-reports.model\";\n\nexport class NiceSavedReportsApi {\n constructor(private filterApiUrl: string, private path: string, protected http: HttpClient) {}\n\n public create(dto: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.http.post<NiceSavedReports>(this.url(), dto);\n }\n\n public getAll(): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url());\n }\n\n public getByTable(table: string): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url(`${table}`));\n }\n\n public getTopByTable(table: string | undefined): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url(`${table}/top`));\n }\n\n public hit(id: number): Observable<void> {\n return this.http.put<void>(this.url(`${id}/hit`), null);\n }\n\n public update(id: number, dto: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.http.put<NiceSavedReports>(this.url(`${id}`), dto);\n }\n\n public delete(id: number): Observable<void> {\n return this.http.delete<void>(this.url(`${id}`));\n }\n\n protected url(route?: string, queryParams?: object): string;\n protected url(queryParams: object): string;\n protected url(...args: [string | object, object?]): string {\n const [route, queryParams] = this.transformUrlArgs(args);\n const params = queryParams ? `?${QueryParamsUtils.fromObject(queryParams)}` : \"\";\n if (route) {\n return `${this.filterApiUrl}/${this.path}/${route}${params}`;\n }\n\n return `${this.filterApiUrl}/${this.path}${params}`;\n }\n\n private transformUrlArgs(args: [string | object, object?]): [route: string, queryParams?: object] {\n const [routeOfQueryParams, query] = args;\n if (args.length === 1) {\n if (typeof routeOfQueryParams === \"string\") {\n return [routeOfQueryParams];\n }\n\n return [\"\", routeOfQueryParams];\n }\n\n return [(routeOfQueryParams as string) ?? \"\", query];\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { NiceSavedReportDto } from \"../../../api/dto/saved-reports.dto\";\nimport { NiceSavedReports } from \"../../../api/models/saved-reports.model\";\nimport { NiceSavedReportsApi } from \"../../../api/saved-report.api\";\n\n@Injectable()\nexport class NiceSavedReportService {\n constructor(private api: NiceSavedReportsApi) {}\n\n public create(report: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.api.create(report);\n }\n\n public update(id: number, report: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.api.update(id, report);\n }\n\n public remove(id: number): Observable<void> {\n return this.api.delete(id);\n }\n\n public getByTableName(table: string): Observable<NiceSavedReports[]> {\n return this.api.getByTable(table);\n }\n\n public getTopByTableName(table: string): Observable<NiceSavedReports[]> {\n return this.api.getTopByTable(table);\n }\n\n public hit(id: number): Observable<void> {\n return this.api.hit(id);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const BASE_LIST_LAYOUT = new InjectionToken(\"base_list_layout\");\nexport const DEFAULT_PARAMETERS = new InjectionToken(\"default_parameters\");\nexport const LIST_TABLE = new InjectionToken(\"list_table\");\nexport const TABLE_COLUMNS = new InjectionToken(\"table_columns\");\nexport const EXPORTS_SETTINGS = new InjectionToken(\"exports_settings\");\nexport const ENABLE_QUERY_BUILDER = new InjectionToken(\"enable_query_builder\");\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { Store, StoreConfig } from \"@datorama/akita\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel } from \"../../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../../models/query.model\";\nimport { DEFAULT_PARAMETERS } from \"../base-list.constant\";\n\nexport interface NiceBaseListState {\n loading?: boolean;\n disabled: boolean;\n mergePageResults: boolean;\n resetPaging: boolean;\n filterConfigLoading: boolean;\n filterResult: FilterResultModel | null;\n filterParameters: FilterParametersModel;\n filterConfig: FilterConfigurationModel[];\n showQueryBuilder: boolean;\n defaultRules: (QueryRuleModel | QueryModel)[];\n}\n\nexport const initialBaseListState: NiceBaseListState = {\n disabled: false,\n mergePageResults: false,\n resetPaging: false,\n filterConfigLoading: false,\n filterResult: null,\n filterParameters: {\n start: 0,\n length: 10,\n order: {},\n search: \"\",\n rules: [],\n data: {}\n },\n filterConfig: [],\n showQueryBuilder: false,\n defaultRules: []\n};\n\n@Injectable()\n@StoreConfig({ name: \"base-list\", resettable: true })\nexport class NiceBaseListStore<T extends NiceBaseListState = NiceBaseListState> extends Store<T> {\n constructor(@Optional() @Inject(DEFAULT_PARAMETERS) parameters: FilterParametersModel) {\n super({\n ...initialBaseListState,\n filterParameters: {\n ...initialBaseListState.filterParameters,\n ...(parameters ?? {})\n }\n } as T);\n }\n\n public setFilterConfigLoading(loading: boolean): void {\n this.update({\n filterConfigLoading: loading\n } as T);\n }\n\n public setResult(filterResult: FilterResultModel): void {\n const { mergePageResults } = this.getValue();\n if (mergePageResults) {\n this.update((state) => ({\n filterResult: {\n page: filterResult.page,\n total: filterResult.total,\n values: state.resetPaging ? filterResult.values : [\n ...(state.filterResult?.values ?? []),\n ...filterResult.values\n ]\n },\n resetPaging: false\n }) as T);\n } else {\n this.update({\n filterResult\n } as T);\n }\n }\n\n public setParameters(filterParameters: FilterParametersModel): void {\n this.update({\n filterParameters\n } as T);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Query } from \"@datorama/akita\";\nimport { Observable } from \"rxjs\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel } from \"../../../models/filter.model\";\nimport { NiceBaseListState, NiceBaseListStore } from \"./base-list.store\";\n\n@Injectable()\nexport class NiceBaseListQuery<T extends NiceBaseListState = NiceBaseListState> extends Query<T> {\n constructor(protected store: NiceBaseListStore<T>) {\n super(store);\n }\n\n public selectData(): Observable<any[]> {\n return this.select(s => s.filterResult?.values ?? []) as Observable<any[]>;\n }\n\n public selectFilterParameters(): Observable<FilterParametersModel> {\n return this.select(s => s.filterParameters);\n }\n\n public selectFilterResult(): Observable<FilterResultModel | null> {\n return this.select(s => s.filterResult);\n }\n\n public selectFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.select(s => s.filterConfig);\n }\n\n public selectFilterConfigLoading(): Observable<boolean> {\n return this.select(s => s.filterConfigLoading);\n }\n\n public selectShowQueryBuilder(): Observable<boolean> {\n return this.select(s => s.showQueryBuilder);\n }\n}\n","import { QueryModel } from \"./query.model\";\n\nexport interface OrderFilterParameterModel {\n column?: string;\n direction?: \"asc\" | \"desc\";\n}\n\nexport interface FilterParametersModel {\n start?: number;\n length?: number;\n order?: OrderFilterParameterModel | null;\n search?: string;\n rules?: QueryModel[];\n draw?: number;\n data?: object;\n}\n\n\nexport interface FilterPageMode {\n number: number;\n size: number;\n}\n\nexport interface FilterSearchModel {\n value: string;\n}\n\nexport interface OrderModel {\n column?: string;\n direction?: \"asc\" | \"desc\";\n}\n\nexport interface FilterQueryModel {\n page?: FilterPageMode;\n search?: FilterSearchModel;\n query?: QueryModel;\n order?: OrderModel;\n data?: object | undefined;\n}\n\nexport interface FilterResultModel<T = any> {\n values: T[];\n total: number;\n page?: {\n number: number;\n size: number;\n };\n}\n\nexport enum FilterType {\n Text = \"text\",\n Number = \"number\",\n Date = \"date\",\n Select = \"select\",\n Radio = \"radio\"\n}\n\nexport interface RadioFilterOptionConfiguration {\n key: string;\n name: string;\n}\n\nexport interface FilterOperatorsConfiguration {\n id: string;\n name: string;\n}\n\nexport interface FilterGroupConfiguration {\n key: string;\n name: string;\n}\n\nexport interface FilterBaseConfigurationModel {\n type: FilterType;\n operators: FilterOperatorsConfiguration[];\n group?: FilterGroupConfiguration;\n values?: unknown[];\n lazyLoading?: boolean;\n options?: RadioFilterOptionConfiguration[];\n mask?: string;\n}\n\nexport interface FilterConfigurationModel extends FilterBaseConfigurationModel {\n id: string;\n name: string;\n}\n\nexport interface SelectFilterValue {\n id: number;\n name: string;\n}\n","export type Condition = \"and\" | \"or\";\n\nexport enum FilterOperatorTypes {\n Equal = \"equal\",\n NotEqual = \"not_equal\",\n In = \"in\",\n NotIn = \"not_in\",\n Less = \"less\",\n LessOrEqual = \"less_or_equal\",\n Greater = \"greater\",\n GreaterOrEqual = \"greater_or_equal\",\n Between = \"between\",\n NotBetween = \"not_between\",\n IsNull = \"is_null\",\n IsNotNull = \"is_not_null\",\n BeginsWith = \"begins_with\",\n NotBeginsWith = \"not_begins_with\",\n EndsWith = \"ends_with\",\n NotEndsWith = \"not_ends_with\",\n Contains = \"contains\",\n NotContains = \"not_contains\",\n IsEmpty = \"is_empty\",\n IsNotEmpty = \"is_not_empty\",\n None = \"none\"\n}\n\nexport interface CustomOperator {\n name: string;\n where?: any;\n having?: any;\n}\n\nexport type FilterOperators = FilterOperatorTypes | CustomOperator;\n\nexport interface RuleModel {\n operation: FilterOperators;\n value: unknown | unknown[];\n}\n\nexport interface QueryRuleModel extends RuleModel {\n id: string;\n}\n\nexport interface QueryModel {\n condition: Condition;\n rules: (QueryRuleModel | QueryModel)[];\n}\n","import { FilterConfigurationModel, FilterType } from \"../../../models/filter.model\";\nimport { FilterOperators, FilterOperatorTypes, QueryModel, QueryRuleModel } from \"../../../models/query.model\";\n\nexport class QBFilterUtils {\n public static noInputOperators: FilterOperators[] = [\n FilterOperatorTypes.IsEmpty,\n FilterOperatorTypes.IsNotEmpty,\n FilterOperatorTypes.IsNull,\n FilterOperatorTypes.IsNotNull,\n FilterOperatorTypes.None\n ];\n\n public static singleInputOperators: FilterOperators[] = [\n FilterOperatorTypes.Equal,\n FilterOperatorTypes.NotEqual,\n FilterOperatorTypes.Less,\n FilterOperatorTypes.LessOrEqual,\n FilterOperatorTypes.Greater,\n FilterOperatorTypes.GreaterOrEqual,\n FilterOperatorTypes.BeginsWith,\n FilterOperatorTypes.NotBeginsWith,\n FilterOperatorTypes.EndsWith,\n FilterOperatorTypes.NotEndsWith,\n FilterOperatorTypes.Contains,\n FilterOperatorTypes.NotContains\n ];\n\n public static doubleInputOperators: FilterOperators[] = [\n FilterOperatorTypes.Between,\n FilterOperatorTypes.NotBetween\n ];\n\n public static isSingleInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.singleInputOperators.includes(filterOperator);\n }\n\n public static isDoubleInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.doubleInputOperators.includes(filterOperator);\n }\n\n public static isNoInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.noInputOperators.includes(filterOperator);\n }\n\n public static createRule(config: FilterConfigurationModel, operator?: FilterOperators): QueryRuleModel {\n const base = {\n id: config.id,\n operation: operator || (config.operators[0].id as FilterOperators)\n };\n switch (config.type) {\n case FilterType.Text:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [\"\", \"\"] : \"\"\n };\n case FilterType.Select:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [null, null] : null\n };\n case FilterType.Date:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date()\n };\n case FilterType.Radio:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator)\n ? [config.options?.[0].key, config.options?.[0].key]\n : config.options?.[0].key\n };\n case FilterType.Number:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [0, 0] : 0\n };\n }\n }\n\n public static createQueryModel(config: FilterConfigurationModel): QueryModel {\n return {\n condition: \"or\",\n rules: [QBFilterUtils.createRule(config)]\n };\n }\n}\n","import { ApplicationRef, Injectable } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { arrayUpdate } from \"@datorama/akita\";\nimport { FileUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { FilterConfigurationModel, FilterParametersModel } from \"../../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../../models/query.model\";\nimport { FilterUtils } from \"../../../utils/filter.utils\";\nimport { QBFilterUtils } from \"../../query-builder/utils/qb-filter.utils\";\nimport { QueryParamsUtils } from \"../../../utils/query-params.utils\";\nimport { NiceFilterService } from \"../providers/base-filter.service\";\nimport { NiceBaseListStore } from \"./base-list.store\";\n\n@Injectable()\nexport class NiceBaseListService {\n public queryParamsLoaded$ = new Subject();\n\n protected downloadFileName = \"data\";\n protected unsubscribeAll$ = new Subject();\n protected loadingData = false;\n\n constructor(\n protected store: NiceBaseListStore,\n protected filterService: NiceFilterService<any>,\n protected activatedRoute: ActivatedRoute,\n protected router: Router,\n protected appRef: ApplicationRef\n ) {\n }\n\n public async init(): Promise<void> {\n this.store.setFilterConfigLoading(true);\n try {\n const filterConfig = await this.filterService.getFilterConfig().toPromise();\n this.store.update({\n filterConfig\n });\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setFilterConfigLoading(false);\n }\n }\n\n public resetStore(): void {\n this.store.reset();\n }\n\n public resetData(): void {\n this.store.update({\n filterResult: null\n });\n }\n\n public closeSubscriptions(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n this.queryParamsLoaded$.complete();\n }\n\n public disableList(): void {\n this.store.update({\n disabled: true\n });\n }\n\n public enableList(): void {\n this.store.update({\n disabled: false\n });\n }\n\n public setMode(mode: \"normal\" | \"infinite-scroll\"): void {\n this.store.update({\n mergePageResults: mode === \"infinite-scroll\"\n });\n }\n\n public loadQueryParams(autoLoad: boolean): void {\n this.activatedRoute?.queryParams\n .pipe(\n takeUntil(this.unsubscribeAll$),\n map((params: { [key: string]: any }) => {\n return {\n params: QueryParamsUtils.extractFilterParameters(params)\n };\n })\n )\n .subscribe(({ params }) => {\n if (!params || Object.keys(params).length === 0) {\n params = this.store.getValue().filterParameters;\n }\n const { filterParameters, filterResult } = this.store.getValue();\n if (\n FilterUtils.filterChangeNeedsRefresh(filterParameters, params) ||\n !filterResult\n ) {\n if (autoLoad) {\n this.loadData(params, false);\n } else {\n this.setParameters(params, false);\n }\n }\n\n this.queryParamsLoaded$.next();\n });\n }\n\n public async loadData(parameters?: FilterParametersModel, updateQueryParams: boolean = true): Promise<void> {\n const { disabled } = this.store.getValue();\n try {\n const filterParameters = this.mergeParameters(parameters);\n if (!disabled) {\n this.store.setLoading(true);\n this.loadingData = true;\n const result = await this.filterService.filter(this.getParameters(filterParameters)).toPromise();\n this.store.setResult(result);\n }\n\n if (filterParameters) {\n this.setParameters(filterParameters, disabled ? false : updateQueryParams);\n }\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public async loadNewPage(start: number, length: number): Promise<void> {\n const { filterParameters } = this.store.getValue();\n await this.loadData({\n ...filterParameters,\n start,\n length\n });\n }\n\n public async loadNextPage(): Promise<void> {\n const { filterParameters } = this.store.getValue();\n await this.loadData({\n ...filterParameters,\n start: filterParameters.start + filterParameters.length\n });\n }\n\n public async resetPaging(): Promise<void> {\n const { filterParameters } = this.store.getValue();\n this.store.setParameters({\n ...filterParameters,\n start: 0\n });\n this.store.update({\n resetPaging: true\n });\n }\n\n public async downloadData(\n type: string,\n parameters?: FilterParametersModel,\n updateQueryParams: boolean = true\n ): Promise<void> {\n try {\n this.store.setLoading(true);\n this.loadingData = true;\n const filterParameters = this.mergeParameters(parameters);\n if (filterParameters) {\n this.setParameters(filterParameters, updateQueryParams);\n }\n const result = await this.filterService.getFile(type, this.getParameters(filterParameters)).toPromise();\n FileUtils.downloadFile(`${this.downloadFileName}.${type}`, result);\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public async printData(parameters?: FilterParametersModel, updateQueryParams: boolean = true): Promise<void> {\n try {\n this.store.setLoading(true);\n this.loadingData = true;\n const filterParameters = this.mergeParameters(parameters);\n if (filterParameters) {\n this.setParameters(filterParameters, updateQueryParams);\n }\n const result = await this.filterService.getPrintableHtml(this.getParameters(filterParameters)).toPromise();\n FileUtils.openPrintableWindow(result);\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public updateRule(id: string, newRule: QueryRuleModel): void {\n const { filterParameters } = this.store.getValue();\n const rules = filterParameters.rules?.[0];\n if (!rules || rules.rules.length === 0) {\n this.updateRules([newRule]);\n return;\n }\n\n const oldRule = rules.rules.find((r) => (r as QueryRuleModel).id === id) as QueryRuleModel;\n let newRules = rules.rules;\n if (oldRule) {\n if (newRule) {\n // Array replace\n newRules = [\n ...rules.rules.slice(0, rules.rules.indexOf(oldRule)),\n newRule,\n ...rules.rules.slice(rules.rules.indexOf(oldRule) + 1, rules.rules.length)\n ];\n } else {\n newRules = rules.rules.filter((r) => (r as QueryRuleModel).id !== id);\n }\n } else {\n newRules = [...newRules, newRule];\n }\n this.updateRules(newRules as QueryRuleModel[]);\n }\n\n public updateDefaultRules(rule: (QueryRuleModel | QueryModel)[]): void {\n this.store.update({\n defaultRules: rule\n });\n }\n\n public async updateGlobalRules(rules: QueryModel[], updateQueryParams = true): Promise<void> {\n const { filterParameters } = this.store.getValue();\n const newRules: FilterParametersModel = {\n ...filterParameters,\n rules\n };\n\n await this.loadData(newRules, updateQueryParams);\n }\n\n public addRuleFromConfig(config: FilterConfigurationModel): void {\n const { filterParameters } = this.store.getValue();\n\n const newRules: FilterParametersModel = {\n ...filterParameters,\n rules: [\n ...(filterParameters.rules as QueryModel[]),\n QBFilterUtils.createQueryModel(config)\n ]\n };\n\n this.store.update({\n showQueryBuilder: true\n });\n\n this.loadData(newRules, true);\n }\n\n public updateRules(rules: QueryRuleModel[]): void {\n const newRules: FilterParametersModel = {\n rules: [\n {\n condition: \"and\",\n rules\n }\n ]\n };\n\n this.loadData(newRules, true);\n }\n\n public toggleQueryBuilder(): void {\n this.store.update((state) => ({\n showQueryBuilder: !state.showQueryBuilder\n }));\n }\n\n public updateListValue(value: any, key = \"id\"): void {\n const { filterResult } = this.store.getValue();\n if (!filterResult) {\n return;\n }\n\n this.store.update({\n filterResult: {\n ...filterResult,\n values: arrayUpdate(filterResult.values, value[key], value)\n }\n });\n }\n\n protected async updateQueryParams(queryParams: any): Promise<void> {\n if (!this.activatedRoute) {\n return;\n }\n\n await this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams,\n queryParamsHandling: \"merge\"\n });\n }\n\n private getParameters(filterParameters?: FilterParametersModel): FilterParametersModel {\n const { defaultRules } = this.store.getValue();\n const parameters = {\n ...filterParameters,\n rules: filterParameters?.rules ? [...filterParameters.rules] : []\n };\n if (defaultRules?.length) {\n parameters.rules.push({\n condition: \"and\",\n rules: defaultRules\n });\n }\n return parameters;\n }\n\n private mergeParameters(parameters?: FilterParametersModel): FilterParametersModel {\n const { filterParameters } = this.store.getValue();\n if (!parameters) {\n return filterParameters;\n }\n\n return {\n ...filterParameters,\n ...parameters,\n order:\n filterParameters.order && !parameters.order\n ? undefined\n : {\n ...filterParameters.order,\n ...parameters.order\n }\n };\n }\n\n private setParameters(parameters: FilterParametersModel, updateQueryParams: boolean = true): void {\n this.store.setParameters(parameters);\n if (updateQueryParams) {\n this.updateQueryParams(QueryParamsUtils.filterParametersToParamsMap(parameters));\n }\n }\n}\n","import { Array, Control, Required } from \"@recursyve/ngx-form-generator\";\nimport { Condition, FilterOperators, QueryModel, QueryRuleModel } from \"../../models/query.model\";\nimport { QBFilterUtils } from \"./utils/qb-filter.utils\";\n\nexport class QueryRuleForm {\n @Control()\n @Required()\n public id: string;\n\n @Control()\n @Required()\n public operation: string;\n\n @Control()\n @Required()\n public value: any;\n\n @Control()\n @Required()\n public secondValue: any;\n\n constructor(rule: QueryRuleModel) {\n if (!rule) {\n return;\n }\n\n this.id = rule.id;\n this.operation = rule.operation as string;\n if (QBFilterUtils.isDoubleInput(rule.operation)) {\n this.value = rule.value[0];\n this.secondValue = rule.value[1];\n } else {\n this.value = rule.value;\n }\n }\n\n public transform(): QueryRuleModel {\n return {\n id: this.id,\n operation: this.operation as FilterOperators,\n value: this.secondValue === undefined ? this.value : [this.value, this.secondValue]\n };\n }\n}\n\nexport class QueryForm {\n @Control()\n @Required()\n public condition: string;\n\n @Array(QueryRuleForm)\n public rules: QueryRuleForm[];\n}\n\nexport class QueryBuilderForm {\n @Array(QueryForm)\n public rules: QueryForm[];\n\n constructor(rules: QueryModel[]) {\n if (!rules) {\n rules = [];\n }\n\n this.rules = rules.map(x => ({\n condition: x.condition,\n rules: x.rules.map(rule => new QueryRuleForm(rule as QueryRuleModel))\n }));\n }\n\n public transform(): QueryModel[] {\n return this.rules.map(x => ({\n condition: x.condition as Condition,\n rules: x.rules.map(rule => rule.transform())\n }));\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\n\n@Component({ template: `` })\nexport class FilterComponent<T> implements ControlValueAccessor {\n private _value: T;\n\n @Input()\n public valueIndex = -1;\n\n public get value(): T | undefined {\n if (this.valueIndex < 0) {\n return this._value;\n } else if (this._value instanceof Array) {\n return this._value[this.valueIndex];\n }\n return undefined;\n }\n\n protected propagateChanges = (_: T) => {};\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public registerOnChange(fn: (_: T) => void): void {\n this.propagateChanges = fn;\n }\n\n public writeValue(value: T): void {\n this._value = value;\n }\n\n public onValueChange(value: T): void {\n if (this.valueIndex < 0) {\n this.propagateChanges(value);\n } else if (this._value instanceof Array) {\n const v = [...this._value];\n v[this.valueIndex] = value;\n this.propagateChanges(v as any);\n }\n }\n}\n","import { Component, forwardRef, Input, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterConfigurationModel } from \"../../../../../models/filter.model\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-text-filter\",\n templateUrl: \"text-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextFilterComponent),\n multi: true\n }\n ]\n})\nexport class TextFilterComponent extends FilterComponent<string> {\n @Input()\n public filterConfig: FilterConfigurationModel;\n}\n","<mat-form-field fxFlex>\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n","import { Component, forwardRef, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-number-filter\",\n templateUrl: \"number-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberFilterComponent),\n multi: true\n }\n ]\n})\nexport class NumberFilterComponent extends FilterComponent<number> {}\n","<mat-form-field fxFlex>\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n","import { Component, forwardRef, Input, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterConfigurationModel } from \"../../../../../models/filter.model\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-radio-filter\",\n templateUrl: \"radio-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioFilterComponent),\n multi: true\n }\n ]\n})\nexport class RadioFilterComponent extends FilterComponent<string> {\n @Input()\n public filterConfig: FilterConfigurationModel;\n}\n","<mat-radio-group fxFlex [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\">\n <mat-radio-button class=\"mx-16\" *ngFor=\"let option of filterConfig.options\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n</mat-radio-group>\n","import { Component, forwardRef, Input, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { of, Subject, Subscription } from \"rxjs\";\nimport { debounceTime, switchMap } from \"rxjs/operators\";\nimport { FilterConfigurationModel, SelectFilterValue } from \"../../../../../models/filter.model\";\nimport { NiceFilterService } from \"../../../../base-list/providers/base-filter.service\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-select-filter\",\n templateUrl: \"select-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectFilterComponent),\n multi: true\n }\n ]\n})\nexport class SelectFilterComponent extends FilterComponent<unknown> implements OnInit, OnDestroy, OnChanges {\n @Input()\n public filterConfig: FilterConfigurationModel;\n public values: SelectFilterValue[] = [];\n\n public search$ = new Subject<string>();\n\n private searchSub$: Subscription;\n\n constructor(@Optional() protected filterService: NiceFilterService<any>) {\n super();\n }\n\n public async ngOnInit(): Promise<void> {\n if (!this.filterConfig.lazyLoading) {\n this.values = this.filterConfig.values as SelectFilterValue[];\n }\n\n this.searchSub$ = this.search$\n .pipe(\n debounceTime(300),\n switchMap(value => {\n if (this.filterConfig.lazyLoading) {\n return this.filterService.searchFilterValue(this.filterConfig, value);\n }\n\n return of(this.filterConfig.values as SelectFilterValue[]);\n })\n )\n .subscribe(values => {\n this.values = values;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"filterConfig\" in changes) {\n if (!this.filterConfig.lazyLoading) {\n this.values = this.filterConfig.values as SelectFilterValue[];\n }\n }\n }\n\n private async searchValue(): Promise<void> {\n if (this.value && !this.values.find(v => v.id === this.value)) {\n const value = await this.filterService\n .searchFilterResourceValue(this.filterConfig, this.value as number)\n .toPromise();\n this.values = [...this.values, value];\n }\n }\n\n public onValueChange(value: unknown): void {\n super.onValueChange(value);\n this.searchValue();\n }\n\n public ngOnDestroy(): void {\n this.searchSub$.unsubscribe();\n }\n\n public writeValue(value: unknown): void {\n super.writeValue(value);\n this.searchValue();\n }\n}\n","<mat-form-field fxFlex>\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n [typeahead]=\"search$\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n</mat-form-field>\n","import { Component, forwardRef, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-date-filter\",\n templateUrl: \"date-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateFilterComponent),\n multi: true\n }\n ]\n})\nexport class DateFilterComponent extends FilterComponent<string> {}\n","<mat-form-field fxFlex>\n <input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n","export abstract class NiceFilterGroupService<T> {\n public abstract getFilterGroupIconClass(group: T): string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NiceFilterGroupService } from \"../providers/filter-group.service\";\n\n@Pipe({\n name: \"filterGroupIcon\"\n})\nexport class FilterGroupIconPipe implements PipeTransform {\n constructor(private service: NiceFilterGroupService<any>) {}\n\n public transform(value: string): string {\n return this.service.getFilterGroupIconClass(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from \"@angular/core\";\nimport { ArrayUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterConfigurationModel, FilterGroupConfiguration } from \"../../../models/filter.model\";\n\n@Component({\n selector: \"nice-filter-selection\",\n templateUrl: \"filter-selection.template.html\",\n styleUrls: [\"./filter-selection.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilterSelectionComponent {\n @Input()\n public filterConfigs: FilterConfigurationModel[];\n\n @Input()\n public loading: boolean;\n\n @Output()\n public filterSelected = new EventEmitter<FilterConfigurationModel>();\n\n public get filterGroups(): [FilterGroupConfiguration, FilterConfigurationModel[]][] {\n const groups = ArrayUtils.uniqueObjects(this.filterConfigs.map(x => x.group), x => x?.key);\n\n const result: [FilterGroupConfiguration, FilterConfigurationModel[]][] = [];\n for (const group of groups) {\n if (!group) {\n continue;\n }\n\n result.push([group, this.filterConfigs.filter(x => x.group?.key === group.key)]);\n }\n\n return result.sort(([, a], [, b]) => b.length - a.length);\n }\n\n public selectFilter(filterConfigurationModel: FilterConfigurationModel): void {\n this.filterSelected.emit(filterConfigurationModel);\n }\n}\n","<mat-card fxLayout=\"row wrap\" class=\"filter-selection-container\" [niceLoadingOverlay]=\"loading\">\n <mat-list [fxFlex]=\"filterGroups.length > 1 ? 50 : 100\" *ngFor=\"let group of filterGroups\">\n <mat-list-item>\n <i mat-list-icon class=\"text-accent fal\" [ngClass]=\"group[0].key | filterGroupIcon\"></i>\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n <mat-list-item (click)=\"selectFilter(filter)\" mat-ripple class=\"filter\" *ngFor=\"let filter of group[1]\">\n {{ filter?.name }}\n </mat-list-item>\n </mat-list>\n</mat-card>\n","import { Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { FilterSelectionComponent } from \"./filter-selection/filter-selection.component\";\n\n@Directive({ selector: \"[niceQueryBuilderTrigger]\" })\nexport class QueryBuilderTriggerDirective {\n private overlayRef: OverlayRef;\n private filterSelectionRef: ComponentRef<FilterSelectionComponent>;\n\n private _queryBuilderFilters: FilterConfigurationModel[];\n private _queryBuilderFiltersLoading: boolean;\n\n @Input()\n public set queryBuilderFilters(queryBuilderFilters: FilterConfigurationModel[] | null) {\n if (queryBuilderFilters) {\n this._queryBuilderFilters = queryBuilderFilters;\n }\n this.updateFilterSelectionComponent();\n }\n\n @Input()\n public set queryBuilderFiltersLoading(queryBuilderFiltersLoading: boolean) {\n this._queryBuilderFiltersLoading = queryBuilderFiltersLoading;\n this.updateFilterSelectionComponent();\n }\n\n @Output()\n public queryBuilderFilterSelected = new EventEmitter<FilterConfigurationModel>();\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private platform: Platform\n ) {}\n\n @HostListener(\"click\")\n public click(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: this.isMobile() ? \"end\" : \"center\",\n overlayY: \"top\"\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n\n const filterSelectionPortal = new ComponentPortal(FilterSelectionComponent);\n this.filterSelectionRef = this.overlayRef.attach(filterSelectionPortal);\n this.updateFilterSelectionComponent();\n\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n private close(): void {\n this.overlayRef.dispose();\n }\n\n private updateFilterSelectionComponent(): void {\n if (!this.filterSelectionRef) {\n return;\n }\n\n this.filterSelectionRef.instance.filterConfigs = this._queryBuilderFilters;\n this.filterSelectionRef.instance.loading = this._queryBuilderFiltersLoading;\n this.filterSelectionRef.instance.filterSelected.subscribe((filter: FilterConfigurationModel) => {\n this.queryBuilderFilterSelected.emit(filter);\n this.close();\n });\n }\n\n private isMobile(): boolean {\n return this.platform.ANDROID || this.platform.IOS;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormGroupName } from \"@angular/forms\";\nimport { GeneratedFormArray, GeneratedFormGroup } from \"@recursyve/ngx-form-generator\";\nimport { FilterConfigurationModel } from \"../../../models/filter.model\";\nimport { FilterOperators, QueryRuleModel } from \"../../../models/query.model\";\nimport { QueryForm, QueryRuleForm } from \"../query-builder.form\";\nimport { QBFilterUtils } from \"../utils/qb-filter.utils\";\n\n@Component({\n selector: \"nice-rule\",\n templateUrl: \"rule.template.html\",\n styleUrls: [\"./rule.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class RuleComponent implements OnInit {\n @Input()\n public filterConfigs: FilterConfigurationModel[] | null;\n\n @Output()\n public remove = new EventEmitter();\n\n public formGroup: GeneratedFormGroup<QueryForm>;\n public rules: GeneratedFormArray<QueryRuleForm>;\n public filterOperator: FilterOperators;\n\n public get filterConfig(): FilterConfigurationModel {\n const rule = this.rules.at(0).value as QueryRuleModel;\n return this.filterConfigs?.find(f => f.id === rule.id) as FilterConfigurationModel;\n }\n\n public get isSingleInput(): boolean {\n return !this.isDoubleInput && !this.isNoInput;\n }\n\n public get isDoubleInput(): boolean {\n return QBFilterUtils.isDoubleInput(this.filterOperator);\n }\n\n public get isNoInput(): boolean {\n return QBFilterUtils.isNoInput(this.filterOperator);\n }\n\n constructor(private formGroupName: FormGroupName) {}\n\n public ngOnInit(): void {\n this.formGroup = this.formGroupName.control as GeneratedFormGroup<QueryForm>;\n this.rules = this.formGroup.get(\"rules\") as GeneratedFormArray<QueryRuleForm>;\n this.filterOperator = this.rules.at(0).value.operation;\n }\n\n public onUpdateFilterConfig(config: FilterConfigurationModel): void {\n const rule = QBFilterUtils.createRule(config);\n this.rules.patchValue([rule as QueryRuleForm]);\n this.filterOperator = rule.operation;\n }\n\n public onClickOr(): void {\n this.rules.push(QBFilterUtils.createRule(this.filterConfig, this.filterOperator));\n }\n\n public onUpdateFilterOperator(operator: string): void {\n this.filterOperator = operator as FilterOperators;\n for (const rule of this.rules.controls) {\n rule.get(\"operation\")?.patchValue(this.filterOperator);\n\n if (this.isDoubleInput) {\n rule.get(\"value\")?.patchValue([rule.value.value, rule.value.value]);\n }\n }\n }\n\n public onClickDelete(index: number): void {\n if (this.rules.length > 1) {\n this.rules.removeAt(index);\n } else {\n this.remove.emit();\n }\n }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <button\n fxFlex=\"150px\"\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div fxFlex=\"row\" fxLayoutAlign=\"space-between center\">\n <div class=\"truncate\" fxFlex=\"0 1 90px\">{{ filterConfig?.name }}</div>\n <mat-icon fxFlex=\"24px\">arrow_drop_down</mat-icon>\n </div>\n </button>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxFlex=\"1 1 auto\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <mat-form-field ngClass.lt-md=\"w-90-p\" fxFlex=\"0 0 188px\">\n <mat-select\n fxFlex=\"150px\"\n fxFlex.lt-md=\"100%\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div fxFlex fxLayout=\"row wrap\" fxLayout.lt-md=\"column\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container\"\n [fxFlex]=\"isDoubleInput ? '100%' : '50%'\"\n [formGroupName]=\"i\"\n fxFlex.lt-md=\"100%\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"10px\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" fxFlex formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" fxFlex formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" fxFlex formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [valueIndex]=\"0\"\n [filterConfig]=\"filterConfig\"\n fxFlex\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n [valueIndex]=\"0\"\n fxFlex\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"0\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"0\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n [valueIndex]=\"0\"\n fxFlex\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [valueIndex]=\"1\"\n [filterConfig]=\"filterConfig\"\n fxFlex\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n [valueIndex]=\"1\"\n fxFlex\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"1\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"1\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n [valueIndex]=\"1\"\n fxFlex\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div fxLayout=\"row\" fxLayoutGap=\"8px\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { GeneratedFormArray, GeneratedFormGroup, ngxFormGeneratorFactory } from \"@recursyve/ngx-form-generator\";\nimport { NiceSavedReports } from \"../../api/models/saved-reports.model\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { QueryModel } from \"../../models/query.model\";\nimport { QueryBuilderForm, QueryForm } from \"./query-builder.form\";\nimport { QBFilterUtils } from \"./utils/qb-filter.utils\";\n\n@Component({\n selector: \"nice-query-builder\",\n templateUrl: \"./query-builder.template.html\",\n styleUrls: [\"./query-builder.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => QueryBuilderComponent),\n multi: true\n },\n {\n provide: GeneratedFormGroup,\n useFactory: ngxFormGeneratorFactory(QueryBuilderForm)\n }\n ]\n})\nexport class QueryBuilderComponent implements ControlValueAccessor {\n @Input()\n public filterConfigs: FilterConfigurationModel[] | null;\n\n @Input()\n public currentSavedReport: NiceSavedReports | null;\n\n @Input()\n public loading: boolean;\n\n @Output()\n public close = new EventEmitter();\n\n @Output()\n public createReport = new EventEmitter();\n\n @Output()\n public updateReport = new EventEmitter();\n\n public rules: GeneratedFormArray<QueryForm>;\n\n public get canSave(): boolean {\n return !this.currentSavedReport;\n }\n\n private propagateChanges = (_: QueryModel[]) => {};\n\n constructor(public formGroup: GeneratedFormGroup<QueryBuilderForm>) {\n this.rules = this.formGroup.get(\"rules\") as GeneratedFormArray<QueryForm>;\n }\n\n public registerOnChange(fn: (rules: QueryModel[]) => void): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public writeValue(rules: QueryModel[]): void {\n this.rules.clear();\n this.formGroup.patchValue(new QueryBuilderForm(rules));\n }\n\n public onClickAddRule(filterConfigurationModel: FilterConfigurationModel): void {\n this.rules.push(QBFilterUtils.createQueryModel(filterConfigurationModel));\n }\n\n public onClickDeleteRule(id: number): void {\n this.rules.removeAt(id);\n\n if (this.rules.length === 0) {\n this.close.emit();\n this.onClickApply();\n }\n }\n\n public onClickApply(): void {\n this.propagateChanges(this.formGroup.getRawValue().transform());\n }\n\n public onClickSaveReport(): void {\n this.createReport.emit();\n }\n\n public onClickUpdateReport(): void {\n this.updateReport.emit();\n }\n}\n","<div class=\"rules-container\" fxLayout=\"column\" *ngIf=\"!loading\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <nice-rule\n *ngFor=\"let rule of rules.controls; let i = index\"\n (remove)=\"onClickDeleteRule(i)\"\n [filterConfigs]=\"filterConfigs\"\n [formGroupName]=\"i\"\n ></nice-rule>\n </ng-container>\n <div fxLayoutAlign=\"space-between\">\n <button\n class=\"add-button add-rule-button\"\n mat-mini-fab\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onClickAddRule($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"16px\">\n <!-- TODO: Support saved reports -->\n <!--<button mat-button color=\"primary\" (click)=\"onClickSaveReport()\" *ngIf=\"canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.save_report\" | translate }}\n </button>\n <button mat-button color=\"primary\" (click)=\"onClickUpdateReport()\" *ngIf=\"!canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.update_report\" | translate }}\n </button>-->\n <button mat-stroked-button color=\"accent\" (click)=\"onClickApply()\">\n {{ \"components.query_builder.update\" | translate }}\n <mat-icon class=\"ml-8\">refresh</mat-icon>\n </button>\n </div>\n </div>\n</div>\n","import {\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output, SimpleChanges,\n TemplateRef\n} from \"@angular/core\";\nimport { MediaObserver } from \"@angular/flex-layout\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { PageEvent } from \"@angular/material/paginator\";\nimport { Sort } from \"@angular/material/sort\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ExportBottomSheetComponent, ExportStrategy } from \"@recursyve/nice-ui-kit.v2\";\nimport { Observable, Subject } from \"rxjs\";\nimport { debounceTime, distinctUntilChanged, map, switchMap } from \"rxjs/operators\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../models/query.model\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS, TABLE_COLUMNS } from \"./base-list.constant\";\nimport { NiceBaseListButtonsDirective } from \"./directives/base-list-buttons.directive\";\nimport { NiceBaseListCardsDirective } from \"./directives/base-list-cards.directive\";\nimport { NiceBaseListCustomContentDirective } from \"./directives/base-list-custom-content.directive\";\nimport { NiceBaseListTableDirective } from \"./directives/base-list-table.directive\";\nimport { NiceBaseListTitleDirective } from \"./directives/base-list-title.directive\";\nimport { TableColumns } from \"./models/columns.model\";\nimport { ExportSettings } from \"./models/export.model\";\nimport { BaseListLayout, LayoutContent } from \"./models/layout.model\";\nimport { NiceBaseListQuery } from \"./store/base-list.query\";\nimport { NiceBaseListService } from \"./store/base-list.service\";\nimport { NiceBaseListStore } from \"./store/base-list.store\";\n\n@Component({\n selector: \"nice-base-list\",\n templateUrl: \"./base-list.template.html\",\n providers: [\n NiceBaseListQuery,\n NiceBaseListService,\n NiceBaseListStore\n ]\n})\nexport class NiceBaseListComponent implements OnInit, OnDestroy, OnChanges {\n @ContentChild(NiceBaseListTitleDirective, { read: TemplateRef })\n public title: TemplateRef<any>;\n\n @ContentChildren(NiceBaseListButtonsDirective)\n public buttons: NiceBaseListButtonsDirective[];\n\n @ContentChild(NiceBaseListTableDirective, { read: TemplateRef })\n public table: TemplateRef<any>;\n\n @ContentChild(NiceBaseListCardsDirective, { read: TemplateRef })\n public cards: TemplateRef<any>;\n\n @ContentChild(NiceBaseListCustomContentDirective, { read: TemplateRef })\n public customContent: TemplateRef<any>;\n\n @Input()\n public mode: \"normal\" | \"infinite-scroll\" = \"normal\";\n\n @Input()\n public layout: \"page\" | \"component\" = \"page\";\n\n @Input()\n public layoutContent = LayoutContent.Table;\n\n @Input()\n public autoChangeLayout = true;\n\n @Input()\n public baseRoute: string;\n\n @Input()\n public routeFn: (item: any) => string | string[];\n\n @Input()\n public navigateFn: (baseRoute: string, item: any) => string;\n\n @Input()\n public autoLoad = true;\n\n @Input()\n public pageTitle: string;\n\n @Input()\n public canExport = true;\n\n @Input()\n public disableRouting = false;\n\n @Input()\n public customExport: ExportStrategy[] = [];\n\n @Output()\n public newPage = new EventEmitter<PageEvent>();\n\n public defaultPageSizeOptions = [10, 25, 50, 100];\n public columnNames: string[] = [];\n\n public loading$ = this.query.selectLoading();\n\n public filterResult$ = this.query.selectFilterResult();\n public data$ = this.query.selectData();\n public recordsFiltered$ = this.filterResult$.pipe(map(f => f && f.total));\n\n public showQueryBuilder$ = this.query.selectShowQueryBuilder();\n public filterParameters$ = this.query.selectFilterParameters();\n public index$ = this.filterParameters$.pipe(map(f => Math.floor((f.start ?? 0) / (f.length ?? 1))));\n public length$ = this.filterParameters$.pipe(map(f => f.length));\n public isEmpty$ = this.recordsFiltered$.pipe(map(r => r === 0));\n public searchQuery$ = this.filterParameters$.pipe(map(f => f.search));\n public filterConfig$ = this.query.selectFilterConfig();\n public sortColumn$ = this.filterParameters$.pipe(map(f => (f.order && f.order.column) ?? \"\"));\n public sortDirection$ = this.filterParameters$.pipe(map(f => f.order && f.order.direction));\n\n public filterConfigLoading$ = this.query.selectFilterConfigLoading();\n public rules$ = this.filterParameters$.pipe(map(parameters => parameters.rules));\n public rulesCount$ = this.filterParameters$.pipe(map(parameters => parameters.rules?.length ?? 0));\n\n private searchText$ = new Subject<string>();\n\n constructor(\n @Optional()\n @Inject(ENABLE_QUERY_BUILDER)\n public enableQueryBuilder: boolean,\n @Inject(BASE_LIST_LAYOUT)\n public listLayout: BaseListLayout,\n @Inject(TABLE_COLUMNS)\n public columns: TableColumns[],\n @Inject(EXPORTS_SETTINGS)\n private readonly exportsSettings: ExportSettings,\n public readonly query: NiceBaseListQuery,\n public readonly service: NiceBaseListService,\n private readonly activatedRoute: ActivatedRoute,\n private readonly bottomSheet: MatBottomSheet,\n private readonly router: Router,\n private mediaObserver: MediaObserver\n ) {\n this.setColumn(columns);\n }\n\n public get prefixButtons(): TemplateRef<any> | undefined {\n return this.buttons?.find(x => x.position === \"prefix\")?.template;\n }\n\n public get suffixButtons(): TemplateRef<any> | undefined {\n return this.buttons?.find(x => x.position === \"suffix\")?.template;\n }\n\n public async ngOnInit(): Promise<void> {\n await this.service.init();\n this.service.loadQueryParams(this.autoLoad);\n\n this.searchText$\n .pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap(search =>\n this.service.loadData({\n search\n })\n )\n )\n .subscribe();\n\n this.mediaObserver.asObservable().subscribe(() => {\n if (!this.autoChangeLayout) {\n return;\n }\n\n if (this.mediaObserver.isActive(\"lt-md\") && this.layoutContent === LayoutContent.Table) {\n this.layoutContent = LayoutContent.Cards;\n } else {\n this.layoutContent = LayoutContent.Table;\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.service.closeSubscriptions();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"mode\" in changes) {\n this.service.setMode(changes.mode.currentValue);\n }\n }\n\n public clickToggleShowQueryBuilder(): void {\n this.service.toggleQueryBuilder();\n }\n\n public onUpdateRules(rules: QueryModel[]): void {\n this.service.updateGlobalRules(rules);\n }\n\n public onQueryBuilderFilterSelected(filterConfigurationModel: FilterConfigurationModel): void {\n this.service.addRuleFromConfig(filterConfigurationModel);\n }\n\n public onUpdatePage(pageEvent: PageEvent): void {\n this.service.loadNewPage(pageEvent.pageIndex * pageEvent.pageSize, pageEvent.pageSize);\n this.newPage.emit(pageEvent);\n }\n\n public onUpdateSearch(search: string): void {\n this.searchText$.next(search);\n }\n\n public getFilterRule$(id: string): Observable<QueryRuleModel | undefined> {\n return this.filterParameters$.pipe(\n map(f => {\n return (\n f.rules &&\n f.rules[0] &&\n f.rules[0].rules &&\n (f.rules[0].rules.find((r) => (r as QueryRuleModel).id === id) as QueryRuleModel)\n );\n })\n );\n }\n\n public onUpdateSort(sort: Sort): void {\n if (!sort.active || !sort.direction) {\n sort = {\n active: \"id\",\n direction: \"asc\"\n };\n }\n\n this.service.loadData({\n order: sort.active && sort.direction ? { column: sort.active, direction: sort.direction } : null\n });\n }\n\n public updateRule(id: string, newRule: QueryRuleModel): void {\n this.service.updateRule(id, newRule);\n }\n\n public updateRules(rules: QueryRuleModel[]): void {\n this.service.updateRules(rules);\n }\n\n public clickExport(): void {\n const exports = [];\n if (this.exportsSettings.xlsx) {\n exports.push({\n type: \"xlsx\",\n onClickExport: () => this.clickXlsx()\n });\n } else if (this.exportsSettings.csv) {\n exports.push({\n type: \"csv\",\n onClickExport: () => this.clickCsv()\n });\n } else if (this.exportsSettings.pdf) {\n exports.push({\n type: \"pdf\",\n onClickExport: () => this.clickPdf()\n });\n }\n this.bottomSheet.open(ExportBottomSheetComponent, {\n data: {\n exportStrategies: [\n ...exports,\n ...this.customExport\n ]\n }\n });\n }\n\n public navigate(item: any): void {\n if (this.navigateFn) {\n this.navigateFn(this.baseRoute, item);\n } else {\n const route = this.routeFn ? this.routeFn(item) : [(this.baseRoute || \"\") + item?.id];\n this.router.navigate(typeof route === \"string\" ? [route] : route, { relativeTo: this.activatedRoute });\n }\n }\n\n public clickXlsx(): void {\n this.service.downloadData(\"xlsx\");\n }\n\n public clickCsv(): void {\n this.service.downloadData(\"csv\");\n }\n\n public clickPrint(): void {\n this.service.printData();\n }\n\n public clickPdf(): void {\n this.service.downloadData(\"pdf\");\n }\n\n protected setColumn(columns: TableColumns[]): void {\n this.columns = columns;\n this.columnNames = columns.map(x => x.id);\n }\n}\n","<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div fxHide fxShow.xl>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div fxHide fxShow.lg>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div fxHide fxShow.md>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div fxHide fxShow.sm>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div fxHide fxShow.xs>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [fxHide.xs]=\"!!listLayout.xs\"\n [fxHide.sm]=\"!!listLayout.sm\"\n [fxHide.md]=\"!!listLayout.md\"\n [fxHide.lg]=\"!!listLayout.lg\"\n [fxHide.xl]=\"!!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { type: 'column', items: layout } }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\">\n <div [fxFlex]=\"layout.flex\" [fxLayout]=\"layout.type\" [fxLayoutAlign]=\"layout.align || ''\" [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon>search</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async)\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n filter_list\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n filter_list\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon>\n clear\n </mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon>print</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon>cloud_download</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div fxLayout=\"column\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content fxLayout=\"column\">\n <div fxFlex>\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n fxFlex=\"1 1 auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: true\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { data: data$ | async }\"></ng-container>\n </div>\n</ng-template>\n","import { Platform } from \"@angular/cdk/platform\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MAT_DATE_LOCALE, NativeDateAdapter } from \"@angular/material/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Injectable()\nexport class NiceCustomDateAdapter extends NativeDateAdapter {\n constructor(private translateService: TranslateService, @Inject(MAT_DATE_LOCALE) locale: any, platform: Platform) {\n super(locale, platform);\n this.setLocale(this.translateService.getDefaultLang());\n\n // @ts-ignore\n this._format = (dtf: any, date: any) => {\n return dtf.format(date);\n };\n }\n\n public format(date: Date, displayFormat: any): string {\n return super.format(date, displayFormat);\n }\n\n public getDate(date: Date): number {\n return date.getUTCDate();\n }\n\n public getMonth(date: Date): number {\n return date.getUTCMonth();\n }\n\n public getYear(date: Date): number {\n return date.getUTCFullYear();\n }\n}\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { DateAdapter } from \"@angular/material/core\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceLoadingSpinnerModule, NiceTypeaheadModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { NgxMaskModule } from \"ngx-mask\";\nimport { NiceCustomDateAdapter } from \"../../utils/date.adapter\";\nimport { FilterSelectionComponent } from \"./filter-selection/filter-selection.component\";\nimport { FilterGroupIconPipe } from \"./pipes/filter-group-icon.pipe\";\nimport { QueryBuilderTriggerDirective } from \"./query-builder-trigger.directive\";\nimport { QueryBuilderComponent } from \"./query-builder.component\";\nimport { DateFilterComponent } from \"./rule/components/date/date-filter.component\";\nimport { NumberFilterComponent } from \"./rule/components/number/number-filter.component\";\nimport { RadioFilterComponent } from \"./rule/components/radio/radio-filter.component\";\nimport { SelectFilterComponent } from \"./rule/components/select/select-filter.component\";\nimport { TextFilterComponent } from \"./rule/components/text/text-filter.component\";\nimport { RuleComponent } from \"./rule/rule.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n OverlayModule,\n MatCardModule,\n MatListModule,\n FlexLayoutModule,\n MatButtonModule,\n MatRippleModule,\n MatIconModule,\n MatSelectModule,\n MatInputModule,\n MatDatepickerModule,\n MatRadioModule,\n NiceLoadingSpinnerModule,\n NiceTypeaheadModule,\n ReactiveFormsModule,\n NgxMaskModule\n ],\n declarations: [\n QueryBuilderComponent,\n QueryBuilderTriggerDirective,\n FilterSelectionComponent,\n RuleComponent,\n SelectFilterComponent,\n TextFilterComponent,\n NumberFilterComponent,\n RadioFilterComponent,\n DateFilterComponent,\n FilterGroupIconPipe\n ],\n providers: [{ provide: DateAdapter, useClass: NiceCustomDateAdapter }],\n exports: [QueryBuilderComponent, QueryBuilderTriggerDirective]\n})\nexport class QueryBuilderModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Provider, Type } from \"@angular/core\";\nimport { ExtendedModule, FlexModule } from \"@angular/flex-layout\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceExportBottomSheetModule, NiceLoadingSpinnerModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel } from \"../../models/filter.model\";\nimport { NiceFilterGroupService } from \"../query-builder/providers/filter-group.service\";\nimport { QueryBuilderModule } from \"../query-builder/query-builder.module\";\n\nimport { NiceBaseListComponent } from \"./base-list.component\";\nimport {\n BASE_LIST_LAYOUT,\n DEFAULT_PARAMETERS,\n ENABLE_QUERY_BUILDER,\n EXPORTS_SETTINGS,\n LIST_TABLE,\n TABLE_COLUMNS\n} from \"./base-list.constant\";\nimport { NiceBaseListDirectiveModule } from \"./directives/base-list-directives.module\";\nimport { TableColumns } from \"./models/columns.model\";\nimport { ExportSettings } from \"./models/export.model\";\nimport { BaseListLayout, defaultLayout } from \"./models/layout.model\";\nimport { NiceFilterService } from \"./providers/base-filter.service\";\nimport { NiceSavedReportService } from \"./providers/base-list-saved-report.service\";\n\nexport interface BaseListOptions<T> {\n table: string;\n columns: TableColumns[];\n filterService: Type<NiceFilterService<T>>;\n defaultParameters?: FilterParametersModel;\n layout?: BaseListLayout;\n exports?: ExportSettings;\n disableQueryBuilder?: boolean;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\nexport interface BaseListGlobalOptions {\n layout?: BaseListLayout;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\n@NgModule({\n imports: [\n NiceExportBottomSheetModule,\n NiceBaseListDirectiveModule,\n CommonModule,\n FlexModule,\n ExtendedModule,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatPaginatorModule,\n TranslateModule,\n NiceLoadingSpinnerModule,\n MatTableModule,\n MatSortModule,\n MatRippleModule,\n MatBottomSheetModule,\n QueryBuilderModule,\n MatBadgeModule\n ],\n declarations: [\n NiceBaseListComponent\n ],\n exports: [\n NiceBaseListComponent,\n NiceBaseListDirectiveModule\n ]\n})\nexport class NiceBaseListModule {\n public static forRoot(options?: BaseListGlobalOptions): ModuleWithProviders<NiceBaseListModule> {\n return {\n ngModule: NiceBaseListModule,\n providers: [\n {\n provide: BASE_LIST_LAYOUT,\n useValue: options?.layout ?? defaultLayout\n },\n ...(options?.queryBuilder ? [\n {\n provide: ENABLE_QUERY_BUILDER,\n useValue: true\n },\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x)\n };\n }\n\n public static providerFactory<T>(options: BaseListOptions<T>): Provider[] {\n return [\n {\n provide: NiceFilterService,\n useClass: options.filterService\n },\n {\n provide: LIST_TABLE,\n useValue: options.table\n },\n {\n provide: TABLE_COLUMNS,\n useValue: options.columns,\n },\n {\n provide: DEFAULT_PARAMETERS,\n useValue: options.defaultParameters\n },\n options.layout ? {\n provide: BASE_LIST_LAYOUT,\n useValue: options.layout\n } : undefined,\n {\n provide: EXPORTS_SETTINGS,\n useValue: options.exports ?? {\n pdf: true,\n xlsx: true,\n csv: true\n }\n },\n options.disableQueryBuilder !== undefined ? {\n provide: ENABLE_QUERY_BUILDER,\n useValue: !options.disableQueryBuilder\n } : null,\n ...(options.queryBuilder ? [\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x);\n }\n}\n","import { FilterParametersModel } from \"../../../models/filter.model\";\nimport { TableColumns } from \"../../base-list/models/columns.model\";\n\nexport class NiceListState {\n table: string;\n columns: TableColumns[];\n defaultParameters?: FilterParametersModel;\n}\n\nexport interface ListStates {\n [state: string]: NiceListState;\n}\n","import { NiceFilterApi } from \"../../../api/filter.api\";\nimport { NiceFilterService } from \"../../base-list/providers/base-filter.service\";\n\nexport class NiceMultiStateFilterService extends NiceFilterService<any> {\n protected constructor(protected filters: { [state: string]: NiceFilterApi<any> }) {\n super();\n }\n\n public switchState(state: string): void {\n this.api = this.filters[state];\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { StoreConfig } from \"@datorama/akita\";\nimport { initialBaseListState, NiceBaseListState, NiceBaseListStore } from \"../../base-list/store/base-list.store\";\n\n// tslint:disable-next-line:no-empty-interface\nexport interface NiceMultiStateListState extends NiceBaseListState {}\n\nexport const initialValue: NiceMultiStateListState = {\n ...initialBaseListState\n};\n\n@Injectable()\n@StoreConfig({ name: \"multi-state-list\", resettable: true })\nexport class NiceMultiStateListStore extends NiceBaseListStore<NiceMultiStateListState> {\n constructor() {\n super(null);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { NiceBaseListQuery } from \"../../base-list/store/base-list.query\";\nimport { NiceMultiStateListState, NiceMultiStateListStore } from \"./multi-state-list.store\";\n\n@Injectable()\nexport class NiceMultiStateListQuery extends NiceBaseListQuery<NiceMultiStateListState> {\n constructor(protected store: NiceMultiStateListStore) {\n super(store);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const LIST_STATES = new InjectionToken(\"list_states\");\n","import { ApplicationRef, Inject, Injectable } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { FilterParametersModel } from \"../../../models/filter.model\";\nimport { TableColumns } from \"../../base-list/models/columns.model\";\nimport { NiceBaseListService } from \"../../base-list/store/base-list.service\";\nimport { initialBaseListState } from \"../../base-list/store/base-list.store\";\nimport { ListStates } from \"../models/list-states.model\";\nimport { LIST_STATES } from \"../multi-state-list.constant\";\nimport { NiceMultiStateFilterService } from \"../providers/multi-state-filter.service\";\nimport { NiceMultiStateListStore } from \"./multi-state-list.store\";\n\n@Injectable()\nexport class NiceMultiStateListService extends NiceBaseListService {\n constructor(\n @Inject(LIST_STATES) private states: ListStates,\n store: NiceMultiStateListStore,\n activatedRoute: ActivatedRoute,\n router: Router,\n appRef: ApplicationRef,\n private multiFilterService: NiceMultiStateFilterService\n ) {\n super(store, multiFilterService, activatedRoute, router, appRef);\n }\n\n public reset(): void {\n this.store.reset();\n }\n\n public setStateDefaultFilter(state: string, parameters: FilterParametersModel): void {\n this.states[state].defaultParameters = parameters;\n }\n\n public switchState(state: string): TableColumns[] {\n const newState = this.states[state];\n if (!state) {\n return [];\n }\n\n this.multiFilterService.switchState(state);\n this.reset();\n this.init();\n this.loadData(newState.defaultParameters ?? initialBaseListState.filterParameters);\n return newState.columns;\n }\n}\n","import { Component, Inject, Input, Optional } from \"@angular/core\";\nimport { MediaObserver } from \"@angular/flex-layout\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { NiceBaseListComponent } from \"../base-list/base-list.component\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS } from \"../base-list/base-list.constant\";\nimport { ExportSettings } from \"../base-list/models/export.model\";\nimport { BaseListLayout } from \"../base-list/models/layout.model\";\nimport { NiceMultiStateListQuery } from \"./store/multi-state-list.query\";\nimport { NiceMultiStateListService } from \"./store/multi-state-list.service\";\nimport { NiceMultiStateListStore } from \"./store/multi-state-list.store\";\n\n@Component({\n selector: \"nice-multi-state-list\",\n templateUrl: \"../base-list/base-list.template.html\",\n providers: [\n NiceMultiStateListQuery,\n NiceMultiStateListService,\n NiceMultiStateListStore\n ]\n})\nexport class NiceMultiStateListComponent extends NiceBaseListComponent {\n @Input()\n public set state(state: string) {\n this.switchState(state);\n }\n\n constructor(\n @Optional() @Inject(ENABLE_QUERY_BUILDER) enableQueryBuilder: boolean,\n @Inject(BASE_LIST_LAYOUT) listLayout: BaseListLayout,\n @Inject(EXPORTS_SETTINGS) exportsSetting: ExportSettings,\n query: NiceMultiStateListQuery,\n activatedRoute: ActivatedRoute,\n bottomSheet: MatBottomSheet,\n router: Router,\n mediaObserver: MediaObserver,\n private multiStateListService: NiceMultiStateListService,\n ) {\n super(\n enableQueryBuilder,\n listLayout,\n [],\n exportsSetting,\n query,\n multiStateListService,\n activatedRoute,\n bottomSheet,\n router,\n mediaObserver\n );\n }\n\n private switchState(state: string): void {\n const columns = this.multiStateListService.switchState(state);\n this.setColumn(columns);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, Provider, Type } from \"@angular/core\";\nimport { ExtendedModule, FlexModule } from \"@angular/flex-layout\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceExportBottomSheetModule, NiceLoadingSpinnerModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS } from \"../base-list/base-list.constant\";\nimport { NiceBaseListDirectiveModule } from \"../base-list/directives/base-list-directives.module\";\nimport { ExportSettings } from \"../base-list/models/export.model\";\nimport { BaseListLayout } from \"../base-list/models/layout.model\";\nimport { NiceSavedReportService } from \"../base-list/providers/base-list-saved-report.service\";\nimport { NiceFilterGroupService } from \"../query-builder/providers/filter-group.service\";\nimport { QueryBuilderModule } from \"../query-builder/query-builder.module\";\nimport { ListStates } from \"./models/list-states.model\";\nimport { NiceMultiStateListComponent } from \"./multi-state-list.component\";\nimport { LIST_STATES } from \"./multi-state-list.constant\";\nimport { NiceMultiStateFilterService } from \"./providers/multi-state-filter.service\";\n\nexport interface MultiStateListOptions {\n filterService: Type<NiceMultiStateFilterService>;\n states: ListStates;\n layout?: BaseListLayout;\n exports?: ExportSettings;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\n@NgModule({\n imports: [\n NiceExportBottomSheetModule,\n NiceBaseListDirectiveModule,\n CommonModule,\n FlexModule,\n ExtendedModule,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatPaginatorModule,\n TranslateModule,\n NiceLoadingSpinnerModule,\n MatTableModule,\n MatSortModule,\n MatRippleModule,\n MatBottomSheetModule,\n QueryBuilderModule,\n MatBadgeModule\n ],\n declarations: [\n NiceMultiStateListComponent\n ],\n exports: [\n NiceMultiStateListComponent,\n NiceBaseListDirectiveModule\n ]\n})\nexport class NiceMultiStateListModule {\n public static providerFactory<T>(options: MultiStateListOptions): Provider[] {\n return [\n {\n provide: NiceMultiStateFilterService,\n useExisting: options.filterService\n },\n {\n provide: LIST_STATES,\n useValue: options.states\n },\n options.layout ? {\n provide: BASE_LIST_LAYOUT,\n useValue: options.layout\n } : undefined,\n {\n provide: EXPORTS_SETTINGS,\n useValue: options.exports ?? {\n pdf: true,\n xlsx: true,\n csv: true\n }\n },\n ...(options.queryBuilder ? [\n {\n provide: ENABLE_QUERY_BUILDER,\n useValue: true\n },\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x);\n }\n}\n","import { TableColumns } from \"../components/base-list/models/columns.model\";\n\nexport class StringUtils {}\n\ndeclare global {\n interface String {\n toTableColumn(sortable?: boolean): TableColumns;\n }\n}\n\nString.prototype.toTableColumn = function(sortable?: boolean): TableColumns {\n return new TableColumns(this.toString(), sortable);\n};\n","/*\n * Public API Surface of nice-data-filter-kit\n */\n\nexport * from \"./lib/api/public-api\";\nexport * from \"./lib/components/public-api\";\nexport * from \"./lib/models/public-api\";\nexport * from \"./lib/utils/public-api\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isNullOrUndefined","HttpParams","Directive","Input","NgModule","LayoutContent","ObjectUtils","Injectable","InjectionToken","NiceBaseListStore","Store","StoreConfig","Optional","Inject","Query","FilterType","FilterOperatorTypes","Subject","takeUntil","map","FileUtils","arrayUpdate","Control","Required","Array","Component","NG_VALUE_ACCESSOR","forwardRef","ViewEncapsulation","debounceTime","switchMap","of","Pipe","EventEmitter","ArrayUtils","ChangeDetectionStrategy","Output","ComponentPortal","HostListener","GeneratedFormGroup","ngxFormGeneratorFactory","distinctUntilChanged","ExportBottomSheetComponent","TemplateRef","ContentChild","ContentChildren","NativeDateAdapter","MAT_DATE_LOCALE","CommonModule","FormsModule","TranslateModule","OverlayModule","MatCardModule","MatListModule","FlexLayoutModule","MatButtonModule","MatRippleModule","MatIconModule","MatSelectModule","MatInputModule","MatDatepickerModule","MatRadioModule","NiceLoadingSpinnerModule","NiceTypeaheadModule","ReactiveFormsModule","NgxMaskModule","DateAdapter","NiceExportBottomSheetModule","FlexModule","ExtendedModule","RouterModule","MatTooltipModule","MatPaginatorModule","MatTableModule","MatSortModule","MatBottomSheetModule","MatBadgeModule","NiceMultiStateListStore"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"recursyve-nice-data-filter-kit.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../projects/nice-data-filter-kit/src/lib/utils/query-params.utils.ts","../../../projects/nice-data-filter-kit/src/lib/api/filter.api.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-buttons.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-cards.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-custom-content.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-table.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-title.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/directives/base-list-directives.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/models/columns.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/models/layout.model.ts","../../../projects/nice-data-filter-kit/src/lib/utils/filter.utils.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/providers/base-filter.service.ts","../../../projects/nice-data-filter-kit/src/lib/api/saved-report.api.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/providers/base-list-saved-report.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.constant.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.store.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.query.ts","../../../projects/nice-data-filter-kit/src/lib/models/filter.model.ts","../../../projects/nice-data-filter-kit/src/lib/models/query.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/utils/qb-filter.utils.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/store/base-list.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.form.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/text/text-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/text/text-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/number/number-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/number/number-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/radio/radio-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/radio/radio-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/select/select-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/select/select-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/date/date-filter.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/components/date/date-filter.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/providers/filter-group.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/pipes/filter-group-icon.pipe.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/filter-selection/filter-selection.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/filter-selection/filter-selection.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder-trigger.directive.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/rule.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/rule/rule.template.html","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.template.html","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.template.html","../../../projects/nice-data-filter-kit/src/lib/utils/date.adapter.ts","../../../projects/nice-data-filter-kit/src/lib/components/query-builder/query-builder.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/base-list/base-list.module.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/models/list-states.model.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/providers/multi-state-filter.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.store.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.query.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.constant.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/store/multi-state-list.service.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.component.ts","../../../projects/nice-data-filter-kit/src/lib/components/multi-state-list/multi-state-list.module.ts","../../../projects/nice-data-filter-kit/src/lib/utils/string.utils.ts","../../../projects/nice-data-filter-kit/src/public-api.ts","../../../projects/nice-data-filter-kit/src/recursyve-nice-data-filter-kit.ts"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from) {\r\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n to[j] = from[i];\r\n return to;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","import { HttpParams } from \"@angular/common/http\";\nimport { isNullOrUndefined } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel } from \"../models/filter.model\";\n\nexport class QueryParamsUtils {\n public static extractFilterParameters(params: { [key: string]: any }): FilterParametersModel {\n const filters: FilterParametersModel = {};\n if (!isNullOrUndefined(params.start)) {\n filters.start = Number(params.start);\n }\n if (!isNullOrUndefined(params.length)) {\n filters.length = Number(params.length);\n }\n if (!isNullOrUndefined(params.order)) {\n try {\n filters.order = JSON.parse(params.order);\n } catch (e) {\n delete filters.order;\n }\n }\n if (!isNullOrUndefined(params.search)) {\n filters.search = params.search;\n }\n if (!isNullOrUndefined(params.rules)) {\n try {\n filters.rules = JSON.parse(params.rules);\n } catch (e) {\n delete filters.rules;\n }\n }\n\n return filters;\n }\n\n public static filterParametersToParamsMap(filterParameters: FilterParametersModel): { [key: string]: any } {\n const params: { [key: string]: any } = {};\n if (!isNullOrUndefined(filterParameters.start)) {\n params.start = filterParameters.start;\n }\n if (!isNullOrUndefined(filterParameters.length)) {\n params.length = filterParameters.length;\n }\n if (!isNullOrUndefined(filterParameters.order)) {\n params.order = JSON.stringify(filterParameters.order);\n } else {\n params.order = null;\n }\n if (!isNullOrUndefined(filterParameters.search)) {\n params.search = filterParameters.search;\n }\n if (!isNullOrUndefined(filterParameters.rules)) {\n params.rules = JSON.stringify(filterParameters.rules);\n }\n\n return params;\n }\n\n public static fromObject(obj: any): string {\n Object.entries(obj).forEach(([key, value]) => {\n if (value === undefined) {\n delete obj[key];\n }\n });\n return new HttpParams({\n fromObject: obj\n }).toString();\n }\n}\n","import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { FilterConfigurationModel, FilterQueryModel, FilterResultModel, SelectFilterValue } from \"../models/filter.model\";\nimport { QueryParamsUtils } from \"../utils/query-params.utils\";\n\nexport class NiceFilterApi<T> {\n constructor(private filterApiUrl: string, private path: string, protected http: HttpClient) {}\n\n public filter(queryModel: FilterQueryModel): Observable<FilterResultModel> {\n return this.http.post<FilterResultModel>(this.url(\"filter\"), queryModel);\n }\n\n public filterCount(queryModel: FilterQueryModel): Observable<number> {\n return this.http.post<number>(this.url(\"filter-count\"), queryModel);\n }\n\n public downloadData(type: string, queryModel: FilterQueryModel): Observable<Blob> {\n return this.http.post(this.url(`download/${type}`), queryModel, { responseType: \"blob\" });\n }\n\n public getPrintableHtml(queryModel: FilterQueryModel): Observable<string> {\n return this.http.post(this.url(`download/html`), queryModel, { responseType: \"text\" });\n }\n\n public getFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.http.get<FilterConfigurationModel[]>(this.url(\"filter/config\"));\n }\n\n public searchFilterValue(id: string, value: string): Observable<SelectFilterValue[]> {\n if (value === undefined) {\n value = \"\";\n }\n\n return this.http.get<SelectFilterValue[]>(this.url(`filter/config/value?id=${id}&value=${value}`));\n }\n\n public searchFilterResourceValue(id: string, resourceId: number): Observable<SelectFilterValue> {\n return this.http.get<SelectFilterValue>(this.url(`filter/config/id?id=${id}&resourceId=${resourceId}`));\n }\n\n protected url(route?: string, queryParams?: object): string;\n protected url(queryParams: object): string;\n protected url(...args: [string | object, object?]): string {\n const [route, queryParams] = this.transformUrlArgs(args);\n const params = queryParams ? `?${QueryParamsUtils.fromObject(queryParams)}` : \"\";\n if (route) {\n return `${this.filterApiUrl}/${this.path}/${route}${params}`;\n }\n\n return `${this.filterApiUrl}/${this.path}${params}`;\n }\n\n private transformUrlArgs(args: [string | object, object?]): [route: string, queryParams?: object] {\n const [routeOfQueryParams, query] = args;\n if (args.length === 1) {\n if (typeof routeOfQueryParams === \"string\") {\n return [routeOfQueryParams];\n }\n\n return [\"\", routeOfQueryParams];\n }\n\n return [(routeOfQueryParams as string) ?? \"\", query];\n }\n}\n","import { Directive, Input, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListButton]\" })\nexport class NiceBaseListButtonsDirective {\n @Input()\n public position: \"prefix\" | \"suffix\" = \"suffix\";\n\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListCards]\" })\nexport class NiceBaseListCardsDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListContent]\" })\nexport class NiceBaseListCustomContentDirective {\n constructor(public template: TemplateRef<any>) {}\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListTable]\" })\nexport class NiceBaseListTableDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { Directive, TemplateRef } from \"@angular/core\";\n\n@Directive({ selector: \"[niceListTitle]\" })\nexport class NiceBaseListTitleDirective {\n constructor(public template: TemplateRef<any>) {\n }\n}\n","import { NgModule } from \"@angular/core\";\nimport { NiceBaseListButtonsDirective } from \"./base-list-buttons.directive\";\n\nimport { NiceBaseListCardsDirective } from \"./base-list-cards.directive\";\nimport { NiceBaseListCustomContentDirective } from \"./base-list-custom-content.directive\";\nimport { NiceBaseListTableDirective } from \"./base-list-table.directive\";\nimport { NiceBaseListTitleDirective } from \"./base-list-title.directive\";\n\n@NgModule({\n declarations: [\n NiceBaseListButtonsDirective,\n NiceBaseListTitleDirective,\n NiceBaseListTableDirective,\n NiceBaseListCardsDirective,\n NiceBaseListCustomContentDirective\n ],\n exports: [\n NiceBaseListButtonsDirective,\n NiceBaseListTitleDirective,\n NiceBaseListTableDirective,\n NiceBaseListCardsDirective,\n NiceBaseListCustomContentDirective\n ]\n})\nexport class NiceBaseListDirectiveModule {}\n","export interface TableColumnsModel {\n id: string;\n sortable?: boolean;\n}\n\nexport class TableColumns implements TableColumnsModel {\n public id: string;\n public sortable: boolean;\n\n constructor(id: string, sortable = true) {\n this.id = id;\n this.sortable = sortable;\n }\n}\n","export type AvailableLayoutItem = \"title\" |\n \"search\" |\n \"prefixButtons\" |\n \"suffixButtons\" |\n \"exportButtons\" |\n \"content\" |\n \"pagination\" |\n \"queryBuilder\";\n\nexport enum LayoutContent {\n Table = \"table\",\n Cards = \"cards\",\n Custom = \"custom\"\n}\n\nexport interface LayoutItem {\n name: AvailableLayoutItem;\n flex?: string;\n align?: string;\n classes?: string[];\n}\n\nexport interface Layout {\n type: \"row\" | \"column\";\n flex?: string;\n align?: string;\n gap?: string;\n classes?: string[];\n items: (LayoutItem | Layout)[];\n}\n\nexport type BaseListPageLayout = (LayoutItem | Layout);\nexport interface BaseListLayout {\n default: Layout | BaseListPageLayout[];\n xs?: Layout | BaseListPageLayout[];\n sm?: Layout | BaseListPageLayout[];\n md?: Layout | BaseListPageLayout[];\n lg?: Layout | BaseListPageLayout[];\n xl?: Layout | BaseListPageLayout[];\n}\n\nexport const defaultLayout: BaseListLayout = {\n default: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n items: [\n {\n name: \"title\",\n flex: \"33\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"center center\",\n items: [\n {\n name: \"search\",\n flex: \"1 0 auto\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end\",\n items: [\n {\n name: \"prefixButtons\",\n align: \"end center\"\n },\n {\n name: \"exportButtons\",\n align: \"end center\"\n },\n {\n name: \"suffixButtons\",\n align: \"end center\"\n }\n ]\n }\n ]\n }\n ]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n },\n sm: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n align: \"center center\",\n items: [\n {\n name: \"title\",\n flex: \"50\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end center\",\n items: [\n {\n name: \"prefixButtons\"\n },\n {\n name: \"exportButtons\"\n },\n {\n name: \"suffixButtons\"\n }\n ]\n }\n ]\n },\n {\n name: \"search\",\n align: \"center center\",\n classes: [\"mb-8\"]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n },\n xs: {\n type: \"column\",\n items: [\n {\n type: \"row\",\n classes: [\"mb-8\"],\n align: \"center center\",\n items: [\n {\n name: \"title\",\n flex: \"50\"\n },\n {\n type: \"row\",\n flex: \"1 0 auto\",\n align: \"end center\",\n items: [\n {\n name: \"prefixButtons\"\n },\n {\n name: \"exportButtons\"\n },\n {\n name: \"suffixButtons\"\n }\n ]\n }\n ]\n },\n {\n name: \"search\",\n align: \"center center\",\n classes: [\"mb-8\"]\n },\n {\n name: \"queryBuilder\"\n },\n {\n name: \"content\"\n },\n {\n name: \"pagination\"\n }\n ]\n }\n};\n","import { ObjectUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel, FilterQueryModel } from \"../models/filter.model\";\n\nexport class FilterUtils {\n public static parametersToRequest(filterParameters: FilterParametersModel): FilterQueryModel {\n return {\n page: {\n number: Math.ceil((filterParameters.start ?? 0) / (filterParameters.length ?? 1)),\n size: filterParameters.length ?? 0\n },\n search: {\n value: filterParameters.search ?? \"\"\n },\n query: {\n condition: \"and\",\n rules: filterParameters.rules ?? []\n },\n order: filterParameters.order ?? undefined,\n data: filterParameters.data\n };\n }\n\n public static filterChangeNeedsRefresh(currentFilters: FilterParametersModel, newFilters: FilterParametersModel): boolean {\n const newFilterKeys = Object.keys(newFilters).sort();\n if (newFilterKeys.length === 0) {\n return true;\n }\n return newFilterKeys.some((key) => {\n const currentValue = (currentFilters as any)[key];\n const newValue = (currentFilters as any)[key];\n if (Array.isArray(currentValue)) {\n return !ObjectUtils.areObjectsEqual(currentValue, newValue);\n } else if (typeof currentValue === \"object\" && currentValue !== null) {\n return !ObjectUtils.areObjectsEqual(currentValue, newValue);\n } else {\n return currentValue !== newValue;\n }\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { NiceFilterApi } from \"../../../api/filter.api\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel, SelectFilterValue } from \"../../../models/filter.model\";\nimport { FilterUtils } from \"../../../utils/filter.utils\";\n\nexport interface INiceFilterService<T> {\n getFilterConfig(): Observable<FilterConfigurationModel[]>;\n\n filter(params: FilterParametersModel): Observable<FilterResultModel<T>>;\n\n getFile(type: string, parameters: FilterParametersModel): Observable<Blob>;\n\n getPrintableHtml(parameters: FilterParametersModel): Observable<string>;\n}\n\n@Injectable()\nexport class NiceFilterService<T> implements INiceFilterService<T> {\n constructor(protected api?: NiceFilterApi<T>) {}\n\n public filter(params: FilterParametersModel): Observable<FilterResultModel<T>> {\n return this.api?.filter(FilterUtils.parametersToRequest(params));\n }\n\n public getFile(type: string, parameters: FilterParametersModel): Observable<Blob> {\n return this.api?.downloadData(type, FilterUtils.parametersToRequest(parameters));\n }\n\n public getPrintableHtml(parameters: FilterParametersModel): Observable<string> {\n return this.api?.getPrintableHtml(FilterUtils.parametersToRequest(parameters));\n }\n\n public getFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.api?.getFilterConfig();\n }\n\n public searchFilterValue(filterConfig: FilterConfigurationModel, value: string): Observable<SelectFilterValue[]> {\n return this.api?.searchFilterValue(filterConfig.id, value);\n }\n\n public searchFilterResourceValue(\n filterConfig: FilterConfigurationModel,\n resourceId: number\n ): Observable<SelectFilterValue> {\n return this.api?.searchFilterResourceValue(filterConfig.id, resourceId);\n }\n}\n","import { HttpClient } from \"@angular/common/http\";\nimport { Observable } from \"rxjs\";\nimport { QueryParamsUtils } from \"../utils/query-params.utils\";\nimport { NiceSavedReportDto } from \"./dto/saved-reports.dto\";\nimport { NiceSavedReports } from \"./models/saved-reports.model\";\n\nexport class NiceSavedReportsApi {\n constructor(private filterApiUrl: string, private path: string, protected http: HttpClient) {}\n\n public create(dto: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.http.post<NiceSavedReports>(this.url(), dto);\n }\n\n public getAll(): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url());\n }\n\n public getByTable(table: string): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url(`${table}`));\n }\n\n public getTopByTable(table: string | undefined): Observable<NiceSavedReports[]> {\n return this.http.get<NiceSavedReports[]>(this.url(`${table}/top`));\n }\n\n public hit(id: number): Observable<void> {\n return this.http.put<void>(this.url(`${id}/hit`), null);\n }\n\n public update(id: number, dto: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.http.put<NiceSavedReports>(this.url(`${id}`), dto);\n }\n\n public delete(id: number): Observable<void> {\n return this.http.delete<void>(this.url(`${id}`));\n }\n\n protected url(route?: string, queryParams?: object): string;\n protected url(queryParams: object): string;\n protected url(...args: [string | object, object?]): string {\n const [route, queryParams] = this.transformUrlArgs(args);\n const params = queryParams ? `?${QueryParamsUtils.fromObject(queryParams)}` : \"\";\n if (route) {\n return `${this.filterApiUrl}/${this.path}/${route}${params}`;\n }\n\n return `${this.filterApiUrl}/${this.path}${params}`;\n }\n\n private transformUrlArgs(args: [string | object, object?]): [route: string, queryParams?: object] {\n const [routeOfQueryParams, query] = args;\n if (args.length === 1) {\n if (typeof routeOfQueryParams === \"string\") {\n return [routeOfQueryParams];\n }\n\n return [\"\", routeOfQueryParams];\n }\n\n return [(routeOfQueryParams as string) ?? \"\", query];\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Observable } from \"rxjs\";\nimport { NiceSavedReportDto } from \"../../../api/dto/saved-reports.dto\";\nimport { NiceSavedReports } from \"../../../api/models/saved-reports.model\";\nimport { NiceSavedReportsApi } from \"../../../api/saved-report.api\";\n\n@Injectable()\nexport class NiceSavedReportService {\n constructor(private api: NiceSavedReportsApi) {}\n\n public create(report: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.api.create(report);\n }\n\n public update(id: number, report: NiceSavedReportDto): Observable<NiceSavedReports> {\n return this.api.update(id, report);\n }\n\n public remove(id: number): Observable<void> {\n return this.api.delete(id);\n }\n\n public getByTableName(table: string): Observable<NiceSavedReports[]> {\n return this.api.getByTable(table);\n }\n\n public getTopByTableName(table: string): Observable<NiceSavedReports[]> {\n return this.api.getTopByTable(table);\n }\n\n public hit(id: number): Observable<void> {\n return this.api.hit(id);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const BASE_LIST_LAYOUT = new InjectionToken(\"base_list_layout\");\nexport const DEFAULT_PARAMETERS = new InjectionToken(\"default_parameters\");\nexport const LIST_TABLE = new InjectionToken(\"list_table\");\nexport const TABLE_COLUMNS = new InjectionToken(\"table_columns\");\nexport const EXPORTS_SETTINGS = new InjectionToken(\"exports_settings\");\nexport const ENABLE_QUERY_BUILDER = new InjectionToken(\"enable_query_builder\");\n","import { Inject, Injectable, Optional } from \"@angular/core\";\nimport { Store, StoreConfig } from \"@datorama/akita\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel } from \"../../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../../models/query.model\";\nimport { DEFAULT_PARAMETERS } from \"../base-list.constant\";\n\nexport interface NiceBaseListState {\n loading?: boolean;\n disabled: boolean;\n mergePageResults: boolean;\n resetPaging: boolean;\n filterConfigLoading: boolean;\n filterResult: FilterResultModel | null;\n filterParameters: FilterParametersModel;\n filterConfig: FilterConfigurationModel[];\n showQueryBuilder: boolean;\n defaultRules: (QueryRuleModel | QueryModel)[];\n}\n\nexport const initialBaseListState: NiceBaseListState = {\n disabled: false,\n mergePageResults: false,\n resetPaging: false,\n filterConfigLoading: false,\n filterResult: null,\n filterParameters: {\n start: 0,\n length: 10,\n order: {},\n search: \"\",\n rules: [],\n data: {}\n },\n filterConfig: [],\n showQueryBuilder: false,\n defaultRules: []\n};\n\n@Injectable()\n@StoreConfig({ name: \"base-list\", resettable: true })\nexport class NiceBaseListStore<T extends NiceBaseListState = NiceBaseListState> extends Store<T> {\n constructor(@Optional() @Inject(DEFAULT_PARAMETERS) parameters: FilterParametersModel) {\n super({\n ...initialBaseListState,\n filterParameters: {\n ...initialBaseListState.filterParameters,\n ...(parameters ?? {})\n }\n } as T);\n }\n\n public setFilterConfigLoading(loading: boolean): void {\n this.update({\n filterConfigLoading: loading\n } as T);\n }\n\n public setResult(filterResult: FilterResultModel): void {\n const { mergePageResults } = this.getValue();\n if (mergePageResults) {\n this.update((state) => ({\n filterResult: {\n page: filterResult.page,\n total: filterResult.total,\n values: state.resetPaging ? filterResult.values : [\n ...(state.filterResult?.values ?? []),\n ...filterResult.values\n ]\n },\n resetPaging: false\n }) as T);\n } else {\n this.update({\n filterResult\n } as T);\n }\n }\n\n public setParameters(filterParameters: FilterParametersModel): void {\n this.update({\n filterParameters\n } as T);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { Query } from \"@datorama/akita\";\nimport { Observable } from \"rxjs\";\nimport { FilterConfigurationModel, FilterParametersModel, FilterResultModel } from \"../../../models/filter.model\";\nimport { NiceBaseListState, NiceBaseListStore } from \"./base-list.store\";\n\n@Injectable()\nexport class NiceBaseListQuery<T extends NiceBaseListState = NiceBaseListState> extends Query<T> {\n constructor(protected store: NiceBaseListStore<T>) {\n super(store);\n }\n\n public selectData(): Observable<any[]> {\n return this.select(s => s.filterResult?.values ?? []) as Observable<any[]>;\n }\n\n public selectFilterParameters(): Observable<FilterParametersModel> {\n return this.select(s => s.filterParameters);\n }\n\n public selectFilterResult(): Observable<FilterResultModel | null> {\n return this.select(s => s.filterResult);\n }\n\n public selectFilterConfig(): Observable<FilterConfigurationModel[]> {\n return this.select(s => s.filterConfig);\n }\n\n public selectFilterConfigLoading(): Observable<boolean> {\n return this.select(s => s.filterConfigLoading);\n }\n\n public selectShowQueryBuilder(): Observable<boolean> {\n return this.select(s => s.showQueryBuilder);\n }\n}\n","import { QueryModel } from \"./query.model\";\n\nexport interface OrderFilterParameterModel {\n column?: string;\n direction?: \"asc\" | \"desc\";\n}\n\nexport interface FilterParametersModel {\n start?: number;\n length?: number;\n order?: OrderFilterParameterModel | null;\n search?: string;\n rules?: QueryModel[];\n draw?: number;\n data?: object;\n}\n\n\nexport interface FilterPageMode {\n number: number;\n size: number;\n}\n\nexport interface FilterSearchModel {\n value: string;\n}\n\nexport interface OrderModel {\n column?: string;\n direction?: \"asc\" | \"desc\";\n}\n\nexport interface FilterQueryModel {\n page?: FilterPageMode;\n search?: FilterSearchModel;\n query?: QueryModel;\n order?: OrderModel;\n data?: object | undefined;\n}\n\nexport interface FilterResultModel<T = any> {\n values: T[];\n total: number;\n page?: {\n number: number;\n size: number;\n };\n}\n\nexport enum FilterType {\n Text = \"text\",\n Number = \"number\",\n Date = \"date\",\n Select = \"select\",\n Radio = \"radio\"\n}\n\nexport interface RadioFilterOptionConfiguration {\n key: string;\n name: string;\n}\n\nexport interface FilterOperatorsConfiguration {\n id: string;\n name: string;\n}\n\nexport interface FilterGroupConfiguration {\n key: string;\n name: string;\n}\n\nexport interface FilterBaseConfigurationModel {\n type: FilterType;\n operators: FilterOperatorsConfiguration[];\n group?: FilterGroupConfiguration;\n values?: unknown[];\n lazyLoading?: boolean;\n options?: RadioFilterOptionConfiguration[];\n mask?: string;\n}\n\nexport interface FilterConfigurationModel extends FilterBaseConfigurationModel {\n id: string;\n name: string;\n}\n\nexport interface SelectFilterValue {\n id: number;\n name: string;\n}\n","export type Condition = \"and\" | \"or\";\n\nexport enum FilterOperatorTypes {\n Equal = \"equal\",\n NotEqual = \"not_equal\",\n In = \"in\",\n NotIn = \"not_in\",\n Less = \"less\",\n LessOrEqual = \"less_or_equal\",\n Greater = \"greater\",\n GreaterOrEqual = \"greater_or_equal\",\n Between = \"between\",\n NotBetween = \"not_between\",\n IsNull = \"is_null\",\n IsNotNull = \"is_not_null\",\n BeginsWith = \"begins_with\",\n NotBeginsWith = \"not_begins_with\",\n EndsWith = \"ends_with\",\n NotEndsWith = \"not_ends_with\",\n Contains = \"contains\",\n NotContains = \"not_contains\",\n IsEmpty = \"is_empty\",\n IsNotEmpty = \"is_not_empty\",\n None = \"none\"\n}\n\nexport interface CustomOperator {\n name: string;\n where?: any;\n having?: any;\n}\n\nexport type FilterOperators = FilterOperatorTypes | CustomOperator;\n\nexport interface RuleModel {\n operation: FilterOperators;\n value: unknown | unknown[];\n}\n\nexport interface QueryRuleModel extends RuleModel {\n id: string;\n}\n\nexport interface QueryModel {\n condition: Condition;\n rules: (QueryRuleModel | QueryModel)[];\n}\n","import { FilterConfigurationModel, FilterType } from \"../../../models/filter.model\";\nimport { FilterOperators, FilterOperatorTypes, QueryModel, QueryRuleModel } from \"../../../models/query.model\";\n\nexport class QBFilterUtils {\n public static noInputOperators: FilterOperators[] = [\n FilterOperatorTypes.IsEmpty,\n FilterOperatorTypes.IsNotEmpty,\n FilterOperatorTypes.IsNull,\n FilterOperatorTypes.IsNotNull,\n FilterOperatorTypes.None\n ];\n\n public static singleInputOperators: FilterOperators[] = [\n FilterOperatorTypes.Equal,\n FilterOperatorTypes.NotEqual,\n FilterOperatorTypes.Less,\n FilterOperatorTypes.LessOrEqual,\n FilterOperatorTypes.Greater,\n FilterOperatorTypes.GreaterOrEqual,\n FilterOperatorTypes.BeginsWith,\n FilterOperatorTypes.NotBeginsWith,\n FilterOperatorTypes.EndsWith,\n FilterOperatorTypes.NotEndsWith,\n FilterOperatorTypes.Contains,\n FilterOperatorTypes.NotContains\n ];\n\n public static doubleInputOperators: FilterOperators[] = [\n FilterOperatorTypes.Between,\n FilterOperatorTypes.NotBetween\n ];\n\n public static isSingleInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.singleInputOperators.includes(filterOperator);\n }\n\n public static isDoubleInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.doubleInputOperators.includes(filterOperator);\n }\n\n public static isNoInput(filterOperator?: FilterOperators): boolean {\n if (!filterOperator) {\n return false;\n }\n return QBFilterUtils.noInputOperators.includes(filterOperator);\n }\n\n public static createRule(config: FilterConfigurationModel, operator?: FilterOperators): QueryRuleModel {\n const base = {\n id: config.id,\n operation: operator || (config.operators[0].id as FilterOperators)\n };\n switch (config.type) {\n case FilterType.Text:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [\"\", \"\"] : \"\"\n };\n case FilterType.Select:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [null, null] : null\n };\n case FilterType.Date:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [new Date(), new Date()] : new Date()\n };\n case FilterType.Radio:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator)\n ? [config.options?.[0].key, config.options?.[0].key]\n : config.options?.[0].key\n };\n case FilterType.Number:\n return {\n ...base,\n value: QBFilterUtils.isDoubleInput(operator) ? [0, 0] : 0\n };\n }\n }\n\n public static createQueryModel(config: FilterConfigurationModel): QueryModel {\n return {\n condition: \"or\",\n rules: [QBFilterUtils.createRule(config)]\n };\n }\n}\n","import { ApplicationRef, Injectable } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { arrayRemove, arrayUpdate, arrayUpsert } from \"@datorama/akita\";\nimport { FileUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { Subject } from \"rxjs\";\nimport { map, takeUntil } from \"rxjs/operators\";\nimport { FilterConfigurationModel, FilterParametersModel } from \"../../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../../models/query.model\";\nimport { FilterUtils } from \"../../../utils/filter.utils\";\nimport { QBFilterUtils } from \"../../query-builder/utils/qb-filter.utils\";\nimport { QueryParamsUtils } from \"../../../utils/query-params.utils\";\nimport { NiceFilterService } from \"../providers/base-filter.service\";\nimport { NiceBaseListStore } from \"./base-list.store\";\n\n@Injectable()\nexport class NiceBaseListService {\n public queryParamsLoaded$ = new Subject();\n\n protected downloadFileName = \"data\";\n protected unsubscribeAll$ = new Subject();\n protected loadingData = false;\n\n constructor(\n protected store: NiceBaseListStore,\n protected filterService: NiceFilterService<any>,\n protected activatedRoute: ActivatedRoute,\n protected router: Router,\n protected appRef: ApplicationRef\n ) {\n }\n\n public async init(): Promise<void> {\n this.store.setFilterConfigLoading(true);\n try {\n const filterConfig = await this.filterService.getFilterConfig().toPromise();\n this.store.update({\n filterConfig\n });\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setFilterConfigLoading(false);\n }\n }\n\n public resetStore(): void {\n this.store.reset();\n }\n\n public resetData(): void {\n this.store.update({\n filterResult: null\n });\n }\n\n public closeSubscriptions(): void {\n this.unsubscribeAll$.next();\n this.unsubscribeAll$.complete();\n this.queryParamsLoaded$.complete();\n }\n\n public disableList(): void {\n this.store.update({\n disabled: true\n });\n }\n\n public enableList(): void {\n this.store.update({\n disabled: false\n });\n }\n\n public setMode(mode: \"normal\" | \"infinite-scroll\"): void {\n this.store.update({\n mergePageResults: mode === \"infinite-scroll\"\n });\n }\n\n public loadQueryParams(autoLoad: boolean): void {\n this.activatedRoute?.queryParams\n .pipe(\n takeUntil(this.unsubscribeAll$),\n map((params: { [key: string]: any }) => {\n return {\n params: QueryParamsUtils.extractFilterParameters(params)\n };\n })\n )\n .subscribe(({ params }) => {\n if (!params || Object.keys(params).length === 0) {\n params = this.store.getValue().filterParameters;\n }\n const { filterParameters, filterResult } = this.store.getValue();\n if (\n FilterUtils.filterChangeNeedsRefresh(filterParameters, params) ||\n !filterResult\n ) {\n if (autoLoad) {\n this.loadData(params, false);\n } else {\n this.setParameters(params, false);\n }\n }\n\n this.queryParamsLoaded$.next();\n });\n }\n\n public async loadData(parameters?: FilterParametersModel, updateQueryParams: boolean = true): Promise<void> {\n const { disabled } = this.store.getValue();\n try {\n const filterParameters = this.mergeParameters(parameters);\n if (!disabled) {\n this.store.setLoading(true);\n this.loadingData = true;\n const result = await this.filterService.filter(this.getParameters(filterParameters)).toPromise();\n this.store.setResult(result);\n }\n\n if (filterParameters) {\n this.setParameters(filterParameters, disabled ? false : updateQueryParams);\n }\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public async loadNewPage(start: number, length: number): Promise<void> {\n const { filterParameters } = this.store.getValue();\n await this.loadData({\n ...filterParameters,\n start,\n length\n });\n }\n\n public async loadNextPage(): Promise<void> {\n const { filterParameters } = this.store.getValue();\n await this.loadData({\n ...filterParameters,\n start: filterParameters.start + filterParameters.length\n });\n }\n\n public async resetPaging(): Promise<void> {\n const { filterParameters } = this.store.getValue();\n this.store.setParameters({\n ...filterParameters,\n start: 0\n });\n this.store.update({\n resetPaging: true\n });\n }\n\n public async downloadData(\n type: string,\n parameters?: FilterParametersModel,\n updateQueryParams: boolean = true\n ): Promise<void> {\n try {\n this.store.setLoading(true);\n this.loadingData = true;\n const filterParameters = this.mergeParameters(parameters);\n if (filterParameters) {\n this.setParameters(filterParameters, updateQueryParams);\n }\n const result = await this.filterService.getFile(type, this.getParameters(filterParameters)).toPromise();\n FileUtils.downloadFile(`${this.downloadFileName}.${type}`, result);\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public async printData(parameters?: FilterParametersModel, updateQueryParams: boolean = true): Promise<void> {\n try {\n this.store.setLoading(true);\n this.loadingData = true;\n const filterParameters = this.mergeParameters(parameters);\n if (filterParameters) {\n this.setParameters(filterParameters, updateQueryParams);\n }\n const result = await this.filterService.getPrintableHtml(this.getParameters(filterParameters)).toPromise();\n FileUtils.openPrintableWindow(result);\n } catch (e) {\n this.store.setError(e);\n } finally {\n this.store.setLoading(false);\n this.loadingData = false;\n }\n }\n\n public updateRule(id: string, newRule: QueryRuleModel): void {\n const { filterParameters } = this.store.getValue();\n const rules = filterParameters.rules?.[0];\n if (!rules || rules.rules.length === 0) {\n this.updateRules([newRule]);\n return;\n }\n\n const oldRule = rules.rules.find((r) => (r as QueryRuleModel).id === id) as QueryRuleModel;\n let newRules = rules.rules;\n if (oldRule) {\n if (newRule) {\n // Array replace\n newRules = [\n ...rules.rules.slice(0, rules.rules.indexOf(oldRule)),\n newRule,\n ...rules.rules.slice(rules.rules.indexOf(oldRule) + 1, rules.rules.length)\n ];\n } else {\n newRules = rules.rules.filter((r) => (r as QueryRuleModel).id !== id);\n }\n } else {\n newRules = [...newRules, newRule];\n }\n this.updateRules(newRules as QueryRuleModel[]);\n }\n\n public updateDefaultRules(rule: (QueryRuleModel | QueryModel)[]): void {\n this.store.update({\n defaultRules: rule\n });\n }\n\n public async updateGlobalRules(rules: QueryModel[], updateQueryParams = true): Promise<void> {\n const { filterParameters } = this.store.getValue();\n const newRules: FilterParametersModel = {\n ...filterParameters,\n rules\n };\n\n await this.loadData(newRules, updateQueryParams);\n }\n\n public addRuleFromConfig(config: FilterConfigurationModel): void {\n const { filterParameters } = this.store.getValue();\n\n const newRules: FilterParametersModel = {\n ...filterParameters,\n rules: [\n ...(filterParameters.rules as QueryModel[]),\n QBFilterUtils.createQueryModel(config)\n ]\n };\n\n this.store.update({\n showQueryBuilder: true\n });\n\n this.loadData(newRules, true);\n }\n\n public updateRules(rules: QueryRuleModel[]): void {\n const newRules: FilterParametersModel = {\n rules: [\n {\n condition: \"and\",\n rules\n }\n ]\n };\n\n this.loadData(newRules, true);\n }\n\n public toggleQueryBuilder(): void {\n this.store.update((state) => ({\n showQueryBuilder: !state.showQueryBuilder\n }));\n }\n\n public updateListValue(value: any, key = \"id\"): void {\n const { filterResult } = this.store.getValue();\n if (!filterResult) {\n return;\n }\n\n this.store.update({\n filterResult: {\n ...filterResult,\n values: arrayUpsert(filterResult.values, value[key], value)\n }\n });\n }\n\n public removeListValue(value: any, key = \"id\"): void {\n const { filterResult } = this.store.getValue();\n if (!filterResult) {\n return;\n }\n\n this.store.update({\n filterResult: {\n ...filterResult,\n values: arrayRemove(filterResult.values, value[key])\n }\n });\n }\n\n protected async updateQueryParams(queryParams: any): Promise<void> {\n if (!this.activatedRoute) {\n return;\n }\n\n await this.router.navigate([], {\n relativeTo: this.activatedRoute,\n queryParams,\n queryParamsHandling: \"merge\"\n });\n }\n\n private getParameters(filterParameters?: FilterParametersModel): FilterParametersModel {\n const { defaultRules } = this.store.getValue();\n const parameters = {\n ...filterParameters,\n rules: filterParameters?.rules ? [...filterParameters.rules] : []\n };\n if (defaultRules?.length) {\n parameters.rules.push({\n condition: \"and\",\n rules: defaultRules\n });\n }\n return parameters;\n }\n\n private mergeParameters(parameters?: FilterParametersModel): FilterParametersModel {\n const { filterParameters } = this.store.getValue();\n if (!parameters) {\n return filterParameters;\n }\n\n return {\n ...filterParameters,\n ...parameters,\n order:\n filterParameters.order && !parameters.order\n ? undefined\n : {\n ...filterParameters.order,\n ...parameters.order\n }\n };\n }\n\n private setParameters(parameters: FilterParametersModel, updateQueryParams: boolean = true): void {\n this.store.setParameters(parameters);\n if (updateQueryParams) {\n this.updateQueryParams(QueryParamsUtils.filterParametersToParamsMap(parameters));\n }\n }\n}\n","import { Array, Control, Required } from \"@recursyve/ngx-form-generator\";\nimport { Condition, FilterOperators, QueryModel, QueryRuleModel } from \"../../models/query.model\";\nimport { QBFilterUtils } from \"./utils/qb-filter.utils\";\n\nexport class QueryRuleForm {\n @Control()\n @Required()\n public id: string;\n\n @Control()\n @Required()\n public operation: string;\n\n @Control()\n @Required()\n public value: any;\n\n @Control()\n @Required()\n public secondValue: any;\n\n constructor(rule: QueryRuleModel) {\n if (!rule) {\n return;\n }\n\n this.id = rule.id;\n this.operation = rule.operation as string;\n if (QBFilterUtils.isDoubleInput(rule.operation)) {\n this.value = rule.value[0];\n this.secondValue = rule.value[1];\n } else {\n this.value = rule.value;\n }\n }\n\n public transform(): QueryRuleModel {\n return {\n id: this.id,\n operation: this.operation as FilterOperators,\n value: this.secondValue === undefined ? this.value : [this.value, this.secondValue]\n };\n }\n}\n\nexport class QueryForm {\n @Control()\n @Required()\n public condition: string;\n\n @Array(QueryRuleForm)\n public rules: QueryRuleForm[];\n}\n\nexport class QueryBuilderForm {\n @Array(QueryForm)\n public rules: QueryForm[];\n\n constructor(rules: QueryModel[]) {\n if (!rules) {\n rules = [];\n }\n\n this.rules = rules.map(x => ({\n condition: x.condition,\n rules: x.rules.map(rule => new QueryRuleForm(rule as QueryRuleModel))\n }));\n }\n\n public transform(): QueryModel[] {\n return this.rules.map(x => ({\n condition: x.condition as Condition,\n rules: x.rules.map(rule => rule.transform())\n }));\n }\n}\n","import { Component, Input } from \"@angular/core\";\nimport { ControlValueAccessor } from \"@angular/forms\";\n\n@Component({ template: `` })\nexport class FilterComponent<T> implements ControlValueAccessor {\n private _value: T;\n\n @Input()\n public valueIndex = -1;\n\n public get value(): T | undefined {\n if (this.valueIndex < 0) {\n return this._value;\n } else if (this._value instanceof Array) {\n return this._value[this.valueIndex];\n }\n return undefined;\n }\n\n protected propagateChanges = (_: T) => {};\n\n public registerOnTouched(fn: any): void {\n // NO-OP\n }\n\n public registerOnChange(fn: (_: T) => void): void {\n this.propagateChanges = fn;\n }\n\n public writeValue(value: T): void {\n this._value = value;\n }\n\n public onValueChange(value: T): void {\n if (this.valueIndex < 0) {\n this.propagateChanges(value);\n } else if (this._value instanceof Array) {\n const v = [...this._value];\n v[this.valueIndex] = value;\n this.propagateChanges(v as any);\n }\n }\n}\n","import { Component, forwardRef, Input, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterConfigurationModel } from \"../../../../../models/filter.model\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-text-filter\",\n templateUrl: \"text-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextFilterComponent),\n multi: true\n }\n ]\n})\nexport class TextFilterComponent extends FilterComponent<string> {\n @Input()\n public filterConfig: FilterConfigurationModel;\n}\n","<mat-form-field fxFlex>\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" [mask]=\"(filterConfig?.mask) || ''\" [validation]=\"false\" type=\"text\" />\n</mat-form-field>\n","import { Component, forwardRef, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-number-filter\",\n templateUrl: \"number-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberFilterComponent),\n multi: true\n }\n ]\n})\nexport class NumberFilterComponent extends FilterComponent<number> {}\n","<mat-form-field fxFlex>\n <input matInput [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" type=\"number\" />\n</mat-form-field>\n","import { Component, forwardRef, Input, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterConfigurationModel } from \"../../../../../models/filter.model\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-radio-filter\",\n templateUrl: \"radio-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => RadioFilterComponent),\n multi: true\n }\n ]\n})\nexport class RadioFilterComponent extends FilterComponent<string> {\n @Input()\n public filterConfig: FilterConfigurationModel;\n}\n","<mat-radio-group fxFlex [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\">\n <mat-radio-button class=\"mx-16\" *ngFor=\"let option of filterConfig.options\" [value]=\"option?.key\">\n {{ option?.name }}\n </mat-radio-button>\n</mat-radio-group>\n","import { Component, forwardRef, Input, OnChanges, OnDestroy, OnInit, Optional, SimpleChanges, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { of, Subject, Subscription } from \"rxjs\";\nimport { debounceTime, switchMap } from \"rxjs/operators\";\nimport { FilterConfigurationModel, SelectFilterValue } from \"../../../../../models/filter.model\";\nimport { NiceFilterService } from \"../../../../base-list/providers/base-filter.service\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-select-filter\",\n templateUrl: \"select-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectFilterComponent),\n multi: true\n }\n ]\n})\nexport class SelectFilterComponent extends FilterComponent<unknown> implements OnInit, OnDestroy, OnChanges {\n @Input()\n public filterConfig: FilterConfigurationModel;\n public values: SelectFilterValue[] = [];\n\n public search$ = new Subject<string>();\n\n private searchSub$: Subscription;\n\n constructor(@Optional() protected filterService: NiceFilterService<any>) {\n super();\n }\n\n public async ngOnInit(): Promise<void> {\n if (!this.filterConfig.lazyLoading) {\n this.values = this.filterConfig.values as SelectFilterValue[];\n }\n\n this.searchSub$ = this.search$\n .pipe(\n debounceTime(300),\n switchMap(value => {\n if (this.filterConfig.lazyLoading) {\n return this.filterService.searchFilterValue(this.filterConfig, value);\n }\n\n return of(this.filterConfig.values as SelectFilterValue[]);\n })\n )\n .subscribe(values => {\n this.values = values;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"filterConfig\" in changes) {\n if (!this.filterConfig.lazyLoading) {\n this.values = this.filterConfig.values as SelectFilterValue[];\n }\n }\n }\n\n private async searchValue(): Promise<void> {\n if (this.value && !this.values.find(v => v.id === this.value)) {\n const value = await this.filterService\n .searchFilterResourceValue(this.filterConfig, this.value as number)\n .toPromise();\n this.values = [...this.values, value];\n }\n }\n\n public onValueChange(value: unknown): void {\n super.onValueChange(value);\n this.searchValue();\n }\n\n public ngOnDestroy(): void {\n this.searchSub$.unsubscribe();\n }\n\n public writeValue(value: unknown): void {\n super.writeValue(value);\n this.searchValue();\n }\n}\n","<mat-form-field fxFlex>\n <nice-typeahead\n [ngModel]=\"value\"\n (ngModelChange)=\"onValueChange($event)\"\n [items]=\"values\"\n [typeahead]=\"search$\"\n bindValue=\"id\"\n bindLabel=\"name\"\n ></nice-typeahead>\n</mat-form-field>\n","import { Component, forwardRef, ViewEncapsulation } from \"@angular/core\";\nimport { NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { FilterComponent } from \"../filter.component\";\n\n@Component({\n selector: \"nice-date-filter\",\n templateUrl: \"date-filter.template.html\",\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateFilterComponent),\n multi: true\n }\n ]\n})\nexport class DateFilterComponent extends FilterComponent<string> {}\n","<mat-form-field fxFlex>\n <input matInput [matDatepicker]=\"picker\" [ngModel]=\"value\" (ngModelChange)=\"onValueChange($event)\" />\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n</mat-form-field>\n","export abstract class NiceFilterGroupService<T> {\n public abstract getFilterGroupIconClass(group: T): string;\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { NiceFilterGroupService } from \"../providers/filter-group.service\";\n\n@Pipe({\n name: \"filterGroupIcon\"\n})\nexport class FilterGroupIconPipe implements PipeTransform {\n constructor(private service: NiceFilterGroupService<any>) {}\n\n public transform(value: string): string {\n return this.service.getFilterGroupIconClass(value);\n }\n}\n","import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from \"@angular/core\";\nimport { ArrayUtils } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterConfigurationModel, FilterGroupConfiguration } from \"../../../models/filter.model\";\n\n@Component({\n selector: \"nice-filter-selection\",\n templateUrl: \"filter-selection.template.html\",\n styleUrls: [\"./filter-selection.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class FilterSelectionComponent {\n @Input()\n public filterConfigs: FilterConfigurationModel[];\n\n @Input()\n public loading: boolean;\n\n @Output()\n public filterSelected = new EventEmitter<FilterConfigurationModel>();\n\n public get filterGroups(): [FilterGroupConfiguration, FilterConfigurationModel[]][] {\n const groups = ArrayUtils.uniqueObjects(this.filterConfigs.map(x => x.group), x => x?.key);\n\n const result: [FilterGroupConfiguration, FilterConfigurationModel[]][] = [];\n for (const group of groups) {\n if (!group) {\n continue;\n }\n\n result.push([group, this.filterConfigs.filter(x => x.group?.key === group.key)]);\n }\n\n return result.sort(([, a], [, b]) => b.length - a.length);\n }\n\n public selectFilter(filterConfigurationModel: FilterConfigurationModel): void {\n this.filterSelected.emit(filterConfigurationModel);\n }\n}\n","<mat-card fxLayout=\"row wrap\" class=\"filter-selection-container\" [niceLoadingOverlay]=\"loading\">\n <mat-list [fxFlex]=\"filterGroups.length > 1 ? 50 : 100\" *ngFor=\"let group of filterGroups\">\n <mat-list-item>\n <i mat-list-icon class=\"text-accent fal\" [ngClass]=\"group[0].key | filterGroupIcon\"></i>\n <strong mat-line>{{ group[0].name }}</strong>\n </mat-list-item>\n <mat-list-item (click)=\"selectFilter(filter)\" mat-ripple class=\"filter\" *ngFor=\"let filter of group[1]\">\n {{ filter?.name }}\n </mat-list-item>\n </mat-list>\n</mat-card>\n","import { Overlay, OverlayPositionBuilder, OverlayRef } from \"@angular/cdk/overlay\";\nimport { Platform } from \"@angular/cdk/platform\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { ComponentRef, Directive, ElementRef, EventEmitter, HostListener, Input, Output } from \"@angular/core\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { FilterSelectionComponent } from \"./filter-selection/filter-selection.component\";\n\n@Directive({ selector: \"[niceQueryBuilderTrigger]\" })\nexport class QueryBuilderTriggerDirective {\n private overlayRef: OverlayRef;\n private filterSelectionRef: ComponentRef<FilterSelectionComponent>;\n\n private _queryBuilderFilters: FilterConfigurationModel[];\n private _queryBuilderFiltersLoading: boolean;\n\n @Input()\n public set queryBuilderFilters(queryBuilderFilters: FilterConfigurationModel[] | null) {\n if (queryBuilderFilters) {\n this._queryBuilderFilters = queryBuilderFilters;\n }\n this.updateFilterSelectionComponent();\n }\n\n @Input()\n public set queryBuilderFiltersLoading(queryBuilderFiltersLoading: boolean) {\n this._queryBuilderFiltersLoading = queryBuilderFiltersLoading;\n this.updateFilterSelectionComponent();\n }\n\n @Output()\n public queryBuilderFilterSelected = new EventEmitter<FilterConfigurationModel>();\n\n constructor(\n private overlayPositionBuilder: OverlayPositionBuilder,\n private elementRef: ElementRef,\n private overlay: Overlay,\n private platform: Platform\n ) {}\n\n @HostListener(\"click\")\n public click(): void {\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\n {\n originX: \"center\",\n originY: \"bottom\",\n overlayX: this.isMobile() ? \"end\" : \"center\",\n overlayY: \"top\"\n }\n ]);\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: true,\n backdropClass: \"cdk-overlay-transparent-backdrop\"\n });\n\n const filterSelectionPortal = new ComponentPortal(FilterSelectionComponent);\n this.filterSelectionRef = this.overlayRef.attach(filterSelectionPortal);\n this.updateFilterSelectionComponent();\n\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n private close(): void {\n this.overlayRef.dispose();\n }\n\n private updateFilterSelectionComponent(): void {\n if (!this.filterSelectionRef) {\n return;\n }\n\n this.filterSelectionRef.instance.filterConfigs = this._queryBuilderFilters;\n this.filterSelectionRef.instance.loading = this._queryBuilderFiltersLoading;\n this.filterSelectionRef.instance.filterSelected.subscribe((filter: FilterConfigurationModel) => {\n this.queryBuilderFilterSelected.emit(filter);\n this.close();\n });\n }\n\n private isMobile(): boolean {\n return this.platform.ANDROID || this.platform.IOS;\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output, ViewEncapsulation } from \"@angular/core\";\nimport { FormGroupName } from \"@angular/forms\";\nimport { GeneratedFormArray, GeneratedFormGroup } from \"@recursyve/ngx-form-generator\";\nimport { FilterConfigurationModel } from \"../../../models/filter.model\";\nimport { FilterOperators, QueryRuleModel } from \"../../../models/query.model\";\nimport { QueryForm, QueryRuleForm } from \"../query-builder.form\";\nimport { QBFilterUtils } from \"../utils/qb-filter.utils\";\n\n@Component({\n selector: \"nice-rule\",\n templateUrl: \"rule.template.html\",\n styleUrls: [\"./rule.style.scss\"],\n encapsulation: ViewEncapsulation.None\n})\nexport class RuleComponent implements OnInit {\n @Input()\n public filterConfigs: FilterConfigurationModel[] | null;\n\n @Output()\n public remove = new EventEmitter();\n\n public formGroup: GeneratedFormGroup<QueryForm>;\n public rules: GeneratedFormArray<QueryRuleForm>;\n public filterOperator: FilterOperators;\n\n public get filterConfig(): FilterConfigurationModel {\n const rule = this.rules.at(0).value as QueryRuleModel;\n return this.filterConfigs?.find(f => f.id === rule.id) as FilterConfigurationModel;\n }\n\n public get isSingleInput(): boolean {\n return !this.isDoubleInput && !this.isNoInput;\n }\n\n public get isDoubleInput(): boolean {\n return QBFilterUtils.isDoubleInput(this.filterOperator);\n }\n\n public get isNoInput(): boolean {\n return QBFilterUtils.isNoInput(this.filterOperator);\n }\n\n constructor(private formGroupName: FormGroupName) {}\n\n public ngOnInit(): void {\n this.formGroup = this.formGroupName.control as GeneratedFormGroup<QueryForm>;\n this.rules = this.formGroup.get(\"rules\") as GeneratedFormArray<QueryRuleForm>;\n this.filterOperator = this.rules.at(0).value.operation;\n }\n\n public onUpdateFilterConfig(config: FilterConfigurationModel): void {\n const rule = QBFilterUtils.createRule(config);\n this.rules.patchValue([rule as QueryRuleForm]);\n this.filterOperator = rule.operation;\n }\n\n public onClickOr(): void {\n this.rules.push(QBFilterUtils.createRule(this.filterConfig, this.filterOperator));\n }\n\n public onUpdateFilterOperator(operator: string): void {\n this.filterOperator = operator as FilterOperators;\n for (const rule of this.rules.controls) {\n rule.get(\"operation\")?.patchValue(this.filterOperator);\n\n if (this.isDoubleInput) {\n rule.get(\"value\")?.patchValue([rule.value.value, rule.value.value]);\n }\n }\n }\n\n public onClickDelete(index: number): void {\n if (this.rules.length > 1) {\n this.rules.removeAt(index);\n } else {\n this.remove.emit();\n }\n }\n}\n","<div fxLayout=\"row\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <button\n fxFlex=\"150px\"\n class=\"select-filter\"\n mat-raised-button\n color=\"accent\"\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onUpdateFilterConfig($event)\"\n >\n <div fxFlex=\"row\" fxLayoutAlign=\"space-between center\">\n <div class=\"truncate\" fxFlex=\"0 1 90px\">{{ filterConfig?.name }}</div>\n <mat-icon fxFlex=\"24px\">arrow_drop_down</mat-icon>\n </div>\n </button>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxFlex=\"1 1 auto\" fxLayoutAlign=\"start center\" fxLayoutGap=\"10px\">\n <mat-form-field ngClass.lt-md=\"w-90-p\" fxFlex=\"0 0 188px\">\n <mat-select\n fxFlex=\"150px\"\n fxFlex.lt-md=\"100%\"\n [ngModel]=\"filterOperator\"\n (ngModelChange)=\"onUpdateFilterOperator($event)\"\n >\n <mat-option *ngFor=\"let operator of filterConfig?.operators\" [value]=\"operator.id\">\n {{ operator?.name }}\n </mat-option>\n </mat-select>\n </mat-form-field>\n <div fxFlex fxLayout=\"row wrap\" fxLayout.lt-md=\"column\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <div\n class=\"rule-container\"\n [fxFlex]=\"isDoubleInput ? '100%' : '50%'\"\n [formGroupName]=\"i\"\n fxFlex.lt-md=\"100%\"\n fxLayout.lt-md=\"column\"\n fxLayoutAlign=\"start center\"\n fxLayoutGap=\"10px\"\n *ngFor=\"let rule of rules.controls; let i = index\"\n >\n <ng-container *ngIf=\"isSingleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter *ngSwitchCase=\"'text'\" fxFlex formControlName=\"value\" [filterConfig]=\"filterConfig\"></nice-text-filter>\n <nice-number-filter *ngSwitchCase=\"'number'\" fxFlex formControlName=\"value\"></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n ></nice-select-filter>\n <nice-date-filter *ngSwitchCase=\"'date'\" fxFlex formControlName=\"value\"></nice-date-filter>\n </ng-container>\n </ng-container>\n <ng-container *ngIf=\"isDoubleInput\">\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [valueIndex]=\"0\"\n [filterConfig]=\"filterConfig\"\n fxFlex\n formControlName=\"secondValue\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n [valueIndex]=\"0\"\n fxFlex\n formControlName=\"secondValue\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"0\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"secondValue\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"0\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n [valueIndex]=\"0\"\n fxFlex\n formControlName=\"secondValue\"\n ></nice-date-filter>\n </ng-container>\n <h3 class=\"aligned-text\">\n {{ \"components.query_builder.rule.conditions.and\" | translate }}\n </h3>\n <ng-container [ngSwitch]=\"filterConfig?.type\">\n <nice-text-filter\n *ngSwitchCase=\"'text'\"\n [valueIndex]=\"1\"\n [filterConfig]=\"filterConfig\"\n fxFlex\n formControlName=\"value\"\n ></nice-text-filter>\n <nice-number-filter\n *ngSwitchCase=\"'number'\"\n [valueIndex]=\"1\"\n fxFlex\n formControlName=\"value\"\n ></nice-number-filter>\n <nice-radio-filter\n *ngSwitchCase=\"'radio'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"1\"\n class=\"mb-16\"\n ></nice-radio-filter>\n <nice-select-filter\n *ngSwitchCase=\"'select'\"\n fxFlex\n formControlName=\"value\"\n [filterConfig]=\"filterConfig\"\n [valueIndex]=\"1\"\n ></nice-select-filter>\n <nice-date-filter\n *ngSwitchCase=\"'date'\"\n [valueIndex]=\"1\"\n fxFlex\n formControlName=\"value\"\n ></nice-date-filter>\n </ng-container>\n </ng-container>\n <div fxLayout=\"row\" fxLayoutGap=\"8px\">\n <button mat-mini-fab class=\"or-button aligned-button\" (click)=\"onClickOr()\">\n {{ \"components.query_builder.rule.conditions.or\" | translate }}\n </button>\n <button class=\"aligned-button\" mat-icon-button color=\"warn\" (click)=\"onClickDelete(i)\">\n <mat-icon>delete</mat-icon>\n </button>\n </div>\n\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, forwardRef, Input, Output, ViewEncapsulation } from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\nimport { GeneratedFormArray, GeneratedFormGroup, ngxFormGeneratorFactory } from \"@recursyve/ngx-form-generator\";\nimport { NiceSavedReports } from \"../../api/models/saved-reports.model\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { QueryModel } from \"../../models/query.model\";\nimport { QueryBuilderForm, QueryForm } from \"./query-builder.form\";\nimport { QBFilterUtils } from \"./utils/qb-filter.utils\";\n\n@Component({\n selector: \"nice-query-builder\",\n templateUrl: \"./query-builder.template.html\",\n styleUrls: [\"./query-builder.style.scss\"],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => QueryBuilderComponent),\n multi: true\n },\n {\n provide: GeneratedFormGroup,\n useFactory: ngxFormGeneratorFactory(QueryBuilderForm)\n }\n ]\n})\nexport class QueryBuilderComponent implements ControlValueAccessor {\n @Input()\n public filterConfigs: FilterConfigurationModel[] | null;\n\n @Input()\n public currentSavedReport: NiceSavedReports | null;\n\n @Input()\n public loading: boolean;\n\n @Output()\n public close = new EventEmitter();\n\n @Output()\n public createReport = new EventEmitter();\n\n @Output()\n public updateReport = new EventEmitter();\n\n public rules: GeneratedFormArray<QueryForm>;\n\n public get canSave(): boolean {\n return !this.currentSavedReport;\n }\n\n private propagateChanges = (_: QueryModel[]) => {};\n\n constructor(public formGroup: GeneratedFormGroup<QueryBuilderForm>) {\n this.rules = this.formGroup.get(\"rules\") as GeneratedFormArray<QueryForm>;\n }\n\n public registerOnChange(fn: (rules: QueryModel[]) => void): void {\n this.propagateChanges = fn;\n }\n\n public registerOnTouched(fn: any): void {}\n\n public writeValue(rules: QueryModel[]): void {\n this.rules.clear();\n this.formGroup.patchValue(new QueryBuilderForm(rules));\n }\n\n public onClickAddRule(filterConfigurationModel: FilterConfigurationModel): void {\n this.rules.push(QBFilterUtils.createQueryModel(filterConfigurationModel));\n }\n\n public onClickDeleteRule(id: number): void {\n this.rules.removeAt(id);\n\n if (this.rules.length === 0) {\n this.close.emit();\n this.onClickApply();\n }\n }\n\n public onClickApply(): void {\n this.propagateChanges(this.formGroup.getRawValue().transform());\n }\n\n public onClickSaveReport(): void {\n this.createReport.emit();\n }\n\n public onClickUpdateReport(): void {\n this.updateReport.emit();\n }\n}\n","<div class=\"rules-container\" fxLayout=\"column\" *ngIf=\"!loading\" [formGroup]=\"formGroup\">\n <ng-container formArrayName=\"rules\">\n <nice-rule\n *ngFor=\"let rule of rules.controls; let i = index\"\n (remove)=\"onClickDeleteRule(i)\"\n [filterConfigs]=\"filterConfigs\"\n [formGroupName]=\"i\"\n ></nice-rule>\n </ng-container>\n <div fxLayoutAlign=\"space-between\">\n <button\n class=\"add-button add-rule-button\"\n mat-mini-fab\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfigs\"\n (queryBuilderFilterSelected)=\"onClickAddRule($event)\"\n >\n <mat-icon>add</mat-icon>\n </button>\n <div fxLayout=\"row\" fxLayout.lt-md=\"column\" fxLayoutGap=\"16px\">\n <!-- TODO: Support saved reports -->\n <!--<button mat-button color=\"primary\" (click)=\"onClickSaveReport()\" *ngIf=\"canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.save_report\" | translate }}\n </button>\n <button mat-button color=\"primary\" (click)=\"onClickUpdateReport()\" *ngIf=\"!canSave\">\n <mat-icon class=\"mr-8\" fxHide.lt-md>save</mat-icon>\n {{ \"components.query_builder.update_report\" | translate }}\n </button>-->\n <button mat-stroked-button color=\"accent\" (click)=\"onClickApply()\">\n {{ \"components.query_builder.update\" | translate }}\n <mat-icon class=\"ml-8\">refresh</mat-icon>\n </button>\n </div>\n </div>\n</div>\n","import {\n Component,\n ContentChild,\n ContentChildren,\n EventEmitter,\n Inject,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output, SimpleChanges,\n TemplateRef\n} from \"@angular/core\";\nimport { MediaObserver } from \"@angular/flex-layout\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { PageEvent } from \"@angular/material/paginator\";\nimport { Sort } from \"@angular/material/sort\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { ExportBottomSheetComponent, ExportStrategy } from \"@recursyve/nice-ui-kit.v2\";\nimport { Observable, Subject } from \"rxjs\";\nimport { debounceTime, distinctUntilChanged, map, switchMap } from \"rxjs/operators\";\nimport { FilterConfigurationModel } from \"../../models/filter.model\";\nimport { QueryModel, QueryRuleModel } from \"../../models/query.model\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS, TABLE_COLUMNS } from \"./base-list.constant\";\nimport { NiceBaseListButtonsDirective } from \"./directives/base-list-buttons.directive\";\nimport { NiceBaseListCardsDirective } from \"./directives/base-list-cards.directive\";\nimport { NiceBaseListCustomContentDirective } from \"./directives/base-list-custom-content.directive\";\nimport { NiceBaseListTableDirective } from \"./directives/base-list-table.directive\";\nimport { NiceBaseListTitleDirective } from \"./directives/base-list-title.directive\";\nimport { TableColumns } from \"./models/columns.model\";\nimport { ExportSettings } from \"./models/export.model\";\nimport { BaseListLayout, LayoutContent } from \"./models/layout.model\";\nimport { NiceBaseListQuery } from \"./store/base-list.query\";\nimport { NiceBaseListService } from \"./store/base-list.service\";\nimport { NiceBaseListStore } from \"./store/base-list.store\";\n\n@Component({\n selector: \"nice-base-list\",\n templateUrl: \"./base-list.template.html\",\n providers: [\n NiceBaseListQuery,\n NiceBaseListService,\n NiceBaseListStore\n ]\n})\nexport class NiceBaseListComponent implements OnInit, OnDestroy, OnChanges {\n @ContentChild(NiceBaseListTitleDirective, { read: TemplateRef })\n public title: TemplateRef<any>;\n\n @ContentChildren(NiceBaseListButtonsDirective)\n public buttons: NiceBaseListButtonsDirective[];\n\n @ContentChild(NiceBaseListTableDirective, { read: TemplateRef })\n public table: TemplateRef<any>;\n\n @ContentChild(NiceBaseListCardsDirective, { read: TemplateRef })\n public cards: TemplateRef<any>;\n\n @ContentChild(NiceBaseListCustomContentDirective, { read: TemplateRef })\n public customContent: TemplateRef<any>;\n\n @Input()\n public mode: \"normal\" | \"infinite-scroll\" = \"normal\";\n\n @Input()\n public layout: \"page\" | \"component\" = \"page\";\n\n @Input()\n public layoutContent = LayoutContent.Table;\n\n @Input()\n public autoChangeLayout = true;\n\n @Input()\n public baseRoute: string;\n\n @Input()\n public routeFn: (item: any) => string | string[];\n\n @Input()\n public navigateFn: (baseRoute: string, item: any) => string;\n\n @Input()\n public autoLoad = true;\n\n @Input()\n public pageTitle: string;\n\n @Input()\n public canExport = true;\n\n @Input()\n public disableRouting = false;\n\n @Input()\n public customExport: ExportStrategy[] = [];\n\n @Output()\n public newPage = new EventEmitter<PageEvent>();\n\n public defaultPageSizeOptions = [10, 25, 50, 100];\n public columnNames: string[] = [];\n\n public loading$ = this.query.selectLoading();\n\n public filterResult$ = this.query.selectFilterResult();\n public data$ = this.query.selectData();\n public recordsFiltered$ = this.filterResult$.pipe(map(f => f && f.total));\n\n public showQueryBuilder$ = this.query.selectShowQueryBuilder();\n public filterParameters$ = this.query.selectFilterParameters();\n public index$ = this.filterParameters$.pipe(map(f => Math.floor((f.start ?? 0) / (f.length ?? 1))));\n public length$ = this.filterParameters$.pipe(map(f => f.length));\n public isEmpty$ = this.recordsFiltered$.pipe(map(r => r === 0));\n public searchQuery$ = this.filterParameters$.pipe(map(f => f.search));\n public filterConfig$ = this.query.selectFilterConfig();\n public sortColumn$ = this.filterParameters$.pipe(map(f => (f.order && f.order.column) ?? \"\"));\n public sortDirection$ = this.filterParameters$.pipe(map(f => f.order && f.order.direction));\n\n public filterConfigLoading$ = this.query.selectFilterConfigLoading();\n public rules$ = this.filterParameters$.pipe(map(parameters => parameters.rules));\n public rulesCount$ = this.filterParameters$.pipe(map(parameters => parameters.rules?.length ?? 0));\n\n private searchText$ = new Subject<string>();\n\n constructor(\n @Optional()\n @Inject(ENABLE_QUERY_BUILDER)\n public enableQueryBuilder: boolean,\n @Inject(BASE_LIST_LAYOUT)\n public listLayout: BaseListLayout,\n @Inject(TABLE_COLUMNS)\n public columns: TableColumns[],\n @Inject(EXPORTS_SETTINGS)\n private readonly exportsSettings: ExportSettings,\n public readonly query: NiceBaseListQuery,\n public readonly service: NiceBaseListService,\n private readonly activatedRoute: ActivatedRoute,\n private readonly bottomSheet: MatBottomSheet,\n private readonly router: Router,\n private mediaObserver: MediaObserver\n ) {\n this.setColumn(columns);\n }\n\n public get prefixButtons(): TemplateRef<any> | undefined {\n return this.buttons?.find(x => x.position === \"prefix\")?.template;\n }\n\n public get suffixButtons(): TemplateRef<any> | undefined {\n return this.buttons?.find(x => x.position === \"suffix\")?.template;\n }\n\n public async ngOnInit(): Promise<void> {\n await this.service.init();\n this.service.loadQueryParams(this.autoLoad);\n\n this.searchText$\n .pipe(\n debounceTime(300),\n distinctUntilChanged(),\n switchMap((search) => {\n this.service.resetPaging();\n return this.service.loadData({\n search\n });\n })\n )\n .subscribe();\n\n this.mediaObserver.asObservable().subscribe(() => {\n if (!this.autoChangeLayout) {\n return;\n }\n\n if (this.mediaObserver.isActive(\"lt-md\") && this.layoutContent === LayoutContent.Table) {\n this.layoutContent = LayoutContent.Cards;\n } else {\n this.layoutContent = LayoutContent.Table;\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.service.closeSubscriptions();\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (\"mode\" in changes) {\n this.service.setMode(changes.mode.currentValue);\n }\n }\n\n public clickToggleShowQueryBuilder(): void {\n this.service.toggleQueryBuilder();\n }\n\n public onUpdateRules(rules: QueryModel[]): void {\n this.service.updateGlobalRules(rules);\n }\n\n public onQueryBuilderFilterSelected(filterConfigurationModel: FilterConfigurationModel): void {\n this.service.addRuleFromConfig(filterConfigurationModel);\n }\n\n public onUpdatePage(pageEvent: PageEvent): void {\n this.service.loadNewPage(pageEvent.pageIndex * pageEvent.pageSize, pageEvent.pageSize);\n this.newPage.emit(pageEvent);\n }\n\n public onUpdateSearch(search: string): void {\n this.searchText$.next(search);\n }\n\n public getFilterRule$(id: string): Observable<QueryRuleModel | undefined> {\n return this.filterParameters$.pipe(\n map(f => {\n return (\n f.rules &&\n f.rules[0] &&\n f.rules[0].rules &&\n (f.rules[0].rules.find((r) => (r as QueryRuleModel).id === id) as QueryRuleModel)\n );\n })\n );\n }\n\n public onUpdateSort(sort: Sort): void {\n if (!sort.active || !sort.direction) {\n sort = {\n active: \"id\",\n direction: \"asc\"\n };\n }\n\n this.service.loadData({\n order: sort.active && sort.direction ? { column: sort.active, direction: sort.direction } : null\n });\n }\n\n public updateRule(id: string, newRule: QueryRuleModel): void {\n this.service.updateRule(id, newRule);\n }\n\n public updateRules(rules: QueryRuleModel[]): void {\n this.service.updateRules(rules);\n }\n\n public clickExport(): void {\n const exports = [];\n if (this.exportsSettings.xlsx) {\n exports.push({\n type: \"xlsx\",\n onClickExport: () => this.clickXlsx()\n });\n } else if (this.exportsSettings.csv) {\n exports.push({\n type: \"csv\",\n onClickExport: () => this.clickCsv()\n });\n } else if (this.exportsSettings.pdf) {\n exports.push({\n type: \"pdf\",\n onClickExport: () => this.clickPdf()\n });\n }\n this.bottomSheet.open(ExportBottomSheetComponent, {\n data: {\n exportStrategies: [\n ...exports,\n ...this.customExport\n ]\n }\n });\n }\n\n public navigate(item: any): void {\n if (this.navigateFn) {\n this.navigateFn(this.baseRoute, item);\n } else {\n const route = this.routeFn ? this.routeFn(item) : [(this.baseRoute || \"\") + item?.id];\n this.router.navigate(typeof route === \"string\" ? [route] : route, { relativeTo: this.activatedRoute });\n }\n }\n\n public clickXlsx(): void {\n this.service.downloadData(\"xlsx\");\n }\n\n public clickCsv(): void {\n this.service.downloadData(\"csv\");\n }\n\n public clickPrint(): void {\n this.service.printData();\n }\n\n public clickPdf(): void {\n this.service.downloadData(\"pdf\");\n }\n\n protected setColumn(columns: TableColumns[]): void {\n this.columns = columns;\n this.columnNames = columns.map(x => x.id);\n }\n}\n","<div class=\"list page-layout carded fullwidth inner-scroll\" *ngIf=\"layout === 'page'; else content\">\n <div class=\"center\">\n <ng-container *ngTemplateOutlet=\"content\"></ng-container>\n </div>\n</div>\n\n<ng-template #content>\n <ng-container *ngIf=\"listLayout.xl\">\n <div fxHide fxShow.xl>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xl }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.lg\">\n <div fxHide fxShow.lg>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.lg }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.md\">\n <div fxHide fxShow.md>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.md }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.sm\">\n <div fxHide fxShow.sm>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.sm }\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"listLayout.xs\">\n <div fxHide fxShow.xs>\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.xs }\"></ng-container>\n </div>\n </ng-container>\n\n <div\n [fxHide.xs]=\"!!listLayout.xs\"\n [fxHide.sm]=\"!!listLayout.sm\"\n [fxHide.md]=\"!!listLayout.md\"\n [fxHide.lg]=\"!!listLayout.lg\"\n [fxHide.xl]=\"!!listLayout.xl\"\n >\n <ng-container *ngTemplateOutlet=\"pageLayout; context: { layout: listLayout.default }\"></ng-container>\n </div>\n</ng-template>\n\n<ng-template #pageLayout let-layout=\"layout\">\n <ng-container *ngIf=\"layout?.length; else isObject\">\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: { type: 'column', items: layout } }\"></ng-container>\n </ng-container>\n\n <ng-template #isObject>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: layout }\"></ng-container>\n </ng-template>\n</ng-template>\n\n<ng-template #contentLayout let-layout=\"layout\">\n <div [fxFlex]=\"layout.flex\" [fxLayout]=\"layout.type\" [fxLayoutAlign]=\"layout.align || ''\" [ngClass]=\"layout.classes\">\n <ng-container *ngFor=\"let item of layout.items\">\n <ng-container *ngIf=\"item.name; else childIsLayout\">\n <ng-container *ngTemplateOutlet=\"layoutItem; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-template #childIsLayout>\n <ng-container *ngTemplateOutlet=\"contentLayout; context: { layout: item }\"></ng-container>\n </ng-template>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #layoutItem let-item=\"item\">\n <ng-container *ngIf=\"item.name === 'title' && title\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"title\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'search'\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <div class=\"search-wrapper mx-md-0\">\n <div class=\"search\" fxFlex fxLayout=\"row\" fxLayoutAlign=\"start center\">\n <mat-icon>search</mat-icon>\n <input [ngModel]=\"searchQuery$ | async\" (ngModelChange)=\"onUpdateSearch($event)\" [placeholder]=\"'general.search' | translate\" />\n <ng-container *ngIf=\"enableQueryBuilder\">\n <button\n *ngIf=\"!(showQueryBuilder$ | async) && !(rulesCount$ | async)\"\n mat-icon-button\n niceQueryBuilderTrigger\n [queryBuilderFilters]=\"filterConfig$ | async\"\n [queryBuilderFiltersLoading]=\"(filterConfigLoading$ | async) || false\"\n (queryBuilderFilterSelected)=\"onQueryBuilderFilterSelected($event)\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n filter_list\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"!(showQueryBuilder$ | async) && (rulesCount$ | async)\"\n [disabled]=\"filterConfigLoading$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.show_advanced_search' | translate\"\n >\n <mat-icon\n [matBadge]=\"rulesCount$ | async\"\n [matBadgeHidden]=\"!(rulesCount$ | async)\"\n matBadgeColor=\"accent\"\n >\n filter_list\n </mat-icon>\n </button>\n <button\n mat-icon-button\n *ngIf=\"showQueryBuilder$ | async\"\n (click)=\"clickToggleShowQueryBuilder()\"\n [matTooltip]=\"'general.query_builder.close_advanced_search' | translate\"\n >\n <mat-icon>\n clear\n </mat-icon>\n </button>\n </ng-container>\n </div>\n </div>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'prefixButtons' && prefixButtons\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"prefixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'suffixButtons' && suffixButtons\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"suffixButtons\"></ng-container>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'exportButtons' && canExport\">\n <div [fxFlex]=\"item.flex\" [fxLayoutAlign]=\"item.align || ''\" [ngClass]=\"item.classes\" [class.mr-2]=\"!!suffixButtons\" [class.ml-2]=\"!!prefixButtons\">\n <button\n (click)=\"clickPrint()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.print' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon>print</mat-icon>\n </button>\n\n <button\n (click)=\"clickExport()\"\n [disabled]=\"loading$ | async\"\n [matTooltip]=\"'general.export' | translate\"\n class=\"list-button mr-2\"\n mat-mini-fab\n >\n <mat-icon>cloud_download</mat-icon>\n </button>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'content'\">\n <ng-container *ngIf=\"layoutContent === 'table' && table\">\n <ng-container *ngTemplateOutlet=\"tableLayout; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'cards' && cards\">\n <ng-container *ngTemplateOutlet=\"cardsLayout; context: { item: item }\"></ng-container>\n </ng-container>\n <ng-container *ngIf=\"layoutContent === 'custom' && customContent\">\n <ng-container *ngTemplateOutlet=\"customLayout; context: { item: item }\"></ng-container>\n </ng-container>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'pagination' && layoutContent !== 'custom'\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <mat-paginator\n (page)=\"onUpdatePage($event)\"\n [length]=\"recordsFiltered$ | async\"\n [pageIndex]=\"index$ | async\"\n [pageSizeOptions]=\"defaultPageSizeOptions\"\n [pageSize]=\"length$ | async\"\n [showFirstLastButtons]=\"true\"\n >\n </mat-paginator>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"item.name === 'queryBuilder' && enableQueryBuilder\">\n <div fxLayout=\"column\" *ngIf=\"showQueryBuilder$ | async\">\n <mat-card class=\"my-4\" [niceLoadingOverlay]=\"filterConfigLoading$ | async\">\n <mat-card-content fxLayout=\"column\">\n <div fxFlex>\n <nice-query-builder\n [filterConfigs]=\"filterConfig$ | async\"\n [ngModel]=\"rules$ | async\"\n (ngModelChange)=\"onUpdateRules($event)\"\n (close)=\"clickToggleShowQueryBuilder()\"\n ></nice-query-builder>\n </div>\n </mat-card-content>\n </mat-card>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <div\n [niceLoadingOverlay]=\"loading$ | async\"\n class=\"content-card base-list\"\n fxLayout=\"column\"\n fxLayoutAlign=\"space-between\"\n >\n <mat-table\n (matSortChange)=\"onUpdateSort($event)\"\n [dataSource]=\"data$\"\n [matSortActive]=\"(sortColumn$ | async) || ''\"\n [matSortDirection]=\"(sortDirection$ | async) || ''\"\n fxFlex=\"1 1 auto\"\n matSort\n >\n <mat-header-row *matHeaderRowDef=\"columnNames; sticky: true\"></mat-header-row>\n\n <ng-container *ngFor=\"let column of columns\" [matColumnDef]=\"column.id\">\n <ng-container *ngIf=\"column.sortable\">\n <mat-header-cell *matHeaderCellDef mat-sort-header>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n <ng-container *ngIf=\"!column.sortable\">\n <mat-header-cell *matHeaderCellDef>\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, header: true }\"\n ></ng-container>\n </mat-header-cell>\n </ng-container>\n\n <mat-cell *matCellDef=\"let item\">\n <ng-container\n *ngTemplateOutlet=\"table; context: { column: column.id, data: true, item: item }\"\n ></ng-container>\n </mat-cell>\n </ng-container>\n\n <ng-container *ngIf=\"disableRouting; else withRouting\">\n <mat-row *matRowDef=\"let item; columns: columnNames;\" class=\"item\"></mat-row>\n </ng-container>\n\n <ng-template #withRouting>\n <mat-row\n *matRowDef=\"let item; columns: columnNames;\"\n (click)=\"navigate(item)\"\n class=\"item clickable\"\n matRipple\n >\n </mat-row>\n </ng-template>\n </mat-table>\n </div>\n </div>\n</ng-template>\n\n<ng-template #cardsLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngFor=\"let data of data$ | async\">\n <ng-container *ngTemplateOutlet=\"cards; context: { item: data }\"></ng-container>\n </ng-container>\n </div>\n</ng-template>\n\n<ng-template #customLayout let-item=\"item\">\n <div [fxFlex]=\"item.flex\" [ngClass]=\"item.classes\">\n <ng-container *ngTemplateOutlet=\"customContent; context: { data: data$ | async }\"></ng-container>\n </div>\n</ng-template>\n","import { Platform } from \"@angular/cdk/platform\";\nimport { Inject, Injectable } from \"@angular/core\";\nimport { MAT_DATE_LOCALE, NativeDateAdapter } from \"@angular/material/core\";\nimport { TranslateService } from \"@ngx-translate/core\";\n\n@Injectable()\nexport class NiceCustomDateAdapter extends NativeDateAdapter {\n constructor(private translateService: TranslateService, @Inject(MAT_DATE_LOCALE) locale: any, platform: Platform) {\n super(locale, platform);\n this.setLocale(this.translateService.getDefaultLang());\n\n // @ts-ignore\n this._format = (dtf: any, date: any) => {\n return dtf.format(date);\n };\n }\n\n public format(date: Date, displayFormat: any): string {\n return super.format(date, displayFormat);\n }\n\n public getDate(date: Date): number {\n return date.getUTCDate();\n }\n\n public getMonth(date: Date): number {\n return date.getUTCMonth();\n }\n\n public getYear(date: Date): number {\n return date.getUTCFullYear();\n }\n}\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { FlexLayoutModule } from \"@angular/flex-layout\";\nimport { FormsModule, ReactiveFormsModule } from \"@angular/forms\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { DateAdapter } from \"@angular/material/core\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceLoadingSpinnerModule, NiceTypeaheadModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { NgxMaskModule } from \"ngx-mask\";\nimport { NiceCustomDateAdapter } from \"../../utils/date.adapter\";\nimport { FilterSelectionComponent } from \"./filter-selection/filter-selection.component\";\nimport { FilterGroupIconPipe } from \"./pipes/filter-group-icon.pipe\";\nimport { QueryBuilderTriggerDirective } from \"./query-builder-trigger.directive\";\nimport { QueryBuilderComponent } from \"./query-builder.component\";\nimport { DateFilterComponent } from \"./rule/components/date/date-filter.component\";\nimport { NumberFilterComponent } from \"./rule/components/number/number-filter.component\";\nimport { RadioFilterComponent } from \"./rule/components/radio/radio-filter.component\";\nimport { SelectFilterComponent } from \"./rule/components/select/select-filter.component\";\nimport { TextFilterComponent } from \"./rule/components/text/text-filter.component\";\nimport { RuleComponent } from \"./rule/rule.component\";\n\n@NgModule({\n imports: [\n CommonModule,\n FormsModule,\n TranslateModule,\n OverlayModule,\n MatCardModule,\n MatListModule,\n FlexLayoutModule,\n MatButtonModule,\n MatRippleModule,\n MatIconModule,\n MatSelectModule,\n MatInputModule,\n MatDatepickerModule,\n MatRadioModule,\n NiceLoadingSpinnerModule,\n NiceTypeaheadModule,\n ReactiveFormsModule,\n NgxMaskModule\n ],\n declarations: [\n QueryBuilderComponent,\n QueryBuilderTriggerDirective,\n FilterSelectionComponent,\n RuleComponent,\n SelectFilterComponent,\n TextFilterComponent,\n NumberFilterComponent,\n RadioFilterComponent,\n DateFilterComponent,\n FilterGroupIconPipe\n ],\n providers: [{ provide: DateAdapter, useClass: NiceCustomDateAdapter }],\n exports: [QueryBuilderComponent, QueryBuilderTriggerDirective]\n})\nexport class QueryBuilderModule {}\n","import { CommonModule } from \"@angular/common\";\nimport { ModuleWithProviders, NgModule, Provider, Type } from \"@angular/core\";\nimport { ExtendedModule, FlexModule } from \"@angular/flex-layout\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceExportBottomSheetModule, NiceLoadingSpinnerModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { FilterParametersModel } from \"../../models/filter.model\";\nimport { NiceFilterGroupService } from \"../query-builder/providers/filter-group.service\";\nimport { QueryBuilderModule } from \"../query-builder/query-builder.module\";\n\nimport { NiceBaseListComponent } from \"./base-list.component\";\nimport {\n BASE_LIST_LAYOUT,\n DEFAULT_PARAMETERS,\n ENABLE_QUERY_BUILDER,\n EXPORTS_SETTINGS,\n LIST_TABLE,\n TABLE_COLUMNS\n} from \"./base-list.constant\";\nimport { NiceBaseListDirectiveModule } from \"./directives/base-list-directives.module\";\nimport { TableColumns } from \"./models/columns.model\";\nimport { ExportSettings } from \"./models/export.model\";\nimport { BaseListLayout, defaultLayout } from \"./models/layout.model\";\nimport { NiceFilterService } from \"./providers/base-filter.service\";\nimport { NiceSavedReportService } from \"./providers/base-list-saved-report.service\";\n\nexport interface BaseListOptions<T> {\n table: string;\n columns: TableColumns[];\n filterService: Type<NiceFilterService<T>>;\n defaultParameters?: FilterParametersModel;\n layout?: BaseListLayout;\n exports?: ExportSettings;\n disableQueryBuilder?: boolean;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\nexport interface BaseListGlobalOptions {\n layout?: BaseListLayout;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\n@NgModule({\n imports: [\n NiceExportBottomSheetModule,\n NiceBaseListDirectiveModule,\n CommonModule,\n FlexModule,\n ExtendedModule,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatPaginatorModule,\n TranslateModule,\n NiceLoadingSpinnerModule,\n MatTableModule,\n MatSortModule,\n MatRippleModule,\n MatBottomSheetModule,\n QueryBuilderModule,\n MatBadgeModule\n ],\n declarations: [\n NiceBaseListComponent\n ],\n exports: [\n NiceBaseListComponent,\n NiceBaseListDirectiveModule\n ]\n})\nexport class NiceBaseListModule {\n public static forRoot(options?: BaseListGlobalOptions): ModuleWithProviders<NiceBaseListModule> {\n return {\n ngModule: NiceBaseListModule,\n providers: [\n {\n provide: BASE_LIST_LAYOUT,\n useValue: options?.layout ?? defaultLayout\n },\n ...(options?.queryBuilder ? [\n {\n provide: ENABLE_QUERY_BUILDER,\n useValue: true\n },\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x)\n };\n }\n\n public static providerFactory<T>(options: BaseListOptions<T>): Provider[] {\n return [\n {\n provide: NiceFilterService,\n useClass: options.filterService\n },\n {\n provide: LIST_TABLE,\n useValue: options.table\n },\n {\n provide: TABLE_COLUMNS,\n useValue: options.columns,\n },\n {\n provide: DEFAULT_PARAMETERS,\n useValue: options.defaultParameters\n },\n options.layout ? {\n provide: BASE_LIST_LAYOUT,\n useValue: options.layout\n } : undefined,\n {\n provide: EXPORTS_SETTINGS,\n useValue: options.exports ?? {\n pdf: true,\n xlsx: true,\n csv: true\n }\n },\n options.disableQueryBuilder !== undefined ? {\n provide: ENABLE_QUERY_BUILDER,\n useValue: !options.disableQueryBuilder\n } : null,\n ...(options.queryBuilder ? [\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x);\n }\n}\n","import { FilterParametersModel } from \"../../../models/filter.model\";\nimport { TableColumns } from \"../../base-list/models/columns.model\";\n\nexport class NiceListState {\n table: string;\n columns: TableColumns[];\n defaultParameters?: FilterParametersModel;\n}\n\nexport interface ListStates {\n [state: string]: NiceListState;\n}\n","import { NiceFilterApi } from \"../../../api/filter.api\";\nimport { NiceFilterService } from \"../../base-list/providers/base-filter.service\";\n\nexport class NiceMultiStateFilterService extends NiceFilterService<any> {\n protected constructor(protected filters: { [state: string]: NiceFilterApi<any> }) {\n super();\n }\n\n public switchState(state: string): void {\n this.api = this.filters[state];\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { StoreConfig } from \"@datorama/akita\";\nimport { initialBaseListState, NiceBaseListState, NiceBaseListStore } from \"../../base-list/store/base-list.store\";\n\n// tslint:disable-next-line:no-empty-interface\nexport interface NiceMultiStateListState extends NiceBaseListState {}\n\nexport const initialValue: NiceMultiStateListState = {\n ...initialBaseListState\n};\n\n@Injectable()\n@StoreConfig({ name: \"multi-state-list\", resettable: true })\nexport class NiceMultiStateListStore extends NiceBaseListStore<NiceMultiStateListState> {\n constructor() {\n super(null);\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { NiceBaseListQuery } from \"../../base-list/store/base-list.query\";\nimport { NiceMultiStateListState, NiceMultiStateListStore } from \"./multi-state-list.store\";\n\n@Injectable()\nexport class NiceMultiStateListQuery extends NiceBaseListQuery<NiceMultiStateListState> {\n constructor(protected store: NiceMultiStateListStore) {\n super(store);\n }\n}\n","import { InjectionToken } from \"@angular/core\";\n\nexport const LIST_STATES = new InjectionToken(\"list_states\");\n","import { ApplicationRef, Inject, Injectable } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { FilterParametersModel } from \"../../../models/filter.model\";\nimport { TableColumns } from \"../../base-list/models/columns.model\";\nimport { NiceBaseListService } from \"../../base-list/store/base-list.service\";\nimport { initialBaseListState } from \"../../base-list/store/base-list.store\";\nimport { ListStates } from \"../models/list-states.model\";\nimport { LIST_STATES } from \"../multi-state-list.constant\";\nimport { NiceMultiStateFilterService } from \"../providers/multi-state-filter.service\";\nimport { NiceMultiStateListStore } from \"./multi-state-list.store\";\n\n@Injectable()\nexport class NiceMultiStateListService extends NiceBaseListService {\n constructor(\n @Inject(LIST_STATES) private states: ListStates,\n store: NiceMultiStateListStore,\n activatedRoute: ActivatedRoute,\n router: Router,\n appRef: ApplicationRef,\n private multiFilterService: NiceMultiStateFilterService\n ) {\n super(store, multiFilterService, activatedRoute, router, appRef);\n }\n\n public reset(): void {\n this.store.reset();\n }\n\n public setStateDefaultFilter(state: string, parameters: FilterParametersModel): void {\n this.states[state].defaultParameters = parameters;\n }\n\n public switchState(state: string): TableColumns[] {\n const newState = this.states[state];\n if (!state) {\n return [];\n }\n\n this.multiFilterService.switchState(state);\n this.reset();\n this.init();\n this.loadData(newState.defaultParameters ?? initialBaseListState.filterParameters);\n return newState.columns;\n }\n}\n","import { Component, Inject, Input, Optional } from \"@angular/core\";\nimport { MediaObserver } from \"@angular/flex-layout\";\nimport { MatBottomSheet } from \"@angular/material/bottom-sheet\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { NiceBaseListComponent } from \"../base-list/base-list.component\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS } from \"../base-list/base-list.constant\";\nimport { ExportSettings } from \"../base-list/models/export.model\";\nimport { BaseListLayout } from \"../base-list/models/layout.model\";\nimport { NiceMultiStateListQuery } from \"./store/multi-state-list.query\";\nimport { NiceMultiStateListService } from \"./store/multi-state-list.service\";\nimport { NiceMultiStateListStore } from \"./store/multi-state-list.store\";\n\n@Component({\n selector: \"nice-multi-state-list\",\n templateUrl: \"../base-list/base-list.template.html\",\n providers: [\n NiceMultiStateListQuery,\n NiceMultiStateListService,\n NiceMultiStateListStore\n ]\n})\nexport class NiceMultiStateListComponent extends NiceBaseListComponent {\n @Input()\n public set state(state: string) {\n this.switchState(state);\n }\n\n constructor(\n @Optional() @Inject(ENABLE_QUERY_BUILDER) enableQueryBuilder: boolean,\n @Inject(BASE_LIST_LAYOUT) listLayout: BaseListLayout,\n @Inject(EXPORTS_SETTINGS) exportsSetting: ExportSettings,\n query: NiceMultiStateListQuery,\n activatedRoute: ActivatedRoute,\n bottomSheet: MatBottomSheet,\n router: Router,\n mediaObserver: MediaObserver,\n private multiStateListService: NiceMultiStateListService,\n ) {\n super(\n enableQueryBuilder,\n listLayout,\n [],\n exportsSetting,\n query,\n multiStateListService,\n activatedRoute,\n bottomSheet,\n router,\n mediaObserver\n );\n }\n\n private switchState(state: string): void {\n const columns = this.multiStateListService.switchState(state);\n this.setColumn(columns);\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule, Provider, Type } from \"@angular/core\";\nimport { ExtendedModule, FlexModule } from \"@angular/flex-layout\";\nimport { FormsModule } from \"@angular/forms\";\nimport { MatBadgeModule } from \"@angular/material/badge\";\nimport { MatBottomSheetModule } from \"@angular/material/bottom-sheet\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatRippleModule } from \"@angular/material/core\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { RouterModule } from \"@angular/router\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { NiceExportBottomSheetModule, NiceLoadingSpinnerModule } from \"@recursyve/nice-ui-kit.v2\";\nimport { BASE_LIST_LAYOUT, ENABLE_QUERY_BUILDER, EXPORTS_SETTINGS } from \"../base-list/base-list.constant\";\nimport { NiceBaseListDirectiveModule } from \"../base-list/directives/base-list-directives.module\";\nimport { ExportSettings } from \"../base-list/models/export.model\";\nimport { BaseListLayout } from \"../base-list/models/layout.model\";\nimport { NiceSavedReportService } from \"../base-list/providers/base-list-saved-report.service\";\nimport { NiceFilterGroupService } from \"../query-builder/providers/filter-group.service\";\nimport { QueryBuilderModule } from \"../query-builder/query-builder.module\";\nimport { ListStates } from \"./models/list-states.model\";\nimport { NiceMultiStateListComponent } from \"./multi-state-list.component\";\nimport { LIST_STATES } from \"./multi-state-list.constant\";\nimport { NiceMultiStateFilterService } from \"./providers/multi-state-filter.service\";\n\nexport interface MultiStateListOptions {\n filterService: Type<NiceMultiStateFilterService>;\n states: ListStates;\n layout?: BaseListLayout;\n exports?: ExportSettings;\n queryBuilder?: {\n filterGroupService: Type<NiceFilterGroupService<any>>;\n savedReportService?: Type<NiceSavedReportService>;\n };\n}\n\n@NgModule({\n imports: [\n NiceExportBottomSheetModule,\n NiceBaseListDirectiveModule,\n CommonModule,\n FlexModule,\n ExtendedModule,\n FormsModule,\n RouterModule,\n MatButtonModule,\n MatIconModule,\n MatTooltipModule,\n MatCardModule,\n MatPaginatorModule,\n TranslateModule,\n NiceLoadingSpinnerModule,\n MatTableModule,\n MatSortModule,\n MatRippleModule,\n MatBottomSheetModule,\n QueryBuilderModule,\n MatBadgeModule\n ],\n declarations: [\n NiceMultiStateListComponent\n ],\n exports: [\n NiceMultiStateListComponent,\n NiceBaseListDirectiveModule\n ]\n})\nexport class NiceMultiStateListModule {\n public static providerFactory<T>(options: MultiStateListOptions): Provider[] {\n return [\n {\n provide: NiceMultiStateFilterService,\n useExisting: options.filterService\n },\n {\n provide: LIST_STATES,\n useValue: options.states\n },\n options.layout ? {\n provide: BASE_LIST_LAYOUT,\n useValue: options.layout\n } : undefined,\n {\n provide: EXPORTS_SETTINGS,\n useValue: options.exports ?? {\n pdf: true,\n xlsx: true,\n csv: true\n }\n },\n ...(options.queryBuilder ? [\n {\n provide: ENABLE_QUERY_BUILDER,\n useValue: true\n },\n {\n provide: NiceFilterGroupService,\n useClass: options.queryBuilder.filterGroupService\n },\n options.queryBuilder.savedReportService ? {\n provide: NiceSavedReportService,\n useClass: options.queryBuilder.savedReportService\n } : undefined\n ] : [])\n ].filter(x => !!x);\n }\n}\n","import { TableColumns } from \"../components/base-list/models/columns.model\";\n\nexport class StringUtils {}\n\ndeclare global {\n interface String {\n toTableColumn(sortable?: boolean): TableColumns;\n }\n}\n\nString.prototype.toTableColumn = function(sortable?: boolean): TableColumns {\n return new TableColumns(this.toString(), sortable);\n};\n","/*\n * Public API Surface of nice-data-filter-kit\n */\n\nexport * from \"./lib/api/public-api\";\nexport * from \"./lib/components/public-api\";\nexport * from \"./lib/models/public-api\";\nexport * from \"./lib/utils/public-api\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["isNullOrUndefined","HttpParams","Directive","Input","NgModule","LayoutContent","ObjectUtils","Injectable","InjectionToken","NiceBaseListStore","Store","StoreConfig","Optional","Inject","Query","FilterType","FilterOperatorTypes","Subject","takeUntil","map","FileUtils","arrayUpsert","arrayRemove","Control","Required","Array","Component","NG_VALUE_ACCESSOR","forwardRef","ViewEncapsulation","debounceTime","switchMap","of","Pipe","EventEmitter","ArrayUtils","ChangeDetectionStrategy","Output","ComponentPortal","HostListener","GeneratedFormGroup","ngxFormGeneratorFactory","distinctUntilChanged","ExportBottomSheetComponent","TemplateRef","ContentChild","ContentChildren","NativeDateAdapter","MAT_DATE_LOCALE","CommonModule","FormsModule","TranslateModule","OverlayModule","MatCardModule","MatListModule","FlexLayoutModule","MatButtonModule","MatRippleModule","MatIconModule","MatSelectModule","MatInputModule","MatDatepickerModule","MatRadioModule","NiceLoadingSpinnerModule","NiceTypeaheadModule","ReactiveFormsModule","NgxMaskModule","DateAdapter","NiceExportBottomSheetModule","FlexModule","ExtendedModule","RouterModule","MatTooltipModule","MatPaginatorModule","MatTableModule","MatSortModule","MatBottomSheetModule","MatBadgeModule","NiceMultiStateListStore"],"mappings":"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"}
|