@wizishop/angular-components 15.1.83 → 15.1.85

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 (137) hide show
  1. package/esm2020/lib/components/ai-express/ai-express.component.mjs +3 -3
  2. package/esm2020/lib/components/alert/alert.component.mjs +3 -3
  3. package/esm2020/lib/components/alert-popup/alert-popup-module.mjs +4 -4
  4. package/esm2020/lib/components/alert-popup/alert-popup.component.mjs +3 -3
  5. package/esm2020/lib/components/alert-popup/alert-popup.service.mjs +3 -3
  6. package/esm2020/lib/components/back/back.component.mjs +3 -3
  7. package/esm2020/lib/components/block/block-title-legacy/block-title-legacy.component.mjs +3 -3
  8. package/esm2020/lib/components/block/block.component.mjs +3 -3
  9. package/esm2020/lib/components/block/separator/block-separator.component.mjs +3 -3
  10. package/esm2020/lib/components/block-with-checkbox/block-with-checkbox.component.mjs +3 -3
  11. package/esm2020/lib/components/breadcrumbs/breadcrumbs.component.mjs +3 -3
  12. package/esm2020/lib/components/button/button.component.mjs +3 -3
  13. package/esm2020/lib/components/calendar/calendar.component.mjs +6 -6
  14. package/esm2020/lib/components/card-price/card-price.component.mjs +3 -3
  15. package/esm2020/lib/components/charging-bar/charging-bar.component.mjs +3 -3
  16. package/esm2020/lib/components/checkbox/checkbox.component.mjs +3 -3
  17. package/esm2020/lib/components/checkbox/checkbox.module.mjs +4 -4
  18. package/esm2020/lib/components/column/column.component.mjs +3 -3
  19. package/esm2020/lib/components/common/label/label.component.mjs +3 -3
  20. package/esm2020/lib/components/common/placeholder/placeholder.component.mjs +3 -3
  21. package/esm2020/lib/components/confirm-delete/confirm-delete.component.mjs +3 -3
  22. package/esm2020/lib/components/content-with-buttons/content-with-buttons.component.mjs +3 -3
  23. package/esm2020/lib/components/delete/delete.component.mjs +3 -3
  24. package/esm2020/lib/components/draganddrop-list/draganddrop-list.component.mjs +3 -3
  25. package/esm2020/lib/components/dropdown/dropdown.component.mjs +3 -3
  26. package/esm2020/lib/components/edit-in-place/edit-in-place.component.mjs +3 -3
  27. package/esm2020/lib/components/expanded-panel/expanded-panel.component.mjs +3 -3
  28. package/esm2020/lib/components/expansion/accordion/accordion.component.mjs +3 -3
  29. package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.component.mjs +3 -3
  30. package/esm2020/lib/components/expansion/expansion-panel/expansion-panel.directive.mjs +3 -3
  31. package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.component.mjs +3 -3
  32. package/esm2020/lib/components/expansion/expansion-panel-header/expansion-panel-header.directive.mjs +3 -3
  33. package/esm2020/lib/components/expansion/expansion.module.mjs +4 -4
  34. package/esm2020/lib/components/filters/filters.component.mjs +3 -3
  35. package/esm2020/lib/components/free-popin/free-popin.component.mjs +3 -3
  36. package/esm2020/lib/components/google-preview/google-preview.component.mjs +3 -3
  37. package/esm2020/lib/components/header-page/header-page.component.mjs +3 -3
  38. package/esm2020/lib/components/hn/h1/h1.component.mjs +3 -3
  39. package/esm2020/lib/components/hn/h2/h2.component.mjs +3 -3
  40. package/esm2020/lib/components/hn/h3/h3.component.mjs +3 -3
  41. package/esm2020/lib/components/hn/h4/h4.component.mjs +3 -3
  42. package/esm2020/lib/components/image/image.component.mjs +3 -3
  43. package/esm2020/lib/components/info/info.component.mjs +3 -3
  44. package/esm2020/lib/components/inputs/input/input.component.mjs +3 -3
  45. package/esm2020/lib/components/inputs/input-search/input-search.component.mjs +3 -3
  46. package/esm2020/lib/components/inputs/input-with-select/input-with-select.component.mjs +3 -3
  47. package/esm2020/lib/components/link/link.component.mjs +3 -3
  48. package/esm2020/lib/components/loader/loader.component.mjs +3 -3
  49. package/esm2020/lib/components/logo/logo.component.mjs +3 -3
  50. package/esm2020/lib/components/mosaic/mosaic.component.mjs +3 -3
  51. package/esm2020/lib/components/multiple-search/multiple-search.component.mjs +3 -3
  52. package/esm2020/lib/components/multiple-search-plus/multiple-search-plus.component.mjs +3 -3
  53. package/esm2020/lib/components/optional-disable-container/optional-disable-container.component.mjs +3 -3
  54. package/esm2020/lib/components/pagination/pagination.component.mjs +3 -3
  55. package/esm2020/lib/components/pagination/pagination.module.mjs +4 -4
  56. package/esm2020/lib/components/pagination/pipes/array-pages.pipe.mjs +3 -3
  57. package/esm2020/lib/components/pagination/pipes/custom-text.pipe.mjs +3 -3
  58. package/esm2020/lib/components/pagination/pipes/is-last-page.pipe.mjs +3 -3
  59. package/esm2020/lib/components/popin/popin.component.mjs +3 -3
  60. package/esm2020/lib/components/progress-bar/progress-bar.component.mjs +3 -3
  61. package/esm2020/lib/components/radio/radio-directive.mjs +3 -3
  62. package/esm2020/lib/components/radio/radio-group.directive.mjs +3 -3
  63. package/esm2020/lib/components/radio/radio.component.mjs +3 -3
  64. package/esm2020/lib/components/row/row.component.mjs +3 -3
  65. package/esm2020/lib/components/search/search.component.mjs +3 -3
  66. package/esm2020/lib/components/select/option/option.component.mjs +3 -3
  67. package/esm2020/lib/components/select/option/select-option.directive.mjs +3 -3
  68. package/esm2020/lib/components/select/option-call-to-action/option-call-to-action.component.mjs +3 -3
  69. package/esm2020/lib/components/select/select/select.component.mjs +3 -3
  70. package/esm2020/lib/components/select/select/select.directive.mjs +3 -3
  71. package/esm2020/lib/components/select/select/value-change.service.mjs +3 -3
  72. package/esm2020/lib/components/select/select-search-trigger/select-search-trigger.component.mjs +3 -3
  73. package/esm2020/lib/components/select-in-text/select-in-text.component.mjs +3 -3
  74. package/esm2020/lib/components/selected-list/selected-list.component.mjs +3 -3
  75. package/esm2020/lib/components/separator/separator.component.mjs +3 -3
  76. package/esm2020/lib/components/settings/settings.component.mjs +3 -3
  77. package/esm2020/lib/components/shared-components.module.mjs +4 -4
  78. package/esm2020/lib/components/snackbar/snackbar.component.mjs +3 -3
  79. package/esm2020/lib/components/state/state.component.mjs +3 -3
  80. package/esm2020/lib/components/summary/summary.component.mjs +3 -3
  81. package/esm2020/lib/components/switch/switch.component.mjs +3 -3
  82. package/esm2020/lib/components/table/directives/checkBoxRow.directive.mjs +3 -3
  83. package/esm2020/lib/components/table/directives/column.directive.mjs +3 -3
  84. package/esm2020/lib/components/table/directives/columnHeader.directive.mjs +3 -3
  85. package/esm2020/lib/components/table/directives/raw.directive.mjs +3 -3
  86. package/esm2020/lib/components/table/shared/filters-table.service.mjs +3 -3
  87. package/esm2020/lib/components/table/shared/table-checkbox-id.service.mjs +3 -3
  88. package/esm2020/lib/components/table/table.component.mjs +3 -3
  89. package/esm2020/lib/components/table/table.module.mjs +4 -4
  90. package/esm2020/lib/components/tabs/tab/tab.component.mjs +3 -3
  91. package/esm2020/lib/components/tabs/tab-body/tab-body.component.mjs +3 -3
  92. package/esm2020/lib/components/tabs/tab-body/tab-body.directive.mjs +3 -3
  93. package/esm2020/lib/components/tabs/tabs.component.mjs +3 -3
  94. package/esm2020/lib/components/tag/tag.component.mjs +3 -3
  95. package/esm2020/lib/components/tag-label/tag-label.component.mjs +3 -3
  96. package/esm2020/lib/components/text/text.component.mjs +3 -3
  97. package/esm2020/lib/components/text-area/text-area.component.mjs +5 -5
  98. package/esm2020/lib/components/token-check/token-check.component.mjs +3 -3
  99. package/esm2020/lib/components/tooltip/tooltip.component.mjs +3 -3
  100. package/esm2020/lib/components/tooltip/tooltip.module.mjs +4 -4
  101. package/esm2020/lib/components/tree/tree.component.mjs +3 -3
  102. package/esm2020/lib/components/tree/tree.module.mjs +4 -4
  103. package/esm2020/lib/components/upload/upload.component.mjs +3 -3
  104. package/esm2020/lib/components/wrapper/wrapper.component.mjs +3 -3
  105. package/esm2020/lib/components/wrapper-blocs/wrapper-blocs.component.mjs +3 -3
  106. package/esm2020/lib/components/wrapper-multiple-block/wrapper-multiple-block.component.mjs +3 -3
  107. package/esm2020/lib/components/wrapper-sidebar/wrapper-sidebar.component.mjs +3 -3
  108. package/esm2020/lib/directives/abstract-debounce/abstract-debounce.directive.mjs +3 -3
  109. package/esm2020/lib/directives/abstract-debounce/debounce-keyup.directive.mjs +3 -3
  110. package/esm2020/lib/directives/auto-hide/auto-hide.directive.mjs +3 -3
  111. package/esm2020/lib/directives/copy-to-clipboard/copy-to-clipboard.directive.mjs +3 -3
  112. package/esm2020/lib/directives/keyboard-events/keypress-enter.directive.mjs +3 -3
  113. package/esm2020/lib/directives/keyboard-events/only-numbers.directive.mjs +3 -3
  114. package/esm2020/lib/directives/keyboard-events/two-digital-decimal-number.directive.mjs +3 -3
  115. package/esm2020/lib/directives/ng-var.directive.mjs +3 -3
  116. package/esm2020/lib/directives/scroll-to/scroll-to.directive.mjs +3 -3
  117. package/esm2020/lib/directives/shared-directives.module.mjs +4 -4
  118. package/esm2020/lib/directives/zindex-toggle/zindex-toggle.directive.mjs +3 -3
  119. package/esm2020/lib/pipes/call-component-function.pipe.mjs +3 -3
  120. package/esm2020/lib/pipes/find-option-selected-field.pipe.mjs +3 -3
  121. package/esm2020/lib/pipes/select/filter-options.pipe.mjs +3 -3
  122. package/esm2020/lib/pipes/select/select-filters.pipe.mjs +3 -3
  123. package/esm2020/lib/pipes/selected-list/are-all-options-selected.pipe.mjs +3 -3
  124. package/esm2020/lib/pipes/shared-pipes.module.mjs +4 -4
  125. package/esm2020/lib/pipes/tree/format-object-to-recursif-tree.pipe.mjs +3 -3
  126. package/esm2020/lib/pipes/tree/format-object-to-simple-tree.pipe.mjs +3 -3
  127. package/esm2020/lib/services/dom.service.mjs +3 -3
  128. package/esm2020/lib/services/history.service.mjs +3 -3
  129. package/esm2020/lib/services/multiple-selection.service.mjs +3 -3
  130. package/esm2020/lib/wizi-components.module.mjs +4 -4
  131. package/fesm2015/wizishop-angular-components.mjs +404 -404
  132. package/fesm2015/wizishop-angular-components.mjs.map +1 -1
  133. package/fesm2020/wizishop-angular-components.mjs +404 -404
  134. package/fesm2020/wizishop-angular-components.mjs.map +1 -1
  135. package/package.json +1 -1
  136. package/wizishop-angular-components-15.1.85.tgz +0 -0
  137. package/wizishop-angular-components-15.1.83.tgz +0 -0
@@ -44,9 +44,9 @@ export class AiExpressComponent {
44
44
  }
45
45
  }
46
46
  }
47
- AiExpressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AiExpressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
- AiExpressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: AiExpressComponent, selector: "wac-ai-express", inputs: { top: "top", right: "right", loading: "loading", disabled: "disabled", wordingTop: "wordingTop", wordingToken: "wordingToken", wordingTokenLeft: "wordingTokenLeft", wordingRegisterTop: "wordingRegisterTop", wordingRegisterBtn: "wordingRegisterBtn", wordingDisabled: "wordingDisabled", tokenCost: "tokenCost", tokenLeft: "tokenLeft", tokenCount: "tokenCount", isRegister: "isRegister" }, outputs: { validAction: "validAction" }, ngImport: i0, template: "<div class=\"wac-ai-express\">\n <ng-content></ng-content>\n <div [style.top]=\"top\" [style.right]=\"right\" class=\"wac-ai-express__icon\" [ngClass]=\"{'disabled': disabled, 'loading': loading}\" (click)=\"validate();\">\n <i class=\"fa-regular fa-wand-magic-sparkles\" *ngIf=\"!loading\"></i>\n <svg *ngIf=\"loading\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin:auto;background:transparent;display:block;\" width=\"200px\" height=\"200px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <g transform=\"rotate(0 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.9166666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(30 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.8333333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(60 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.75s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(90 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.6666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(120 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5833333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(150 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(180 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.4166666666666667s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(210 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.3333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(240 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.25s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(270 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.16666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(300 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.08333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(330 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"0s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g>\n </svg>\n </div>\n <div *ngIf=\"isRegister && !disabled\" class=\"wac-ai-express__wrapper\">\n <div>\n <span [innerHTML]=\"wordingTop\"></span>\n </div>\n <div>\n <div>\n <div>\n <i class=\"fa-solid fa-coin-front\"></i>\n <span [innerHTML]=\"tokenCost\"></span>\n </div>\n <span [innerHTML]=\"wordingToken\"></span>\n </div>\n <div>\n <div>\n <strong [innerHTML]=\"tokenLeft\"></strong> / <span [innerHTML]=\"tokenCount\"></span>\n </div>\n <div>\n <span [innerHTML]=\"wordingTokenLeft\"></span>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isRegister && !disabled\" class=\"wac-ai-express__register\">\n <p [innerHTML]=\"wordingRegisterTop\"></p>\n <a [target]=\"'_blank'\" [href]=\"hrefRegister\"><i class=\"fa-regular fa-wand-magic-sparkles\"></i> <span [innerHTML]=\"wordingRegisterBtn\"></span></a>\n </div>\n <div *ngIf=\"disabled && wordingDisabled\" class=\"wac-ai-express__disabled\">\n <p [innerHTML]=\"wordingDisabled\"></p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AiExpressComponent, decorators: [{
47
+ AiExpressComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AiExpressComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
48
+ AiExpressComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: AiExpressComponent, selector: "wac-ai-express", inputs: { top: "top", right: "right", loading: "loading", disabled: "disabled", wordingTop: "wordingTop", wordingToken: "wordingToken", wordingTokenLeft: "wordingTokenLeft", wordingRegisterTop: "wordingRegisterTop", wordingRegisterBtn: "wordingRegisterBtn", wordingDisabled: "wordingDisabled", tokenCost: "tokenCost", tokenLeft: "tokenLeft", tokenCount: "tokenCount", isRegister: "isRegister" }, outputs: { validAction: "validAction" }, ngImport: i0, template: "<div class=\"wac-ai-express\">\n <ng-content></ng-content>\n <div [style.top]=\"top\" [style.right]=\"right\" class=\"wac-ai-express__icon\" [ngClass]=\"{'disabled': disabled, 'loading': loading}\" (click)=\"validate();\">\n <i class=\"fa-regular fa-wand-magic-sparkles\" *ngIf=\"!loading\"></i>\n <svg *ngIf=\"loading\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin:auto;background:transparent;display:block;\" width=\"200px\" height=\"200px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <g transform=\"rotate(0 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.9166666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(30 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.8333333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(60 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.75s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(90 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.6666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(120 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5833333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(150 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(180 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.4166666666666667s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(210 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.3333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(240 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.25s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(270 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.16666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(300 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.08333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(330 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"0s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g>\n </svg>\n </div>\n <div *ngIf=\"isRegister && !disabled\" class=\"wac-ai-express__wrapper\">\n <div>\n <span [innerHTML]=\"wordingTop\"></span>\n </div>\n <div>\n <div>\n <div>\n <i class=\"fa-solid fa-coin-front\"></i>\n <span [innerHTML]=\"tokenCost\"></span>\n </div>\n <span [innerHTML]=\"wordingToken\"></span>\n </div>\n <div>\n <div>\n <strong [innerHTML]=\"tokenLeft\"></strong> / <span [innerHTML]=\"tokenCount\"></span>\n </div>\n <div>\n <span [innerHTML]=\"wordingTokenLeft\"></span>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isRegister && !disabled\" class=\"wac-ai-express__register\">\n <p [innerHTML]=\"wordingRegisterTop\"></p>\n <a [target]=\"'_blank'\" [href]=\"hrefRegister\"><i class=\"fa-regular fa-wand-magic-sparkles\"></i> <span [innerHTML]=\"wordingRegisterBtn\"></span></a>\n </div>\n <div *ngIf=\"disabled && wordingDisabled\" class=\"wac-ai-express__disabled\">\n <p [innerHTML]=\"wordingDisabled\"></p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AiExpressComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'wac-ai-express', template: "<div class=\"wac-ai-express\">\n <ng-content></ng-content>\n <div [style.top]=\"top\" [style.right]=\"right\" class=\"wac-ai-express__icon\" [ngClass]=\"{'disabled': disabled, 'loading': loading}\" (click)=\"validate();\">\n <i class=\"fa-regular fa-wand-magic-sparkles\" *ngIf=\"!loading\"></i>\n <svg *ngIf=\"loading\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" style=\"margin:auto;background:transparent;display:block;\" width=\"200px\" height=\"200px\" viewBox=\"0 0 100 100\" preserveAspectRatio=\"xMidYMid\">\n <g transform=\"rotate(0 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.9166666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(30 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.8333333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(60 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.75s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(90 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.6666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(120 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5833333333333334s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(150 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.5s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(180 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.4166666666666667s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(210 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.3333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(240 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.25s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(270 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.16666666666666666s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(300 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"-0.08333333333333333s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g><g transform=\"rotate(330 50 50)\">\n <rect x=\"47\" y=\"24\" rx=\"3\" ry=\"6\" width=\"6\" height=\"12\" fill=\"#59d0cf\">\n <animate attributeName=\"opacity\" values=\"1;0\" keyTimes=\"0;1\" dur=\"1s\" begin=\"0s\" repeatCount=\"indefinite\"></animate>\n </rect>\n </g>\n </svg>\n </div>\n <div *ngIf=\"isRegister && !disabled\" class=\"wac-ai-express__wrapper\">\n <div>\n <span [innerHTML]=\"wordingTop\"></span>\n </div>\n <div>\n <div>\n <div>\n <i class=\"fa-solid fa-coin-front\"></i>\n <span [innerHTML]=\"tokenCost\"></span>\n </div>\n <span [innerHTML]=\"wordingToken\"></span>\n </div>\n <div>\n <div>\n <strong [innerHTML]=\"tokenLeft\"></strong> / <span [innerHTML]=\"tokenCount\"></span>\n </div>\n <div>\n <span [innerHTML]=\"wordingTokenLeft\"></span>\n </div>\n </div>\n </div>\n </div>\n <div *ngIf=\"!isRegister && !disabled\" class=\"wac-ai-express__register\">\n <p [innerHTML]=\"wordingRegisterTop\"></p>\n <a [target]=\"'_blank'\" [href]=\"hrefRegister\"><i class=\"fa-regular fa-wand-magic-sparkles\"></i> <span [innerHTML]=\"wordingRegisterBtn\"></span></a>\n </div>\n <div *ngIf=\"disabled && wordingDisabled\" class=\"wac-ai-express__disabled\">\n <p [innerHTML]=\"wordingDisabled\"></p>\n </div>\n</div>\n" }]
52
52
  }], ctorParameters: function () { return []; }, propDecorators: { top: [{
@@ -19,9 +19,9 @@ export class AlertComponent {
19
19
  this.isCloseChange.next(this.isClose);
20
20
  }
21
21
  }
22
- AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
- AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: AlertComponent, selector: "wac-alert", inputs: { icon: "icon", warning: "warning", success: "success", alert: "alert", iconClass: "iconClass", closeButton: "closeButton" }, outputs: { isCloseChange: "isCloseChange" }, ngImport: i0, template: "<div #alertBlock class=\"wac-alert\" [ngClass]=\"{ success: success, warning: warning, alert: alert }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p> <!-- ! Refacto : Remove p tag, attention \u00E0 wizi-admin -->\n <a *ngIf=\"closeButton\" (click)=\"closeAlert(this.alertBlock)\"><i [ngClass]=\"'closeAlert fal fa-circle-xmark'\"></i></a>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertComponent, decorators: [{
22
+ AlertComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
23
+ AlertComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: AlertComponent, selector: "wac-alert", inputs: { icon: "icon", warning: "warning", success: "success", alert: "alert", iconClass: "iconClass", closeButton: "closeButton" }, outputs: { isCloseChange: "isCloseChange" }, ngImport: i0, template: "<div #alertBlock class=\"wac-alert\" [ngClass]=\"{ success: success, warning: warning, alert: alert }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p> <!-- ! Refacto : Remove p tag, attention \u00E0 wizi-admin -->\n <a *ngIf=\"closeButton\" (click)=\"closeAlert(this.alertBlock)\"><i [ngClass]=\"'closeAlert fal fa-circle-xmark'\"></i></a>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
24
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertComponent, decorators: [{
25
25
  type: Component,
26
26
  args: [{ selector: 'wac-alert', template: "<div #alertBlock class=\"wac-alert\" [ngClass]=\"{ success: success, warning: warning, alert: alert }\">\n <i *ngIf=\"icon\" [ngClass]=\"iconClass\"></i>\n <p><ng-content></ng-content></p> <!-- ! Refacto : Remove p tag, attention \u00E0 wizi-admin -->\n <a *ngIf=\"closeButton\" (click)=\"closeAlert(this.alertBlock)\"><i [ngClass]=\"'closeAlert fal fa-circle-xmark'\"></i></a>\n</div>\n" }]
27
27
  }], ctorParameters: function () { return []; }, propDecorators: { icon: [{
@@ -5,10 +5,10 @@ import { AlertPopupComponent } from './alert-popup.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export class AlertPopupModule {
7
7
  }
8
- AlertPopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
- AlertPopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupModule, declarations: [AlertPopupComponent], imports: [CommonModule], exports: [AlertPopupComponent] });
10
- AlertPopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupModule, providers: [AlertPopupService], imports: [CommonModule] });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupModule, decorators: [{
8
+ AlertPopupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ AlertPopupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupModule, declarations: [AlertPopupComponent], imports: [CommonModule], exports: [AlertPopupComponent] });
10
+ AlertPopupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupModule, providers: [AlertPopupService], imports: [CommonModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupModule, decorators: [{
12
12
  type: NgModule,
13
13
  args: [{
14
14
  imports: [CommonModule],
@@ -30,9 +30,9 @@ export class AlertPopupComponent {
30
30
  return this.afterClosedPopup.asObservable();
31
31
  }
32
32
  }
33
- AlertPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
- AlertPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: AlertPopupComponent, selector: "wac-alert-popup", host: { classAttribute: "wac-alert-popup" }, ngImport: i0, template: "<div\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\n>\n <div class=\"alert--message\">\n <span class=\"icon\" *ngIf=\"config.icon\">\n <i [class]=\"config.icon\"></i>\n </span>\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupComponent, decorators: [{
33
+ AlertPopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
+ AlertPopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: AlertPopupComponent, selector: "wac-alert-popup", host: { classAttribute: "wac-alert-popup" }, ngImport: i0, template: "<div\n [class]=\"'alert ' + ((config.color) ? config.color : ' is-primary') + ((config.extraClasses) ? ' ' + config.extraClasses : '') + ((config.position) ? ' ' + config.position : '') + ((config.fullsize) ? ' fullsize' : '') + ((config.opacity) ? ' opacity-active' : '') + ((config.small) ? ' small' : '') + ((config.icon) ? ' with-icon' : '') + ((config.duration) ? '' : ' no-duration')\"\n [ngClass]=\"{'is-active': open, 'has-close': config.closeButton}\"\n>\n <div class=\"alert--message\">\n <span class=\"icon\" *ngIf=\"config.icon\">\n <i [class]=\"config.icon\"></i>\n </span>\n <span (click)=\"dismiss()\" class=\"wac-alert-popup__close\" *ngIf=\"!config.small || (config.small && config.closeButton)\"><i class=\"far fa-times\"></i></span>\n <p *ngIf=\"config.title\" class=\"wac-alert-popup__title\" [innerHTML]=\"config.title\"></p>\n <p *ngIf=\"config.message\" class=\"wac-alert-popup__text\" [innerHTML]=\"config.message\"></p>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupComponent, decorators: [{
36
36
  type: Component,
37
37
  args: [{ selector: 'wac-alert-popup', host: {
38
38
  class: 'wac-alert-popup'
@@ -22,9 +22,9 @@ export class AlertPopupService {
22
22
  return componentRef;
23
23
  }
24
24
  }
25
- AlertPopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupService, deps: [{ token: i1.DomService }], target: i0.ɵɵFactoryTarget.Injectable });
26
- AlertPopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupService, providedIn: 'root' });
27
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: AlertPopupService, decorators: [{
25
+ AlertPopupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupService, deps: [{ token: i1.DomService }], target: i0.ɵɵFactoryTarget.Injectable });
26
+ AlertPopupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupService, providedIn: 'root' });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: AlertPopupService, decorators: [{
28
28
  type: Injectable,
29
29
  args: [{
30
30
  providedIn: 'root'
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export class BackComponent {
4
4
  constructor() { }
5
5
  }
6
- BackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- BackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BackComponent, selector: "wac-back", ngImport: i0, template: "<div class=\"wac-back\">\n <div class=\"wac-back__wrapper\">\n <i class=\"fas fa-chevron-left\"></i>\n </div>\n</div>\n" });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BackComponent, decorators: [{
6
+ BackComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BackComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ BackComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BackComponent, selector: "wac-back", ngImport: i0, template: "<div class=\"wac-back\">\n <div class=\"wac-back__wrapper\">\n <i class=\"fas fa-chevron-left\"></i>\n </div>\n</div>\n" });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BackComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'wac-back', template: "<div class=\"wac-back\">\n <div class=\"wac-back__wrapper\">\n <i class=\"fas fa-chevron-left\"></i>\n </div>\n</div>\n" }]
11
11
  }], ctorParameters: function () { return []; } });
@@ -8,9 +8,9 @@ export class BlockTitleLegacyComponent {
8
8
  this.icon = '';
9
9
  }
10
10
  }
11
- BlockTitleLegacyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockTitleLegacyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- BlockTitleLegacyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BlockTitleLegacyComponent, isStandalone: true, selector: "wac-block-title-legacy", inputs: { simple: "simple", icon: "icon" }, ngImport: i0, template: "<h2 class=\"wac-block__title\" [ngClass]=\"{ 'is-simple': simple }\">\n <ng-content></ng-content> <i *ngIf=\"icon\" [ngClass]=\"icon\"></i>\n</h2>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockTitleLegacyComponent, decorators: [{
11
+ BlockTitleLegacyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockTitleLegacyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
+ BlockTitleLegacyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BlockTitleLegacyComponent, isStandalone: true, selector: "wac-block-title-legacy", inputs: { simple: "simple", icon: "icon" }, ngImport: i0, template: "<h2 class=\"wac-block__title\" [ngClass]=\"{ 'is-simple': simple }\">\n <ng-content></ng-content> <i *ngIf=\"icon\" [ngClass]=\"icon\"></i>\n</h2>", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockTitleLegacyComponent, decorators: [{
14
14
  type: Component,
15
15
  args: [{ selector: 'wac-block-title-legacy', encapsulation: ViewEncapsulation.None, standalone: true, imports: [CommonModule], template: "<h2 class=\"wac-block__title\" [ngClass]=\"{ 'is-simple': simple }\">\n <ng-content></ng-content> <i *ngIf=\"icon\" [ngClass]=\"icon\"></i>\n</h2>" }]
16
16
  }], ctorParameters: function () { return []; }, propDecorators: { simple: [{
@@ -107,9 +107,9 @@ export class BlockComponent {
107
107
  this.destroy$.complete();
108
108
  }
109
109
  }
110
- BlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
111
- BlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BlockComponent, isStandalone: true, selector: "wac-block", inputs: { config: "config" }, host: { properties: { "style": "this.borderRadius" } }, queries: [{ propertyName: "blockSeparators", predicate: BlockSeparatorComponent }], ngImport: i0, template: "<ng-content></ng-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockComponent, decorators: [{
110
+ BlockComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
111
+ BlockComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BlockComponent, isStandalone: true, selector: "wac-block", inputs: { config: "config" }, host: { properties: { "style": "this.borderRadius" } }, queries: [{ propertyName: "blockSeparators", predicate: BlockSeparatorComponent }], ngImport: i0, template: "<ng-content></ng-content>", dependencies: [{ kind: "ngmodule", type: CommonModule }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockComponent, decorators: [{
113
113
  type: Component,
114
114
  args: [{ selector: 'wac-block', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CommonModule], template: "<ng-content></ng-content>" }]
115
115
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }]; }, propDecorators: { blockSeparators: [{
@@ -3,9 +3,9 @@ import * as i0 from "@angular/core";
3
3
  export class BlockSeparatorComponent {
4
4
  constructor() { }
5
5
  }
6
- BlockSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
- BlockSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BlockSeparatorComponent, isStandalone: true, selector: "wac-block-separator", ngImport: i0, template: ``, isInline: true, encapsulation: i0.ViewEncapsulation.None });
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockSeparatorComponent, decorators: [{
6
+ BlockSeparatorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockSeparatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ BlockSeparatorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BlockSeparatorComponent, isStandalone: true, selector: "wac-block-separator", ngImport: i0, template: ``, isInline: true, encapsulation: i0.ViewEncapsulation.None });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockSeparatorComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{
11
11
  selector: 'wac-block-separator',
@@ -25,9 +25,9 @@ export class BlockWithCheckboxComponent {
25
25
  }
26
26
  }
27
27
  }
28
- BlockWithCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockWithCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
- BlockWithCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BlockWithCheckboxComponent, selector: "wac-block-with-checkbox", inputs: { selected: "selected", disabled: "disabled", nameRadio: "nameRadio", isFirst: "isFirst", opacity: "opacity" }, outputs: { checkboxAction: "checkboxAction" }, ngImport: i0, template: "<div class=\"block-with-checkbox\" (click)=\"disabled && $event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? $event.preventDefault() : ''\" [ngClass]=\"{'selected': inputRadioA.checked || selected, 'firstWacRadioBLock': isFirst, 'disabled': disabled}\" [style.opacity]=\"opacity\" (mouseover)=\"removeFirstClass()\">\n <div class=\"block-with-checkbox__left\" (click)=\"inputRadioA.click()\">\n <div class=\"wac-radio-block\">\n <div class=\"wac-radio__row\">\n <input #inputRadioA [name]=\"nameRadio\" type=\"radio\" [checked]=\"selected\" [value]=\"selected\" (change)=\"eventSelected($event)\" [id]=\"randomLabelName\">\n <label [for]=\"randomLabelName\"></label>\n </div>\n </div>\n </div>\n <div class=\"block-with-checkbox__center\" (click)=\"$event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? inputRadioA.click() : '';\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
30
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BlockWithCheckboxComponent, decorators: [{
28
+ BlockWithCheckboxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockWithCheckboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
29
+ BlockWithCheckboxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BlockWithCheckboxComponent, selector: "wac-block-with-checkbox", inputs: { selected: "selected", disabled: "disabled", nameRadio: "nameRadio", isFirst: "isFirst", opacity: "opacity" }, outputs: { checkboxAction: "checkboxAction" }, ngImport: i0, template: "<div class=\"block-with-checkbox\" (click)=\"disabled && $event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? $event.preventDefault() : ''\" [ngClass]=\"{'selected': inputRadioA.checked || selected, 'firstWacRadioBLock': isFirst, 'disabled': disabled}\" [style.opacity]=\"opacity\" (mouseover)=\"removeFirstClass()\">\n <div class=\"block-with-checkbox__left\" (click)=\"inputRadioA.click()\">\n <div class=\"wac-radio-block\">\n <div class=\"wac-radio__row\">\n <input #inputRadioA [name]=\"nameRadio\" type=\"radio\" [checked]=\"selected\" [value]=\"selected\" (change)=\"eventSelected($event)\" [id]=\"randomLabelName\">\n <label [for]=\"randomLabelName\"></label>\n </div>\n </div>\n </div>\n <div class=\"block-with-checkbox__center\" (click)=\"$event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? inputRadioA.click() : '';\">\n <ng-content></ng-content>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
30
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BlockWithCheckboxComponent, decorators: [{
31
31
  type: Component,
32
32
  args: [{ selector: 'wac-block-with-checkbox', template: "<div class=\"block-with-checkbox\" (click)=\"disabled && $event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? $event.preventDefault() : ''\" [ngClass]=\"{'selected': inputRadioA.checked || selected, 'firstWacRadioBLock': isFirst, 'disabled': disabled}\" [style.opacity]=\"opacity\" (mouseover)=\"removeFirstClass()\">\n <div class=\"block-with-checkbox__left\" (click)=\"inputRadioA.click()\">\n <div class=\"wac-radio-block\">\n <div class=\"wac-radio__row\">\n <input #inputRadioA [name]=\"nameRadio\" type=\"radio\" [checked]=\"selected\" [value]=\"selected\" (change)=\"eventSelected($event)\" [id]=\"randomLabelName\">\n <label [for]=\"randomLabelName\"></label>\n </div>\n </div>\n </div>\n <div class=\"block-with-checkbox__center\" (click)=\"$event.target['className'] !== 'wac-link' && $event.target['localName'] !== 'a' ? inputRadioA.click() : '';\">\n <ng-content></ng-content>\n </div>\n</div>\n" }]
33
33
  }], ctorParameters: function () { return []; }, propDecorators: { selected: [{
@@ -12,9 +12,9 @@ export class BreadcrumbsComponent {
12
12
  this.indexChange.emit(this.index);
13
13
  }
14
14
  }
15
- BreadcrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
- BreadcrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: BreadcrumbsComponent, selector: "wac-breadcrumbs", inputs: { breadcrumbs: "breadcrumbs", noResponsive: "noResponsive" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<div class=\"wac-breadcrumbs\" [ngClass]=\"{'no-responsive': noResponsive}\">\n <div class=\"wac-breadcrumbs__wrapper\">\n <div class=\"wac-breadcrumbs__item\" *ngFor=\"let b of breadcrumbs; let i = index;\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\" (click)=\"valueChanged(i)\">\n <div class=\"round\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\"><span *ngIf=\"!b.valid\"><span *ngIf=\"i < 9\">0</span>{{ i + 1 }}</span><i class=\"fas fa-check\" *ngIf=\"b.valid\"></i></div>\n <div class=\"name\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\">{{ b.name }}</div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: BreadcrumbsComponent, decorators: [{
15
+ BreadcrumbsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BreadcrumbsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
16
+ BreadcrumbsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: BreadcrumbsComponent, selector: "wac-breadcrumbs", inputs: { breadcrumbs: "breadcrumbs", noResponsive: "noResponsive" }, outputs: { indexChange: "indexChange" }, ngImport: i0, template: "<div class=\"wac-breadcrumbs\" [ngClass]=\"{'no-responsive': noResponsive}\">\n <div class=\"wac-breadcrumbs__wrapper\">\n <div class=\"wac-breadcrumbs__item\" *ngFor=\"let b of breadcrumbs; let i = index;\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\" (click)=\"valueChanged(i)\">\n <div class=\"round\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\"><span *ngIf=\"!b.valid\"><span *ngIf=\"i < 9\">0</span>{{ i + 1 }}</span><i class=\"fas fa-check\" *ngIf=\"b.valid\"></i></div>\n <div class=\"name\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\">{{ b.name }}</div>\n </div>\n </div>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
17
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: BreadcrumbsComponent, decorators: [{
18
18
  type: Component,
19
19
  args: [{ selector: 'wac-breadcrumbs', template: "<div class=\"wac-breadcrumbs\" [ngClass]=\"{'no-responsive': noResponsive}\">\n <div class=\"wac-breadcrumbs__wrapper\">\n <div class=\"wac-breadcrumbs__item\" *ngFor=\"let b of breadcrumbs; let i = index;\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\" (click)=\"valueChanged(i)\">\n <div class=\"round\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\"><span *ngIf=\"!b.valid\"><span *ngIf=\"i < 9\">0</span>{{ i + 1 }}</span><i class=\"fas fa-check\" *ngIf=\"b.valid\"></i></div>\n <div class=\"name\" [ngClass]=\"{'valid': b.valid, 'current': b['current']}\">{{ b.name }}</div>\n </div>\n </div>\n</div>\n" }]
20
20
  }], ctorParameters: function () { return []; }, propDecorators: { breadcrumbs: [{
@@ -113,9 +113,9 @@ export class ButtonComponent {
113
113
  }, 1000);
114
114
  }
115
115
  }
116
- ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ButtonComponent, deps: [{ token: 'type', attribute: true }, { token: FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
117
- ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: ButtonComponent, selector: "wac-button", inputs: { extraClasses: "extraClasses", label: "label", icon: "icon", iconNext: "iconNext", textcolor: "textcolor", widthAuto: "widthAuto", contentHorizontalPosition: "contentHorizontalPosition", iconFontSize: "iconFontSize", hasLoader: "hasLoader", disabled: "disabled", whiteSpaceNowrap: "whiteSpaceNowrap", opacity: "opacity", animation: "animation", animationRight: "animationRight", animationText: "animationText", confirmDelete: "confirmDelete", confirmDeleteText: "confirmDeleteText", coin: "coin", tooltip: "tooltip", tooltipWidth: "tooltipWidth", noPadding: "noPadding", tooltipPosition: "tooltipPosition", tooltipOneline: "tooltipOneline", confirmDeletePosition: "confirmDeletePosition", isLoading: "isLoading" }, outputs: { click: "click", isLoadingChange: "isLoadingChange" }, viewQueries: [{ propertyName: "calculWidth", first: true, predicate: ["calculWidth"], descendants: true }, { propertyName: "calculWidthDelete", first: true, predicate: ["calculWidthDelete"], descendants: true }], ngImport: i0, template: "<a\n [class]=\"'wac-button ' + extraClasses\"\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\n [ngClass]=\"[\n label === '' ? 'alone' : '',\n coin ? 'has-coin width-auto' : '',\n animationRight ? 'animation-right' : '',\n animation ? 'animationText' : '',\n isLoading ? 'is-loading' : '',\n opacity ? 'opacity' : '',\n disabled ? 'disabled' : '',\n widthAuto ? 'width-auto' : '',\n noPadding ? 'no-padding' : '',\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\n ]\"\n [ngStyle]=\"{\n 'text-align': contentHorizontalPosition\n }\"\n>\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\">\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.font-size.px]=\"iconFontSize\"></i>\n {{ label }}\n <i *ngIf=\"iconNext\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\n </span>\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\n </span>\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\n </span>\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\n <span\n class=\"wac-button__loader\"\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\n *ngIf=\"isLoading\"\n [style.width]=\"currentLoading + '%'\"\n >\n </span>\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\n {{ tooltip }}\n </span>\n</a>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }] });
118
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: ButtonComponent, decorators: [{
116
+ ButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ButtonComponent, deps: [{ token: 'type', attribute: true }, { token: FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Component });
117
+ ButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: ButtonComponent, selector: "wac-button", inputs: { extraClasses: "extraClasses", label: "label", icon: "icon", iconNext: "iconNext", textcolor: "textcolor", widthAuto: "widthAuto", contentHorizontalPosition: "contentHorizontalPosition", iconFontSize: "iconFontSize", hasLoader: "hasLoader", disabled: "disabled", whiteSpaceNowrap: "whiteSpaceNowrap", opacity: "opacity", animation: "animation", animationRight: "animationRight", animationText: "animationText", confirmDelete: "confirmDelete", confirmDeleteText: "confirmDeleteText", coin: "coin", tooltip: "tooltip", tooltipWidth: "tooltipWidth", noPadding: "noPadding", tooltipPosition: "tooltipPosition", tooltipOneline: "tooltipOneline", confirmDeletePosition: "confirmDeletePosition", isLoading: "isLoading" }, outputs: { click: "click", isLoadingChange: "isLoadingChange" }, viewQueries: [{ propertyName: "calculWidth", first: true, predicate: ["calculWidth"], descendants: true }, { propertyName: "calculWidthDelete", first: true, predicate: ["calculWidthDelete"], descendants: true }], ngImport: i0, template: "<a\n [class]=\"'wac-button ' + extraClasses\"\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\n [ngClass]=\"[\n label === '' ? 'alone' : '',\n coin ? 'has-coin width-auto' : '',\n animationRight ? 'animation-right' : '',\n animation ? 'animationText' : '',\n isLoading ? 'is-loading' : '',\n opacity ? 'opacity' : '',\n disabled ? 'disabled' : '',\n widthAuto ? 'width-auto' : '',\n noPadding ? 'no-padding' : '',\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\n ]\"\n [ngStyle]=\"{\n 'text-align': contentHorizontalPosition\n }\"\n>\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\">\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.font-size.px]=\"iconFontSize\"></i>\n {{ label }}\n <i *ngIf=\"iconNext\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\n </span>\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\n </span>\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\n </span>\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\n <span\n class=\"wac-button__loader\"\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\n *ngIf=\"isLoading\"\n [style.width]=\"currentLoading + '%'\"\n >\n </span>\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\n {{ tooltip }}\n </span>\n</a>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i2.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }] });
118
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: ButtonComponent, decorators: [{
119
119
  type: Component,
120
120
  args: [{ selector: 'wac-button', template: "<a\n [class]=\"'wac-button ' + extraClasses\"\n (click)=\"confirmDelete && waitForConfirmDelete ? addMaxWidthDelete() : '';onButtonClick($event);\"\n (mouseleave)=\"animation ? resetMaxWidth() : '';\"\n (mouseenter)=\"animation ? addMaxWidth() : '';\"\n wzAutoHide (clickOutside)=\"confirmDelete && !waitForConfirmDelete ? resetMaxWidthDelete() : ''\"\n [ngClass]=\"[\n label === '' ? 'alone' : '',\n coin ? 'has-coin width-auto' : '',\n animationRight ? 'animation-right' : '',\n animation ? 'animationText' : '',\n isLoading ? 'is-loading' : '',\n opacity ? 'opacity' : '',\n disabled ? 'disabled' : '',\n widthAuto ? 'width-auto' : '',\n noPadding ? 'no-padding' : '',\n whiteSpaceNowrap ? 'white-space-no-wrap' : '',\n !waitForConfirmDelete && confirmDelete ? 'step-delete' : '',\n confirmDelete ? 'deletePosition-' + confirmDeletePosition : ''\n ]\"\n [ngStyle]=\"{\n 'text-align': contentHorizontalPosition\n }\"\n>\n <span class=\"wac-button__wrapper\" [style.color]=\"textcolor ? textcolor : ''\">\n <i *ngIf=\"icon\" [ngClass]=\"icon\" [style.font-size.px]=\"iconFontSize\"></i>\n {{ label }}\n <i *ngIf=\"iconNext\" [ngClass]=\"iconNext\" [style.font-size.px]=\"iconFontSize\"></i>\n </span>\n <span class=\"wac-button__animation\" [style.maxWidth]=\"buttonMaxWidth\" [style.width]=\"buttonWidth + 'px'\">\n <span #calculWidth class=\"wac-button__animation__text\" [innerHTML]=\"animationText\"></span>\n </span>\n <span class=\"wac-button__confirmDelete\" [style.maxWidth]=\"buttonMaxWidthDelete\" [style.width]=\"buttonWidthDelete + 'px'\">\n <span #calculWidthDelete class=\"wac-button__confirmDelete__text\" [innerHTML]=\"confirmDeleteText\"></span>\n </span>\n <span *ngIf=\"coin\" class=\"wac-button__coin\"><i class=\"fa-solid fa-coin-front\"></i><span [innerHTML]=\"coin\"></span></span>\n <span\n class=\"wac-button__loader\"\n [ngClass]=\"extraClasses.includes('is-outlined') ? 'outlined' : ''\"\n *ngIf=\"isLoading\"\n [style.width]=\"currentLoading + '%'\"\n >\n </span>\n <span class=\"wac-button__tooltips {{ tooltipPosition }}\" [ngClass]=\"{'oneline': tooltipOneline}\" [style.minWidth]=\"tooltipWidth\" *ngIf=\"tooltip\">\n {{ tooltip }}\n </span>\n</a>\n" }]
121
121
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
@@ -183,16 +183,16 @@ export class CalendarComponent {
183
183
  this.disabled = isDisabled;
184
184
  }
185
185
  }
186
- CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
187
- CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.1", type: CalendarComponent, selector: "wac-calendar", inputs: { label: "label", boldLabel: "boldLabel", type: "type", options: "options", position: "position", dateSelected: "dateSelected", typeDate: "typeDate", noMargin: "noMargin", disabled: "disabled" }, outputs: { dateSelectedChange: "dateSelectedChange", changeData: "changeData" }, providers: [
186
+ CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.DatePipe }], target: i0.ɵɵFactoryTarget.Component });
187
+ CalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.5", type: CalendarComponent, selector: "wac-calendar", inputs: { label: "label", boldLabel: "boldLabel", type: "type", options: "options", position: "position", dateSelected: "dateSelected", typeDate: "typeDate", noMargin: "noMargin", disabled: "disabled" }, outputs: { dateSelectedChange: "dateSelectedChange", changeData: "changeData" }, providers: [
188
188
  {
189
189
  provide: NG_VALUE_ACCESSOR,
190
190
  useExisting: CalendarComponent,
191
191
  multi: true
192
192
  },
193
193
  DatePipe
194
- ], viewQueries: [{ propertyName: "minutes", first: true, predicate: ["minutes"], descendants: true }, { propertyName: "hours", first: true, predicate: ["hours"], descendants: true }, { propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"wac-calendar\"\n [ngClass]=\"{\n 'wac-calendar--input': type === 'input',\n 'wac-calendar--onlyDate': typeDate === 'date',\n 'wac-calendar--edit': type === 'edit',\n 'wac-calendar--select': type === 'select',\n 'wac-calendar--no-margin': noMargin,\n 'wac-calendar--open': open\n }\"\n [zIndexToggle]=\"open\"\n>\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\n <wac-optional-disable-container [disabled]=\"disabled\">\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\n <div class=\"wac-calendar__wrapper\">\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__input__icon\">\n <i class=\"far fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__input__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\n </div>\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__select__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__select__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"wac-calendar__absolute\"\n [ngClass]=\"{\n top: position === 'top',\n bottom: position === 'bottom',\n left: position === 'left',\n right: position === 'right',\n 'right-top': position === 'right-top',\n 'right-bottom': position === 'right-bottom',\n 'left-top': position === 'left-top',\n 'left-bottom': position === 'left-bottom',\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\n }\"\n >\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\n </nwb-date-picker>\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\n <div class=\"wac-calendar__absolute__time__wrapper\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\n </div>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </wac-optional-disable-container>\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NwbDatePickerComponent, selector: "nwb-date-picker", inputs: ["options"], outputs: ["change", "clear"] }, { kind: "directive", type: i3.NwbDatePickerInputStartDirective, selector: "input[nwbDatepickerStart]", inputs: ["nwbDatepickerStart"] }, { kind: "directive", type: i3.NwbDatePickerInputDateTypeDirective, selector: "input[nwbDateType]", inputs: ["nwbDateType"] }, { kind: "directive", type: i4.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i5.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "directive", type: i6.OnlyNumberDirective, selector: "[wacOnlyNumber]", inputs: ["wacOnlyNumber"] }, { kind: "component", type: i7.OptionalDisableContainerComponent, selector: "wac-optional-disable-container", inputs: ["disabled"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [opacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
195
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImport: i0, type: CalendarComponent, decorators: [{
194
+ ], viewQueries: [{ propertyName: "minutes", first: true, predicate: ["minutes"], descendants: true }, { propertyName: "hours", first: true, predicate: ["hours"], descendants: true }, { propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div\n class=\"wac-calendar\"\n [ngClass]=\"{\n 'wac-calendar--input': type === 'input',\n 'wac-calendar--onlyDate': typeDate === 'date',\n 'wac-calendar--edit': type === 'edit',\n 'wac-calendar--select': type === 'select',\n 'wac-calendar--no-margin': noMargin,\n 'wac-calendar--open': open\n }\"\n [zIndexToggle]=\"open\"\n>\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\n <wac-optional-disable-container [disabled]=\"disabled\">\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\n <div class=\"wac-calendar__wrapper\">\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__input__icon\">\n <i class=\"far fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__input__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\n </div>\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__select__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__select__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"wac-calendar__absolute\"\n [ngClass]=\"{\n top: position === 'top',\n bottom: position === 'bottom',\n left: position === 'left',\n right: position === 'right',\n 'right-top': position === 'right-top',\n 'right-bottom': position === 'right-bottom',\n 'left-top': position === 'left-top',\n 'left-bottom': position === 'left-bottom',\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\n }\"\n >\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\n </nwb-date-picker>\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\n <div class=\"wac-calendar__absolute__time__wrapper\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\n </div>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </wac-optional-disable-container>\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\n</div>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NwbDatePickerComponent, selector: "nwb-date-picker", inputs: ["options"], outputs: ["change", "clear"] }, { kind: "directive", type: i3.NwbDatePickerInputStartDirective, selector: "input[nwbDatepickerStart]", inputs: ["nwbDatepickerStart"] }, { kind: "directive", type: i3.NwbDatePickerInputDateTypeDirective, selector: "input[nwbDateType]", inputs: ["nwbDateType"] }, { kind: "directive", type: i4.AutoHideDirective, selector: "[wzAutoHide]", inputs: ["triggerElement", "forceOn"], outputs: ["clickOutside"] }, { kind: "directive", type: i5.ZindexToggleDirective, selector: "[zIndexToggle]", inputs: ["zIndexToggle"], outputs: ["onEventChange"] }, { kind: "directive", type: i6.OnlyNumberDirective, selector: "[wacOnlyNumber]", inputs: ["wacOnlyNumber"] }, { kind: "component", type: i7.OptionalDisableContainerComponent, selector: "wac-optional-disable-container", inputs: ["disabled"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i8.TranslatePipe, name: "translate" }], animations: [opacityAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.5", ngImport: i0, type: CalendarComponent, decorators: [{
196
196
  type: Component,
197
197
  args: [{ selector: 'wac-calendar', providers: [
198
198
  {
@@ -201,7 +201,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
201
201
  multi: true
202
202
  },
203
203
  DatePipe
204
- ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [opacityAnimation], template: "<div\n class=\"wac-calendar\"\n [ngClass]=\"{\n 'wac-calendar--input': type === 'input',\n 'wac-calendar--onlyDate': typeDate === 'date',\n 'wac-calendar--edit': type === 'edit',\n 'wac-calendar--select': type === 'select',\n 'wac-calendar--no-margin': noMargin,\n 'wac-calendar--open': open\n }\"\n [zIndexToggle]=\"open\"\n>\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\n <wac-optional-disable-container [disabled]=\"disabled\">\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\n <div class=\"wac-calendar__wrapper\">\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__input__icon\">\n <i class=\"far fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__input__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\n </div>\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__select__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__select__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"wac-calendar__absolute\"\n [ngClass]=\"{\n top: position === 'top',\n bottom: position === 'bottom',\n left: position === 'left',\n right: position === 'right',\n 'right-top': position === 'right-top',\n 'right-bottom': position === 'right-bottom',\n 'left-top': position === 'left-top',\n 'left-bottom': position === 'left-bottom',\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\n }\"\n >\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\n </nwb-date-picker>\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\n <div class=\"wac-calendar__absolute__time__wrapper\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\n </div>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </wac-optional-disable-container>\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\n</div>\n" }]
204
+ ], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, animations: [opacityAnimation], template: "<div\n class=\"wac-calendar\"\n [ngClass]=\"{\n 'wac-calendar--input': type === 'input',\n 'wac-calendar--onlyDate': typeDate === 'date',\n 'wac-calendar--edit': type === 'edit',\n 'wac-calendar--select': type === 'select',\n 'wac-calendar--no-margin': noMargin,\n 'wac-calendar--open': open\n }\"\n [zIndexToggle]=\"open\"\n>\n <p [class]=\"'wac-calendar__label' + (boldLabel ? ' bold' : '')\" *ngIf=\"label && (type === 'input' || type === 'select')\" (click)=\"openCalendar()\">{{ label }}</p>\n <p class=\"wac-calendar__startLabel\" *ngIf=\"type === 'edit'\">{{ startLabel }}</p>\n <wac-optional-disable-container [disabled]=\"disabled\">\n <div class=\"wac-calendar__autoHide\" wzAutoHide (clickOutside)=\"openCalendar('close')\">\n <div class=\"wac-calendar__wrapper\">\n <div class=\"wac-calendar__wrapper__input\" *ngIf=\"type === 'input'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__input__icon\">\n <i class=\"far fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__input__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy'}}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/mm/yyyy' | translate }}</span>\n </div>\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.HH:mm' | translate }}</span>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace\" *ngIf=\"type === 'edit'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__editInPlace__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__editInPlace__date\">\n <div class=\"wac-calendar__wrapper__input__time\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div class=\"wac-calendar__wrapper__select\" *ngIf=\"type === 'select'\" (click)=\"openCalendar()\">\n <div class=\"wac-calendar__wrapper__select__icon\">\n <i class=\"fal fa-calendar-alt\"></i>\n </div>\n <div class=\"wac-calendar__wrapper__select__date\">\n <span *ngIf=\"dateSelected\" @opacityAnimation>{{ dateSelected | date: 'dd/MM/yyyy HH:mm' }}</span>\n <span class=\"placeholder-date\" *ngIf=\"!dateSelected\" @opacityAnimation>{{ 'wac.Date.PlaceHolder.dd/MM/yyyy_HH:mm' | translate }}</span>\n </div>\n </div>\n </div>\n <div\n class=\"wac-calendar__absolute\"\n [ngClass]=\"{\n top: position === 'top',\n bottom: position === 'bottom',\n left: position === 'left',\n right: position === 'right',\n 'right-top': position === 'right-top',\n 'right-bottom': position === 'right-bottom',\n 'left-top': position === 'left-top',\n 'left-bottom': position === 'left-bottom',\n 'with-time': typeDate === 'datetime-local' || typeDate === 'datetime'\n }\"\n >\n <nwb-date-picker #datePicker (change)=\"onChangeDate($event)\" [options]=\"options\">\n <input [nwbDatepickerStart]=\"datePicker\" type=\"text\" [nwbDateType]=\"'date'\" [value]=\"dateSelected?.toISOString()\" />\n </nwb-date-picker>\n <div class=\"wac-calendar__absolute__time\" *ngIf=\"typeDate === 'datetime-local' || typeDate === 'datetime'\">\n <div class=\"wac-calendar__absolute__time__wrapper\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours\">\n <div class=\"wac-calendar__absolute__time__wrapper__hours__left\">\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"incrementHours($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__hours__btn\" (click)=\"decrementHours($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__hours__right\">\n <input #hours type=\"text\" [(ngModel)]=\"calendarHours\" [wacOnlyNumber]=\"true\"/>\n </div>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes\">\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__left\">\n <input #minutes type=\"text\" [(ngModel)]=\"calendarMinutes\" [wacOnlyNumber]=\"true\"/>\n </div>\n <div class=\"wac-calendar__absolute__time__wrapper__minutes__right\">\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"incrementMinutes($event)\">\n <i class=\"fas fa-plus\"></i>\n </button>\n <button class=\"wac-calendar__absolute__time__wrapper__minutes__btn\" (click)=\"decrementsMinutes($event)\">\n <i class=\"fas fa-minus\"></i>\n </button>\n </div>\n </div>\n </div>\n </div>\n </div>\n </div>\n </wac-optional-disable-container>\n <p class=\"wac-calendar__endLabel\" *ngIf=\"type === 'edit'\">{{ endLabel }}</p>\n</div>\n" }]
205
205
  }], ctorParameters: function () { return [{ type: i1.DatePipe }]; }, propDecorators: { minutes: [{
206
206
  type: ViewChild,
207
207
  args: ['minutes']
@@ -234,4 +234,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.1", ngImpor
234
234
  }], changeData: [{
235
235
  type: Output
236
236
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0Qix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7O0FBaUIzRSxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLElBQ0ksT0FBTyxDQUFDLE9BQXVDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBV0QsSUFDSSxZQUFZLENBQUMsWUFBa0I7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMs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QUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQzsrRkFJUixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNPLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CTixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQVlJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHUCxRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOd2JEYXRlUGlja2VyQ29tcG9uZW50LCBOd2JEYXRlUGlja2VyRXZlbnQsIE53YkRhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xuaW1wb3J0IHsgb3BhY2l0eUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvc2hvdy9vcGFjaXR5LmFuaW1hdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIERhdGVQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBhbmltYXRpb25zOiBbb3BhY2l0eUFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLy8hIEF0IHRoZSBtb21lbnQsIHRoZSBjb21wb25lbnQgaGFuZGxlIG9ubHkgb25lIGRhdGUgKG5vdCBhIHJhbmdlKVxuICBAVmlld0NoaWxkKCdtaW51dGVzJykgbWludXRlczogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnaG91cnMnKSBob3VyczogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IE53YkRhdGVQaWNrZXJDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZyB8IG51bGw7IC8vIHRvZG8gdXNlIG5nLWNvbnRlbnQgaW5zdGVhZFxuXG4gIEBJbnB1dCgpXG4gIGJvbGRMYWJlbDogYm9vbGVhbiA9IGZhbHNlOyAvLyB0b2RvIHJlbW92ZSB3aGVuIGxhYmVsIHdpbGwgYmUgYSBuZy1jb250ZW50XG5cbiAgQElucHV0KClcbiAgdHlwZTogJ2lucHV0JyB8ICdlZGl0JyB8ICdzZWxlY3QnID0gJ2lucHV0JztcblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4pIHtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAodGhpcy5pc0J1bG1hRGF0ZVBpY2tlckV4aXN0cygpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUJ1bG1hRGF0ZVBpY2tlck9wdGlvbnMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSA6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPiB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBfb3B0aW9uczogUmVhZG9ubHk8TndiRGF0ZVBpY2tlck9wdGlvbnM+ICA9IHtcbiAgICBkaXNwbGF5TW9kZTogJ2lubGluZScsXG4gICAgc2hvd0hlYWRlcjogZmFsc2UsXG4gICAgc2hvd0Zvb3RlcjogdHJ1ZSxcbiAgfTtcblxuICBASW5wdXQoKVxuICBwb3NpdGlvbiA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRlU2VsZWN0ZWQoZGF0ZVNlbGVjdGVkOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoZGF0ZVNlbGVjdGVkKTsgLy8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBwdXJlIHBpcGVcbiAgfVxuICBnZXQgZGF0ZVNlbGVjdGVkKCkgOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZVNlbGVjdGVkO1xuICB9XG4gIF9kYXRlU2VsZWN0ZWQ6IERhdGU7XG5cbiAgQE91dHB1dCgpIGRhdGVTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICB0eXBlRGF0ZTogJ2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnZGF0ZScgPSAnZGF0ZXRpbWUtbG9jYWwnO1xuICBASW5wdXQoKVxuICBub01hcmdpbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNoYW5nZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9PigpO1xuICBvcGVuID0gZmFsc2U7XG4gIHN0YXJ0TGFiZWwgPSAnJztcbiAgZW5kTGFiZWwgPSAnJztcblxuICBzZXQgY2FsZW5kYXJNaW51dGVzKGNhbGVuZGFyTWludXRlczogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5mb3JtYXRUaW1lKGNhbGVuZGFyTWludXRlcywgMCwgNTkpO1xuICAgIHRoaXMuZGF0ZVNlbGVjdGVkLnNldE1pbnV0ZXMobWludXRlcyk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHRoaXMuZGF0ZVNlbGVjdGVkOyAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB0aGlzLm1pbnV0ZXMubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVNlbGVjdGVkLCAnbW0nKTsgLy8gZm9yY2UgdG8gdXBkYXRlIHRoZSBpbnB1dCB2YWx1ZVxuICAgIHRoaXMudHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpO1xuICB9XG5cbiAgZ2V0IGNhbGVuZGFyTWludXRlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnbW0nKTtcbiAgfVxuXG4gIHNldCBjYWxlbmRhckhvdXJzKGNhbGVuZGFySG91cnM6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBob3VycyA9IHRoaXMuZm9ybWF0VGltZShjYWxlbmRhckhvdXJzLCAwLCAyMyk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5zZXRIb3Vycyhob3Vycyk7XG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSB0aGlzLmRhdGVTZWxlY3RlZDsgLy8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5ob3Vycy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdISCcpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXG4gICAgdGhpcy50cmlnZ2VyRGF0ZVNlbGVjdGVkQ2hhbmdlKCk7XG4gIH1cblxuICBnZXQgY2FsZW5kYXJIb3VycygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnSEgnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5sYWJlbCB8fCBjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJMYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlRGF0ZShzZWxlY3RlZERhdGVzOiBOd2JEYXRlUGlja2VyRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZS5zZXRIb3Vycyh0aGlzLmRhdGVTZWxlY3RlZC5nZXRIb3VycygpKTtcbiAgICBzZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKHRoaXMuZGF0ZVNlbGVjdGVkLmdldE1pbnV0ZXMoKSk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlO1xuICAgIHRoaXMudHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VyRGF0ZVNlbGVjdGVkQ2hhbmdlKCkge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5kYXRlU2VsZWN0ZWQpO1xuICAgIHRoaXMuZGF0ZVNlbGVjdGVkQ2hhbmdlLmVtaXQodGhpcy5kYXRlU2VsZWN0ZWQpO1xuICAgIHRoaXMudHJpZ2dlckNoYW5nZSh7XG4gICAgICBzdGFydERhdGU6IHRoaXMuZGF0ZVNlbGVjdGVkLFxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXRlU2VsZWN0ZWRcbiAgICB9KTtcbiAgfVxuXG4gIHRyaWdnZXJDaGFuZ2UoZXZlbnQ6IHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9KSB7XG4gICAgdGhpcy5jaGFuZ2VEYXRhLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb3BlbkNhbGVuZGFyKHZhbHVlID0gbnVsbCkge1xuXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICdjbG9zZScpIHtcbiAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FsZW5kYXJMYWJlbCgpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnZWRpdCcgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgY29uc3Qgc3BsaXRMYWJlbCA9IHRoaXMubGFiZWwuc3BsaXQoJ3t4fScpO1xuICAgICAgaWYgKHNwbGl0TGFiZWwubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLnN0YXJ0TGFiZWwgPSBzcGxpdExhYmVsWzBdO1xuICAgICAgICB0aGlzLmVuZExhYmVsID0gc3BsaXRMYWJlbFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhcnRMYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5jcmVtZW50TWludXRlcygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5jYWxlbmRhck1pbnV0ZXMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFyTWludXRlcywgMTApICsgMSArICcnO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJNaW51dGVzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhck1pbnV0ZXMsIDEwKSAtIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGluY3JlbWVudEhvdXJzKCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSArIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGRlY3JlbWVudEhvdXJzKCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSAtIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qXG4gICAgRW5zdXJlIHRoYXQgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyIGFuZCB0aGF0IGl0IGlzIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IHN0cmluZyB8IG51bWJlciwgbWluID0gMCwgbWF4ID0gNTkpIHtcbiAgICBsZXQgdGltZU51bWJlciA9IHR5cGVvZiB0aW1lID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRpbWUsIDEwKSA6IHRpbWU7XG4gICAgdGltZU51bWJlciA9IHRpbWVOdW1iZXIgPiBtYXggPyBtaW4gOiB0aW1lTnVtYmVyO1xuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyIDwgbWluID8gbWF4IDogdGltZU51bWJlcjtcbiAgICB0aW1lTnVtYmVyID0gcGFyc2VJbnQoKCcnICsgdGltZU51bWJlcikuc2xpY2UoLTIpKTsgLy8ga2VlcHMgb25seSB0aGUgbGFzdCAyIGRpZ2l0c1xuICAgIHJldHVybiB0aW1lTnVtYmVyO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVCdWxtYURhdGVQaWNrZXJPcHRpb25zKG9wdGlvbnM6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPikge1xuICAgIGNvbnN0IGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyID0gdGhpcy5kYXRlUGlja2VyWydidWxtYUNhbGVuZGFyJ10uZGF0ZVBpY2tlcjtcbiAgICBidWxtYUNhbGVuZGFyRGF0ZVBpY2tlci5taW4gPSBvcHRpb25zLm1pbkRhdGU7XG4gICAgYnVsbWFDYWxlbmRhckRhdGVQaWNrZXIubWF4ID0gb3B0aW9ucy5tYXhEYXRlO1xuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNCdWxtYURhdGVQaWNrZXJFeGlzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlciAmJiB0aGlzLmRhdGVQaWNrZXJbJ2J1bG1hQ2FsZW5kYXInXSAmJiB0aGlzLmRhdGVQaWNrZXJbJ2J1bG1hQ2FsZW5kYXInXS5kYXRlUGlja2VyO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgbWV0aG9kc1xuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZShkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gZGF0ZTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpe1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KXtcbiAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwid2FjLWNhbGVuZGFyXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd3YWMtY2FsZW5kYXItLWlucHV0JzogdHlwZSA9PT0gJ2lucHV0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1vbmx5RGF0ZSc6IHR5cGVEYXRlID09PSAnZGF0ZScsXG4gICAgJ3dhYy1jYWxlbmRhci0tZWRpdCc6IHR5cGUgPT09ICdlZGl0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1zZWxlY3QnOiB0eXBlID09PSAnc2VsZWN0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1uby1tYXJnaW4nOiBub01hcmdpbixcbiAgICAnd2FjLWNhbGVuZGFyLS1vcGVuJzogb3BlblxuICB9XCJcbiAgW3pJbmRleFRvZ2dsZV09XCJvcGVuXCJcbj5cbiAgPHAgW2NsYXNzXT1cIid3YWMtY2FsZW5kYXJfX2xhYmVsJyArIChib2xkTGFiZWwgPyAnIGJvbGQnIDogJycpXCIgKm5nSWY9XCJsYWJlbCAmJiAodHlwZSA9PT0gJ2lucHV0JyB8fCB0eXBlID09PSAnc2VsZWN0JylcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj57eyBsYWJlbCB9fTwvcD5cbiAgPHAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3N0YXJ0TGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IHN0YXJ0TGFiZWwgfX08L3A+XG4gIDx3YWMtb3B0aW9uYWwtZGlzYWJsZS1jb250YWluZXIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYXV0b0hpZGVcIiB3ekF1dG9IaWRlIChjbGlja091dHNpZGUpPVwib3BlbkNhbGVuZGFyKCdjbG9zZScpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0XCIgKm5nSWY9XCJ0eXBlID09PSAnaW5wdXQnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRfX2ljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fZGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSd9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5kZC9tbS95eXl5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnSEg6bW0nIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLkhIOm1tJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlXCIgKm5nSWY9XCJ0eXBlID09PSAnZWRpdCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZV9faWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtY2FsZW5kYXItYWx0XCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlX19kYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19zZWxlY3RcIiAqbmdJZj1cInR5cGUgPT09ICdzZWxlY3QnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9fc2VsZWN0X19pY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9fc2VsZWN0X19kYXRlXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5kZC9NTS95eXl5X0hIOm1tJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIHRvcDogcG9zaXRpb24gPT09ICd0b3AnLFxuICAgICAgICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdib3R0b20nLFxuICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgcmlnaHQ6IHBvc2l0aW9uID09PSAncmlnaHQnLFxuICAgICAgICAgICdyaWdodC10b3AnOiBwb3NpdGlvbiA9PT0gJ3JpZ2h0LXRvcCcsXG4gICAgICAgICAgJ3JpZ2h0LWJvdHRvbSc6IHBvc2l0aW9uID09PSAncmlnaHQtYm90dG9tJyxcbiAgICAgICAgICAnbGVmdC10b3AnOiBwb3NpdGlvbiA9PT0gJ2xlZnQtdG9wJyxcbiAgICAgICAgICAnbGVmdC1ib3R0b20nOiBwb3NpdGlvbiA9PT0gJ2xlZnQtYm90dG9tJyxcbiAgICAgICAgICAnd2l0aC10aW1lJzogdHlwZURhdGUgPT09ICdkYXRldGltZS1sb2NhbCcgfHwgdHlwZURhdGUgPT09ICdkYXRldGltZSdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxud2ItZGF0ZS1waWNrZXIgI2RhdGVQaWNrZXIgKGNoYW5nZSk9XCJvbkNoYW5nZURhdGUoJGV2ZW50KVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj5cbiAgICAgICAgICA8aW5wdXQgW253YkRhdGVwaWNrZXJTdGFydF09XCJkYXRlUGlja2VyXCIgdHlwZT1cInRleHRcIiBbbndiRGF0ZVR5cGVdPVwiJ2RhdGUnXCIgW3ZhbHVlXT1cImRhdGVTZWxlY3RlZD8udG9JU09TdHJpbmcoKVwiIC8+XG4gICAgICAgIDwvbndiLWRhdGUtcGlja2VyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZVwiICpuZ0lmPVwidHlwZURhdGUgPT09ICdkYXRldGltZS1sb2NhbCcgfHwgdHlwZURhdGUgPT09ICdkYXRldGltZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fYnRuXCIgKGNsaWNrKT1cImluY3JlbWVudEhvdXJzKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50SG91cnMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX3JpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0ICNob3VycyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJIb3Vyc1wiIFt3YWNPbmx5TnVtYmVyXT1cInRydWVcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc19fbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAjbWludXRlcyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJNaW51dGVzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19yaWdodFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiaW5jcmVtZW50TWludXRlcygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvd2FjLW9wdGlvbmFsLWRpc2FibGUtY29udGFpbmVyPlxuICA8cCBjbGFzcz1cIndhYy1jYWxlbmRhcl9fZW5kTGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IGVuZExhYmVsIH19PC9wPlxuPC9kaXY+XG4iXX0=
237
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyLWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUE0Qix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEssT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7Ozs7O0FBaUIzRSxNQUFNLE9BQU8saUJBQWlCO0lBZTVCLElBQ0ksT0FBTyxDQUFDLE9BQXVDO1FBQ2pELElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDO1FBQ3hCLElBQUksSUFBSSxDQUFDLHVCQUF1QixFQUFFLEVBQUU7WUFDbEMsSUFBSSxDQUFDLDRCQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBV0QsSUFDSSxZQUFZLENBQUMsWUFBa0I7UUFDakMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLE9BQU87U0FDUjtRQUNELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMs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QUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksY0FDekIsQ0FBQyxnQkFBZ0IsQ0FBQzsrRkFJUixPQUFPO3NCQUE1QixTQUFTO3VCQUFDLFNBQVM7Z0JBQ0EsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUNPLFVBQVU7c0JBQWxDLFNBQVM7dUJBQUMsWUFBWTtnQkFHdkIsS0FBSztzQkFESixLQUFLO2dCQUlOLFNBQVM7c0JBRFIsS0FBSztnQkFJTixJQUFJO3NCQURILEtBQUs7Z0JBSUYsT0FBTztzQkFEVixLQUFLO2dCQW1CTixRQUFRO3NCQURQLEtBQUs7Z0JBSUYsWUFBWTtzQkFEZixLQUFLO2dCQVlJLGtCQUFrQjtzQkFBM0IsTUFBTTtnQkFHUCxRQUFRO3NCQURQLEtBQUs7Z0JBR04sUUFBUTtzQkFEUCxLQUFLO2dCQUdHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUksVUFBVTtzQkFBbkIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERhdGVQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBWaWV3Q2hpbGQsIEVsZW1lbnRSZWYsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBOd2JEYXRlUGlja2VyQ29tcG9uZW50LCBOd2JEYXRlUGlja2VyRXZlbnQsIE53YkRhdGVQaWNrZXJPcHRpb25zIH0gZnJvbSAnQHdpemlzaG9wL25nLXdpemktYnVsbWEnO1xuaW1wb3J0IHsgb3BhY2l0eUFuaW1hdGlvbiB9IGZyb20gJy4uLy4uL2FuaW1hdGlvbnMvc2hvdy9vcGFjaXR5LmFuaW1hdGlvbic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3dhYy1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IENhbGVuZGFyQ29tcG9uZW50LFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9LFxuICAgIERhdGVQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBhbmltYXRpb25zOiBbb3BhY2l0eUFuaW1hdGlvbl1cbn0pXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgLy8hIEF0IHRoZSBtb21lbnQsIHRoZSBjb21wb25lbnQgaGFuZGxlIG9ubHkgb25lIGRhdGUgKG5vdCBhIHJhbmdlKVxuICBAVmlld0NoaWxkKCdtaW51dGVzJykgbWludXRlczogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnaG91cnMnKSBob3VyczogRWxlbWVudFJlZjtcbiAgQFZpZXdDaGlsZCgnZGF0ZVBpY2tlcicpIGRhdGVQaWNrZXI6IE53YkRhdGVQaWNrZXJDb21wb25lbnQ7XG5cbiAgQElucHV0KClcbiAgbGFiZWw6IHN0cmluZyB8IG51bGw7IC8vIHRvZG8gdXNlIG5nLWNvbnRlbnQgaW5zdGVhZFxuXG4gIEBJbnB1dCgpXG4gIGJvbGRMYWJlbDogYm9vbGVhbiA9IGZhbHNlOyAvLyB0b2RvIHJlbW92ZSB3aGVuIGxhYmVsIHdpbGwgYmUgYSBuZy1jb250ZW50XG5cbiAgQElucHV0KClcbiAgdHlwZTogJ2lucHV0JyB8ICdlZGl0JyB8ICdzZWxlY3QnID0gJ2lucHV0JztcblxuICBASW5wdXQoKVxuICBzZXQgb3B0aW9ucyhvcHRpb25zOiBSZWFkb25seTxOd2JEYXRlUGlja2VyT3B0aW9ucz4pIHtcbiAgICB0aGlzLl9vcHRpb25zID0gb3B0aW9ucztcbiAgICBpZiAodGhpcy5pc0J1bG1hRGF0ZVBpY2tlckV4aXN0cygpKSB7XG4gICAgICB0aGlzLnVwZGF0ZUJ1bG1hRGF0ZVBpY2tlck9wdGlvbnMob3B0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IG9wdGlvbnMoKSA6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPiB7XG4gICAgcmV0dXJuIHRoaXMuX29wdGlvbnM7XG4gIH1cblxuICBfb3B0aW9uczogUmVhZG9ubHk8TndiRGF0ZVBpY2tlck9wdGlvbnM+ICA9IHtcbiAgICBkaXNwbGF5TW9kZTogJ2lubGluZScsXG4gICAgc2hvd0hlYWRlcjogZmFsc2UsXG4gICAgc2hvd0Zvb3RlcjogdHJ1ZSxcbiAgfTtcblxuICBASW5wdXQoKVxuICBwb3NpdGlvbiA9ICdib3R0b20nO1xuXG4gIEBJbnB1dCgpXG4gIHNldCBkYXRlU2VsZWN0ZWQoZGF0ZVNlbGVjdGVkOiBEYXRlKSB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoZGF0ZVNlbGVjdGVkKTsgLy8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uIGZvciBwdXJlIHBpcGVcbiAgfVxuICBnZXQgZGF0ZVNlbGVjdGVkKCkgOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fZGF0ZVNlbGVjdGVkO1xuICB9XG4gIF9kYXRlU2VsZWN0ZWQ6IERhdGU7XG5cbiAgQE91dHB1dCgpIGRhdGVTZWxlY3RlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASW5wdXQoKVxuICB0eXBlRGF0ZTogJ2RhdGV0aW1lJyB8ICdkYXRldGltZS1sb2NhbCcgfCAnZGF0ZScgPSAnZGF0ZXRpbWUtbG9jYWwnO1xuICBASW5wdXQoKVxuICBub01hcmdpbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIGNoYW5nZURhdGEgPSBuZXcgRXZlbnRFbWl0dGVyPHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9PigpO1xuICBvcGVuID0gZmFsc2U7XG4gIHN0YXJ0TGFiZWwgPSAnJztcbiAgZW5kTGFiZWwgPSAnJztcblxuICBzZXQgY2FsZW5kYXJNaW51dGVzKGNhbGVuZGFyTWludXRlczogc3RyaW5nKSB7XG4gICAgaWYgKCF0aGlzLmRhdGVTZWxlY3RlZCkge1xuICAgICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSBuZXcgRGF0ZSgpO1xuICAgIH1cbiAgICBjb25zdCBtaW51dGVzID0gdGhpcy5mb3JtYXRUaW1lKGNhbGVuZGFyTWludXRlcywgMCwgNTkpO1xuICAgIHRoaXMuZGF0ZVNlbGVjdGVkLnNldE1pbnV0ZXMobWludXRlcyk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHRoaXMuZGF0ZVNlbGVjdGVkOyAvLyB0cmlnZ2VyIGNoYW5nZSBkZXRlY3Rpb25cbiAgICB0aGlzLm1pbnV0ZXMubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZGF0ZVNlbGVjdGVkLCAnbW0nKTsgLy8gZm9yY2UgdG8gdXBkYXRlIHRoZSBpbnB1dCB2YWx1ZVxuICAgIHRoaXMudHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpO1xuICB9XG5cbiAgZ2V0IGNhbGVuZGFyTWludXRlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnbW0nKTtcbiAgfVxuXG4gIHNldCBjYWxlbmRhckhvdXJzKGNhbGVuZGFySG91cnM6IHN0cmluZykge1xuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICBjb25zdCBob3VycyA9IHRoaXMuZm9ybWF0VGltZShjYWxlbmRhckhvdXJzLCAwLCAyMyk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZC5zZXRIb3Vycyhob3Vycyk7XG4gICAgdGhpcy5kYXRlU2VsZWN0ZWQgPSB0aGlzLmRhdGVTZWxlY3RlZDsgLy8gdHJpZ2dlciBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgdGhpcy5ob3Vycy5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kYXRlU2VsZWN0ZWQsICdISCcpOyAvLyBmb3JjZSB0byB1cGRhdGUgdGhlIGlucHV0IHZhbHVlXG4gICAgdGhpcy50cmlnZ2VyRGF0ZVNlbGVjdGVkQ2hhbmdlKCk7XG4gIH1cblxuICBnZXQgY2FsZW5kYXJIb3VycygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRhdGVTZWxlY3RlZCA/PyBuZXcgRGF0ZSgpLCAnSEgnKTtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlKSB7fVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5sYWJlbCB8fCBjaGFuZ2VzLnR5cGUpIHtcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJMYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIG9uQ2hhbmdlRGF0ZShzZWxlY3RlZERhdGVzOiBOd2JEYXRlUGlja2VyRXZlbnQpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRlU2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gbmV3IERhdGUoKTtcbiAgICB9XG5cbiAgICBzZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZS5zZXRIb3Vycyh0aGlzLmRhdGVTZWxlY3RlZC5nZXRIb3VycygpKTtcbiAgICBzZWxlY3RlZERhdGVzLnN0YXJ0RGF0ZS5zZXRNaW51dGVzKHRoaXMuZGF0ZVNlbGVjdGVkLmdldE1pbnV0ZXMoKSk7XG5cbiAgICB0aGlzLmRhdGVTZWxlY3RlZCA9IHNlbGVjdGVkRGF0ZXMuc3RhcnREYXRlO1xuICAgIHRoaXMudHJpZ2dlckRhdGVTZWxlY3RlZENoYW5nZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB0cmlnZ2VyRGF0ZVNlbGVjdGVkQ2hhbmdlKCkge1xuICAgIHRoaXMub25DaGFuZ2UodGhpcy5kYXRlU2VsZWN0ZWQpO1xuICAgIHRoaXMuZGF0ZVNlbGVjdGVkQ2hhbmdlLmVtaXQodGhpcy5kYXRlU2VsZWN0ZWQpO1xuICAgIHRoaXMudHJpZ2dlckNoYW5nZSh7XG4gICAgICBzdGFydERhdGU6IHRoaXMuZGF0ZVNlbGVjdGVkLFxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXRlU2VsZWN0ZWRcbiAgICB9KTtcbiAgfVxuXG4gIHRyaWdnZXJDaGFuZ2UoZXZlbnQ6IHsgc3RhcnREYXRlOiBEYXRlOyBlbmREYXRlOiBEYXRlOyB9KSB7XG4gICAgdGhpcy5jaGFuZ2VEYXRhLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgb3BlbkNhbGVuZGFyKHZhbHVlID0gbnVsbCkge1xuXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUgPT09ICdjbG9zZScpIHtcbiAgICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgICAgIHRoaXMub25Ub3VjaCgpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0Q2FsZW5kYXJMYWJlbCgpIHtcbiAgICBpZiAodGhpcy50eXBlID09PSAnZWRpdCcgJiYgdGhpcy5sYWJlbCkge1xuICAgICAgY29uc3Qgc3BsaXRMYWJlbCA9IHRoaXMubGFiZWwuc3BsaXQoJ3t4fScpO1xuICAgICAgaWYgKHNwbGl0TGFiZWwubGVuZ3RoID4gMSkge1xuICAgICAgICB0aGlzLnN0YXJ0TGFiZWwgPSBzcGxpdExhYmVsWzBdO1xuICAgICAgICB0aGlzLmVuZExhYmVsID0gc3BsaXRMYWJlbFsxXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc3RhcnRMYWJlbCA9IHRoaXMubGFiZWw7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgaW5jcmVtZW50TWludXRlcygkZXZlbnQ6IEV2ZW50KSB7XG4gICAgdGhpcy5jYWxlbmRhck1pbnV0ZXMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFyTWludXRlcywgMTApICsgMSArICcnO1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuY2FsZW5kYXJNaW51dGVzID0gcGFyc2VJbnQodGhpcy5jYWxlbmRhck1pbnV0ZXMsIDEwKSAtIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGluY3JlbWVudEhvdXJzKCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSArIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIGRlY3JlbWVudEhvdXJzKCRldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmNhbGVuZGFySG91cnMgPSBwYXJzZUludCh0aGlzLmNhbGVuZGFySG91cnMsIDEwKSAtIDEgKyAnJztcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIC8qXG4gICAgRW5zdXJlIHRoYXQgdGhlIGlucHV0IHZhbHVlIGlzIGEgbnVtYmVyIGFuZCB0aGF0IGl0IGlzIGJldHdlZW4gbWluIGFuZCBtYXhcbiAgKi9cbiAgcHJpdmF0ZSBmb3JtYXRUaW1lKHRpbWU6IHN0cmluZyB8IG51bWJlciwgbWluID0gMCwgbWF4ID0gNTkpIHtcbiAgICBsZXQgdGltZU51bWJlciA9IHR5cGVvZiB0aW1lID09PSAnc3RyaW5nJyA/IHBhcnNlSW50KHRpbWUsIDEwKSA6IHRpbWU7XG4gICAgdGltZU51bWJlciA9IHRpbWVOdW1iZXIgPiBtYXggPyBtaW4gOiB0aW1lTnVtYmVyO1xuICAgIHRpbWVOdW1iZXIgPSB0aW1lTnVtYmVyIDwgbWluID8gbWF4IDogdGltZU51bWJlcjtcbiAgICB0aW1lTnVtYmVyID0gcGFyc2VJbnQoKCcnICsgdGltZU51bWJlcikuc2xpY2UoLTIpKTsgLy8ga2VlcHMgb25seSB0aGUgbGFzdCAyIGRpZ2l0c1xuICAgIHJldHVybiB0aW1lTnVtYmVyO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVCdWxtYURhdGVQaWNrZXJPcHRpb25zKG9wdGlvbnM6IFJlYWRvbmx5PE53YkRhdGVQaWNrZXJPcHRpb25zPikge1xuICAgIGNvbnN0IGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyID0gdGhpcy5kYXRlUGlja2VyWydidWxtYUNhbGVuZGFyJ10uZGF0ZVBpY2tlcjtcbiAgICBidWxtYUNhbGVuZGFyRGF0ZVBpY2tlci5taW4gPSBvcHRpb25zLm1pbkRhdGU7XG4gICAgYnVsbWFDYWxlbmRhckRhdGVQaWNrZXIubWF4ID0gb3B0aW9ucy5tYXhEYXRlO1xuICAgIGJ1bG1hQ2FsZW5kYXJEYXRlUGlja2VyLnJlZnJlc2goKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNCdWxtYURhdGVQaWNrZXJFeGlzdHMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZGF0ZVBpY2tlciAmJiB0aGlzLmRhdGVQaWNrZXJbJ2J1bG1hQ2FsZW5kYXInXSAmJiB0aGlzLmRhdGVQaWNrZXJbJ2J1bG1hQ2FsZW5kYXInXS5kYXRlUGlja2VyO1xuICB9XG5cbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgbWV0aG9kc1xuXG4gIG9uQ2hhbmdlOiAodmFsdWU6IERhdGUpID0+IHZvaWQgPSAoKSA9PiB7fTtcblxuICBvblRvdWNoOiAoKSA9PiB2b2lkID0gKCkgPT4ge307XG5cbiAgd3JpdGVWYWx1ZShkYXRlOiBEYXRlKTogdm9pZCB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuZGF0ZVNlbGVjdGVkID0gZGF0ZTtcbiAgfVxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpe1xuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcbiAgfVxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KXtcbiAgICAgIHRoaXMub25Ub3VjaCA9IGZuO1xuICB9XG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwid2FjLWNhbGVuZGFyXCJcbiAgW25nQ2xhc3NdPVwie1xuICAgICd3YWMtY2FsZW5kYXItLWlucHV0JzogdHlwZSA9PT0gJ2lucHV0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1vbmx5RGF0ZSc6IHR5cGVEYXRlID09PSAnZGF0ZScsXG4gICAgJ3dhYy1jYWxlbmRhci0tZWRpdCc6IHR5cGUgPT09ICdlZGl0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1zZWxlY3QnOiB0eXBlID09PSAnc2VsZWN0JyxcbiAgICAnd2FjLWNhbGVuZGFyLS1uby1tYXJnaW4nOiBub01hcmdpbixcbiAgICAnd2FjLWNhbGVuZGFyLS1vcGVuJzogb3BlblxuICB9XCJcbiAgW3pJbmRleFRvZ2dsZV09XCJvcGVuXCJcbj5cbiAgPHAgW2NsYXNzXT1cIid3YWMtY2FsZW5kYXJfX2xhYmVsJyArIChib2xkTGFiZWwgPyAnIGJvbGQnIDogJycpXCIgKm5nSWY9XCJsYWJlbCAmJiAodHlwZSA9PT0gJ2lucHV0JyB8fCB0eXBlID09PSAnc2VsZWN0JylcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj57eyBsYWJlbCB9fTwvcD5cbiAgPHAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3N0YXJ0TGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IHN0YXJ0TGFiZWwgfX08L3A+XG4gIDx3YWMtb3B0aW9uYWwtZGlzYWJsZS1jb250YWluZXIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XG4gICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYXV0b0hpZGVcIiB3ekF1dG9IaWRlIChjbGlja091dHNpZGUpPVwib3BlbkNhbGVuZGFyKCdjbG9zZScpXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2lucHV0XCIgKm5nSWY9XCJ0eXBlID09PSAnaW5wdXQnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9faW5wdXRfX2ljb25cIj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFyIGZhLWNhbGVuZGFyLWFsdFwiPjwvaT5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fZGF0ZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnZGQvTU0veXl5eSd9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItZGF0ZVwiICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5kZC9tbS95eXl5JyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkYXRlU2VsZWN0ZWRcIiBAb3BhY2l0eUFuaW1hdGlvbj57eyBkYXRlU2VsZWN0ZWQgfCBkYXRlOiAnSEg6bW0nIH19PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLkhIOm1tJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlXCIgKm5nSWY9XCJ0eXBlID09PSAnZWRpdCdcIiAoY2xpY2spPVwib3BlbkNhbGVuZGFyKClcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19lZGl0SW5QbGFjZV9faWNvblwiPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYWwgZmEtY2FsZW5kYXItYWx0XCI+PC9pPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX3dyYXBwZXJfX2VkaXRJblBsYWNlX19kYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19pbnB1dF9fdGltZVwiPlxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJwbGFjZWhvbGRlci1kYXRlXCIgKm5nSWY9XCIhZGF0ZVNlbGVjdGVkXCIgQG9wYWNpdHlBbmltYXRpb24+e3sgJ3dhYy5EYXRlLlBsYWNlSG9sZGVyLmRkL01NL3l5eXlfSEg6bW0nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX193cmFwcGVyX19zZWxlY3RcIiAqbmdJZj1cInR5cGUgPT09ICdzZWxlY3QnXCIgKGNsaWNrKT1cIm9wZW5DYWxlbmRhcigpXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9fc2VsZWN0X19pY29uXCI+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhbCBmYS1jYWxlbmRhci1hbHRcIj48L2k+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fd3JhcHBlcl9fc2VsZWN0X19kYXRlXCI+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7IGRhdGVTZWxlY3RlZCB8IGRhdGU6ICdkZC9NTS95eXl5IEhIOm1tJyB9fTwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwicGxhY2Vob2xkZXItZGF0ZVwiICpuZ0lmPVwiIWRhdGVTZWxlY3RlZFwiIEBvcGFjaXR5QW5pbWF0aW9uPnt7ICd3YWMuRGF0ZS5QbGFjZUhvbGRlci5kZC9NTS95eXl5X0hIOm1tJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIHRvcDogcG9zaXRpb24gPT09ICd0b3AnLFxuICAgICAgICAgIGJvdHRvbTogcG9zaXRpb24gPT09ICdib3R0b20nLFxuICAgICAgICAgIGxlZnQ6IHBvc2l0aW9uID09PSAnbGVmdCcsXG4gICAgICAgICAgcmlnaHQ6IHBvc2l0aW9uID09PSAncmlnaHQnLFxuICAgICAgICAgICdyaWdodC10b3AnOiBwb3NpdGlvbiA9PT0gJ3JpZ2h0LXRvcCcsXG4gICAgICAgICAgJ3JpZ2h0LWJvdHRvbSc6IHBvc2l0aW9uID09PSAncmlnaHQtYm90dG9tJyxcbiAgICAgICAgICAnbGVmdC10b3AnOiBwb3NpdGlvbiA9PT0gJ2xlZnQtdG9wJyxcbiAgICAgICAgICAnbGVmdC1ib3R0b20nOiBwb3NpdGlvbiA9PT0gJ2xlZnQtYm90dG9tJyxcbiAgICAgICAgICAnd2l0aC10aW1lJzogdHlwZURhdGUgPT09ICdkYXRldGltZS1sb2NhbCcgfHwgdHlwZURhdGUgPT09ICdkYXRldGltZSdcbiAgICAgICAgfVwiXG4gICAgICA+XG4gICAgICAgIDxud2ItZGF0ZS1waWNrZXIgI2RhdGVQaWNrZXIgKGNoYW5nZSk9XCJvbkNoYW5nZURhdGUoJGV2ZW50KVwiIFtvcHRpb25zXT1cIm9wdGlvbnNcIj5cbiAgICAgICAgICA8aW5wdXQgW253YkRhdGVwaWNrZXJTdGFydF09XCJkYXRlUGlja2VyXCIgdHlwZT1cInRleHRcIiBbbndiRGF0ZVR5cGVdPVwiJ2RhdGUnXCIgW3ZhbHVlXT1cImRhdGVTZWxlY3RlZD8udG9JU09TdHJpbmcoKVwiIC8+XG4gICAgICAgIDwvbndiLWRhdGUtcGlja2VyPlxuICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZVwiICpuZ0lmPVwidHlwZURhdGUgPT09ICdkYXRldGltZS1sb2NhbCcgfHwgdHlwZURhdGUgPT09ICdkYXRldGltZSdcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlclwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19ob3Vyc19fYnRuXCIgKGNsaWNrKT1cImluY3JlbWVudEhvdXJzKCRldmVudClcIj5cbiAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXBsdXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIndhYy1jYWxlbmRhcl9fYWJzb2x1dGVfX3RpbWVfX3dyYXBwZXJfX2hvdXJzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50SG91cnMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9faG91cnNfX3JpZ2h0XCI+XG4gICAgICAgICAgICAgICAgPGlucHV0ICNob3VycyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJIb3Vyc1wiIFt3YWNPbmx5TnVtYmVyXT1cInRydWVcIi8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc1wiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid2FjLWNhbGVuZGFyX19hYnNvbHV0ZV9fdGltZV9fd3JhcHBlcl9fbWludXRlc19fbGVmdFwiPlxuICAgICAgICAgICAgICAgIDxpbnB1dCAjbWludXRlcyB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiY2FsZW5kYXJNaW51dGVzXCIgW3dhY09ubHlOdW1iZXJdPVwidHJ1ZVwiLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19yaWdodFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiaW5jcmVtZW50TWludXRlcygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1wbHVzXCI+PC9pPlxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJ3YWMtY2FsZW5kYXJfX2Fic29sdXRlX190aW1lX193cmFwcGVyX19taW51dGVzX19idG5cIiAoY2xpY2spPVwiZGVjcmVtZW50c01pbnV0ZXMoJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtbWludXNcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvd2FjLW9wdGlvbmFsLWRpc2FibGUtY29udGFpbmVyPlxuICA8cCBjbGFzcz1cIndhYy1jYWxlbmRhcl9fZW5kTGFiZWxcIiAqbmdJZj1cInR5cGUgPT09ICdlZGl0J1wiPnt7IGVuZExhYmVsIH19PC9wPlxuPC9kaXY+XG4iXX0=