@solidev/data 0.4.7 → 0.5.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.
Files changed (91) hide show
  1. package/fesm2022/solidev-data.mjs +171 -171
  2. package/fesm2022/solidev-data.mjs.map +1 -1
  3. package/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.d.ts +2 -2
  4. package/lib/modellist/model-list.service.d.ts +3 -1
  5. package/package.json +5 -7
  6. package/esm2022/lib/auth/auth-interceptor.service.mjs +0 -118
  7. package/esm2022/lib/auth/auth.service.mjs +0 -216
  8. package/esm2022/lib/auth/jwt.mjs +0 -21
  9. package/esm2022/lib/data/data-backend.mjs +0 -162
  10. package/esm2022/lib/data/data-collection.mjs +0 -125
  11. package/esm2022/lib/data/data-collection.mock.mjs +0 -39
  12. package/esm2022/lib/data/data-model.mjs +0 -291
  13. package/esm2022/lib/data/data-parameters.mjs +0 -34
  14. package/esm2022/lib/data/data-query.mjs +0 -154
  15. package/esm2022/lib/data/data-query.mock.mjs +0 -46
  16. package/esm2022/lib/data/fields/base.mjs +0 -144
  17. package/esm2022/lib/data/fields/boolean.mjs +0 -38
  18. package/esm2022/lib/data/fields/computed.mjs +0 -10
  19. package/esm2022/lib/data/fields/datetime.mjs +0 -167
  20. package/esm2022/lib/data/fields/index.mjs +0 -8
  21. package/esm2022/lib/data/fields/numbers.mjs +0 -38
  22. package/esm2022/lib/data/fields/primaryfield.mjs +0 -9
  23. package/esm2022/lib/data/fields/relations.mjs +0 -53
  24. package/esm2022/lib/data/fields/stringfields.mjs +0 -71
  25. package/esm2022/lib/dispedit/choice.pipe.mjs +0 -79
  26. package/esm2022/lib/dispedit/dispedit/dispedit.component.mjs +0 -480
  27. package/esm2022/lib/dispedit/dispedit/dispedit.constants.mjs +0 -2
  28. package/esm2022/lib/dispedit/factor.pipe.mjs +0 -81
  29. package/esm2022/lib/dispedit/factorc.pipe.mjs +0 -99
  30. package/esm2022/lib/dispedit/fkselect/fkselect.component.mjs +0 -139
  31. package/esm2022/lib/dispedit/flags/flags.component.mjs +0 -137
  32. package/esm2022/lib/dispedit/m2mselect/m2mselect.component.mjs +0 -312
  33. package/esm2022/lib/dispedit/richedit/richedit.component.mjs +0 -126
  34. package/esm2022/lib/dispedit/sdelete/sdelete.component.mjs +0 -103
  35. package/esm2022/lib/messages/message-zone/message-zone.component.mjs +0 -53
  36. package/esm2022/lib/messages/message.service.mjs +0 -151
  37. package/esm2022/lib/modellist/model-list-fields/model-list-field-header/messages.mjs +0 -2
  38. package/esm2022/lib/modellist/model-list-fields/model-list-field-header/model-list-field-header.component.mjs +0 -61
  39. package/esm2022/lib/modellist/model-list-fields/model-list-fields-selector/model-list-fields-selector.component.mjs +0 -64
  40. package/esm2022/lib/modellist/model-list-fields/model-list-fields.mjs +0 -273
  41. package/esm2022/lib/modellist/model-list-filters/filters/filtertypes.mjs +0 -3
  42. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.component.mjs +0 -109
  43. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-filter/model-list-autocomplete-filter.mjs +0 -28
  44. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.component.mjs +0 -29
  45. package/esm2022/lib/modellist/model-list-filters/filters/model-list-autocomplete-multi-filter/model-list-autocomplete-multi-filter.mjs +0 -9
  46. package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.component.mjs +0 -40
  47. package/esm2022/lib/modellist/model-list-filters/filters/model-list-date-filter/model-list-date-filter.mjs +0 -14
  48. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.component.mjs +0 -40
  49. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetime-filter/model-list-datetime-filter.mjs +0 -14
  50. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetime-range-filter.component.mjs +0 -21
  51. package/esm2022/lib/modellist/model-list-filters/filters/model-list-datetimerange-filter/model-list-datetimerange-filter.mjs +0 -14
  52. package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.component.mjs +0 -49
  53. package/esm2022/lib/modellist/model-list-filters/filters/model-list-flags-filter/model-list-flags-filter.mjs +0 -23
  54. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/adapters/ban.mjs +0 -24
  55. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.component.mjs +0 -63
  56. package/esm2022/lib/modellist/model-list-filters/filters/model-list-geodistance-filter/model-list-geodistance-filter.mjs +0 -16
  57. package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.component.mjs +0 -46
  58. package/esm2022/lib/modellist/model-list-filters/filters/model-list-number-filter/model-list-number-filter.mjs +0 -49
  59. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.component.mjs +0 -56
  60. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-filter/model-list-select-filter.mjs +0 -40
  61. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.component.mjs +0 -51
  62. package/esm2022/lib/modellist/model-list-filters/filters/model-list-select-multi-filter/model-list-select-multi-filter.mjs +0 -21
  63. package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.component.mjs +0 -40
  64. package/esm2022/lib/modellist/model-list-filters/filters/model-list-text-filter/model-list-text-filter.mjs +0 -17
  65. package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.component.mjs +0 -174
  66. package/esm2022/lib/modellist/model-list-filters/filters/model-list-tree-filter/model-list-tree-filter.mjs +0 -18
  67. package/esm2022/lib/modellist/model-list-filters/model-list-filter-group.mjs +0 -19
  68. package/esm2022/lib/modellist/model-list-filters/model-list-filter.mjs +0 -157
  69. package/esm2022/lib/modellist/model-list-filters/model-list-filters/model-list-filters.component.mjs +0 -50
  70. package/esm2022/lib/modellist/model-list-filters/model-list-filters-select/model-list-filters-select.component.mjs +0 -51
  71. package/esm2022/lib/modellist/model-list-filters/model-list-filters.mjs +0 -134
  72. package/esm2022/lib/modellist/model-list-paginator/model-list-paginator/model-list-paginator.component.mjs +0 -69
  73. package/esm2022/lib/modellist/model-list-paginator/model-list-paginator.mjs +0 -47
  74. package/esm2022/lib/modellist/model-list-sorter/model-list-sorter/model-list-sorter.component.mjs +0 -49
  75. package/esm2022/lib/modellist/model-list-sorter/model-list-sorter.mjs +0 -116
  76. package/esm2022/lib/modellist/model-list.service.mjs +0 -164
  77. package/esm2022/lib/routing/breadcrumb/breadcrumb.component.mjs +0 -138
  78. package/esm2022/lib/routing/routing.mjs +0 -57
  79. package/esm2022/lib/updates/update/update.component.mjs +0 -17
  80. package/esm2022/lib/updates/update.service.mjs +0 -58
  81. package/esm2022/lib/uploader/index.mjs +0 -6
  82. package/esm2022/lib/uploader/interfaces.mjs +0 -8
  83. package/esm2022/lib/uploader/ng-file-drop.directive.mjs +0 -81
  84. package/esm2022/lib/uploader/ng-file-select.directive.mjs +0 -51
  85. package/esm2022/lib/uploader/ngx-uploader.class.mjs +0 -308
  86. package/esm2022/lib/uploader/ngx-uploader.module.mjs +0 -17
  87. package/esm2022/lib/utils/slugify.mjs +0 -16
  88. package/esm2022/lib/utils/tab-memory.service.mjs +0 -80
  89. package/esm2022/lib/utils/template.mjs +0 -72
  90. package/esm2022/public-api.mjs +0 -56
  91. package/esm2022/solidev-data.mjs +0 -5
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzcGVkaXQuY29uc3RhbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2Rpc3BlZGl0L2Rpc3BlZGl0L2Rpc3BlZGl0LmNvbnN0YW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBJRGlzcEVkaXRDaG9pY2Uge1xuICBkZXNjOiBzdHJpbmc7XG4gIHZhbHVlOiBhbnk7XG59XG5cbmV4cG9ydCB0eXBlIERJU1BFRElUX0VESVRPUl9UWVBFUyA9XG4gIHwgJ2lucHV0LnRleHQnXG4gIHwgJ2lucHV0LmVtYWlsJ1xuICB8ICdpbnB1dC5udW1iZXInXG4gIHwgJ2lucHV0LmRlY2ltYWwnXG4gIHwgJ2lucHV0LmRhdGV0aW1lJ1xuICB8ICdpbnB1dC5kYXRlJ1xuICB8ICdpbnB1dC5jaGVja2JveCdcbiAgfCAnaW5wdXQucGFzc3dvcmQnXG4gIHwgJ3RleHRhcmVhJ1xuICB8ICdzZWxlY3QnXG4gIHwgJ3F1aWxsJ1xuICB8ICdma3NlbGVjdCdcbiAgfCAnbTJtc2VsZWN0JztcblxuZXhwb3J0IHR5cGUgRElTUEVESVRfRElTUExBWV9UWVBFUyA9XG4gIHwgJ3RleHQnXG4gIHwgJ2Nob2ljZSdcbiAgfCAnYm9vbGVhbidcbiAgfCAnZGVjaW1hbCdcbiAgfCAnZmtkZXRhaWxzJ1xuICB8ICdtMm1kZXRhaWxzJ1xuICB8ICdkYXRldGltZSdcbiAgfCAnZGF0ZSdcbiAgfCAncXVpbGwnO1xuIl19
@@ -1,81 +0,0 @@
1
- import { Inject, LOCALE_ID, Pipe } from '@angular/core';
2
- import { formatNumber } from '@angular/common';
3
- import * as i0 from "@angular/core";
4
- export function isValue(value) {
5
- return !(value == null || value === '' || value !== value);
6
- }
7
- export function strToNumber(value) {
8
- // Convert strings to numbers
9
- if (typeof value === 'string' && !isNaN(Number(value) - parseFloat(value))) {
10
- return Number(value);
11
- }
12
- if (typeof value !== 'number') {
13
- throw new Error(`${value} is not a number`);
14
- }
15
- return value;
16
- }
17
- export class FactorPipe {
18
- constructor(_locale) {
19
- this._locale = _locale;
20
- }
21
- transform(value, field, digitsInfo, locale) {
22
- if (!value) {
23
- return null;
24
- }
25
- locale = locale || this._locale;
26
- const fvalue = value[field];
27
- if (!isValue(fvalue))
28
- return null;
29
- const manager = value.FM(field);
30
- let factor = manager.factor;
31
- factor = factor || 1;
32
- const num = strToNumber(fvalue);
33
- return formatNumber(num / factor, locale, digitsInfo);
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FactorPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
36
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: FactorPipe, isStandalone: true, name: "factor" }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FactorPipe, decorators: [{
39
- type: Pipe,
40
- args: [{
41
- name: 'factor',
42
- standalone: true,
43
- }]
44
- }], ctorParameters: () => [{ type: undefined, decorators: [{
45
- type: Inject,
46
- args: [LOCALE_ID]
47
- }] }] });
48
- export class PFactorPipe {
49
- constructor(_locale) {
50
- this._locale = _locale;
51
- }
52
- transform(value, model, field, digitsInfo, locale) {
53
- if (!model)
54
- return null;
55
- if (!value)
56
- return null;
57
- locale = locale || this._locale;
58
- // Use value from input, not from model
59
- const fvalue = value; // (model as any)[field];
60
- if (!isValue(fvalue))
61
- return null;
62
- const manager = model.FM(field);
63
- let factor = manager.factor;
64
- factor = factor || 1;
65
- const num = strToNumber(fvalue);
66
- return formatNumber(num / factor, locale, digitsInfo);
67
- }
68
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PFactorPipe, deps: [{ token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe }); }
69
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: PFactorPipe, isStandalone: true, name: "pfactor" }); }
70
- }
71
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PFactorPipe, decorators: [{
72
- type: Pipe,
73
- args: [{
74
- name: 'pfactor',
75
- standalone: true,
76
- }]
77
- }], ctorParameters: () => [{ type: undefined, decorators: [{
78
- type: Inject,
79
- args: [LOCALE_ID]
80
- }] }] });
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhL3NyYy9saWIvZGlzcGVkaXQvZmFjdG9yLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUV2RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7O0FBRS9DLE1BQU0sVUFBVSxPQUFPLENBQ3JCLEtBQXlDO0lBRXpDLE9BQU8sQ0FBQyxDQUFDLEtBQUssSUFBSSxJQUFJLElBQUksS0FBSyxLQUFLLEVBQUUsSUFBSSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUVELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBc0I7SUFDaEQsNkJBQTZCO0lBQzdCLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzNFLE9BQU8sTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1FBQzlCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxLQUFLLGtCQUFrQixDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUNELE9BQU8sS0FBSyxDQUFDO0FBQ2YsQ0FBQztBQU1ELE1BQU0sT0FBTyxVQUFVO0lBQ3JCLFlBQXVDLE9BQWU7UUFBZixZQUFPLEdBQVAsT0FBTyxDQUFRO0lBQUcsQ0FBQztJQUUxRCxTQUFTLENBQ1AsS0FBZSxFQUNmLEtBQWEsRUFDYixVQUFtQixFQUNuQixNQUFlO1FBRWYsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ1gsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBQ0QsTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2hDLE1BQU0sTUFBTSxHQUFJLEtBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ2xDLE1BQU0sT0FBTyxHQUFHLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEMsSUFBSSxNQUFNLEdBQUksT0FBZSxDQUFDLE1BQU0sQ0FBQztRQUNyQyxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsQ0FBQztRQUNyQixNQUFNLEdBQUcsR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDaEMsT0FBTyxZQUFZLENBQUMsR0FBRyxHQUFHLE1BQU0sRUFBRSxNQUFNLEVBQUUsVUFBVSxDQUFDLENBQUM7SUFDeEQsQ0FBQzs4R0FwQlUsVUFBVSxrQkFDRCxTQUFTOzRHQURsQixVQUFVOzsyRkFBVixVQUFVO2tCQUp0QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxRQUFRO29CQUNkLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBRWMsTUFBTTsyQkFBQyxTQUFTOztBQTBCL0IsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFBdUMsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFBRyxDQUFDO0lBRTFELFNBQVMsQ0FDUCxLQUF5QyxFQUN6QyxLQUFlLEVBQ2YsS0FBYSxFQUNiLFVBQW1CLEVBQ25CLE1BQWU7UUFFZixJQUFJLENBQUMsS0FBSztZQUFFLE9BQU8sSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFFeEIsTUFBTSxHQUFHLE1BQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ2hDLHVDQUF1QztRQUN2QyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyx5QkFBeUI7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsQyxNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2hDLElBQUksTUFBTSxHQUFJLE9BQWUsQ0FBQyxNQUFNLENBQUM7UUFDckMsTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUM7UUFDckIsTUFBTSxHQUFHLEdBQUcsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLE9BQU8sWUFBWSxDQUFDLEdBQUcsR0FBRyxNQUFNLEVBQUUsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7OEdBdEJVLFdBQVcsa0JBQ0YsU0FBUzs0R0FEbEIsV0FBVzs7MkZBQVgsV0FBVztrQkFKdkIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsU0FBUztvQkFDZixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQUVjLE1BQU07MkJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgTE9DQUxFX0lELCBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgZm9ybWF0TnVtYmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsdWUoXG4gIHZhbHVlOiBudW1iZXIgfCBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiB2YWx1ZSBpcyBudW1iZXIgfCBzdHJpbmcge1xuICByZXR1cm4gISh2YWx1ZSA9PSBudWxsIHx8IHZhbHVlID09PSAnJyB8fCB2YWx1ZSAhPT0gdmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc3RyVG9OdW1iZXIodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IG51bWJlciB7XG4gIC8vIENvbnZlcnQgc3RyaW5ncyB0byBudW1iZXJzXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTihOdW1iZXIodmFsdWUpIC0gcGFyc2VGbG9hdCh2YWx1ZSkpKSB7XG4gICAgcmV0dXJuIE51bWJlcih2YWx1ZSk7XG4gIH1cbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ251bWJlcicpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7dmFsdWV9IGlzIG5vdCBhIG51bWJlcmApO1xuICB9XG4gIHJldHVybiB2YWx1ZTtcbn1cblxuQFBpcGUoe1xuICBuYW1lOiAnZmFjdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmFjdG9yUGlwZTxUIGV4dGVuZHMgRGF0YU1vZGVsPiBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KExPQ0FMRV9JRCkgcHJpdmF0ZSBfbG9jYWxlOiBzdHJpbmcpIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBUIHwgbnVsbCxcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGRpZ2l0c0luZm8/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gICk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdmFsdWUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsb2NhbGUgPSBsb2NhbGUgfHwgdGhpcy5fbG9jYWxlO1xuICAgIGNvbnN0IGZ2YWx1ZSA9ICh2YWx1ZSBhcyBhbnkpW2ZpZWxkXTtcbiAgICBpZiAoIWlzVmFsdWUoZnZhbHVlKSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbWFuYWdlciA9IHZhbHVlLkZNKGZpZWxkKTtcbiAgICBsZXQgZmFjdG9yID0gKG1hbmFnZXIgYXMgYW55KS5mYWN0b3I7XG4gICAgZmFjdG9yID0gZmFjdG9yIHx8IDE7XG4gICAgY29uc3QgbnVtID0gc3RyVG9OdW1iZXIoZnZhbHVlKTtcbiAgICByZXR1cm4gZm9ybWF0TnVtYmVyKG51bSAvIGZhY3RvciwgbG9jYWxlLCBkaWdpdHNJbmZvKTtcbiAgfVxufVxuXG5AUGlwZSh7XG4gIG5hbWU6ICdwZmFjdG9yJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUEZhY3RvclBpcGU8VCBleHRlbmRzIERhdGFNb2RlbD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgX2xvY2FsZTogc3RyaW5nKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCxcbiAgICBtb2RlbDogVCB8IG51bGwsXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICBkaWdpdHNJbmZvPzogc3RyaW5nLFxuICAgIGxvY2FsZT86IHN0cmluZ1xuICApOiBzdHJpbmcgfCBudWxsIHtcbiAgICBpZiAoIW1vZGVsKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gbnVsbDtcblxuICAgIGxvY2FsZSA9IGxvY2FsZSB8fCB0aGlzLl9sb2NhbGU7XG4gICAgLy8gVXNlIHZhbHVlIGZyb20gaW5wdXQsIG5vdCBmcm9tIG1vZGVsXG4gICAgY29uc3QgZnZhbHVlID0gdmFsdWU7IC8vIChtb2RlbCBhcyBhbnkpW2ZpZWxkXTtcbiAgICBpZiAoIWlzVmFsdWUoZnZhbHVlKSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgbWFuYWdlciA9IG1vZGVsLkZNKGZpZWxkKTtcbiAgICBsZXQgZmFjdG9yID0gKG1hbmFnZXIgYXMgYW55KS5mYWN0b3I7XG4gICAgZmFjdG9yID0gZmFjdG9yIHx8IDE7XG4gICAgY29uc3QgbnVtID0gc3RyVG9OdW1iZXIoZnZhbHVlKTtcbiAgICByZXR1cm4gZm9ybWF0TnVtYmVyKG51bSAvIGZhY3RvciwgbG9jYWxlLCBkaWdpdHNJbmZvKTtcbiAgfVxufVxuIl19
@@ -1,99 +0,0 @@
1
- import { DEFAULT_CURRENCY_CODE, Inject, LOCALE_ID, Pipe, } from '@angular/core';
2
- import { isValue, strToNumber } from './factor.pipe';
3
- import { formatCurrency, getCurrencySymbol } from '@angular/common';
4
- import * as i0 from "@angular/core";
5
- export class FactorcPipe {
6
- constructor(_locale, _defaultCurrencyCode = 'EUR') {
7
- this._locale = _locale;
8
- this._defaultCurrencyCode = _defaultCurrencyCode;
9
- }
10
- transform(value, field, currencyCode, display, digitsInfo, locale) {
11
- if (!value)
12
- return null;
13
- const fvalue = value[field];
14
- if (!isValue(fvalue))
15
- return null;
16
- locale = locale || this._locale;
17
- let currency = currencyCode || this._defaultCurrencyCode;
18
- if (!display) {
19
- display = 'symbol';
20
- }
21
- if (display !== 'code') {
22
- if (display === 'symbol' || display === 'symbol-narrow') {
23
- currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);
24
- }
25
- else {
26
- currency = display;
27
- }
28
- }
29
- const manager = value.FM(field);
30
- const factor = manager.factor || 1;
31
- const num = strToNumber(fvalue);
32
- return formatCurrency(num / factor, locale, currency, currencyCode, digitsInfo);
33
- }
34
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FactorcPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }
35
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: FactorcPipe, isStandalone: true, name: "factorc" }); }
36
- }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FactorcPipe, decorators: [{
38
- type: Pipe,
39
- args: [{
40
- name: 'factorc',
41
- standalone: true,
42
- }]
43
- }], ctorParameters: () => [{ type: undefined, decorators: [{
44
- type: Inject,
45
- args: [LOCALE_ID]
46
- }] }, { type: undefined, decorators: [{
47
- type: Inject,
48
- args: [DEFAULT_CURRENCY_CODE]
49
- }] }] });
50
- export class PFactorcPipe {
51
- constructor(_locale, _defaultCurrencyCode = 'EUR') {
52
- this._locale = _locale;
53
- this._defaultCurrencyCode = _defaultCurrencyCode;
54
- }
55
- transform(value, model, field, currencyCode, display, digitsInfo, locale) {
56
- if (!model)
57
- return null;
58
- if (!value)
59
- return null;
60
- // Use value from input, not from model
61
- const fvalue = value; // (model as any)[field];
62
- if (!isValue(fvalue)) {
63
- return null;
64
- }
65
- locale = locale || this._locale;
66
- let currency = currencyCode || this._defaultCurrencyCode;
67
- if (!display) {
68
- display = 'symbol';
69
- }
70
- if (display !== 'code') {
71
- if (display === 'symbol' || display === 'symbol-narrow') {
72
- currency = getCurrencySymbol(currency, display === 'symbol' ? 'wide' : 'narrow', locale);
73
- }
74
- else {
75
- currency = display;
76
- }
77
- }
78
- const manager = model.FM(field);
79
- const factor = manager.factor || 1;
80
- const num = strToNumber(fvalue);
81
- return formatCurrency(num / factor, locale, currency, currencyCode, digitsInfo);
82
- }
83
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PFactorcPipe, deps: [{ token: LOCALE_ID }, { token: DEFAULT_CURRENCY_CODE }], target: i0.ɵɵFactoryTarget.Pipe }); }
84
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.3.6", ngImport: i0, type: PFactorcPipe, isStandalone: true, name: "pfactorc" }); }
85
- }
86
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: PFactorcPipe, decorators: [{
87
- type: Pipe,
88
- args: [{
89
- name: 'pfactorc',
90
- standalone: true,
91
- }]
92
- }], ctorParameters: () => [{ type: undefined, decorators: [{
93
- type: Inject,
94
- args: [LOCALE_ID]
95
- }] }, { type: undefined, decorators: [{
96
- type: Inject,
97
- args: [DEFAULT_CURRENCY_CODE]
98
- }] }] });
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yYy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2Rpc3BlZGl0L2ZhY3RvcmMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wscUJBQXFCLEVBQ3JCLE1BQU0sRUFDTixTQUFTLEVBQ1QsSUFBSSxHQUVMLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JELE9BQU8sRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFNcEUsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDNkIsT0FBZSxFQUNILHVCQUErQixLQUFLO1FBRGhELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFDSCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQWdCO0lBQzFFLENBQUM7SUFFSixTQUFTLENBQ1AsS0FBZSxFQUNmLEtBQWEsRUFDYixZQUFxQixFQUNyQixPQUFzRCxFQUN0RCxVQUFtQixFQUNuQixNQUFlO1FBRWYsSUFBSSxDQUFDLEtBQUs7WUFBRSxPQUFPLElBQUksQ0FBQztRQUN4QixNQUFNLE1BQU0sR0FBSSxLQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7WUFBRSxPQUFPLElBQUksQ0FBQztRQUNsQyxNQUFNLEdBQUcsTUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDaEMsSUFBSSxRQUFRLEdBQVcsWUFBWSxJQUFJLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztRQUNqRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDYixPQUFPLEdBQUcsUUFBUSxDQUFDO1FBQ3JCLENBQUM7UUFDRCxJQUFJLE9BQU8sS0FBSyxNQUFNLEVBQUUsQ0FBQztZQUN2QixJQUFJLE9BQU8sS0FBSyxRQUFR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WTs7MkZBQVosWUFBWTtrQkFKeEIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFHSSxNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixNQUFNOzJCQUFDLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSxcbiAgSW5qZWN0LFxuICBMT0NBTEVfSUQsXG4gIFBpcGUsXG4gIFBpcGVUcmFuc2Zvcm0sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IGlzVmFsdWUsIHN0clRvTnVtYmVyIH0gZnJvbSAnLi9mYWN0b3IucGlwZSc7XG5pbXBvcnQgeyBmb3JtYXRDdXJyZW5jeSwgZ2V0Q3VycmVuY3lTeW1ib2wgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdmYWN0b3JjJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRmFjdG9yY1BpcGU8VCBleHRlbmRzIERhdGFNb2RlbD4gaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgX2xvY2FsZTogc3RyaW5nLFxuICAgIEBJbmplY3QoREVGQVVMVF9DVVJSRU5DWV9DT0RFKSBwcml2YXRlIF9kZWZhdWx0Q3VycmVuY3lDb2RlOiBzdHJpbmcgPSAnRVVSJ1xuICApIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIHZhbHVlOiBUIHwgbnVsbCxcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGN1cnJlbmN5Q29kZT86IHN0cmluZyxcbiAgICBkaXNwbGF5PzogJ2NvZGUnIHwgJ3N5bWJvbCcgfCAnc3ltYm9sLW5hcnJvdycgfCBzdHJpbmcsXG4gICAgZGlnaXRzSW5mbz86IHN0cmluZyxcbiAgICBsb2NhbGU/OiBzdHJpbmdcbiAgKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuIG51bGw7XG4gICAgY29uc3QgZnZhbHVlID0gKHZhbHVlIGFzIGFueSlbZmllbGRdO1xuICAgIGlmICghaXNWYWx1ZShmdmFsdWUpKSByZXR1cm4gbnVsbDtcbiAgICBsb2NhbGUgPSBsb2NhbGUgfHwgdGhpcy5fbG9jYWxlO1xuICAgIGxldCBjdXJyZW5jeTogc3RyaW5nID0gY3VycmVuY3lDb2RlIHx8IHRoaXMuX2RlZmF1bHRDdXJyZW5jeUNvZGU7XG4gICAgaWYgKCFkaXNwbGF5KSB7XG4gICAgICBkaXNwbGF5ID0gJ3N5bWJvbCc7XG4gICAgfVxuICAgIGlmIChkaXNwbGF5ICE9PSAnY29kZScpIHtcbiAgICAgIGlmIChkaXNwbGF5ID09PSAnc3ltYm9sJyB8fCBkaXNwbGF5ID09PSAnc3ltYm9sLW5hcnJvdycpIHtcbiAgICAgICAgY3VycmVuY3kgPSBnZXRDdXJyZW5jeVN5bWJvbChcbiAgICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgICBkaXNwbGF5ID09PSAnc3ltYm9sJyA/ICd3aWRlJyA6ICduYXJyb3cnLFxuICAgICAgICAgIGxvY2FsZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVuY3kgPSBkaXNwbGF5ITtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtYW5hZ2VyID0gdmFsdWUuRk0oZmllbGQpO1xuICAgIGNvbnN0IGZhY3RvciA9IChtYW5hZ2VyIGFzIGFueSkuZmFjdG9yIHx8IDE7XG4gICAgY29uc3QgbnVtID0gc3RyVG9OdW1iZXIoZnZhbHVlKTtcbiAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3koXG4gICAgICBudW0gLyBmYWN0b3IsXG4gICAgICBsb2NhbGUsXG4gICAgICBjdXJyZW5jeSxcbiAgICAgIGN1cnJlbmN5Q29kZSxcbiAgICAgIGRpZ2l0c0luZm9cbiAgICApO1xuICB9XG59XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3BmYWN0b3JjJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUEZhY3RvcmNQaXBlPFQgZXh0ZW5kcyBEYXRhTW9kZWw+IGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyxcbiAgICBASW5qZWN0KERFRkFVTFRfQ1VSUkVOQ1lfQ09ERSkgcHJpdmF0ZSBfZGVmYXVsdEN1cnJlbmN5Q29kZTogc3RyaW5nID0gJ0VVUidcbiAgKSB7fVxuXG4gIHRyYW5zZm9ybShcbiAgICB2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgdW5kZWZpbmVkIHwgbnVsbCxcbiAgICBtb2RlbDogVCB8IG51bGwsXG4gICAgZmllbGQ6IHN0cmluZyxcbiAgICBjdXJyZW5jeUNvZGU/OiBzdHJpbmcsXG4gICAgZGlzcGxheT86ICdjb2RlJyB8ICdzeW1ib2wnIHwgJ3N5bWJvbC1uYXJyb3cnIHwgc3RyaW5nLFxuICAgIGRpZ2l0c0luZm8/OiBzdHJpbmcsXG4gICAgbG9jYWxlPzogc3RyaW5nXG4gICk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghbW9kZWwpIHJldHVybiBudWxsO1xuICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuICAgIC8vIFVzZSB2YWx1ZSBmcm9tIGlucHV0LCBub3QgZnJvbSBtb2RlbFxuICAgIGNvbnN0IGZ2YWx1ZSA9IHZhbHVlOyAvLyAobW9kZWwgYXMgYW55KVtmaWVsZF07XG4gICAgaWYgKCFpc1ZhbHVlKGZ2YWx1ZSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBsb2NhbGUgPSBsb2NhbGUgfHwgdGhpcy5fbG9jYWxlO1xuICAgIGxldCBjdXJyZW5jeTogc3RyaW5nID0gY3VycmVuY3lDb2RlIHx8IHRoaXMuX2RlZmF1bHRDdXJyZW5jeUNvZGU7XG4gICAgaWYgKCFkaXNwbGF5KSB7XG4gICAgICBkaXNwbGF5ID0gJ3N5bWJvbCc7XG4gICAgfVxuICAgIGlmIChkaXNwbGF5ICE9PSAnY29kZScpIHtcbiAgICAgIGlmIChkaXNwbGF5ID09PSAnc3ltYm9sJyB8fCBkaXNwbGF5ID09PSAnc3ltYm9sLW5hcnJvdycpIHtcbiAgICAgICAgY3VycmVuY3kgPSBnZXRDdXJyZW5jeVN5bWJvbChcbiAgICAgICAgICBjdXJyZW5jeSxcbiAgICAgICAgICBkaXNwbGF5ID09PSAnc3ltYm9sJyA/ICd3aWRlJyA6ICduYXJyb3cnLFxuICAgICAgICAgIGxvY2FsZVxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY3VycmVuY3kgPSBkaXNwbGF5ITtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtYW5hZ2VyID0gbW9kZWwuRk0oZmllbGQpO1xuICAgIGNvbnN0IGZhY3RvciA9IChtYW5hZ2VyIGFzIGFueSkuZmFjdG9yIHx8IDE7XG4gICAgY29uc3QgbnVtID0gc3RyVG9OdW1iZXIoZnZhbHVlKTtcbiAgICByZXR1cm4gZm9ybWF0Q3VycmVuY3koXG4gICAgICBudW0gLyBmYWN0b3IsXG4gICAgICBsb2NhbGUsXG4gICAgICBjdXJyZW5jeSxcbiAgICAgIGN1cnJlbmN5Q29kZSxcbiAgICAgIGRpZ2l0c0luZm9cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,139 +0,0 @@
1
- import { Component, DestroyRef, EventEmitter, inject, Input, Output, } from '@angular/core';
2
- import { debounceTime, distinctUntilChanged } from 'rxjs';
3
- import { switchMap } from 'rxjs/operators';
4
- import { ReactiveFormsModule, UntypedFormControl } from '@angular/forms';
5
- import { CommonModule } from '@angular/common';
6
- import { NgbTypeaheadModule } from '@ng-bootstrap/ng-bootstrap';
7
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
8
- import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "@angular/forms";
11
- import * as i3 from "@ng-bootstrap/ng-bootstrap";
12
- export class FkselectComponent {
13
- constructor() {
14
- this.edit = false;
15
- this.update = false;
16
- this.filter = {};
17
- this.mode = 'auto';
18
- this.search = 'search';
19
- // Display
20
- this.label = '';
21
- this.placeholder = '';
22
- this.inputClasses = [];
23
- this.selected = new EventEmitter();
24
- this.cancelled = new EventEmitter();
25
- this.cleared = new EventEmitter();
26
- this.searchFn = this._search.bind(this);
27
- this.displayFn = this._display.bind(this);
28
- this.destroy$ = inject(DestroyRef);
29
- }
30
- ngOnInit() {
31
- // Create queryset if not given
32
- // queryset is create through model
33
- if (!this.queryset && this.collection) {
34
- this.queryset = this.collection.queryset();
35
- }
36
- else if (!this.queryset && this.model && this.model._collection) {
37
- this.collection = this.model._collection;
38
- this.queryset = this.collection.queryset();
39
- }
40
- this.fc = new UntypedFormControl('');
41
- this.fc.valueChanges
42
- .pipe(takeUntilDestroyed(this.destroy$), distinctUntilChanged())
43
- .subscribe((value) => {
44
- if (value) {
45
- this.selected.emit(value);
46
- }
47
- });
48
- if (this.display) {
49
- if (this.display && typeof this.display === 'string') {
50
- this._tpl = (model) => `${model[this.display]}`;
51
- }
52
- else if (this.display && typeof this.display === 'function') {
53
- this._tpl = this.display.bind(this);
54
- }
55
- }
56
- else {
57
- this._tpl = (model) => `${model['name'] ||
58
- model['title'] ||
59
- model['id']}`;
60
- }
61
- }
62
- clearAction() {
63
- this.cleared.emit();
64
- }
65
- /**
66
- * Display function. Uses descfield or desc tpl (lodash template using model fields).
67
- */
68
- _display(x) {
69
- if (x) {
70
- if (x._display) {
71
- if (x._display instanceof Function) {
72
- return x._display();
73
- }
74
- else {
75
- return x._display;
76
- }
77
- }
78
- if (this._tpl) {
79
- return this._tpl(x);
80
- }
81
- }
82
- return '';
83
- }
84
- _search(text$) {
85
- return text$.pipe(takeUntilDestroyed(this.destroy$), debounceTime(750), distinctUntilChanged(), switchMap((term) => {
86
- const f = {};
87
- for (const k of Object.keys(this.filter)) {
88
- if (this.filter[k] !== null || this.filter[k] !== undefined) {
89
- f[k] = this.filter[k];
90
- }
91
- }
92
- f[this.search] = term;
93
- const qs = this.queryset;
94
- qs.filter(f, true);
95
- return qs.get();
96
- }));
97
- }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FkselectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: FkselectComponent, isStandalone: true, selector: "data-fkselect", inputs: { model: "model", field: "field", edit: "edit", value: "value", queryset: "queryset", collection: "collection", update: "update", filter: "filter", mode: "mode", display: "display", search: "search", label: "label", placeholder: "placeholder", inputClasses: "inputClasses" }, outputs: { selected: "selected", cancelled: "cancelled", cleared: "cleared" }, ngImport: i0, template: "\n<div class=\"form-group\">\n <label *ngIf=\"label\">{{label}}</label>\n <div class=\"input-group\">\n <input class=\"form-control\" [formControl]=\"fc\" [placeholder]=\"placeholder\" [ngbTypeahead]=\"searchFn\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"displayFn\" [resultFormatter]=\"displayFn\" (keyup.escape)=\"cancelled.emit()\">\n <div class=\"input-group-text\"><i class=\"bi bi-trash float-end pointer\" (click)=\"clearAction()\"></i></div>\n </div>\n</div>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: NgbTypeaheadModule }, { kind: "directive", type: i3.NgbTypeahead, selector: "input[ngbTypeahead]", inputs: ["autocomplete", "container", "editable", "focusFirst", "inputFormatter", "ngbTypeahead", "resultFormatter", "resultTemplate", "selectOnExact", "showHint", "placement", "popperOptions", "popupClass"], outputs: ["selectItem"], exportAs: ["ngbTypeahead"] }] }); }
100
- }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FkselectComponent, decorators: [{
102
- type: Component,
103
- args: [{ selector: 'data-fkselect', standalone: true, imports: [CommonModule, ReactiveFormsModule, NgbTypeaheadModule], template: "\n<div class=\"form-group\">\n <label *ngIf=\"label\">{{label}}</label>\n <div class=\"input-group\">\n <input class=\"form-control\" [formControl]=\"fc\" [placeholder]=\"placeholder\" [ngbTypeahead]=\"searchFn\" [editable]=\"false\" [focusFirst]=\"true\" [inputFormatter]=\"displayFn\" [resultFormatter]=\"displayFn\" (keyup.escape)=\"cancelled.emit()\">\n <div class=\"input-group-text\"><i class=\"bi bi-trash float-end pointer\" (click)=\"clearAction()\"></i></div>\n </div>\n</div>" }]
104
- }], ctorParameters: () => [], propDecorators: { model: [{
105
- type: Input
106
- }], field: [{
107
- type: Input
108
- }], edit: [{
109
- type: Input
110
- }], value: [{
111
- type: Input
112
- }], queryset: [{
113
- type: Input
114
- }], collection: [{
115
- type: Input
116
- }], update: [{
117
- type: Input
118
- }], filter: [{
119
- type: Input
120
- }], mode: [{
121
- type: Input
122
- }], display: [{
123
- type: Input
124
- }], search: [{
125
- type: Input
126
- }], label: [{
127
- type: Input
128
- }], placeholder: [{
129
- type: Input
130
- }], inputClasses: [{
131
- type: Input
132
- }], selected: [{
133
- type: Output
134
- }], cancelled: [{
135
- type: Output
136
- }], cleared: [{
137
- type: Output
138
- }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmtzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2Rpc3BlZGl0L2Zrc2VsZWN0L2Zrc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9ma3NlbGVjdC9ma3NlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFJdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxvQkFBb0IsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQVdoRSxNQUFNLE9BQU8saUJBQWlCO0lBZ0M1QjtRQTFCZ0IsU0FBSSxHQUFHLEtBQUssQ0FBQztRQU1iLFdBQU0sR0FBWSxLQUFLLENBQUM7UUFDeEIsV0FBTSxHQUFlLEVBQUUsQ0FBQztRQUN4QixTQUFJLEdBQXVDLE1BQU0sQ0FBQztRQUVsRCxXQUFNLEdBQUcsUUFBUSxDQUFDO1FBRWxDLFVBQVU7UUFDTSxVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFDakIsaUJBQVksR0FBc0IsRUFBRSxDQUFDO1FBRXBDLGFB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QkFBbUIseWtCQUFFLGtCQUFrQjs7MkZBRXBELGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDRSxlQUFlLGNBR2IsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO3dEQU1oRCxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFFVSxLQUFLO3NCQUFwQixLQUFLO2dCQUVVLFFBQVE7c0JBQXZCLEtBQUs7Z0JBQ1UsVUFBVTtzQkFBekIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBQ1UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLE1BQU07c0JBQXJCLEtBQUs7Z0JBR1UsS0FBSztzQkFBcEIsS0FBSztnQkFDVSxXQUFXO3NCQUExQixLQUFLO2dCQUNVLFlBQVk7c0JBQTNCLEtBQUs7Z0JBRVcsUUFBUTtzQkFBeEIsTUFBTTtnQkFDVSxTQUFTO3NCQUF6QixNQUFNO2dCQUNVLE9BQU87c0JBQXZCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIERlc3Ryb3lSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YU1vZGVsIH0gZnJvbSAnLi4vLi4vZGF0YS9kYXRhLW1vZGVsJztcbmltcG9ydCB7IEZpbHRlckRhdGEsIFF1ZXJ5c2V0IH0gZnJvbSAnLi4vLi4vZGF0YS9kYXRhLXF1ZXJ5JztcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtY29sbGVjdGlvbic7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdiVHlwZWFoZWFkTW9kdWxlIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgdHlwZSBUcGxGdW48VCBleHRlbmRzIERhdGFNb2RlbD4gPSAoZGF0YTogVCkgPT4gc3RyaW5nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRhLWZrc2VsZWN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zrc2VsZWN0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmtzZWxlY3QuY29tcG9uZW50LnNhc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgTmdiVHlwZWFoZWFkTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgRmtzZWxlY3RDb21wb25lbnQ8VCBleHRlbmRzIERhdGFNb2RlbCwgUiBleHRlbmRzIERhdGFNb2RlbD5cbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgLy8gTW9kZWwgZmllbGQgdmFsdWUgJiB1cGRhdGUgZGF0YVxuICBASW5wdXQoKSBwdWJsaWMgbW9kZWw/OiBUO1xuICBASW5wdXQoKSBwdWJsaWMgZmllbGQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBlZGl0ID0gZmFsc2U7XG4gIC8vIFJhdyB2YWx1ZVxuICBASW5wdXQoKSBwdWJsaWMgdmFsdWU/OiBSO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBxdWVyeXNldD86IFF1ZXJ5c2V0PFI+O1xuICBASW5wdXQoKSBwdWJsaWMgY29sbGVjdGlvbj86IENvbGxlY3Rpb248Uj47XG4gIEBJbnB1dCgpIHB1YmxpYyB1cGRhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGZpbHRlcjogRmlsdGVyRGF0YSA9IHt9O1xuICBASW5wdXQoKSBwdWJsaWMgbW9kZTogJ2F1dG9jb21wbGV0ZScgfCAnc2VsZWN0JyB8ICdhdXRvJyA9ICdhdXRvJztcbiAgQElucHV0KCkgcHVibGljIGRpc3BsYXk/OiBzdHJpbmcgfCBUcGxGdW48Uj47XG4gIEBJbnB1dCgpIHB1YmxpYyBzZWFyY2ggPSAnc2VhcmNoJztcblxuICAvLyBEaXNwbGF5XG4gIEBJbnB1dCgpIHB1YmxpYyBsYWJlbCA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgcGxhY2Vob2xkZXIgPSAnJztcbiAgQElucHV0KCkgcHVibGljIGlucHV0Q2xhc3Nlczogc3RyaW5nW10gfCBzdHJpbmcgPSBbXTtcblxuICBAT3V0cHV0KCkgcHVibGljIHNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxUPigpO1xuICBAT3V0cHV0KCkgcHVibGljIGNhbmNlbGxlZCA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjbGVhcmVkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBwdWJsaWMgZmMhOiBVbnR5cGVkRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBzZWFyY2hGbiA9IHRoaXMuX3NlYXJjaC5iaW5kKHRoaXMpO1xuICBwdWJsaWMgZGlzcGxheUZuID0gdGhpcy5fZGlzcGxheS5iaW5kKHRoaXMpO1xuICBwcml2YXRlIF90cGwhOiBUcGxGdW48Uj47XG4gIHByaXZhdGUgZGVzdHJveSQgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvLyBDcmVhdGUgcXVlcnlzZXQgaWYgbm90IGdpdmVuXG4gICAgLy8gcXVlcnlzZXQgaXMgY3JlYXRlIHRocm91Z2ggbW9kZWxcbiAgICBpZiAoIXRoaXMucXVlcnlzZXQgJiYgdGhpcy5jb2xsZWN0aW9uKSB7XG4gICAgICB0aGlzLnF1ZXJ5c2V0ID0gdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5c2V0KCk7XG4gICAgfSBlbHNlIGlmICghdGhpcy5xdWVyeXNldCAmJiB0aGlzLm1vZGVsICYmIHRoaXMubW9kZWwuX2NvbGxlY3Rpb24pIHtcbiAgICAgIHRoaXMuY29sbGVjdGlvbiA9IHRoaXMubW9kZWwuX2NvbGxlY3Rpb247XG4gICAgICB0aGlzLnF1ZXJ5c2V0ID0gdGhpcy5jb2xsZWN0aW9uLnF1ZXJ5c2V0KCk7XG4gICAgfVxuICAgIHRoaXMuZmMgPSBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKTtcbiAgICB0aGlzLmZjLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgaWYgKHRoaXMuZGlzcGxheSkge1xuICAgICAgaWYgKHRoaXMuZGlzcGxheSAmJiB0eXBlb2YgdGhpcy5kaXNwbGF5ID09PSAnc3RyaW5nJykge1xuICAgICAgICB0aGlzLl90cGwgPSAobW9kZWw6IFIpID0+IGAkeyhtb2RlbCBhcyBhbnkpW3RoaXMuZGlzcGxheSBhcyBzdHJpbmddfWA7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuZGlzcGxheSAmJiB0eXBlb2YgdGhpcy5kaXNwbGF5ID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHRoaXMuX3RwbCA9IHRoaXMuZGlzcGxheS5iaW5kKHRoaXMpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl90cGwgPSAobW9kZWw6IFIpID0+XG4gICAgICAgIGAke1xuICAgICAgICAgIChtb2RlbCBhcyBhbnkpWyduYW1lJ10gfHxcbiAgICAgICAgICAobW9kZWwgYXMgYW55KVsndGl0bGUnXSB8fFxuICAgICAgICAgIChtb2RlbCBhcyBhbnkpWydpZCddXG4gICAgICAgIH1gO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbGVhckFjdGlvbigpOiB2b2lkIHtcbiAgICB0aGlzLmNsZWFyZWQuZW1pdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERpc3BsYXkgZnVuY3Rpb24uIFVzZXMgZGVzY2ZpZWxkIG9yIGRlc2MgdHBsIChsb2Rhc2ggdGVtcGxhdGUgdXNpbmcgbW9kZWwgZmllbGRzKS5cbiAgICovXG4gIHByaXZhdGUgX2Rpc3BsYXkoeDogYW55KTogYW55IHtcbiAgICBpZiAoeCkge1xuICAgICAgaWYgKHguX2Rpc3BsYXkpIHtcbiAgICAgICAgaWYgKHguX2Rpc3BsYXkgaW5zdGFuY2VvZiBGdW5jdGlvbikge1xuICAgICAgICAgIHJldHVybiB4Ll9kaXNwbGF5KCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHguX2Rpc3BsYXk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl90cGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RwbCh4KTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2VhcmNoKHRleHQkOiBPYnNlcnZhYmxlPHN0cmluZz4pOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIHJldHVybiB0ZXh0JC5waXBlKFxuICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveSQpLFxuICAgICAgZGVib3VuY2VUaW1lKDc1MCksXG4gICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuICAgICAgc3dpdGNoTWFwKCh0ZXJtKSA9PiB7XG4gICAgICAgIGNvbnN0IGY6IGFueSA9IHt9O1xuICAgICAgICBmb3IgKGNvbnN0IGsgb2YgT2JqZWN0LmtleXModGhpcy5maWx0ZXIpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyW2tdICE9PSBudWxsIHx8IHRoaXMuZmlsdGVyW2tdICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIGZba10gPSB0aGlzLmZpbHRlcltrXTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgZlt0aGlzLnNlYXJjaF0gPSB0ZXJtO1xuICAgICAgICBjb25zdCBxcyA9IHRoaXMucXVlcnlzZXQgYXMgUXVlcnlzZXQ8YW55PjtcbiAgICAgICAgcXMuZmlsdGVyKGYsIHRydWUpO1xuICAgICAgICByZXR1cm4gcXMuZ2V0KCk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG59XG4iLCJcbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCI+XG4gIDxsYWJlbCAqbmdJZj1cImxhYmVsXCI+e3tsYWJlbH19PC9sYWJlbD5cbiAgPGRpdiBjbGFzcz1cImlucHV0LWdyb3VwXCI+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgW2Zvcm1Db250cm9sXT1cImZjXCIgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCIgW25nYlR5cGVhaGVhZF09XCJzZWFyY2hGblwiIFtlZGl0YWJsZV09XCJmYWxzZVwiIFtmb2N1c0ZpcnN0XT1cInRydWVcIiBbaW5wdXRGb3JtYXR0ZXJdPVwiZGlzcGxheUZuXCIgW3Jlc3VsdEZvcm1hdHRlcl09XCJkaXNwbGF5Rm5cIiAoa2V5dXAuZXNjYXBlKT1cImNhbmNlbGxlZC5lbWl0KClcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiPjxpIGNsYXNzPVwiYmkgYmktdHJhc2ggZmxvYXQtZW5kIHBvaW50ZXJcIiAoY2xpY2spPVwiY2xlYXJBY3Rpb24oKVwiPjwvaT48L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj4iXX0=
@@ -1,137 +0,0 @@
1
- import { Component, DestroyRef, inject, Input } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { debounceTime, firstValueFrom } from 'rxjs';
4
- import { FormControl, ReactiveFormsModule } from '@angular/forms';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import * as i0 from "@angular/core";
7
- import * as i1 from "../../messages/message.service";
8
- import * as i2 from "@angular/common";
9
- import * as i3 from "@angular/forms";
10
- export class FlagsComponent {
11
- constructor(_msg) {
12
- this._msg = _msg;
13
- this.field = 'flags';
14
- // FIXME: make all flags endpoint as optional parameters
15
- this.get_flags_endpoint = 'get_flags';
16
- this.edit = false;
17
- this.editable = true;
18
- this.free = false;
19
- this.create = true;
20
- this.action = false; // if set to true, use add_flag and remove_flag model actions
21
- this.curflags = [];
22
- this.txtflag = '';
23
- this.selflag = '';
24
- this.flaglist = [];
25
- this.destroy$ = inject(DestroyRef);
26
- }
27
- async ngOnInit() {
28
- if (!this.flags && this.model._collection) {
29
- this.flags = this.model._collection.action(null, 'GET', this.get_flags_endpoint);
30
- }
31
- if (this.model && this.field && this.model[this.field]) {
32
- this.curflags = this.model[this.field];
33
- }
34
- else {
35
- console.warn('Model or field problem in flagsfield component');
36
- this.curflags = [];
37
- }
38
- this.ft = new FormControl('');
39
- this.fs = new FormControl('');
40
- this.fs.valueChanges
41
- .pipe(takeUntilDestroyed(this.destroy$), debounceTime(250))
42
- .subscribe((value) => {
43
- if (value) {
44
- this.addFlag(value);
45
- }
46
- });
47
- }
48
- async addFreeFlag() {
49
- await this.addFlag(this.ft.value);
50
- }
51
- async addFlag(flag) {
52
- if (!this.flagPresent(flag)) {
53
- this.curflags.push(flag);
54
- if (this.action) {
55
- try {
56
- await firstValueFrom(this.model.action('POST', 'add_flag', { body: { flag } }));
57
- this._msg.success('Flag enregistré avec succès');
58
- }
59
- catch (e) {
60
- this._msg.error('Erreur lors de la sauvegarde', e);
61
- }
62
- }
63
- else {
64
- await this.update();
65
- }
66
- }
67
- }
68
- async update() {
69
- this.model[this.field] = this.curflags;
70
- try {
71
- await firstValueFrom(this.model.update([this.field]));
72
- this.fs.setValue('', { emitEvent: false });
73
- this.ft.setValue('', { emitEvent: false });
74
- this._msg.success('Flag enregistré avec succès');
75
- }
76
- catch (error) {
77
- this._msg.error('Erreur lors de la sauvegarde', `API Return : ${error}`, error._body);
78
- }
79
- }
80
- flagPresent(flag) {
81
- return this.curflags.findIndex((f) => flag === f) !== -1;
82
- }
83
- async removeFlag(flag) {
84
- this.curflags.splice(this.curflags.findIndex((f) => flag === f), 1);
85
- if (this.action) {
86
- try {
87
- await firstValueFrom(this.model.action('POST', 'remove_flag', { body: { flag } }));
88
- this._msg.success('Removed');
89
- }
90
- catch (e) {
91
- this._msg.error('Removing flag failed', e);
92
- }
93
- }
94
- else {
95
- await this.update();
96
- }
97
- }
98
- async toggleEdit() {
99
- if (this.editable) {
100
- if (!this.edit) {
101
- this.flaglist = await firstValueFrom(this.flags);
102
- this.edit = true;
103
- }
104
- else {
105
- this.edit = false;
106
- }
107
- }
108
- else {
109
- this.edit = false;
110
- }
111
- }
112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FlagsComponent, deps: [{ token: i1.DataMessageService }], target: i0.ɵɵFactoryTarget.Component }); }
113
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.6", type: FlagsComponent, isStandalone: true, selector: "data-flags", inputs: { model: "model", field: "field", get_flags_endpoint: "get_flags_endpoint", edit: "edit", editable: "editable", flags: "flags", free: "free", create: "create", action: "action" }, ngImport: i0, template: "\n<dt (click)=\"toggleEdit()\" role=\"button\">\n <ng-content></ng-content>\n</dt>\n<dd *ngIf=\"!edit\" (click)=\"toggleEdit()\" role=\"button\"><span class=\"badge bg-info me-1\" *ngFor=\"let flag of curflags\">{{flag}}</span></dd>\n<dd *ngIf=\"edit\">\n <div class=\"row\">\n <ng-container *ngIf=\"!free\">\n <div class=\"col\">\n <select class=\"form-select form-select-sm\" [formControl]=\"fs\">\n <option *ngFor=\"let flag of flaglist\" [value]=\"flag.flag\">{{flag.flag}}<span class=\"ms-1\" *ngIf=\"flag.count\">({{flag.count}})</span></option>\n </select>\n </div>\n <div class=\"col\" *ngIf=\"create\">\n <input class=\"form-control form-control-sm\" placeholder=\"Nouveau flag\" [formControl]=\"ft\" (keyup.enter)=\"addFreeFlag()\">\n </div>\n </ng-container>\n <ng-container *ngIf=\"free\">\n <div class=\"col-12\">\n <input class=\"form-control form-select-sm\" placeholder=\"Nouveau flag\" [formControl]=\"ft\" (keyup.enter)=\"addFreeFlag()\" (keyup.escape)=\"toggleEdit()\">\n </div>\n </ng-container>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12\"><span class=\"badge bg-info me-1\" *ngFor=\"let flag of curflags\" (click)=\"removeFlag(flag)\" role=\"button\"><i class=\"bi bi-trash me-1\"></i>{{flag}}</span><i class=\"bi bi-x-lg text-muted ms-2\" role=\"button\" (click)=\"toggleEdit()\"></i></div>\n </div>\n</dd>", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] }); }
114
- }
115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.6", ngImport: i0, type: FlagsComponent, decorators: [{
116
- type: Component,
117
- args: [{ selector: 'data-flags', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "\n<dt (click)=\"toggleEdit()\" role=\"button\">\n <ng-content></ng-content>\n</dt>\n<dd *ngIf=\"!edit\" (click)=\"toggleEdit()\" role=\"button\"><span class=\"badge bg-info me-1\" *ngFor=\"let flag of curflags\">{{flag}}</span></dd>\n<dd *ngIf=\"edit\">\n <div class=\"row\">\n <ng-container *ngIf=\"!free\">\n <div class=\"col\">\n <select class=\"form-select form-select-sm\" [formControl]=\"fs\">\n <option *ngFor=\"let flag of flaglist\" [value]=\"flag.flag\">{{flag.flag}}<span class=\"ms-1\" *ngIf=\"flag.count\">({{flag.count}})</span></option>\n </select>\n </div>\n <div class=\"col\" *ngIf=\"create\">\n <input class=\"form-control form-control-sm\" placeholder=\"Nouveau flag\" [formControl]=\"ft\" (keyup.enter)=\"addFreeFlag()\">\n </div>\n </ng-container>\n <ng-container *ngIf=\"free\">\n <div class=\"col-12\">\n <input class=\"form-control form-select-sm\" placeholder=\"Nouveau flag\" [formControl]=\"ft\" (keyup.enter)=\"addFreeFlag()\" (keyup.escape)=\"toggleEdit()\">\n </div>\n </ng-container>\n </div>\n <div class=\"row\">\n <div class=\"col-sm-12\"><span class=\"badge bg-info me-1\" *ngFor=\"let flag of curflags\" (click)=\"removeFlag(flag)\" role=\"button\"><i class=\"bi bi-trash me-1\"></i>{{flag}}</span><i class=\"bi bi-x-lg text-muted ms-2\" role=\"button\" (click)=\"toggleEdit()\"></i></div>\n </div>\n</dd>" }]
118
- }], ctorParameters: () => [{ type: i1.DataMessageService }], propDecorators: { model: [{
119
- type: Input
120
- }], field: [{
121
- type: Input
122
- }], get_flags_endpoint: [{
123
- type: Input
124
- }], edit: [{
125
- type: Input
126
- }], editable: [{
127
- type: Input
128
- }], flags: [{
129
- type: Input
130
- }], free: [{
131
- type: Input
132
- }], create: [{
133
- type: Input
134
- }], action: [{
135
- type: Input
136
- }] } });
137
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZ3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS9zcmMvbGliL2Rpc3BlZGl0L2ZsYWdzL2ZsYWdzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGEvc3JjL2xpYi9kaXNwZWRpdC9mbGFncy9mbGFncy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQzdFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLGNBQWMsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7Ozs7O0FBY2hFLE1BQU0sT0FBTyxjQUFjO0lBbUJ6QixZQUFvQixJQUF3QjtRQUF4QixTQUFJLEdBQUosSUFBSSxDQUFvQjtRQWpCNUIsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQUNoQyx3REFBd0Q7UUFDeEMsdUJBQWtCLEdBQUcsV0FBVyxDQUFDO1FBQ2pDLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFZLElBQUksQ0FBQztRQUV6QixTQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2IsV0FBTSxHQUFHLElBQUksQ0FBQztRQUNkLFdBQU0sR0FBRyxLQUFLLENBQUMsQ0FBQyw2REFBNkQ7UUFHdEYsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQUN4QixZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBQzFCLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7SUFFUyxDQUFDO0lBRXpDLEtBQUssQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQ3hDLElBQUksRUFDSixLQUFLLEVBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFLLElBQUksQ0FBQyxLQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDaEUsSUFBSSxDQUFDLFFBQVEsR0FBSSxJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sQ0FBQyxJQUFJLENBQUMsZ0RBQWdELENBQUMsQ0FBQztZQUMvRCxJQUFJLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNyQixDQUFDO1FBQ0QsSUFBSSxDQUFDLEVBQUUsR0FBRyxJQUFJLFdBQVcsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzlCLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWTthQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQzthQUMxRCxTQUFTLENBQUMsQ0FBQyxLQUFhLEVBQUUsRUFBRTtZQUMzQixJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFTSxLQUFLLENBQUMsT0FBTyxDQUFDLElBQVk7UUFDL0IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6QixJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDaEIsSUFBSSxDQUFDO29CQUNILE1BQU0sY0FBYyxDQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsVUFBVSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUMxRCxDQUFDO29CQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBQUM7Z0JBQ25ELENBQUM7Z0JBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztvQkFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyw4QkFBOEIsRUFBRSxDQUFRLENBQUMsQ0FBQztnQkFDNUQsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFTSxLQUFLLENBQUMsTUFBTTtRQUNoQixJQUFJLENBQUMsS0FBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ2hELElBQUksQ0FBQztZQUNILE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0RCxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUMzQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyw2QkFBNkIsQ0FBQyxDQUFDO1FBQ25ELENBQUM7UUFBQyxPQUFPLEtBQUssRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQ2IsOEJBQThCLEVBQzlCLGdCQUFnQixLQUFLLEVBQUUsRUFDdEIsS0FBYSxDQUFDLEtBQUssQ0FDckIsQ0FBQztRQUNKLENBQUM7SUFDSCxDQUFDO0lBRU0sV0FBVyxDQUFDLElBQVk7UUFDN0IsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsSUFBSSxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQ2xCLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLEVBQzFDLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDaEIsSUFBSSxDQUFDO2dCQUNILE1BQU0sY0FBYyxDQUNsQixJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUM3RCxDQUFDO2dCQUNGLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQy9CLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLENBQVEsQ0FBQyxDQUFDO1lBQ3BELENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLE1BQU0sSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLENBQUM7SUFDSCxDQUFDO0lBRU0sS0FBSyxDQUFDLFVBQVU7UUFDckIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sY0FBYyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDbkIsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDOzhHQXRIVSxjQUFjO2tHQUFkLGNBQWMsa1FDcEIzQix1NUNBMEJLLHlERFZPLFlBQVksK1BBQUUsbUJBQW1COzsyRkFJaEMsY0FBYztrQkFQMUIsU0FBUzsrQkFDRSxZQUFZLGNBQ1YsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLG1CQUFtQixDQUFDO3VGQUs1QixLQUFLO3NCQUFwQixLQUFLO2dCQUNVLEtBQUs7c0JBQXBCLEtBQUs7Z0JBRVUsa0JBQWtCO3NCQUFqQyxLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsUUFBUTtzQkFBdkIsS0FBSztnQkFDVSxLQUFLO3NCQUFwQixLQUFLO2dCQUNVLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsTUFBTTtzQkFBckIsS0FBSztnQkFDVSxNQUFNO3NCQUFyQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBpbmplY3QsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEYXRhTW9kZWwgfSBmcm9tICcuLi8uLi9kYXRhL2RhdGEtbW9kZWwnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBmaXJzdFZhbHVlRnJvbSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRhTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9tZXNzYWdlcy9tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElGbGFnSXRlbSB7XG4gIGZsYWc6IHN0cmluZztcbiAgY291bnQ6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0YS1mbGFncycsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxuICB0ZW1wbGF0ZVVybDogJy4vZmxhZ3MuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mbGFncy5jb21wb25lbnQuc2FzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBGbGFnc0NvbXBvbmVudDxUIGV4dGVuZHMgRGF0YU1vZGVsPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBtb2RlbCE6IFQ7XG4gIEBJbnB1dCgpIHB1YmxpYyBmaWVsZCA9ICdmbGFncyc7XG4gIC8vIEZJWE1FOiBtYWtlIGFsbCBmbGFncyBlbmRwb2ludCBhcyBvcHRpb25hbCBwYXJhbWV0ZXJzXG4gIEBJbnB1dCgpIHB1YmxpYyBnZXRfZmxhZ3NfZW5kcG9pbnQgPSAnZ2V0X2ZsYWdzJztcbiAgQElucHV0KCkgcHVibGljIGVkaXQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIGVkaXRhYmxlOiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHVibGljIGZsYWdzITogT2JzZXJ2YWJsZTxJRmxhZ0l0ZW1bXT47XG4gIEBJbnB1dCgpIHB1YmxpYyBmcmVlID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBjcmVhdGUgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgYWN0aW9uID0gZmFsc2U7IC8vIGlmIHNldCB0byB0cnVlLCB1c2UgYWRkX2ZsYWcgYW5kIHJlbW92ZV9mbGFnIG1vZGVsIGFjdGlvbnNcbiAgcHVibGljIGZ0ITogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBmcyE6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgY3VyZmxhZ3M6IHN0cmluZ1tdID0gW107XG4gIHB1YmxpYyB0eHRmbGFnID0gJyc7XG4gIHB1YmxpYyBzZWxmbGFnID0gJyc7XG4gIHB1YmxpYyBmbGFnbGlzdDogSUZsYWdJdGVtW10gPSBbXTtcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9tc2c6IERhdGFNZXNzYWdlU2VydmljZSkge31cblxuICBwdWJsaWMgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuZmxhZ3MgJiYgdGhpcy5tb2RlbC5fY29sbGVjdGlvbikge1xuICAgICAgdGhpcy5mbGFncyA9IHRoaXMubW9kZWwuX2NvbGxlY3Rpb24uYWN0aW9uKFxuICAgICAgICBudWxsLFxuICAgICAgICAnR0VUJyxcbiAgICAgICAgdGhpcy5nZXRfZmxhZ3NfZW5kcG9pbnQsXG4gICAgICApO1xuICAgIH1cbiAgICBpZiAodGhpcy5tb2RlbCAmJiB0aGlzLmZpZWxkICYmICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5maWVsZF0pIHtcbiAgICAgIHRoaXMuY3VyZmxhZ3MgPSAodGhpcy5tb2RlbCBhcyBhbnkpW3RoaXMuZmllbGRdO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zb2xlLndhcm4oJ01vZGVsIG9yIGZpZWxkIHByb2JsZW0gaW4gZmxhZ3NmaWVsZCBjb21wb25lbnQnKTtcbiAgICAgIHRoaXMuY3VyZmxhZ3MgPSBbXTtcbiAgICB9XG4gICAgdGhpcy5mdCA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5mcyA9IG5ldyBGb3JtQ29udHJvbCgnJyk7XG4gICAgdGhpcy5mcy52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3kkKSwgZGVib3VuY2VUaW1lKDI1MCkpXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZTogc3RyaW5nKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMuYWRkRmxhZyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEZyZWVGbGFnKCk6IFByb21pc2U8YW55PiB7XG4gICAgYXdhaXQgdGhpcy5hZGRGbGFnKHRoaXMuZnQudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGFkZEZsYWcoZmxhZzogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBpZiAoIXRoaXMuZmxhZ1ByZXNlbnQoZmxhZykpIHtcbiAgICAgIHRoaXMuY3VyZmxhZ3MucHVzaChmbGFnKTtcbiAgICAgIGlmICh0aGlzLmFjdGlvbikge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IGZpcnN0VmFsdWVGcm9tKFxuICAgICAgICAgICAgdGhpcy5tb2RlbC5hY3Rpb24oJ1BPU1QnLCAnYWRkX2ZsYWcnLCB7IGJvZHk6IHsgZmxhZyB9IH0pLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5fbXNnLnN1Y2Nlc3MoJ0ZsYWcgZW5yZWdpc3Ryw6kgYXZlYyBzdWNjw6hzJyk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLl9tc2cuZXJyb3IoJ0VycmV1ciBsb3JzIGRlIGxhIHNhdXZlZ2FyZGUnLCBlIGFzIGFueSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMudXBkYXRlKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGFzeW5jIHVwZGF0ZSgpOiBQcm9taXNlPGFueT4ge1xuICAgICh0aGlzLm1vZGVsIGFzIGFueSlbdGhpcy5maWVsZF0gPSB0aGlzLmN1cmZsYWdzO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBmaXJzdFZhbHVlRnJvbSh0aGlzLm1vZGVsLnVwZGF0ZShbdGhpcy5maWVsZF0pKTtcbiAgICAgIHRoaXMuZnMuc2V0VmFsdWUoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuZnQuc2V0VmFsdWUoJycsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICAgIHRoaXMuX21zZy5zdWNjZXNzKCdGbGFnIGVucmVnaXN0csOpIGF2ZWMgc3VjY8OocycpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9tc2cuZXJyb3IoXG4gICAgICAgICdFcnJldXIgbG9ycyBkZSBsYSBzYXV2ZWdhcmRlJyxcbiAgICAgICAgYEFQSSBSZXR1cm4gOiAke2Vycm9yfWAsXG4gICAgICAgIChlcnJvciBhcyBhbnkpLl9ib2R5LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZmxhZ1ByZXNlbnQoZmxhZzogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuY3VyZmxhZ3MuZmluZEluZGV4KChmKSA9PiBmbGFnID09PSBmKSAhPT0gLTE7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVtb3ZlRmxhZyhmbGFnOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIHRoaXMuY3VyZmxhZ3Muc3BsaWNlKFxuICAgICAgdGhpcy5jdXJmbGFncy5maW5kSW5kZXgoKGYpID0+IGZsYWcgPT09IGYpLFxuICAgICAgMSxcbiAgICApO1xuICAgIGlmICh0aGlzLmFjdGlvbikge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgZmlyc3RWYWx1ZUZyb20oXG4gICAgICAgICAgdGhpcy5tb2RlbC5hY3Rpb24oJ1BPU1QnLCAncmVtb3ZlX2ZsYWcnLCB7IGJvZHk6IHsgZmxhZyB9IH0pLFxuICAgICAgICApO1xuICAgICAgICB0aGlzLl9tc2cuc3VjY2VzcygnUmVtb3ZlZCcpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aGlzLl9tc2cuZXJyb3IoJ1JlbW92aW5nIGZsYWcgZmFpbGVkJywgZSBhcyBhbnkpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBhc3luYyB0b2dnbGVFZGl0KCkge1xuICAgIGlmICh0aGlzLmVkaXRhYmxlKSB7XG4gICAgICBpZiAoIXRoaXMuZWRpdCkge1xuICAgICAgICB0aGlzLmZsYWdsaXN0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGhpcy5mbGFncyk7XG4gICAgICAgIHRoaXMuZWRpdCA9IHRydWU7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmVkaXQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0ID0gZmFsc2U7XG4gICAgfVxuICB9XG59XG4iLCJcbjxkdCAoY2xpY2spPVwidG9nZ2xlRWRpdCgpXCIgcm9sZT1cImJ1dHRvblwiPlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2R0PlxuPGRkICpuZ0lmPVwiIWVkaXRcIiAoY2xpY2spPVwidG9nZ2xlRWRpdCgpXCIgcm9sZT1cImJ1dHRvblwiPjxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctaW5mbyBtZS0xXCIgKm5nRm9yPVwibGV0IGZsYWcgb2YgY3VyZmxhZ3NcIj57e2ZsYWd9fTwvc3Bhbj48L2RkPlxuPGRkICpuZ0lmPVwiZWRpdFwiPlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFmcmVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdCBmb3JtLXNlbGVjdC1zbVwiIFtmb3JtQ29udHJvbF09XCJmc1wiPlxuICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IGZsYWcgb2YgZmxhZ2xpc3RcIiBbdmFsdWVdPVwiZmxhZy5mbGFnXCI+e3tmbGFnLmZsYWd9fTxzcGFuIGNsYXNzPVwibXMtMVwiICpuZ0lmPVwiZmxhZy5jb3VudFwiPih7e2ZsYWcuY291bnR9fSk8L3NwYW4+PC9vcHRpb24+XG4gICAgICAgIDwvc2VsZWN0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sXCIgKm5nSWY9XCJjcmVhdGVcIj5cbiAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGZvcm0tY29udHJvbC1zbVwiIHBsYWNlaG9sZGVyPVwiTm91dmVhdSBmbGFnXCIgW2Zvcm1Db250cm9sXT1cImZ0XCIgKGtleXVwLmVudGVyKT1cImFkZEZyZWVGbGFnKClcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmcmVlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLTEyXCI+XG4gICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbCBmb3JtLXNlbGVjdC1zbVwiIHBsYWNlaG9sZGVyPVwiTm91dmVhdSBmbGFnXCIgW2Zvcm1Db250cm9sXT1cImZ0XCIgKGtleXVwLmVudGVyKT1cImFkZEZyZWVGbGFnKClcIiAoa2V5dXAuZXNjYXBlKT1cInRvZ2dsZUVkaXQoKVwiPlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93XCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1zbS0xMlwiPjxzcGFuIGNsYXNzPVwiYmFkZ2UgYmctaW5mbyBtZS0xXCIgKm5nRm9yPVwibGV0IGZsYWcgb2YgY3VyZmxhZ3NcIiAoY2xpY2spPVwicmVtb3ZlRmxhZyhmbGFnKVwiIHJvbGU9XCJidXR0b25cIj48aSBjbGFzcz1cImJpIGJpLXRyYXNoIG1lLTFcIj48L2k+e3tmbGFnfX08L3NwYW4+PGkgY2xhc3M9XCJiaSBiaS14LWxnIHRleHQtbXV0ZWQgbXMtMlwiIHJvbGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlRWRpdCgpXCI+PC9pPjwvZGl2PlxuICA8L2Rpdj5cbjwvZGQ+Il19