@rangertechnologies/ngnxt 2.1.253 → 2.1.255-beta

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 (89) hide show
  1. package/fesm2022/rangertechnologies-ngnxt.mjs +258 -433
  2. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  3. package/lib/components/datatable/datatable.component.d.ts +0 -1
  4. package/lib/components/pick-location/pick-location.component.d.ts +0 -1
  5. package/lib/model/bookletWrapper.d.ts +0 -1
  6. package/lib/pages/booklet/booklet.component.d.ts +0 -2
  7. package/lib/pages/builder/element/element.component.d.ts +0 -3
  8. package/lib/pages/builder/properties/properties.component.d.ts +6 -2
  9. package/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.d.ts +0 -3
  10. package/lib/pages/questionbook/questionbook.component.d.ts +0 -1
  11. package/lib/pages/questionnaire/questionnaire.component.d.ts +0 -1
  12. package/lib/pipe/custom-translate.pipe.d.ts +1 -1
  13. package/lib/pipe/svg/svg.pipe.d.ts +10 -0
  14. package/lib/services/form-builder/form-builder.service.d.ts +1 -0
  15. package/lib/services/translation/translation.service.d.ts +1 -1
  16. package/package.json +4 -6
  17. package/rangertechnologies-ngnxt-2.1.255-beta.tgz +0 -0
  18. package/esm2022/environments/version.mjs +0 -15
  19. package/esm2022/lib/components/button/nxt-button.component.mjs +0 -154
  20. package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +0 -360
  21. package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +0 -263
  22. package/esm2022/lib/components/custom-model/custom-model.component.mjs +0 -53
  23. package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +0 -156
  24. package/esm2022/lib/components/datatable/datatable.component.mjs +0 -1757
  25. package/esm2022/lib/components/file-upload/file-upload.component.mjs +0 -292
  26. package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +0 -105
  27. package/esm2022/lib/components/image-cropper/component/cropper.state.mjs +0 -208
  28. package/esm2022/lib/components/image-cropper/component/image-cropper.component.mjs +0 -562
  29. package/esm2022/lib/components/image-cropper/interfaces/basic-event.interface.mjs +0 -2
  30. package/esm2022/lib/components/image-cropper/interfaces/cropper-options.interface.mjs +0 -2
  31. package/esm2022/lib/components/image-cropper/interfaces/cropper-position.interface.mjs +0 -2
  32. package/esm2022/lib/components/image-cropper/interfaces/dimensions.interface.mjs +0 -2
  33. package/esm2022/lib/components/image-cropper/interfaces/exif-transform.interface.mjs +0 -2
  34. package/esm2022/lib/components/image-cropper/interfaces/image-cropped-event.interface.mjs +0 -2
  35. package/esm2022/lib/components/image-cropper/interfaces/image-transform.interface.mjs +0 -2
  36. package/esm2022/lib/components/image-cropper/interfaces/index.mjs +0 -2
  37. package/esm2022/lib/components/image-cropper/interfaces/loaded-image.interface.mjs +0 -2
  38. package/esm2022/lib/components/image-cropper/interfaces/move-start.interface.mjs +0 -8
  39. package/esm2022/lib/components/image-cropper/services/crop.service.mjs +0 -139
  40. package/esm2022/lib/components/image-cropper/services/load-image.service.mjs +0 -194
  41. package/esm2022/lib/components/image-cropper/utils/cropper-position.utils.mjs +0 -239
  42. package/esm2022/lib/components/image-cropper/utils/exif.utils.mjs +0 -79
  43. package/esm2022/lib/components/image-cropper/utils/keyboard.utils.mjs +0 -40
  44. package/esm2022/lib/components/image-cropper/utils/percentage.utils.mjs +0 -4
  45. package/esm2022/lib/components/image-cropper/utils/resize.utils.mjs +0 -75
  46. package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +0 -392
  47. package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +0 -2972
  48. package/esm2022/lib/components/pagination/pagination.component.mjs +0 -105
  49. package/esm2022/lib/components/pick-location/pick-location.component.mjs +0 -220
  50. package/esm2022/lib/components/search-box/search-box.component.mjs +0 -470
  51. package/esm2022/lib/country.json +0 -43237
  52. package/esm2022/lib/interfaces/actionMeta.mjs +0 -2
  53. package/esm2022/lib/interfaces/dependencyMeta.mjs +0 -2
  54. package/esm2022/lib/model/bookletWrapper.mjs +0 -9
  55. package/esm2022/lib/model/changeWrapper.mjs +0 -10
  56. package/esm2022/lib/model/errorWrapper.mjs +0 -6
  57. package/esm2022/lib/nxt-app.component.mjs +0 -22
  58. package/esm2022/lib/nxt-app.module.mjs +0 -115
  59. package/esm2022/lib/nxt-app.service.mjs +0 -14
  60. package/esm2022/lib/pages/booklet/booklet.component.mjs +0 -658
  61. package/esm2022/lib/pages/builder/element/element.component.mjs +0 -508
  62. package/esm2022/lib/pages/builder/form/form.component.mjs +0 -48
  63. package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +0 -97
  64. package/esm2022/lib/pages/builder/properties/properties.component.mjs +0 -1089
  65. package/esm2022/lib/pages/builder/templates/templates.component.mjs +0 -35
  66. package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +0 -681
  67. package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +0 -1118
  68. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +0 -801
  69. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +0 -2219
  70. package/esm2022/lib/pipe/button-styles.pipe.mjs +0 -26
  71. package/esm2022/lib/pipe/custom-translate.pipe.mjs +0 -36
  72. package/esm2022/lib/pipe/get-value.pipe.mjs +0 -54
  73. package/esm2022/lib/pipe/question-by-row.pipe.mjs +0 -51
  74. package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +0 -40
  75. package/esm2022/lib/sample.mjs +0 -3715
  76. package/esm2022/lib/services/change/change.service.mjs +0 -46
  77. package/esm2022/lib/services/country/country.service.mjs +0 -135
  78. package/esm2022/lib/services/data/data.service.mjs +0 -100
  79. package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -500
  80. package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -398
  81. package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
  82. package/esm2022/lib/services/shared/shared.service.mjs +0 -100
  83. package/esm2022/lib/services/storage/storage.service.mjs +0 -59
  84. package/esm2022/lib/services/template/template.service.mjs +0 -351
  85. package/esm2022/lib/services/translation/translation.service.mjs +0 -121
  86. package/esm2022/lib/wrapper.mjs +0 -175
  87. package/esm2022/public-api.mjs +0 -22
  88. package/esm2022/rangertechnologies-ngnxt.mjs +0 -5
  89. package/rangertechnologies-ngnxt-2.1.253.tgz +0 -0
@@ -1,26 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class ButtonStylesPipe {
4
- transform(config) {
5
- return {
6
- 'button-custom-bg': config.btnBgColor || '',
7
- 'button-custom-border': config.btnBorder || '',
8
- 'button-custom-color': config.btnTextColor || '',
9
- 'button-custom-height': config.btnHeight || '',
10
- 'button-custom-width': config.btnWidth || '',
11
- 'button-hover-bg': config.btnHoverBgColor || '',
12
- 'button-hover-text-color': config.btnHoverTextColor || ''
13
- };
14
- }
15
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonStylesPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
16
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: ButtonStylesPipe, isStandalone: true, name: "buttonStyles" });
17
- }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ButtonStylesPipe, decorators: [{
19
- type: Pipe,
20
- args: [{
21
- name: 'buttonStyles',
22
- pure: true,
23
- standalone: true,
24
- }]
25
- }] });
26
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLXN0eWxlcy5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BpcGUvYnV0dG9uLXN0eWxlcy5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOztBQU9wRCxNQUFNLE9BQU8sZ0JBQWdCO0lBQzNCLFNBQVMsQ0FBQyxNQUFXO1FBQ25CLE9BQU87WUFDTCxrQkFBa0IsRUFBRSxNQUFNLENBQUMsVUFBVSxJQUFJLEVBQUU7WUFDM0Msc0JBQXNCLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxFQUFFO1lBQzlDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxZQUFZLElBQUksRUFBRTtZQUNoRCxzQkFBc0IsRUFBRSxNQUFNLENBQUMsU0FBUyxJQUFJLEVBQUU7WUFDOUMscUJBQXFCLEVBQUUsTUFBTSxDQUFDLFFBQVEsSUFBSSxFQUFFO1lBQzVDLGlCQUFpQixFQUFFLE1BQU0sQ0FBQyxlQUFlLElBQUksRUFBRTtZQUMvQyx5QkFBeUIsRUFBRSxNQUFNLENBQUMsaUJBQWlCLElBQUksRUFBRTtTQUMxRCxDQUFDO0lBQ0osQ0FBQzt3R0FYVSxnQkFBZ0I7c0dBQWhCLGdCQUFnQjs7NEZBQWhCLGdCQUFnQjtrQkFMNUIsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsY0FBYztvQkFDcEIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdidXR0b25TdHlsZXMnLFxuICBwdXJlOiB0cnVlLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBCdXR0b25TdHlsZXNQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybShjb25maWc6IGFueSk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIHJldHVybiB7XG4gICAgICAnYnV0dG9uLWN1c3RvbS1iZyc6IGNvbmZpZy5idG5CZ0NvbG9yIHx8ICcnLFxuICAgICAgJ2J1dHRvbi1jdXN0b20tYm9yZGVyJzogY29uZmlnLmJ0bkJvcmRlciB8fCAnJyxcbiAgICAgICdidXR0b24tY3VzdG9tLWNvbG9yJzogY29uZmlnLmJ0blRleHRDb2xvciB8fCAnJyxcbiAgICAgICdidXR0b24tY3VzdG9tLWhlaWdodCc6IGNvbmZpZy5idG5IZWlnaHQgfHwgJycsXG4gICAgICAnYnV0dG9uLWN1c3RvbS13aWR0aCc6IGNvbmZpZy5idG5XaWR0aCB8fCAnJyxcbiAgICAgICdidXR0b24taG92ZXItYmcnOiBjb25maWcuYnRuSG92ZXJCZ0NvbG9yIHx8ICcnLFxuICAgICAgJ2J1dHRvbi1ob3Zlci10ZXh0LWNvbG9yJzogY29uZmlnLmJ0bkhvdmVyVGV4dENvbG9yIHx8ICcnXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,36 +0,0 @@
1
- import { inject, Pipe } from '@angular/core';
2
- import { TranslationService } from '../services/translation/translation.service';
3
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
4
- import * as i0 from "@angular/core";
5
- export class NxtCustomTranslatePipe {
6
- cache = new Map();
7
- translationService = inject(TranslationService);
8
- constructor() {
9
- // SKS28JUL25 clear catch if input language code change
10
- this.translationService.translationsLoaded$
11
- .pipe(takeUntilDestroyed())
12
- .subscribe(() => {
13
- this.cache.clear();
14
- });
15
- }
16
- transform(key, fallback) {
17
- if (this.cache.has(key)) {
18
- return this.cache.get(key);
19
- }
20
- const translated = this.translationService.translate(key);
21
- const result = translated || fallback || key;
22
- this.cache.set(key, result);
23
- return result;
24
- }
25
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtCustomTranslatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
26
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NxtCustomTranslatePipe, isStandalone: true, name: "nxtCustomTranslate", pure: false });
27
- }
28
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtCustomTranslatePipe, decorators: [{
29
- type: Pipe,
30
- args: [{
31
- name: 'nxtCustomTranslate',
32
- pure: false,
33
- standalone: true
34
- }]
35
- }], ctorParameters: () => [] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRyYW5zbGF0ZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BpcGUvY3VzdG9tLXRyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFPaEUsTUFBTSxPQUFPLHNCQUFzQjtJQUN6QixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7SUFDbEMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFFeEQ7UUFDRSx1REFBdUQ7UUFDdkQsSUFBSSxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQjthQUN4QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQzthQUMxQixTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNyQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxTQUFTLENBQUMsR0FBVyxFQUFFLFFBQWdCO1FBQ3JDLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBRSxDQUFDO1FBQzlCLENBQUM7UUFDRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzFELE1BQU0sTUFBTSxHQUFHLFVBQVUsSUFBSSxRQUFRLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM1QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO3dHQXJCVSxzQkFBc0I7c0dBQXRCLHNCQUFzQjs7NEZBQXRCLHNCQUFzQjtrQkFMbEMsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixJQUFJLEVBQUUsS0FBSztvQkFDWCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3RyYW5zbGF0aW9uL3RyYW5zbGF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdueHRDdXN0b21UcmFuc2xhdGUnLFxuICBwdXJlOiBmYWxzZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOeHRDdXN0b21UcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHByaXZhdGUgY2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xuICBwcml2YXRlIHRyYW5zbGF0aW9uU2VydmljZSA9IGluamVjdChUcmFuc2xhdGlvblNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFNLUzI4SlVMMjUgY2xlYXIgY2F0Y2ggaWYgaW5wdXQgbGFuZ3VhZ2UgY29kZSBjaGFuZ2VcbiAgICB0aGlzLnRyYW5zbGF0aW9uU2VydmljZS50cmFuc2xhdGlvbnNMb2FkZWQkXG4gICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNhY2hlLmNsZWFyKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHRyYW5zZm9ybShrZXk6IHN0cmluZywgZmFsbGJhY2s6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY2FjaGUuaGFzKGtleSkpIHtcbiAgICAgIHJldHVybiB0aGlzLmNhY2hlLmdldChrZXkpITtcbiAgICB9XG4gICAgY29uc3QgdHJhbnNsYXRlZCA9IHRoaXMudHJhbnNsYXRpb25TZXJ2aWNlLnRyYW5zbGF0ZShrZXkpO1xuICAgIGNvbnN0IHJlc3VsdCA9IHRyYW5zbGF0ZWQgfHwgZmFsbGJhY2sgfHwga2V5O1xuICAgIHRoaXMuY2FjaGUuc2V0KGtleSwgcmVzdWx0KTtcbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -1,54 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NxtGetValuePipe {
4
- transform(element, column) {
5
- if (!element || !column)
6
- return '';
7
- const flds = column?.split('.');
8
- for (let i = 0; i < flds?.length; i++) {
9
- if (!element)
10
- return ''; // <-- Protect against null here
11
- let splitFlds = flds[i].split('[');
12
- if (splitFlds.length === 1) {
13
- const value = element[splitFlds[0]];
14
- if (typeof value === "number") {
15
- element = value ?? 0;
16
- }
17
- else if (typeof value === "boolean") {
18
- element = value;
19
- }
20
- else {
21
- element = value ?? '';
22
- }
23
- }
24
- else {
25
- const arrayKey = splitFlds[0];
26
- const index = Number(splitFlds[1].split(']')[0]);
27
- if (!element[arrayKey] || !Array.isArray(element[arrayKey]))
28
- return '';
29
- const value = element[arrayKey][index];
30
- if (typeof value === "number") {
31
- element = value ?? 0;
32
- }
33
- else if (typeof value === "boolean") {
34
- element = value;
35
- }
36
- else {
37
- element = value ?? '';
38
- }
39
- }
40
- }
41
- return element;
42
- }
43
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtGetValuePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
44
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NxtGetValuePipe, isStandalone: true, name: "getValue" });
45
- }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtGetValuePipe, decorators: [{
47
- type: Pipe,
48
- args: [{
49
- name: 'getValue',
50
- pure: true,
51
- standalone: true
52
- }]
53
- }] });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2V0LXZhbHVlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGlwZS9nZXQtdmFsdWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGVBQWU7SUFFMUIsU0FBUyxDQUFDLE9BQVksRUFBRSxNQUFXO1FBQ2pDLElBQUksQ0FBQyxPQUFPLElBQUksQ0FBQyxNQUFNO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFbkMsTUFBTSxJQUFJLEdBQUcsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNoQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ3RDLElBQUksQ0FBQyxPQUFPO2dCQUFFLE9BQU8sRUFBRSxDQUFDLENBQUMsZ0NBQWdDO1lBRXpELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkMsSUFBSSxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRSxDQUFDO2dCQUMzQixNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQ3BDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7b0JBQzlCLE9BQU8sR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO2dCQUN2QixDQUFDO3FCQUFNLElBQUksT0FBTyxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7b0JBQ3RDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ2xCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixPQUFPLEdBQUcsS0FBSyxJQUFJLEVBQUUsQ0FBQztnQkFDeEIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzlCLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBRWpELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztvQkFBRSxPQUFPLEVBQUUsQ0FBQztnQkFFdkUsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUN2QyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO29CQUM5QixPQUFPLEdBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQztnQkFDdkIsQ0FBQztxQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUN0QyxPQUFPLEdBQUcsS0FBSyxDQUFDO2dCQUNsQixDQUFDO3FCQUFNLENBQUM7b0JBQ04sT0FBTyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7d0dBckNVLGVBQWU7c0dBQWYsZUFBZTs7NEZBQWYsZUFBZTtrQkFMM0IsSUFBSTttQkFBQztvQkFDSixJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLElBQUk7b0JBQ1YsVUFBVSxFQUFFLElBQUk7aUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdnZXRWYWx1ZScsXG4gIHB1cmU6IHRydWUsXG4gIHN0YW5kYWxvbmU6IHRydWVcbn0pXG5leHBvcnQgY2xhc3MgTnh0R2V0VmFsdWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgdHJhbnNmb3JtKGVsZW1lbnQ6IGFueSwgY29sdW1uOiBhbnkpOiBhbnkge1xuICAgIGlmICghZWxlbWVudCB8fCAhY29sdW1uKSByZXR1cm4gJyc7XG4gIFxuICAgIGNvbnN0IGZsZHMgPSBjb2x1bW4/LnNwbGl0KCcuJyk7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmbGRzPy5sZW5ndGg7IGkrKykge1xuICAgICAgaWYgKCFlbGVtZW50KSByZXR1cm4gJyc7IC8vIDwtLSBQcm90ZWN0IGFnYWluc3QgbnVsbCBoZXJlXG4gIFxuICAgICAgbGV0IHNwbGl0RmxkcyA9IGZsZHNbaV0uc3BsaXQoJ1snKTtcbiAgICAgIGlmIChzcGxpdEZsZHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gZWxlbWVudFtzcGxpdEZsZHNbMF1dO1xuICAgICAgICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgICAgICAgZWxlbWVudCA9IHZhbHVlID8/IDA7XG4gICAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHZhbHVlID09PSBcImJvb2xlYW5cIikge1xuICAgICAgICAgIGVsZW1lbnQgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50ID0gdmFsdWUgPz8gJyc7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IGFycmF5S2V5ID0gc3BsaXRGbGRzWzBdO1xuICAgICAgICBjb25zdCBpbmRleCA9IE51bWJlcihzcGxpdEZsZHNbMV0uc3BsaXQoJ10nKVswXSk7XG4gIFxuICAgICAgICBpZiAoIWVsZW1lbnRbYXJyYXlLZXldIHx8ICFBcnJheS5pc0FycmF5KGVsZW1lbnRbYXJyYXlLZXldKSkgcmV0dXJuICcnO1xuICBcbiAgICAgICAgY29uc3QgdmFsdWUgPSBlbGVtZW50W2FycmF5S2V5XVtpbmRleF07XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICAgICAgICBlbGVtZW50ID0gdmFsdWUgPz8gMDtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG4gICAgICAgICAgZWxlbWVudCA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsZW1lbnQgPSB2YWx1ZSA/PyAnJztcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgXG4gICAgcmV0dXJuIGVsZW1lbnQ7XG4gIH0gIFxufVxuIl19
@@ -1,51 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class QuestionByRowPipe {
4
- cache = new Map();
5
- transform(column, element, rowIndex) {
6
- const rowId = element?.id ?? rowIndex;
7
- const key = `${rowId}-${column?.fieldName ?? 'unknown'}`;
8
- if (this.cache.has(key)) {
9
- return this.cache.get(key);
10
- }
11
- const question = {
12
- ...column?.question,
13
- input: this.getObjValue(element, column)
14
- };
15
- this.cache.set(key, question);
16
- return question;
17
- }
18
- // You can move your original getObjValue logic here,
19
- // or inject a shared service if it already exists
20
- getObjValue(element, column) {
21
- const path = column?.fieldName;
22
- if (!path || !element)
23
- return null;
24
- const keys = path.split('.');
25
- let result = element;
26
- for (let key of keys) {
27
- if (!result)
28
- return null;
29
- const [prop, indexStr] = key.split('[');
30
- if (indexStr !== undefined) {
31
- const index = +indexStr.replace(']', '');
32
- result = Array.isArray(result[prop]) ? result[prop][index] : null;
33
- }
34
- else {
35
- result = result[prop];
36
- }
37
- }
38
- return result;
39
- }
40
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QuestionByRowPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
41
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: QuestionByRowPipe, isStandalone: true, name: "questionByRow" });
42
- }
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: QuestionByRowPipe, decorators: [{
44
- type: Pipe,
45
- args: [{
46
- name: 'questionByRow',
47
- pure: true,
48
- standalone: true
49
- }]
50
- }] });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tYnktcm93LnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGlwZS9xdWVzdGlvbi1ieS1yb3cucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFPcEQsTUFBTSxPQUFPLGlCQUFpQjtJQUNwQixLQUFLLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztJQUV2QyxTQUFTLENBQUMsTUFBVyxFQUFFLE9BQVksRUFBRSxRQUFnQjtRQUNuRCxNQUFNLEtBQUssR0FBRyxPQUFPLEVBQUUsRUFBRSxJQUFJLFFBQVEsQ0FBQztRQUN0QyxNQUFNLEdBQUcsR0FBRyxHQUFHLEtBQUssSUFBSSxNQUFNLEVBQUUsU0FBUyxJQUFJLFNBQVMsRUFBRSxDQUFDO1FBRXpELElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4QixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxNQUFNLFFBQVEsR0FBRztZQUNmLEdBQUcsTUFBTSxFQUFFLFFBQVE7WUFDbkIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQztTQUN6QyxDQUFDO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlCLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxxREFBcUQ7SUFDckQsa0RBQWtEO0lBQzFDLFdBQVcsQ0FBQyxPQUFZLEVBQUUsTUFBVztRQUMzQyxNQUFNLElBQUksR0FBRyxNQUFNLEVBQUUsU0FBUyxDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPO1lBQUUsT0FBTyxJQUFJLENBQUM7UUFDbkMsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUM3QixJQUFJLE1BQU0sR0FBRyxPQUFPLENBQUM7UUFDckIsS0FBSyxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsTUFBTTtnQkFBRSxPQUFPLElBQUksQ0FBQztZQUN6QixNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDeEMsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFLENBQUM7Z0JBQzNCLE1BQU0sS0FBSyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7Z0JBQ3pDLE1BQU0sR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztZQUNwRSxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4QixDQUFDO1FBQ0gsQ0FBQztRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7d0dBckNVLGlCQUFpQjtzR0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUw3QixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxlQUFlO29CQUNyQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3F1ZXN0aW9uQnlSb3cnLFxuICBwdXJlOiB0cnVlICxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBRdWVzdGlvbkJ5Um93UGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBwcml2YXRlIGNhY2hlID0gbmV3IE1hcDxzdHJpbmcsIGFueT4oKTtcblxuICB0cmFuc2Zvcm0oY29sdW1uOiBhbnksIGVsZW1lbnQ6IGFueSwgcm93SW5kZXg6IG51bWJlcik6IGFueSB7XG4gICAgY29uc3Qgcm93SWQgPSBlbGVtZW50Py5pZCA/PyByb3dJbmRleDtcbiAgICBjb25zdCBrZXkgPSBgJHtyb3dJZH0tJHtjb2x1bW4/LmZpZWxkTmFtZSA/PyAndW5rbm93bid9YDtcblxuICAgIGlmICh0aGlzLmNhY2hlLmhhcyhrZXkpKSB7XG4gICAgICByZXR1cm4gdGhpcy5jYWNoZS5nZXQoa2V5KTtcbiAgICB9XG5cbiAgICBjb25zdCBxdWVzdGlvbiA9IHtcbiAgICAgIC4uLmNvbHVtbj8ucXVlc3Rpb24sXG4gICAgICBpbnB1dDogdGhpcy5nZXRPYmpWYWx1ZShlbGVtZW50LCBjb2x1bW4pXG4gICAgfTtcbiAgICB0aGlzLmNhY2hlLnNldChrZXksIHF1ZXN0aW9uKTtcbiAgICByZXR1cm4gcXVlc3Rpb247XG4gIH1cblxuICAvLyBZb3UgY2FuIG1vdmUgeW91ciBvcmlnaW5hbCBnZXRPYmpWYWx1ZSBsb2dpYyBoZXJlLFxuICAvLyBvciBpbmplY3QgYSBzaGFyZWQgc2VydmljZSBpZiBpdCBhbHJlYWR5IGV4aXN0c1xuICBwcml2YXRlIGdldE9ialZhbHVlKGVsZW1lbnQ6IGFueSwgY29sdW1uOiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHBhdGggPSBjb2x1bW4/LmZpZWxkTmFtZTtcbiAgICBpZiAoIXBhdGggfHwgIWVsZW1lbnQpIHJldHVybiBudWxsO1xuICAgIGNvbnN0IGtleXMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IHJlc3VsdCA9IGVsZW1lbnQ7XG4gICAgZm9yIChsZXQga2V5IG9mIGtleXMpIHtcbiAgICAgIGlmICghcmVzdWx0KSByZXR1cm4gbnVsbDtcbiAgICAgIGNvbnN0IFtwcm9wLCBpbmRleFN0cl0gPSBrZXkuc3BsaXQoJ1snKTtcbiAgICAgIGlmIChpbmRleFN0ciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGNvbnN0IGluZGV4ID0gK2luZGV4U3RyLnJlcGxhY2UoJ10nLCAnJyk7XG4gICAgICAgIHJlc3VsdCA9IEFycmF5LmlzQXJyYXkocmVzdWx0W3Byb3BdKSA/IHJlc3VsdFtwcm9wXVtpbmRleF0gOiBudWxsO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0W3Byb3BdO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG59XG4iXX0=
@@ -1,40 +0,0 @@
1
- import { Pipe } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class NxtSearchFilterPipe {
4
- //getting the array datas and search data from pipe element on every change
5
- transform(items, searchText, ele) {
6
- if (!items)
7
- return [];
8
- if (!searchText)
9
- return items;
10
- return this.searchItems(items, searchText?.toLowerCase(), ele);
11
- }
12
- // passing that data here, and if the search element included in that array, that element will be returned in new array
13
- searchItems(items, searchText, ele) {
14
- let results = [];
15
- items.forEach((data) => {
16
- if (ele) {
17
- if (data[ele]?.toLowerCase().includes(searchText)) {
18
- results.push(data);
19
- }
20
- }
21
- else {
22
- if (data?.toLowerCase().includes(searchText)) {
23
- results.push(data);
24
- }
25
- }
26
- });
27
- return results;
28
- }
29
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtSearchFilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NxtSearchFilterPipe, isStandalone: true, name: "searchFilter" });
31
- }
32
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtSearchFilterPipe, decorators: [{
33
- type: Pipe,
34
- args: [{
35
- name: 'searchFilter',
36
- pure: true,
37
- standalone: true
38
- }]
39
- }] });
40
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL3BpcGUvc2VhcmNoLWZpbHRlci9zZWFyY2gtZmlsdGVyLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBUXBELE1BQU0sT0FBTyxtQkFBbUI7SUFHOUIsMkVBQTJFO0lBQzNFLFNBQVMsQ0FBQyxLQUFZLEVBQUUsVUFBa0IsRUFBRSxHQUFRO1FBQ2xELElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLFVBQVU7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUM5QixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLFVBQVUsRUFBRSxXQUFXLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBQ0QsdUhBQXVIO0lBQy9HLFdBQVcsQ0FBQyxLQUFZLEVBQUUsVUFBa0IsRUFBRSxHQUFRO1FBQzVELElBQUksT0FBTyxHQUFVLEVBQUUsQ0FBQztRQUN4QixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUU7WUFDMUIsSUFBRyxHQUFHLEVBQUMsQ0FBQztnQkFDTixJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDbEQsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLElBQUksRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztnQkFDckIsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7d0dBeEJVLG1CQUFtQjtzR0FBbkIsbUJBQW1COzs0RkFBbkIsbUJBQW1CO2tCQUwvQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxjQUFjO29CQUNwQixJQUFJLEVBQUUsSUFBSTtvQkFDVixVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQFBpcGUoe1xuICBuYW1lOiAnc2VhcmNoRmlsdGVyJyxcbiAgcHVyZTogdHJ1ZSxcbiAgc3RhbmRhbG9uZTogdHJ1ZVxufSlcbmV4cG9ydCBjbGFzcyBOeHRTZWFyY2hGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cblxuICAvL2dldHRpbmcgdGhlIGFycmF5IGRhdGFzIGFuZCBzZWFyY2ggZGF0YSBmcm9tIHBpcGUgZWxlbWVudCBvbiBldmVyeSBjaGFuZ2VcbiAgdHJhbnNmb3JtKGl0ZW1zOiBhbnlbXSwgc2VhcmNoVGV4dDogc3RyaW5nLCBlbGU/OmFueSk6IGFueVtdIHtcbiAgICBpZiAoIWl0ZW1zKSByZXR1cm4gW107XG4gICAgaWYgKCFzZWFyY2hUZXh0KSByZXR1cm4gaXRlbXM7XG4gICAgcmV0dXJuIHRoaXMuc2VhcmNoSXRlbXMoaXRlbXMsIHNlYXJjaFRleHQ/LnRvTG93ZXJDYXNlKCksIGVsZSk7XG4gIH1cbiAgLy8gcGFzc2luZyB0aGF0IGRhdGEgaGVyZSwgYW5kIGlmIHRoZSBzZWFyY2ggZWxlbWVudCBpbmNsdWRlZCBpbiB0aGF0IGFycmF5LCB0aGF0IGVsZW1lbnQgd2lsbCBiZSByZXR1cm5lZCBpbiBuZXcgYXJyYXlcbiAgcHJpdmF0ZSBzZWFyY2hJdGVtcyhpdGVtczogYW55W10sIHNlYXJjaFRleHQ6IHN0cmluZywgZWxlPzphbnkpOiBhbnlbXSB7XG4gICAgbGV0IHJlc3VsdHM6IGFueVtdID0gW107XG4gICAgaXRlbXMuZm9yRWFjaCgoZGF0YTogYW55KSA9PiB7XG4gICAgICBpZihlbGUpe1xuICAgICAgICBpZiAoZGF0YVtlbGVdPy50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHNlYXJjaFRleHQpKSB7XG4gICAgICAgICAgcmVzdWx0cy5wdXNoKGRhdGEpO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoZGF0YT8udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhzZWFyY2hUZXh0KSkge1xuICAgICAgICAgIHJlc3VsdHMucHVzaChkYXRhKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiByZXN1bHRzO1xuICB9XG59Il19