ng-primitives 0.3.0 → 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 (89) hide show
  1. package/date-picker/README.md +3 -0
  2. package/date-picker/date-picker/date-picker.directive.d.ts +61 -0
  3. package/date-picker/date-picker/date-picker.token.d.ts +14 -0
  4. package/date-picker/date-picker-cell/date-picker-cell.directive.d.ts +17 -0
  5. package/date-picker/date-picker-cell/date-picker-cell.token.d.ts +14 -0
  6. package/date-picker/date-picker-cell-render/date-picker-cell-render.directive.d.ts +43 -0
  7. package/date-picker/date-picker-cell-render/date-picker-cell-render.token.d.ts +19 -0
  8. package/date-picker/date-picker-date-button/date-picker-date-button.directive.d.ts +99 -0
  9. package/date-picker/date-picker-date-button/date-picker-date-button.token.d.ts +14 -0
  10. package/date-picker/date-picker-grid/date-picker-grid.directive.d.ts +13 -0
  11. package/date-picker/date-picker-grid/date-picker-grid.token.d.ts +14 -0
  12. package/date-picker/date-picker-label/date-picker-label.directive.d.ts +17 -0
  13. package/date-picker/date-picker-label/date-picker-label.token.d.ts +14 -0
  14. package/date-picker/date-picker-next-month/date-picker-next-month.directive.d.ts +32 -0
  15. package/date-picker/date-picker-next-month/date-picker-next-month.token.d.ts +14 -0
  16. package/date-picker/date-picker-previous-month/date-picker-previous-month.directive.d.ts +32 -0
  17. package/date-picker/date-picker-previous-month/date-picker-previous-month.token.d.ts +14 -0
  18. package/date-picker/date-picker-row-render/date-picker-row-render.directive.d.ts +49 -0
  19. package/date-picker/date-picker-row-render/date-picker-row-render.token.d.ts +19 -0
  20. package/date-picker/index.d.ts +25 -0
  21. package/date-time/README.md +3 -0
  22. package/date-time/date-adapter/date-adapter.d.ts +169 -0
  23. package/date-time/date-adapter/date-adapter.token.d.ts +18 -0
  24. package/date-time/index.d.ts +9 -0
  25. package/date-time/native-date-adapter/native-date-adapter.d.ts +106 -0
  26. package/esm2022/date-picker/date-picker/date-picker.directive.mjs +117 -0
  27. package/esm2022/date-picker/date-picker/date-picker.token.mjs +16 -0
  28. package/esm2022/date-picker/date-picker-cell/date-picker-cell.directive.mjs +50 -0
  29. package/esm2022/date-picker/date-picker-cell/date-picker-cell.token.mjs +16 -0
  30. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.directive.mjs +72 -0
  31. package/esm2022/date-picker/date-picker-cell-render/date-picker-cell-render.token.mjs +23 -0
  32. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.directive.mjs +277 -0
  33. package/esm2022/date-picker/date-picker-date-button/date-picker-date-button.token.mjs +16 -0
  34. package/esm2022/date-picker/date-picker-grid/date-picker-grid.directive.mjs +40 -0
  35. package/esm2022/date-picker/date-picker-grid/date-picker-grid.token.mjs +16 -0
  36. package/esm2022/date-picker/date-picker-label/date-picker-label.directive.mjs +47 -0
  37. package/esm2022/date-picker/date-picker-label/date-picker-label.token.mjs +16 -0
  38. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.directive.mjs +103 -0
  39. package/esm2022/date-picker/date-picker-next-month/date-picker-next-month.token.mjs +16 -0
  40. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.directive.mjs +104 -0
  41. package/esm2022/date-picker/date-picker-previous-month/date-picker-previous-month.token.mjs +16 -0
  42. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.directive.mjs +118 -0
  43. package/esm2022/date-picker/date-picker-row-render/date-picker-row-render.token.mjs +23 -0
  44. package/esm2022/date-picker/index.mjs +26 -0
  45. package/esm2022/date-picker/ng-primitives-date-picker.mjs +5 -0
  46. package/esm2022/date-time/date-adapter/date-adapter.mjs +9 -0
  47. package/esm2022/date-time/date-adapter/date-adapter.token.mjs +24 -0
  48. package/esm2022/date-time/index.mjs +9 -0
  49. package/esm2022/date-time/native-date-adapter/native-date-adapter.mjs +149 -0
  50. package/esm2022/date-time/ng-primitives-date-time.mjs +5 -0
  51. package/esm2022/interactions/hover/hover.directive.mjs +9 -10
  52. package/esm2022/pagination/index.mjs +20 -0
  53. package/esm2022/pagination/ng-primitives-pagination.mjs +5 -0
  54. package/esm2022/pagination/pagination/pagination.directive.mjs +57 -0
  55. package/esm2022/pagination/pagination/pagination.token.mjs +16 -0
  56. package/esm2022/pagination/pagination-button/pagination-button.directive.mjs +75 -0
  57. package/esm2022/pagination/pagination-button/pagination-button.token.mjs +16 -0
  58. package/esm2022/pagination/pagination-first/pagination-first.directive.mjs +59 -0
  59. package/esm2022/pagination/pagination-first/pagination-first.token.mjs +16 -0
  60. package/esm2022/pagination/pagination-last/pagination-last.directive.mjs +59 -0
  61. package/esm2022/pagination/pagination-last/pagination-last.token.mjs +16 -0
  62. package/esm2022/pagination/pagination-next/pagination-next.directive.mjs +62 -0
  63. package/esm2022/pagination/pagination-next/pagination-next.token.mjs +16 -0
  64. package/esm2022/pagination/pagination-previous/pagination-previous.directive.mjs +62 -0
  65. package/esm2022/pagination/pagination-previous/pagination-previous.token.mjs +16 -0
  66. package/fesm2022/ng-primitives-date-picker.mjs +1044 -0
  67. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -0
  68. package/fesm2022/ng-primitives-date-time.mjs +187 -0
  69. package/fesm2022/ng-primitives-date-time.mjs.map +1 -0
  70. package/fesm2022/ng-primitives-interactions.mjs +8 -10
  71. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  72. package/fesm2022/ng-primitives-pagination.mjs +446 -0
  73. package/fesm2022/ng-primitives-pagination.mjs.map +1 -0
  74. package/interactions/hover/hover.directive.d.ts +3 -3
  75. package/package.json +36 -13
  76. package/pagination/README.md +3 -0
  77. package/pagination/index.d.ts +19 -0
  78. package/pagination/pagination/pagination.directive.d.ts +35 -0
  79. package/pagination/pagination/pagination.token.d.ts +14 -0
  80. package/pagination/pagination-button/pagination-button.directive.d.ts +39 -0
  81. package/pagination/pagination-button/pagination-button.token.d.ts +14 -0
  82. package/pagination/pagination-first/pagination-first.directive.d.ts +28 -0
  83. package/pagination/pagination-first/pagination-first.token.d.ts +14 -0
  84. package/pagination/pagination-last/pagination-last.directive.d.ts +28 -0
  85. package/pagination/pagination-last/pagination-last.token.d.ts +14 -0
  86. package/pagination/pagination-next/pagination-next.directive.d.ts +31 -0
  87. package/pagination/pagination-next/pagination-next.token.d.ts +14 -0
  88. package/pagination/pagination-previous/pagination-previous.directive.d.ts +31 -0
  89. package/pagination/pagination-previous/pagination-previous.token.d.ts +14 -0
@@ -0,0 +1,62 @@
1
+ import { booleanAttribute, computed, Directive, HostListener, input } from '@angular/core';
2
+ import { NgpButton } from 'ng-primitives/button';
3
+ import { NgpDisabledToken } from 'ng-primitives/internal';
4
+ import { injectPagination } from '../pagination/pagination.token';
5
+ import { NgpPaginationPreviousToken } from './pagination-previous.token';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "ng-primitives/button";
8
+ export class NgpPaginationPrevious {
9
+ constructor() {
10
+ /**
11
+ * Access the pagination directive.
12
+ */
13
+ this.pagination = injectPagination();
14
+ /**
15
+ * Whether the button is disabled.
16
+ */
17
+ this.buttonDisabled = input(false, {
18
+ alias: 'ngpPaginationPreviousDisabled',
19
+ transform: booleanAttribute,
20
+ });
21
+ /**
22
+ * Whether the button is disabled.
23
+ */
24
+ this.disabled = computed(() => this.buttonDisabled() || this.pagination.disabled() || this.pagination.firstPage());
25
+ }
26
+ /**
27
+ * Go to the previous page.
28
+ */
29
+ goToPreviousPage() {
30
+ if (this.disabled()) {
31
+ return;
32
+ }
33
+ this.pagination.page.set(this.pagination.page() - 1);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPaginationPrevious, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpPaginationPrevious, isStandalone: true, selector: "[ngpPaginationPrevious]", inputs: { buttonDisabled: { classPropertyName: "buttonDisabled", publicName: "ngpPaginationPreviousDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "goToPreviousPage()" }, properties: { "tabindex": "disabled() ? -1 : 0", "attr.data-disabled": "disabled()", "attr.data-first-page": "pagination.firstPage()" } }, providers: [
37
+ { provide: NgpPaginationPreviousToken, useExisting: NgpPaginationPrevious },
38
+ { provide: NgpDisabledToken, useExisting: NgpPaginationPrevious },
39
+ ], exportAs: ["ngpPaginationPrevious"], hostDirectives: [{ directive: i1.NgpButton }], ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpPaginationPrevious, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ standalone: true,
45
+ selector: '[ngpPaginationPrevious]',
46
+ exportAs: 'ngpPaginationPrevious',
47
+ providers: [
48
+ { provide: NgpPaginationPreviousToken, useExisting: NgpPaginationPrevious },
49
+ { provide: NgpDisabledToken, useExisting: NgpPaginationPrevious },
50
+ ],
51
+ hostDirectives: [NgpButton],
52
+ host: {
53
+ '[tabindex]': 'disabled() ? -1 : 0',
54
+ '[attr.data-disabled]': 'disabled()',
55
+ '[attr.data-first-page]': 'pagination.firstPage()',
56
+ },
57
+ }]
58
+ }], propDecorators: { goToPreviousPage: [{
59
+ type: HostListener,
60
+ args: ['click']
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1wcmV2aW91cy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL3BhZ2luYXRpb24vc3JjL3BhZ2luYXRpb24tcHJldmlvdXMvcGFnaW5hdGlvbi1wcmV2aW91cy5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBUUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzRixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDakQsT0FBTyxFQUFpQixnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7QUFpQnpFLE1BQU0sT0FBTyxxQkFBcUI7SUFmbEM7UUFnQkU7O1dBRUc7UUFDZ0IsZUFBVSxHQUFHLGdCQUFnQixFQUFFLENBQUM7UUFFbkQ7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBd0IsS0FBSyxFQUFFO1lBQzVELEtBQUssRUFBRSwrQkFBK0I7WUFDdEMsU0FBUyxFQUFFLGdCQUFnQjtTQUM1QixDQUFDLENBQUM7UUFFSDs7V0FFRztRQUNNLGFBQVEsR0FBRyxRQUFRLENBQzFCLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxFQUFFLENBQ3pGLENBQUM7S0FhSDtJQVhDOztPQUVHO0lBRUgsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUNwQixPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7OEdBL0JVLHFCQUFxQjtrR0FBckIscUJBQXFCLHFiQVhyQjtZQUNULEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxxQkFBcUIsRUFBRTtZQUMzRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUscUJBQXFCLEVBQUU7U0FDbEU7OzJGQVFVLHFCQUFxQjtrQkFmakMsU0FBUzttQkFBQztvQkFDVCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHlCQUF5QjtvQkFDbkMsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsU0FBUyxFQUFFO3dCQUNULEVBQUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLFdBQVcsdUJBQXVCLEVBQUU7d0JBQzNFLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFdBQVcsdUJBQXVCLEVBQUU7cUJBQ2xFO29CQUNELGNBQWMsRUFBRSxDQUFDLFNBQVMsQ0FBQztvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLFlBQVksRUFBRSxxQkFBcUI7d0JBQ25DLHNCQUFzQixFQUFFLFlBQVk7d0JBQ3BDLHdCQUF3QixFQUFFLHdCQUF3QjtxQkFDbkQ7aUJBQ0Y7OEJBMEJDLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEJvb2xlYW5JbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBjb21wdXRlZCwgRGlyZWN0aXZlLCBIb3N0TGlzdGVuZXIsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3BCdXR0b24gfSBmcm9tICduZy1wcmltaXRpdmVzL2J1dHRvbic7XG5pbXBvcnQgeyBOZ3BDYW5EaXNhYmxlLCBOZ3BEaXNhYmxlZFRva2VuIH0gZnJvbSAnbmctcHJpbWl0aXZlcy9pbnRlcm5hbCc7XG5pbXBvcnQgeyBpbmplY3RQYWdpbmF0aW9uIH0gZnJvbSAnLi4vcGFnaW5hdGlvbi9wYWdpbmF0aW9uLnRva2VuJztcbmltcG9ydCB7IE5ncFBhZ2luYXRpb25QcmV2aW91c1Rva2VuIH0gZnJvbSAnLi9wYWdpbmF0aW9uLXByZXZpb3VzLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIHNlbGVjdG9yOiAnW25ncFBhZ2luYXRpb25QcmV2aW91c10nLFxuICBleHBvcnRBczogJ25ncFBhZ2luYXRpb25QcmV2aW91cycsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogTmdwUGFnaW5hdGlvblByZXZpb3VzVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BQYWdpbmF0aW9uUHJldmlvdXMgfSxcbiAgICB7IHByb3ZpZGU6IE5ncERpc2FibGVkVG9rZW4sIHVzZUV4aXN0aW5nOiBOZ3BQYWdpbmF0aW9uUHJldmlvdXMgfSxcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtOZ3BCdXR0b25dLFxuICBob3N0OiB7XG4gICAgJ1t0YWJpbmRleF0nOiAnZGlzYWJsZWQoKSA/IC0xIDogMCcsXG4gICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkKCknLFxuICAgICdbYXR0ci5kYXRhLWZpcnN0LXBhZ2VdJzogJ3BhZ2luYXRpb24uZmlyc3RQYWdlKCknLFxuICB9LFxufSlcbmV4cG9ydCBjbGFzcyBOZ3BQYWdpbmF0aW9uUHJldmlvdXMgaW1wbGVtZW50cyBOZ3BDYW5EaXNhYmxlIHtcbiAgLyoqXG4gICAqIEFjY2VzcyB0aGUgcGFnaW5hdGlvbiBkaXJlY3RpdmUuXG4gICAqL1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFnaW5hdGlvbiA9IGluamVjdFBhZ2luYXRpb24oKTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYnV0dG9uIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgYnV0dG9uRGlzYWJsZWQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KGZhbHNlLCB7XG4gICAgYWxpYXM6ICduZ3BQYWdpbmF0aW9uUHJldmlvdXNEaXNhYmxlZCcsXG4gICAgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLFxuICB9KTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYnV0dG9uIGlzIGRpc2FibGVkLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlzYWJsZWQgPSBjb21wdXRlZChcbiAgICAoKSA9PiB0aGlzLmJ1dHRvbkRpc2FibGVkKCkgfHwgdGhpcy5wYWdpbmF0aW9uLmRpc2FibGVkKCkgfHwgdGhpcy5wYWdpbmF0aW9uLmZpcnN0UGFnZSgpLFxuICApO1xuXG4gIC8qKlxuICAgKiBHbyB0byB0aGUgcHJldmlvdXMgcGFnZS5cbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcbiAgZ29Ub1ByZXZpb3VzUGFnZSgpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCgpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5wYWdpbmF0aW9uLnBhZ2Uuc2V0KHRoaXMucGFnaW5hdGlvbi5wYWdlKCkgLSAxKTtcbiAgfVxufVxuIl19
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Copyright © 2024 Angular Primitives.
3
+ * https://github.com/ng-primitives/ng-primitives
4
+ *
5
+ * This source code is licensed under the Apache 2.0 license found in the
6
+ * LICENSE file in the root directory of this source tree.
7
+ */
8
+ import { InjectionToken, inject } from '@angular/core';
9
+ export const NgpPaginationPreviousToken = new InjectionToken('NgpPaginationPreviousToken');
10
+ /**
11
+ * Inject the PaginationPrevious directive instance
12
+ */
13
+ export function injectPaginationPrevious() {
14
+ return inject(NgpPaginationPreviousToken);
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi1wcmV2aW91cy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nLXByaW1pdGl2ZXMvcGFnaW5hdGlvbi9zcmMvcGFnaW5hdGlvbi1wcmV2aW91cy9wYWdpbmF0aW9uLXByZXZpb3VzLnRva2VuLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR3ZELE1BQU0sQ0FBQyxNQUFNLDBCQUEwQixHQUFHLElBQUksY0FBYyxDQUMxRCw0QkFBNEIsQ0FDN0IsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxVQUFVLHdCQUF3QjtJQUN0QyxPQUFPLE1BQU0sQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0FBQzVDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgMi4wIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cbmltcG9ydCB7IEluamVjdGlvblRva2VuLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHsgTmdwUGFnaW5hdGlvblByZXZpb3VzIH0gZnJvbSAnLi9wYWdpbmF0aW9uLXByZXZpb3VzLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBOZ3BQYWdpbmF0aW9uUHJldmlvdXNUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxOZ3BQYWdpbmF0aW9uUHJldmlvdXM+KFxuICAnTmdwUGFnaW5hdGlvblByZXZpb3VzVG9rZW4nLFxuKTtcblxuLyoqXG4gKiBJbmplY3QgdGhlIFBhZ2luYXRpb25QcmV2aW91cyBkaXJlY3RpdmUgaW5zdGFuY2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFBhZ2luYXRpb25QcmV2aW91cygpOiBOZ3BQYWdpbmF0aW9uUHJldmlvdXMge1xuICByZXR1cm4gaW5qZWN0KE5ncFBhZ2luYXRpb25QcmV2aW91c1Rva2VuKTtcbn1cbiJdfQ==