@po-ui/ng-components 6.6.0 → 6.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/components/po-chart/interfaces/po-chart-serie.interface.mjs +1 -1
- package/esm2020/lib/components/po-field/po-checkbox/po-checkbox-base.component.mjs +12 -4
- package/esm2020/lib/components/po-field/po-checkbox/po-checkbox.component.mjs +15 -10
- package/esm2020/lib/components/po-field/po-combo/po-combo-base.component.mjs +45 -3
- package/esm2020/lib/components/po-field/po-combo/po-combo-filter.service.mjs +16 -8
- package/esm2020/lib/components/po-field/po-combo/po-combo.component.mjs +221 -112
- package/esm2020/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.mjs +5 -3
- package/esm2020/lib/components/po-table/po-table-base.component.mjs +18 -2
- package/esm2020/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.mjs +10 -2
- package/esm2020/lib/components/po-table/po-table.component.mjs +987 -433
- package/esm2020/lib/directives/po-tooltip/po-tooltip-base.directive.mjs +2 -2
- package/esm2020/lib/directives/po-tooltip/po-tooltip.directive.mjs +32 -2
- package/esm2020/lib/services/po-color/po-color.service.mjs +3 -2
- package/fesm2015/po-ui-ng-components.mjs +1515 -601
- package/fesm2015/po-ui-ng-components.mjs.map +1 -1
- package/fesm2020/po-ui-ng-components.mjs +1346 -565
- package/fesm2020/po-ui-ng-components.mjs.map +1 -1
- package/lib/components/po-chart/interfaces/po-chart-serie.interface.d.ts +3 -0
- package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +12 -4
- package/lib/components/po-field/po-checkbox/po-checkbox.component.d.ts +2 -2
- package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +30 -1
- package/lib/components/po-field/po-combo/po-combo-filter.service.d.ts +3 -0
- package/lib/components/po-field/po-combo/po-combo.component.d.ts +22 -3
- package/lib/components/po-table/po-table-base.component.d.ts +12 -1
- package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +3 -1
- package/lib/components/po-table/po-table.component.d.ts +3 -0
- package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +1 -1
- package/lib/directives/po-tooltip/po-tooltip.directive.d.ts +3 -0
- package/lib/services/po-color/po-color.service.d.ts +1 -0
- package/package.json +4 -4
- package/po-ui-ng-components-6.9.0.tgz +0 -0
- package/schematics/ng-add/index.js +1 -1
- package/schematics/ng-update/v2/index.js +1 -1
- package/schematics/ng-update/v3/index.js +1 -1
- package/schematics/ng-update/v4/index.js +1 -1
- package/schematics/ng-update/v5/index.js +1 -1
- package/schematics/ng-update/v6/index.js +1 -1
- package/po-ui-ng-components-6.6.0.tgz +0 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { HttpHeaders } from '@angular/common/http';
|
|
2
2
|
import { Injectable } from '@angular/core';
|
|
3
|
-
import {
|
|
3
|
+
import { fromEvent } from 'rxjs';
|
|
4
|
+
import { debounceTime, map, tap } from 'rxjs/operators';
|
|
4
5
|
import { validateObjectType } from '../../../utils/util';
|
|
5
6
|
import * as i0 from "@angular/core";
|
|
6
7
|
import * as i1 from "@angular/common/http";
|
|
@@ -16,6 +17,7 @@ export class PoComboFilterService {
|
|
|
16
17
|
this.http = http;
|
|
17
18
|
this.fieldLabel = 'label';
|
|
18
19
|
this.fieldValue = 'value';
|
|
20
|
+
this.hasNext = true;
|
|
19
21
|
this.headers = new HttpHeaders({
|
|
20
22
|
'X-PO-No-Message': 'true'
|
|
21
23
|
});
|
|
@@ -25,12 +27,8 @@ export class PoComboFilterService {
|
|
|
25
27
|
return this._url;
|
|
26
28
|
}
|
|
27
29
|
getFilteredData(param, filterParams) {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
const params = { ...filterParamsValidated, filter: value };
|
|
31
|
-
return this.http
|
|
32
|
-
.get(`${this.url}`, { responseType: 'json', params, headers: this.headers })
|
|
33
|
-
.pipe(map((response) => this.parseToArrayComboOption(response.items)));
|
|
30
|
+
const params = this.prepareParams(param, filterParams);
|
|
31
|
+
return this.http.get(`${this.url}`, { responseType: 'json', params, headers: this.headers }).pipe(tap(res => (this.hasNext = res['hasNext'])), map((response) => this.parseToArrayComboOption(response.items)));
|
|
34
32
|
}
|
|
35
33
|
getObjectByValue(value, filterParams) {
|
|
36
34
|
const filterParamsValidated = validateObjectType(filterParams);
|
|
@@ -43,6 +41,16 @@ export class PoComboFilterService {
|
|
|
43
41
|
this.fieldLabel = fieldLabel;
|
|
44
42
|
this.fieldValue = fieldValue;
|
|
45
43
|
}
|
|
44
|
+
scrollListener(componentListner) {
|
|
45
|
+
return fromEvent(componentListner, 'scroll').pipe(debounceTime(100));
|
|
46
|
+
}
|
|
47
|
+
prepareParams(param, filterParams) {
|
|
48
|
+
const { page, pageSize, value } = param;
|
|
49
|
+
const filterParamsValidated = validateObjectType(filterParams);
|
|
50
|
+
return page
|
|
51
|
+
? { ...filterParamsValidated, page, pageSize, filter: value }
|
|
52
|
+
: { ...filterParamsValidated, filter: value };
|
|
53
|
+
}
|
|
46
54
|
parseToArrayComboOption(items) {
|
|
47
55
|
if (items && items.length > 0) {
|
|
48
56
|
const parsedOptions = items.map(item => this.parseToComboOption(item));
|
|
@@ -76,4 +84,4 @@ PoComboFilterService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoC
|
|
|
76
84
|
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoComboFilterService, [{
|
|
77
85
|
type: Injectable
|
|
78
86
|
}], function () { return [{ type: i1.HttpClient }]; }, null); })();
|
|
79
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
87
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29tYm8tZmlsdGVyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tZmllbGQvcG8tY29tYm8vcG8tY29tYm8tZmlsdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLFNBQVMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUt4RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRXpEOzs7Ozs7R0FNRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFnQi9CLFlBQW9CLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFmcEMsZUFBVSxHQUFXLE9BQU8sQ0FBQztRQUM3QixlQUFVLEdBQVcsT0FBTyxDQUFDO1FBQzdCLFlBQU8sR0FBWSxJQUFJLENBQUM7UUFFZixZQUFPLEdBQWdCLElBQUksV0FBVyxDQUFDO1lBQzlDLGlCQUFpQixFQUFFLE1BQU07U0FDMUIsQ0FBQyxDQUFDO1FBR0ssYUFBUSxHQUFHLEVBQUUsQ0FBQztJQU1pQixDQUFDO0lBSnhDLElBQUksR0FBRztRQUNMLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztJQUNuQixDQUFDO0lBSUQsZUFBZSxDQUFDLEtBQVUsRUFBRSxZQUFrQjtRQUM1QyxNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQztRQUN2RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcs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QU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVPLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBZ0I7UUFDdkMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMseUJBQXlCLFFBQVEsUUFBUSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQzs4RUFDTixDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVPLGVBQWU7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRTtZQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUV6RCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztTQUNwQjtJQUNILENBQUM7O3dGQXpGVSxvQkFBb0I7MEVBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7dUZBQXBCLG9CQUFvQjtjQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cEhlYWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IGZyb21FdmVudCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgUG9Db21ib0ZpbHRlciB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb21iby1maWx0ZXIuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvQ29tYm9PcHRpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29tYm8tb3B0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb1Jlc3BvbnNlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLXJlc3BvbnNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyB2YWxpZGF0ZU9iamVjdFR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy91dGlsJztcblxuLyoqXG4gKiBAZG9jc1ByaXZhdGVcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBTZXJ2acOnbyBwYWRyw6NvIHV0aWxpemFkbyBwYXJhIGZpbHRyYXIgb3MgZGFkb3MgZG8gY29tcG9uZW50ZSBwby1jb21iby5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvQ29tYm9GaWx0ZXJTZXJ2aWNlIGltcGxlbWVudHMgUG9Db21ib0ZpbHRlciB7XG4gIGZpZWxkTGFiZWw6IHN0cmluZyA9ICdsYWJlbCc7XG4gIGZpZWxkVmFsdWU6IHN0cmluZyA9ICd2YWx1ZSc7XG4gIGhhc05leHQ6IGJvb2xlYW4gPSB0cnVlO1xuXG4gIHJlYWRvbmx5IGhlYWRlcnM6IEh0dHBIZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKHtcbiAgICAnWC1QTy1Oby1NZXNzYWdlJzogJ3RydWUnXG4gIH0pO1xuXG4gIHByaXZhdGUgX3VybDogc3RyaW5nO1xuICBwcml2YXRlIG1lc3NhZ2VzID0gW107XG5cbiAgZ2V0IHVybCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl91cmw7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQpIHt9XG5cbiAgZ2V0RmlsdGVyZWREYXRhKHBhcmFtOiBhbnksIGZpbHRlclBhcmFtcz86IGFueSk6IE9ic2VydmFibGU8QXJyYXk8UG9Db21ib09wdGlvbj4+IHtcbiAgICBjb25zdCBwYXJhbXMgPSB0aGlzLnByZXBhcmVQYXJhbXMocGFyYW0sIGZpbHRlclBhcmFtcyk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy51cmx9YCwgeyByZXNwb25zZVR5cGU6ICdqc29uJywgcGFyYW1zLCBoZWFkZXJzOiB0aGlzLmhlYWRlcnMgfSkucGlwZShcbiAgICAgIHRhcChyZXMgPT4gKHRoaXMuaGFzTmV4dCA9IHJlc1snaGFzTmV4dCddKSksXG4gICAgICBtYXAoKHJlc3BvbnNlOiBQb1Jlc3BvbnNlKSA9PiB0aGlzLnBhcnNlVG9BcnJheUNvbWJvT3B0aW9uKHJlc3BvbnNlLml0ZW1zKSlcbiAgICApO1xuICB9XG5cbiAgZ2V0T2JqZWN0QnlWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBmaWx0ZXJQYXJhbXM/OiBhbnkpOiBPYnNlcnZhYmxlPFBvQ29tYm9PcHRpb24+IHtcbiAgICBjb25zdCBmaWx0ZXJQYXJhbXNWYWxpZGF0ZWQgPSB2YWxpZGF0ZU9iamVjdFR5cGUoZmlsdGVyUGFyYW1zKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgIC5nZXQoYCR7dGhpcy51cmx9LyR7dmFsdWV9YCwgeyBwYXJhbXM6IGZpbHRlclBhcmFtc1ZhbGlkYXRlZCwgaGVhZGVyczogdGhpcy5oZWFkZXJzIH0pXG4gICAgICAucGlwZShtYXAoaXRlbSA9PiB0aGlzLnBhcnNlVG9Db21ib09wdGlvbihpdGVtKSkpO1xuICB9XG5cbiAgY29uZmlnUHJvcGVydGllcyh1cmw6IHN0cmluZywgZmllbGRMYWJlbDogc3RyaW5nLCBmaWVsZFZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl91cmwgPSB1cmw7XG4gICAgdGhpcy5maWVsZExhYmVsID0gZmllbGRMYWJlbDtcbiAgICB0aGlzLmZpZWxkVmFsdWUgPSBmaWVsZFZhbHVlO1xuICB9XG5cbiAgc2Nyb2xsTGlzdGVuZXIoY29tcG9uZW50TGlzdG5lcjogSFRNTEVsZW1lbnQpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiBmcm9tRXZlbnQoY29tcG9uZW50TGlzdG5lciwgJ3Njcm9sbCcpLnBpcGUoZGVib3VuY2VUaW1lKDEwMCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlUGFyYW1zKHBhcmFtOiBhbnksIGZpbHRlclBhcmFtcz86IGFueSkge1xuICAgIGNvbnN0IHsgcGFnZSwgcGFnZVNpemUsIHZhbHVlIH0gPSBwYXJhbTtcbiAgICBjb25zdCBmaWx0ZXJQYXJhbXNWYWxpZGF0ZWQgPSB2YWxpZGF0ZU9iamVjdFR5cGUoZmlsdGVyUGFyYW1zKTtcblxuICAgIHJldHVybiBwYWdlXG4gICAgICA/IHsgLi4uZmlsdGVyUGFyYW1zVmFsaWRhdGVkLCBwYWdlLCBwYWdlU2l6ZSwgZmlsdGVyOiB2YWx1ZSB9XG4gICAgICA6IHsgLi4uZmlsdGVyUGFyYW1zVmFsaWRhdGVkLCBmaWx0ZXI6IHZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9BcnJheUNvbWJvT3B0aW9uKGl0ZW1zOiBBcnJheTxhbnk+KTogQXJyYXk8UG9Db21ib09wdGlvbj4ge1xuICAgIGlmIChpdGVtcyAmJiBpdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBwYXJzZWRPcHRpb25zID0gaXRlbXMubWFwKGl0ZW0gPT4gdGhpcy5wYXJzZVRvQ29tYm9PcHRpb24oaXRlbSkpO1xuXG4gICAgICB0aGlzLmRpc3BsYXlNZXNzYWdlcygpO1xuXG4gICAgICByZXR1cm4gcGFyc2VkT3B0aW9ucztcbiAgICB9XG5cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBwcml2YXRlIHBhcnNlVG9Db21ib09wdGlvbihpdGVtOiBhbnkpOiBQb0NvbWJvT3B0aW9uIHtcbiAgICBpZiAoIWl0ZW0/Llt0aGlzLmZpZWxkVmFsdWVdKSB7XG4gICAgICB0aGlzLmFkZE1lc3NhZ2UoaXRlbSwgdGhpcy5maWVsZFZhbHVlKTtcblxuICAgICAgcmV0dXJuIHsgdmFsdWU6ICcnIH07XG4gICAgfVxuXG4gICAgY29uc3QgbGFiZWwgPSBpdGVtW3RoaXMuZmllbGRMYWJlbF07XG4gICAgY29uc3QgdmFsdWUgPSBpdGVtW3RoaXMuZmllbGRWYWx1ZV07XG5cbiAgICByZXR1cm4geyBsYWJlbCwgdmFsdWUgfTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkTWVzc2FnZShpdGVtLCBwcm9wZXJ0eTogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlcy5wdXNoKGBDYW5ub3QgcmVhZCBwcm9wZXJ0eSBcIiR7cHJvcGVydHl9XCIgb2YgJHtKU09OLnN0cmluZ2lmeShpdGVtKX0sXG4gICAgICBzZWUgW3AtZmllbGQtdmFsdWVdIHByb3BlcnR5IGF0IGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1jb21ib2ApO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5TWVzc2FnZXMoKSB7XG4gICAgaWYgKHRoaXMubWVzc2FnZXMubGVuZ3RoKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VzLmZvckVhY2gobWVzc2FnZSA9PiBjb25zb2xlLmVycm9yKG1lc3NhZ2UpKTtcblxuICAgICAgdGhpcy5tZXNzYWdlcyA9IFtdO1xuICAgIH1cbiAgfVxufVxuIl19
|