pruebatlp20v17-design-system 0.0.1

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 (136) hide show
  1. package/README.md +25 -0
  2. package/esm2022/lib/algeciras-port-logo/algeciras-port-logo.component.mjs +21 -0
  3. package/esm2022/lib/bottom-panel/bottom-panel-content.directive.mjs +14 -0
  4. package/esm2022/lib/bottom-panel/bottom-panel-footer.component.mjs +24 -0
  5. package/esm2022/lib/bottom-panel/bottom-panel-header-heading.directive.mjs +14 -0
  6. package/esm2022/lib/bottom-panel/bottom-panel-header-label.directive.mjs +14 -0
  7. package/esm2022/lib/bottom-panel/bottom-panel-header.component.mjs +30 -0
  8. package/esm2022/lib/bottom-panel/bottom-panel.component.mjs +68 -0
  9. package/esm2022/lib/button/button.component.mjs +24 -0
  10. package/esm2022/lib/checkbox/checkbox.component.mjs +79 -0
  11. package/esm2022/lib/combobox/combobox.component.mjs +185 -0
  12. package/esm2022/lib/data-table/data-table-container.component.mjs +15 -0
  13. package/esm2022/lib/data-table/data-table-header-item.class.mjs +7 -0
  14. package/esm2022/lib/data-table/data-table-item.class.mjs +7 -0
  15. package/esm2022/lib/data-table/data-table-model.class.mjs +4 -0
  16. package/esm2022/lib/data-table/data-table-toolbar-content.component.mjs +15 -0
  17. package/esm2022/lib/data-table/data-table-toolbar.component.mjs +26 -0
  18. package/esm2022/lib/data-table/data-table.component.mjs +76 -0
  19. package/esm2022/lib/datepicker/datepicker.component.mjs +114 -0
  20. package/esm2022/lib/design-system.module.mjs +311 -0
  21. package/esm2022/lib/expandable-tile/expandable-tile.component.mjs +155 -0
  22. package/esm2022/lib/global-styles.component.mjs +11 -0
  23. package/esm2022/lib/header/hamburger.component.mjs +16 -0
  24. package/esm2022/lib/header/header-action.component.mjs +27 -0
  25. package/esm2022/lib/header/header-global.component.mjs +24 -0
  26. package/esm2022/lib/header/header.component.mjs +16 -0
  27. package/esm2022/lib/icons/icon.directive.mjs +39 -0
  28. package/esm2022/lib/icons/icon.service.mjs +2 -0
  29. package/esm2022/lib/input/input.component.mjs +98 -0
  30. package/esm2022/lib/link/link.directive.mjs +14 -0
  31. package/esm2022/lib/loading/loading.component.mjs +16 -0
  32. package/esm2022/lib/modal/base-modal.class.mjs +4 -0
  33. package/esm2022/lib/modal/modal-content.directive.mjs +14 -0
  34. package/esm2022/lib/modal/modal-footer.component.mjs +24 -0
  35. package/esm2022/lib/modal/modal-header-heading.directive.mjs +14 -0
  36. package/esm2022/lib/modal/modal-header-label.directive.mjs +14 -0
  37. package/esm2022/lib/modal/modal-header.component.mjs +30 -0
  38. package/esm2022/lib/modal/modal.component.mjs +27 -0
  39. package/esm2022/lib/modal/modal.service.mjs +11 -0
  40. package/esm2022/lib/modal/placeholder.component.mjs +16 -0
  41. package/esm2022/lib/notification/notification.component.mjs +24 -0
  42. package/esm2022/lib/notification/notification.service.mjs +19 -0
  43. package/esm2022/lib/notification/toast.component.mjs +27 -0
  44. package/esm2022/lib/overflow-menu/overflow-menu-option.component.mjs +13 -0
  45. package/esm2022/lib/overflow-menu/overflow-menu.component.mjs +19 -0
  46. package/esm2022/lib/pagination/pagination-model.class.mjs +4 -0
  47. package/esm2022/lib/pagination/pagination-translations.mjs +2 -0
  48. package/esm2022/lib/pagination/pagination.component.mjs +57 -0
  49. package/esm2022/lib/progress-indicator/progress-indicator.component.mjs +33 -0
  50. package/esm2022/lib/radio/radio-group.component.mjs +94 -0
  51. package/esm2022/lib/radio/radio.component.mjs +77 -0
  52. package/esm2022/lib/search/search.component.mjs +30 -0
  53. package/esm2022/lib/select/select.component.mjs +73 -0
  54. package/esm2022/lib/side-panel/side-panel.component.mjs +68 -0
  55. package/esm2022/lib/sidenav/sidenav-item.component.mjs +13 -0
  56. package/esm2022/lib/sidenav/sidenav-menu.component.mjs +25 -0
  57. package/esm2022/lib/sidenav/sidenav.component.mjs +13 -0
  58. package/esm2022/lib/subheader/subheader.component.mjs +11 -0
  59. package/esm2022/lib/table/table.directive.mjs +17 -0
  60. package/esm2022/lib/tabs/tab.component.mjs +135 -0
  61. package/esm2022/lib/tabs/tabs.component.mjs +100 -0
  62. package/esm2022/lib/tag/tag.component.mjs +31 -0
  63. package/esm2022/lib/tag-filter/tag-filter.component.mjs +16 -0
  64. package/esm2022/lib/textarea/textarea.component.mjs +86 -0
  65. package/esm2022/lib/toggle/toggle.component.mjs +67 -0
  66. package/esm2022/pruebatlp20v17-design-system.mjs +5 -0
  67. package/esm2022/public-api.mjs +75 -0
  68. package/fesm2022/pruebatlp20v17-design-system.mjs +2421 -0
  69. package/fesm2022/pruebatlp20v17-design-system.mjs.map +1 -0
  70. package/index.d.ts +5 -0
  71. package/lib/algeciras-port-logo/algeciras-port-logo.component.d.ts +8 -0
  72. package/lib/bottom-panel/bottom-panel-content.directive.d.ts +6 -0
  73. package/lib/bottom-panel/bottom-panel-footer.component.d.ts +6 -0
  74. package/lib/bottom-panel/bottom-panel-header-heading.directive.d.ts +6 -0
  75. package/lib/bottom-panel/bottom-panel-header-label.directive.d.ts +6 -0
  76. package/lib/bottom-panel/bottom-panel-header.component.d.ts +6 -0
  77. package/lib/bottom-panel/bottom-panel.component.d.ts +10 -0
  78. package/lib/button/button.component.d.ts +9 -0
  79. package/lib/checkbox/checkbox.component.d.ts +26 -0
  80. package/lib/combobox/combobox.component.d.ts +65 -0
  81. package/lib/data-table/data-table-container.component.d.ts +6 -0
  82. package/lib/data-table/data-table-header-item.class.d.ts +15 -0
  83. package/lib/data-table/data-table-item.class.d.ts +13 -0
  84. package/lib/data-table/data-table-model.class.d.ts +3 -0
  85. package/lib/data-table/data-table-toolbar-content.component.d.ts +6 -0
  86. package/lib/data-table/data-table-toolbar.component.d.ts +7 -0
  87. package/lib/data-table/data-table.component.d.ts +25 -0
  88. package/lib/datepicker/datepicker.component.d.ts +43 -0
  89. package/lib/design-system.module.d.ts +87 -0
  90. package/lib/expandable-tile/expandable-tile.component.d.ts +20 -0
  91. package/lib/global-styles.component.d.ts +5 -0
  92. package/lib/header/hamburger.component.d.ts +6 -0
  93. package/lib/header/header-action.component.d.ts +7 -0
  94. package/lib/header/header-global.component.d.ts +6 -0
  95. package/lib/header/header.component.d.ts +7 -0
  96. package/lib/icons/icon.directive.d.ts +16 -0
  97. package/lib/icons/icon.service.d.ts +1 -0
  98. package/lib/input/input.component.d.ts +42 -0
  99. package/lib/link/link.directive.d.ts +6 -0
  100. package/lib/loading/loading.component.d.ts +7 -0
  101. package/lib/modal/base-modal.class.d.ts +3 -0
  102. package/lib/modal/modal-content.directive.d.ts +6 -0
  103. package/lib/modal/modal-footer.component.d.ts +6 -0
  104. package/lib/modal/modal-header-heading.directive.d.ts +6 -0
  105. package/lib/modal/modal-header-label.directive.d.ts +6 -0
  106. package/lib/modal/modal-header.component.d.ts +6 -0
  107. package/lib/modal/modal.component.d.ts +11 -0
  108. package/lib/modal/modal.service.d.ts +6 -0
  109. package/lib/modal/placeholder.component.d.ts +6 -0
  110. package/lib/notification/notification.component.d.ts +9 -0
  111. package/lib/notification/notification.service.d.ts +10 -0
  112. package/lib/notification/toast.component.d.ts +10 -0
  113. package/lib/overflow-menu/overflow-menu-option.component.d.ts +6 -0
  114. package/lib/overflow-menu/overflow-menu.component.d.ts +9 -0
  115. package/lib/pagination/pagination-model.class.d.ts +3 -0
  116. package/lib/pagination/pagination-translations.d.ts +3 -0
  117. package/lib/pagination/pagination.component.d.ts +37 -0
  118. package/lib/progress-indicator/progress-indicator.component.d.ts +29 -0
  119. package/lib/radio/radio-group.component.d.ts +25 -0
  120. package/lib/radio/radio.component.d.ts +24 -0
  121. package/lib/search/search.component.d.ts +7 -0
  122. package/lib/select/select.component.d.ts +23 -0
  123. package/lib/side-panel/side-panel.component.d.ts +9 -0
  124. package/lib/sidenav/sidenav-item.component.d.ts +6 -0
  125. package/lib/sidenav/sidenav-menu.component.d.ts +11 -0
  126. package/lib/sidenav/sidenav.component.d.ts +7 -0
  127. package/lib/subheader/subheader.component.d.ts +5 -0
  128. package/lib/table/table.directive.d.ts +7 -0
  129. package/lib/tabs/tab.component.d.ts +67 -0
  130. package/lib/tabs/tabs.component.d.ts +60 -0
  131. package/lib/tag/tag.component.d.ts +12 -0
  132. package/lib/tag-filter/tag-filter.component.d.ts +7 -0
  133. package/lib/textarea/textarea.component.d.ts +26 -0
  134. package/lib/toggle/toggle.component.d.ts +21 -0
  135. package/package.json +30 -0
  136. package/public-api.d.ts +64 -0
@@ -0,0 +1,185 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/forms";
5
+ import * as i2 from "carbon-components-angular/combobox";
6
+ import * as i3 from "carbon-components-angular/dropdown";
7
+ export class ComboboxComponent {
8
+ items = [];
9
+ /**
10
+ * When `true`, the dropdown is open on top of the input
11
+ *
12
+ * @default false
13
+ */
14
+ dropUp = false;
15
+ disabled = false;
16
+ /**
17
+ * Specifies the property to be used for `ngModel`
18
+ */
19
+ itemValueKey = undefined;
20
+ /**
21
+ * Combo box type (supporting single or multi selection of items).
22
+ */
23
+ type = "single";
24
+ label = "";
25
+ helperText = "";
26
+ invalid = false;
27
+ invalidText = "";
28
+ placeholder = "";
29
+ size = "md";
30
+ /**
31
+ * Specify feedback (mode) of the selection.
32
+ * `top`: selected item jumps to top
33
+ * `fixed`: selected item stays at its position
34
+ * @default `top-after-reopen`: selected item jump to top after reopen dropdown
35
+ */
36
+ selectionFeedback = "top-after-reopen";
37
+ /** Emits an empty event when the menu is closed */
38
+ close = new EventEmitter();
39
+ /** Emits the search string from the input */
40
+ search = new EventEmitter();
41
+ /** Emits an event when the clear button is clicked. */
42
+ clear = new EventEmitter();
43
+ _value = "";
44
+ isTouched = false;
45
+ _onChangeCallback;
46
+ _onTouchCallback;
47
+ handleChange(newValue) {
48
+ this._value = newValue;
49
+ if (!this._onChangeCallback)
50
+ return;
51
+ const isObject = !!newValue && typeof newValue === "object" && !Array.isArray(newValue);
52
+ if (newValue === null) {
53
+ this._onChangeCallback(null);
54
+ return;
55
+ }
56
+ if (typeof newValue === "string") {
57
+ this._onChangeCallback(newValue);
58
+ return;
59
+ }
60
+ if (isObject) {
61
+ this._onChangeCallback(this.mapToConsumerValue(newValue));
62
+ return;
63
+ }
64
+ const isEmptyArray = Array.isArray(newValue) && newValue.length === 0;
65
+ if (this.type === "single" && isEmptyArray) {
66
+ // Carbon emits [] which is a leaky abstraction
67
+ // On single mode it only makes sense for it to be `null`
68
+ this._onChangeCallback(null);
69
+ return;
70
+ }
71
+ if (this.type === "multi") {
72
+ if (typeof newValue[0] === "string") {
73
+ this._onChangeCallback(newValue);
74
+ }
75
+ else {
76
+ this._onChangeCallback(newValue.map((item) => this.mapToConsumerValue(item)));
77
+ }
78
+ return;
79
+ }
80
+ // fallback
81
+ this._onChangeCallback?.(newValue);
82
+ }
83
+ writeValue(newValue) {
84
+ // e.g: null
85
+ // e.g: "one"
86
+ if (newValue === null || typeof newValue === "string") {
87
+ this._value = newValue;
88
+ return;
89
+ }
90
+ // e.g: { content: "one", disabled: true }
91
+ if (!Array.isArray(newValue)) {
92
+ const mappedNewValue = this.mapToInternalValue(newValue);
93
+ this._value = mappedNewValue;
94
+ return;
95
+ }
96
+ // e.g: [{ content: "one", disabled: true }, { content: "two", disabled: true }]
97
+ if (typeof newValue[0] === "object") {
98
+ this._value = newValue.map((item) => this.mapToInternalValue(item));
99
+ }
100
+ else {
101
+ // e.g: ["one", "two"]
102
+ this._value = newValue;
103
+ }
104
+ }
105
+ mapToInternalValue(value) {
106
+ return { ...value, selected: true };
107
+ }
108
+ mapToConsumerValue(ibmListItem) {
109
+ const { selected, ...withoutSelectedProp } = ibmListItem;
110
+ return withoutSelectedProp;
111
+ }
112
+ handleTouch(event) {
113
+ if (!this.isTouched) {
114
+ this.isTouched = true;
115
+ this._onTouchCallback?.(event);
116
+ }
117
+ }
118
+ registerOnChange(fn) {
119
+ this._onChangeCallback = fn;
120
+ }
121
+ registerOnTouched(fn) {
122
+ this._onTouchCallback = fn;
123
+ }
124
+ setDisabledState(isDisabled) {
125
+ this.disabled = isDisabled;
126
+ }
127
+ onClose() {
128
+ this.close.emit();
129
+ }
130
+ onSearch(value) {
131
+ this.search.emit(value);
132
+ }
133
+ onClear() {
134
+ this.clear.emit();
135
+ }
136
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
137
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ComboboxComponent, selector: "tlp-combobox", inputs: { items: "items", dropUp: "dropUp", disabled: "disabled", itemValueKey: "itemValueKey", type: "type", label: "label", helperText: "helperText", invalid: "invalid", invalidText: "invalidText", placeholder: "placeholder", size: "size", selectionFeedback: "selectionFeedback" }, outputs: { close: "close", search: "search", clear: "clear" }, providers: [
138
+ {
139
+ provide: NG_VALUE_ACCESSOR,
140
+ multi: true,
141
+ useExisting: ComboboxComponent,
142
+ },
143
+ ], ngImport: i0, template: "<!-- $any because we don't want to require the `selected` property on consumer side-->\r\n<ibm-combo-box\r\n [items]=\"$any(items)\"\r\n [dropUp]=\"false\"\r\n [itemValueKey]=\"itemValueKey!\"\r\n [disabled]=\"disabled\"\r\n [ngModel]=\"_value\"\r\n [type]=\"type\"\r\n [invalid]=\"invalid\"\r\n [label]=\"label\"\r\n [helperText]=\"helperText\"\r\n [invalidText]=\"invalidText\"\r\n [placeholder]=\"placeholder\"\r\n [selectionFeedback]=\"selectionFeedback\"\r\n [size]=\"size\"\r\n (ngModelChange)=\"handleChange($event)\"\r\n (focusout)=\"handleTouch($event)\"\r\n (clear)=\"onClear()\"\r\n (search)=\"onSearch($event)\"\r\n (close)=\"onClose()\"\r\n>\r\n <ibm-dropdown-list></ibm-dropdown-list>\r\n</ibm-combo-box>\r\n", styles: [":host ::ng-deep{--cds-selected-ui: var(--cds-layer-accent, #d0e2ff)}:host ::ng-deep .cds--list-box{border:1px solid #003c69;border-radius:4px}:host ::ng-deep .cds--list-box.cds--list-box--disabled{border:1px solid #afafaf;background-color:#f1f1f1}:host ::ng-deep .cds--multi-select--filterable.cds--list-box--disabled:hover .cds--text-input{background-color:unset}:host ::ng-deep .cds--text-input,:host ::ng-deep .cds--multi-select--filterable.cds--combo-box .cds--text-input{border:none}:host ::ng-deep .cds--combo-box[data-invalid] .cds--text-input:not(:focus){outline:none}:host ::ng-deep .cds--list-box__menu-item:first-of-type .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item:hover+.cds--list-box__menu-item .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item__option:hover{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--active+.cds--list-box__menu-item>.cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--active:hover,:host ::ng-deep .cds--list-box__menu-item--active.cds--list-box__menu-item--highlighted{background-color:var(--cds-selected-ui, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--highlighted .cds--list-box__menu-item__option,:host ::ng-deep .cds--list-box__menu-item--highlighted+.cds--list-box__menu-item .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}::ng-deep .cds--list-box__menu-item--highlighted{background:unset}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.ComboBox, selector: "cds-combo-box, ibm-combo-box", inputs: ["placeholder", "openMenuAria", "closeMenuAria", "clearSelectionsTitle", "clearSelectionsAria", "clearSelectionTitle", "clearSelectionAria", "id", "labelId", "items", "type", "size", "itemValueKey", "label", "hideLabel", "helperText", "appendInline", "invalid", "invalidText", "warn", "warnText", "maxLength", "theme", "selectionFeedback", "autocomplete", "dropUp", "disabled", "readonly", "fluid"], outputs: ["selected", "submit", "close", "search", "clear"] }, { kind: "component", type: i3.DropdownList, selector: "cds-dropdown-list, ibm-dropdown-list", inputs: ["ariaLabel", "items", "listTpl", "type", "showTitles"], outputs: ["select", "scroll", "blurIntent"] }] });
144
+ }
145
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ComboboxComponent, decorators: [{
146
+ type: Component,
147
+ args: [{ selector: "tlp-combobox", providers: [
148
+ {
149
+ provide: NG_VALUE_ACCESSOR,
150
+ multi: true,
151
+ useExisting: ComboboxComponent,
152
+ },
153
+ ], template: "<!-- $any because we don't want to require the `selected` property on consumer side-->\r\n<ibm-combo-box\r\n [items]=\"$any(items)\"\r\n [dropUp]=\"false\"\r\n [itemValueKey]=\"itemValueKey!\"\r\n [disabled]=\"disabled\"\r\n [ngModel]=\"_value\"\r\n [type]=\"type\"\r\n [invalid]=\"invalid\"\r\n [label]=\"label\"\r\n [helperText]=\"helperText\"\r\n [invalidText]=\"invalidText\"\r\n [placeholder]=\"placeholder\"\r\n [selectionFeedback]=\"selectionFeedback\"\r\n [size]=\"size\"\r\n (ngModelChange)=\"handleChange($event)\"\r\n (focusout)=\"handleTouch($event)\"\r\n (clear)=\"onClear()\"\r\n (search)=\"onSearch($event)\"\r\n (close)=\"onClose()\"\r\n>\r\n <ibm-dropdown-list></ibm-dropdown-list>\r\n</ibm-combo-box>\r\n", styles: [":host ::ng-deep{--cds-selected-ui: var(--cds-layer-accent, #d0e2ff)}:host ::ng-deep .cds--list-box{border:1px solid #003c69;border-radius:4px}:host ::ng-deep .cds--list-box.cds--list-box--disabled{border:1px solid #afafaf;background-color:#f1f1f1}:host ::ng-deep .cds--multi-select--filterable.cds--list-box--disabled:hover .cds--text-input{background-color:unset}:host ::ng-deep .cds--text-input,:host ::ng-deep .cds--multi-select--filterable.cds--combo-box .cds--text-input{border:none}:host ::ng-deep .cds--combo-box[data-invalid] .cds--text-input:not(:focus){outline:none}:host ::ng-deep .cds--list-box__menu-item:first-of-type .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item:hover+.cds--list-box__menu-item .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item__option:hover{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--active+.cds--list-box__menu-item>.cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--active:hover,:host ::ng-deep .cds--list-box__menu-item--active.cds--list-box__menu-item--highlighted{background-color:var(--cds-selected-ui, #e0e0e0)}:host ::ng-deep .cds--list-box__menu-item--highlighted .cds--list-box__menu-item__option,:host ::ng-deep .cds--list-box__menu-item--highlighted+.cds--list-box__menu-item .cds--list-box__menu-item__option{border-top-color:var(--cds-ui-03, #e0e0e0)}::ng-deep .cds--list-box__menu-item--highlighted{background:unset}\n"] }]
154
+ }], propDecorators: { items: [{
155
+ type: Input
156
+ }], dropUp: [{
157
+ type: Input
158
+ }], disabled: [{
159
+ type: Input
160
+ }], itemValueKey: [{
161
+ type: Input
162
+ }], type: [{
163
+ type: Input
164
+ }], label: [{
165
+ type: Input
166
+ }], helperText: [{
167
+ type: Input
168
+ }], invalid: [{
169
+ type: Input
170
+ }], invalidText: [{
171
+ type: Input
172
+ }], placeholder: [{
173
+ type: Input
174
+ }], size: [{
175
+ type: Input
176
+ }], selectionFeedback: [{
177
+ type: Input
178
+ }], close: [{
179
+ type: Output
180
+ }], search: [{
181
+ type: Output
182
+ }], clear: [{
183
+ type: Output
184
+ }] } });
185
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3guY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvbWJvYm94L2NvbWJvYm94LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21ib2JveC9jb21ib2JveC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZFLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7QUEwQ3pFLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsS0FBSyxHQUF3QixFQUFFLENBQUM7SUFDekM7Ozs7T0FJRztJQUNNLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDZixRQUFRLEdBQUcsS0FBSyxDQUFDO0lBQzFCOztPQUVHO0lBQ00sWUFBWSxHQUF1QixTQUFTLENBQUM7SUFFdEQ7O09BRUc7SUFDTSxJQUFJLEdBQXVCLFFBQVEsQ0FBQztJQUVwQyxLQUFLLEdBQUcsRUFBRSxDQUFDO0lBQ1gsVUFBVSxHQUFHLEVBQUUsQ0FBQztJQUNoQixPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ2hCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsV0FBVyxHQUFHLEVBQUUsQ0FBQztJQUNqQixJQUFJLEdBQXVCLElBQUksQ0FBQztJQUN6Qzs7Ozs7T0FLRztJQUNNLGlCQUFpQixHQUN4QixrQkFBa0IsQ0FBQztJQUVyQixtREFBbUQ7SUFDekMsS0FBSyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDM0MsNkNBQTZDO0lBQ25DLE1BQU0sR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzlDLHVEQUF1RDtJQUM3QyxLQUFLLEdBQUcsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUU1QyxNQUFNLEdBQW1CLEVBQUUsQ0FBQztJQUM1QixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLGlCQUFpQixDQUErQztJQUNoRSxnQkFBZ0IsQ0FBdUM7SUFFdkQsWUFBWSxDQUFDLFFBQXdCO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1FBRXZCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCO1lBQUUsT0FBTztRQUVwQyxNQUFNLFFBQVEsR0FDWixDQUFDLENBQUMsUUFBUSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFekUsSUFBSSxRQUFRLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDdEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxPQUFPLFFBQVEsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDakMsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLFFBQVEsRUFBRSxDQUFDO1lBQ2IsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1lBQzFELE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxZQUFZLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztRQUN0RSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssUUFBUSxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQzNDLCtDQUErQztZQUMvQyx5REFBeUQ7WUFDekQsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzdCLE9BQU87UUFDVCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQzFCLElBQUksT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3BDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUF5QixDQUFDLENBQUM7WUFDcEQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLElBQUksQ0FBQyxpQkFBaUIsQ0FDbkIsUUFBZ0QsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUM3RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQzlCLENBQ0YsQ0FBQztZQUNKLENBQUM7WUFFRCxPQUFPO1FBQ1QsQ0FBQztRQUVELFdBQVc7UUFDWCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNyQyxDQUFDO0lBRUQsVUFBVSxDQUFDLFFBQXVCO1FBQ2hDLFlBQVk7UUFDWixhQUFhO1FBQ2IsSUFBSSxRQUFRLEtBQUssSUFBSSxJQUFJLE9BQU8sUUFBUSxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ3RELElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDO1lBQ3ZCLE9BQU87UUFDVCxDQUFDO1FBRUQsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDN0IsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDO1lBRTdCLE9BQU87UUFDVCxDQUFDO1FBRUQsZ0ZBQWdGO1FBQ2hGLElBQUksT0FBTyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDcEMsSUFBSSxDQUFDLE1BQU0sR0FBSSxRQUFnQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQzNELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FDOUIsQ0FBQztRQUNKLENBQUM7YUFBTSxDQUFDO1lBQ04sc0JBQXNCO1lBQ3RCLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBOEIsQ0FBQztRQUMvQyxDQUFDO0lBQ0gsQ0FBQztJQUVELGtCQUFrQixDQUFDLEtBQW1CO1FBQ3BDLE9BQU8sRUFBRSxHQUFHLEtBQUssRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGtCQUFrQixDQUFDLFdBQXlDO1FBQzFELE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxtQkFBbUIsRUFBRSxHQUFHLFdBQVcsQ0FBQztRQUV6RCxPQUFPLG1CQUFtQixDQUFDO0lBQzdCLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWTtRQUN0QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pDLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsUUFBUSxDQUFDLEtBQWE7UUFDcEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELE9BQU87UUFDTCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BCLENBQUM7d0dBbEtVLGlCQUFpQjs0RkFBakIsaUJBQWlCLGtZQVJqQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxpQkFBaUI7YUFDL0I7U0FDRiwwQkN6Q0gsdXVCQXVCQTs7NEZEb0JhLGlCQUFpQjtrQkFaN0IsU0FBUzsrQkFDRSxjQUFjLGFBR2I7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsS0FBSyxFQUFFLElBQUk7NEJBQ1gsV0FBVyxtQkFBbUI7eUJBQy9CO3FCQUNGOzhCQUdRLEtBQUs7c0JBQWIsS0FBSztnQkFNRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxZQUFZO3NCQUFwQixLQUFLO2dCQUtHLElBQUk7c0JBQVosS0FBSztnQkFFRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFPRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBSUksS0FBSztzQkFBZCxNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFFRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBMaXN0SXRlbSBhcyBJYm1MaXN0SXRlbSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL2Ryb3Bkb3duXCI7XHJcblxyXG4vLyBzdXBwb3J0IENhcmJvbidzIFwiY29udGVudFwiIGFuZCBcImRpc2FibGVkXCIgcHJvcGVydGllcywgYWxvbmdzaWRlIHRoZSBwb3NzaWJpbGl0eSBvZiBhcmJpdHJhcnkgb25lc1xyXG4vLyBbIV0gZG8gbm90IHN3aXRjaCBgYW55YCB0byBgdW5rbm93bmAgYXMgaXQgd2lsbCBicmVhayBhY2Nlc3NlcyB0byB0aGUgbW9kZWwgaW4gY29uc3VtZXIgc2lkZVxyXG5leHBvcnQgdHlwZSBDb21ib2JveEl0ZW0gPSBQaWNrPElibUxpc3RJdGVtLCBcImNvbnRlbnRcIiB8IFwiZGlzYWJsZWRcIj4gJlxyXG4gIFJlY29yZDxzdHJpbmcsIGFueT47XHJcblxyXG4vLyB0aGUgdHlwZSBvZiB0aGUgbmdNb2RlbCB2YWx1ZSB0aGF0IGlzIG9uIHRoZSBjb25zdW1lciBzaWRlXHJcbmV4cG9ydCB0eXBlIENvbWJvYm94VmFsdWUgPVxyXG4gIC8vIHR5cGU9XCJzaW5nbGVcIlxyXG4gIHwgc3RyaW5nXHJcbiAgfCBDb21ib2JveEl0ZW1cclxuICB8IG51bGxcclxuICAvLyB0eXBlPVwibXVsdGlcIlxyXG4gIHwgQXJyYXk8c3RyaW5nPlxyXG4gIHwgQXJyYXk8Q29tYm9ib3hJdGVtPjtcclxuXHJcbi8vIGl0IG11c3QgaGF2ZSBgc2VsZWN0ZWQ6IHRydWVgIGluIG9yZGVyIHRvIHdvcmtcclxudHlwZSBJTlRFUk5BTF9TZWxlY3RlZElibUxpc3RJdGVtID0gSWJtTGlzdEl0ZW0gJiB7IHNlbGVjdGVkOiB0cnVlIH07XHJcbi8vIG1pcnJvciBvZiB0aGUgaW50ZXJuYWwgY2FyYm9uIHZhbHVlXHJcbnR5cGUgSU5URVJOQUxfVmFsdWUgPVxyXG4gIC8vIHR5cGU9XCJzaW5nbGVcIlxyXG4gIHwgc3RyaW5nXHJcbiAgfCBJTlRFUk5BTF9TZWxlY3RlZElibUxpc3RJdGVtXHJcbiAgfCBudWxsXHJcbiAgLy8gdHlwZT1cIm11bHRpXCJcclxuICB8IEFycmF5PHN0cmluZz5cclxuICB8IEFycmF5PElOVEVSTkFMX1NlbGVjdGVkSWJtTGlzdEl0ZW0+O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidGxwLWNvbWJvYm94XCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9jb21ib2JveC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9jb21ib2JveC5jb21wb25lbnQuc2Nzc1wiXSxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hDb21wb25lbnQsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb21ib2JveENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBpdGVtczogQXJyYXk8Q29tYm9ib3hJdGVtPiA9IFtdO1xyXG4gIC8qKlxyXG4gICAqIFdoZW4gYHRydWVgLCB0aGUgZHJvcGRvd24gaXMgb3BlbiBvbiB0b3Agb2YgdGhlIGlucHV0XHJcbiAgICpcclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRyb3BVcCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgLyoqXHJcbiAgICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0eSB0byBiZSB1c2VkIGZvciBgbmdNb2RlbGBcclxuICAgKi9cclxuICBASW5wdXQoKSBpdGVtVmFsdWVLZXk6IHN0cmluZyB8IHVuZGVmaW5lZCA9IHVuZGVmaW5lZDtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29tYm8gYm94IHR5cGUgKHN1cHBvcnRpbmcgc2luZ2xlIG9yIG11bHRpIHNlbGVjdGlvbiBvZiBpdGVtcykuXHJcbiAgICovXHJcbiAgQElucHV0KCkgdHlwZTogXCJzaW5nbGVcIiB8IFwibXVsdGlcIiA9IFwic2luZ2xlXCI7XHJcblxyXG4gIEBJbnB1dCgpIGxhYmVsID0gXCJcIjtcclxuICBASW5wdXQoKSBoZWxwZXJUZXh0ID0gXCJcIjtcclxuICBASW5wdXQoKSBpbnZhbGlkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaW52YWxpZFRleHQgPSBcIlwiO1xyXG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gXCJcIjtcclxuICBASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XHJcbiAgLyoqXHJcbiAgICogU3BlY2lmeSBmZWVkYmFjayAobW9kZSkgb2YgdGhlIHNlbGVjdGlvbi5cclxuICAgKiBgdG9wYDogc2VsZWN0ZWQgaXRlbSBqdW1wcyB0byB0b3BcclxuICAgKiBgZml4ZWRgOiBzZWxlY3RlZCBpdGVtIHN0YXlzIGF0IGl0cyBwb3NpdGlvblxyXG4gICAqIEBkZWZhdWx0IGB0b3AtYWZ0ZXItcmVvcGVuYDogc2VsZWN0ZWQgaXRlbSBqdW1wIHRvIHRvcCBhZnRlciByZW9wZW4gZHJvcGRvd25cclxuICAgKi9cclxuICBASW5wdXQoKSBzZWxlY3Rpb25GZWVkYmFjazogXCJ0b3BcIiB8IFwiZml4ZWRcIiB8IFwidG9wLWFmdGVyLXJlb3BlblwiID1cclxuICAgIFwidG9wLWFmdGVyLXJlb3BlblwiO1xyXG5cclxuICAvKiogRW1pdHMgYW4gZW1wdHkgZXZlbnQgd2hlbiB0aGUgbWVudSBpcyBjbG9zZWQgKi9cclxuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgLyoqIEVtaXRzIHRoZSBzZWFyY2ggc3RyaW5nIGZyb20gdGhlIGlucHV0ICovXHJcbiAgQE91dHB1dCgpIHNlYXJjaCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG4gIC8qKiBFbWl0cyBhbiBldmVudCB3aGVuIHRoZSBjbGVhciBidXR0b24gaXMgY2xpY2tlZC4gKi9cclxuICBAT3V0cHV0KCkgY2xlYXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xyXG5cclxuICBfdmFsdWU6IElOVEVSTkFMX1ZhbHVlID0gXCJcIjtcclxuICBpc1RvdWNoZWQgPSBmYWxzZTtcclxuXHJcbiAgX29uQ2hhbmdlQ2FsbGJhY2s6ICgodmFsdWU6IENvbWJvYm94VmFsdWUpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG4gIF9vblRvdWNoQ2FsbGJhY2s6ICgoZXZlbnQ6IEV2ZW50KSA9PiB2b2lkKSB8IHVuZGVmaW5lZDtcclxuXHJcbiAgaGFuZGxlQ2hhbmdlKG5ld1ZhbHVlOiBJTlRFUk5BTF9WYWx1ZSkge1xyXG4gICAgdGhpcy5fdmFsdWUgPSBuZXdWYWx1ZTtcclxuXHJcbiAgICBpZiAoIXRoaXMuX29uQ2hhbmdlQ2FsbGJhY2spIHJldHVybjtcclxuXHJcbiAgICBjb25zdCBpc09iamVjdCA9XHJcbiAgICAgICEhbmV3VmFsdWUgJiYgdHlwZW9mIG5ld1ZhbHVlID09PSBcIm9iamVjdFwiICYmICFBcnJheS5pc0FycmF5KG5ld1ZhbHVlKTtcclxuXHJcbiAgICBpZiAobmV3VmFsdWUgPT09IG51bGwpIHtcclxuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayhudWxsKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0eXBlb2YgbmV3VmFsdWUgPT09IFwic3RyaW5nXCIpIHtcclxuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayhuZXdWYWx1ZSk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoaXNPYmplY3QpIHtcclxuICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayh0aGlzLm1hcFRvQ29uc3VtZXJWYWx1ZShuZXdWYWx1ZSkpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaXNFbXB0eUFycmF5ID0gQXJyYXkuaXNBcnJheShuZXdWYWx1ZSkgJiYgbmV3VmFsdWUubGVuZ3RoID09PSAwO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gXCJzaW5nbGVcIiAmJiBpc0VtcHR5QXJyYXkpIHtcclxuICAgICAgLy8gQ2FyYm9uIGVtaXRzIFtdIHdoaWNoIGlzIGEgbGVha3kgYWJzdHJhY3Rpb25cclxuICAgICAgLy8gT24gc2luZ2xlIG1vZGUgaXQgb25seSBtYWtlcyBzZW5zZSBmb3IgaXQgdG8gYmUgYG51bGxgXHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sobnVsbCk7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy50eXBlID09PSBcIm11bHRpXCIpIHtcclxuICAgICAgaWYgKHR5cGVvZiBuZXdWYWx1ZVswXSA9PT0gXCJzdHJpbmdcIikge1xyXG4gICAgICAgIHRoaXMuX29uQ2hhbmdlQ2FsbGJhY2sobmV3VmFsdWUgYXMgQXJyYXk8c3RyaW5nPik7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayhcclxuICAgICAgICAgIChuZXdWYWx1ZSBhcyBBcnJheTxJTlRFUk5BTF9TZWxlY3RlZElibUxpc3RJdGVtPikubWFwKChpdGVtKSA9PlxyXG4gICAgICAgICAgICB0aGlzLm1hcFRvQ29uc3VtZXJWYWx1ZShpdGVtKVxyXG4gICAgICAgICAgKVxyXG4gICAgICAgICk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBmYWxsYmFja1xyXG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjaz8uKG5ld1ZhbHVlKTtcclxuICB9XHJcblxyXG4gIHdyaXRlVmFsdWUobmV3VmFsdWU6IENvbWJvYm94VmFsdWUpOiB2b2lkIHtcclxuICAgIC8vIGUuZzogbnVsbFxyXG4gICAgLy8gZS5nOiBcIm9uZVwiXHJcbiAgICBpZiAobmV3VmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIG5ld1ZhbHVlID09PSBcInN0cmluZ1wiKSB7XHJcbiAgICAgIHRoaXMuX3ZhbHVlID0gbmV3VmFsdWU7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBlLmc6IHsgY29udGVudDogXCJvbmVcIiwgZGlzYWJsZWQ6IHRydWUgfVxyXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KG5ld1ZhbHVlKSkge1xyXG4gICAgICBjb25zdCBtYXBwZWROZXdWYWx1ZSA9IHRoaXMubWFwVG9JbnRlcm5hbFZhbHVlKG5ld1ZhbHVlKTtcclxuICAgICAgdGhpcy5fdmFsdWUgPSBtYXBwZWROZXdWYWx1ZTtcclxuXHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICAvLyBlLmc6IFt7IGNvbnRlbnQ6IFwib25lXCIsIGRpc2FibGVkOiB0cnVlIH0sIHsgY29udGVudDogXCJ0d29cIiwgZGlzYWJsZWQ6IHRydWUgfV1cclxuICAgIGlmICh0eXBlb2YgbmV3VmFsdWVbMF0gPT09IFwib2JqZWN0XCIpIHtcclxuICAgICAgdGhpcy5fdmFsdWUgPSAobmV3VmFsdWUgYXMgQXJyYXk8Q29tYm9ib3hJdGVtPikubWFwKChpdGVtKSA9PlxyXG4gICAgICAgIHRoaXMubWFwVG9JbnRlcm5hbFZhbHVlKGl0ZW0pXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlLmc6IFtcIm9uZVwiLCBcInR3b1wiXVxyXG4gICAgICB0aGlzLl92YWx1ZSA9IG5ld1ZhbHVlIGFzIEFycmF5PHN0cmluZz4gfCBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1hcFRvSW50ZXJuYWxWYWx1ZSh2YWx1ZTogQ29tYm9ib3hJdGVtKTogSU5URVJOQUxfU2VsZWN0ZWRJYm1MaXN0SXRlbSB7XHJcbiAgICByZXR1cm4geyAuLi52YWx1ZSwgc2VsZWN0ZWQ6IHRydWUgfTtcclxuICB9XHJcblxyXG4gIG1hcFRvQ29uc3VtZXJWYWx1ZShpYm1MaXN0SXRlbTogSU5URVJOQUxfU2VsZWN0ZWRJYm1MaXN0SXRlbSk6IENvbWJvYm94SXRlbSB7XHJcbiAgICBjb25zdCB7IHNlbGVjdGVkLCAuLi53aXRob3V0U2VsZWN0ZWRQcm9wIH0gPSBpYm1MaXN0SXRlbTtcclxuXHJcbiAgICByZXR1cm4gd2l0aG91dFNlbGVjdGVkUHJvcDtcclxuICB9XHJcblxyXG4gIGhhbmRsZVRvdWNoKGV2ZW50OiBFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzVG91Y2hlZCkge1xyXG4gICAgICB0aGlzLmlzVG91Y2hlZCA9IHRydWU7XHJcbiAgICAgIHRoaXMuX29uVG91Y2hDYWxsYmFjaz8uKGV2ZW50KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgb25DbG9zZSgpIHtcclxuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgb25TZWFyY2godmFsdWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5zZWFyY2guZW1pdCh2YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBvbkNsZWFyKCkge1xyXG4gICAgdGhpcy5jbGVhci5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjwhLS0gJGFueSBiZWNhdXNlIHdlIGRvbid0IHdhbnQgdG8gcmVxdWlyZSB0aGUgYHNlbGVjdGVkYCBwcm9wZXJ0eSBvbiBjb25zdW1lciBzaWRlLS0+XHJcbjxpYm0tY29tYm8tYm94XHJcbiAgW2l0ZW1zXT1cIiRhbnkoaXRlbXMpXCJcclxuICBbZHJvcFVwXT1cImZhbHNlXCJcclxuICBbaXRlbVZhbHVlS2V5XT1cIml0ZW1WYWx1ZUtleSFcIlxyXG4gIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgW25nTW9kZWxdPVwiX3ZhbHVlXCJcclxuICBbdHlwZV09XCJ0eXBlXCJcclxuICBbaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gIFtoZWxwZXJUZXh0XT1cImhlbHBlclRleHRcIlxyXG4gIFtpbnZhbGlkVGV4dF09XCJpbnZhbGlkVGV4dFwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbc2VsZWN0aW9uRmVlZGJhY2tdPVwic2VsZWN0aW9uRmVlZGJhY2tcIlxyXG4gIFtzaXplXT1cInNpemVcIlxyXG4gIChuZ01vZGVsQ2hhbmdlKT1cImhhbmRsZUNoYW5nZSgkZXZlbnQpXCJcclxuICAoZm9jdXNvdXQpPVwiaGFuZGxlVG91Y2goJGV2ZW50KVwiXHJcbiAgKGNsZWFyKT1cIm9uQ2xlYXIoKVwiXHJcbiAgKHNlYXJjaCk9XCJvblNlYXJjaCgkZXZlbnQpXCJcclxuICAoY2xvc2UpPVwib25DbG9zZSgpXCJcclxuPlxyXG4gIDxpYm0tZHJvcGRvd24tbGlzdD48L2libS1kcm9wZG93bi1saXN0PlxyXG48L2libS1jb21iby1ib3g+XHJcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component } from "@angular/core";
2
+ import { TableContainer as IbmTableContainer } from "carbon-components-angular/table";
3
+ import * as i0 from "@angular/core";
4
+ export class DataTableContainerComponent extends IbmTableContainer {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableContainerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableContainerComponent, selector: "tlp-data-table-container", usesInheritance: true, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableContainerComponent, decorators: [{
9
+ type: Component,
10
+ args: [{
11
+ selector: "tlp-data-table-container",
12
+ template: `<ng-content></ng-content>`,
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1jb250YWluZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS1jb250YWluZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDOztBQU10RixNQUFNLE9BQU8sMkJBQTRCLFNBQVEsaUJBQWlCO3dHQUFyRCwyQkFBMkI7NEZBQTNCLDJCQUEyQix1RkFGNUIsMkJBQTJCOzs0RkFFMUIsMkJBQTJCO2tCQUp2QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSwwQkFBMEI7b0JBQ3BDLFFBQVEsRUFBRSwyQkFBMkI7aUJBQ3RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVGFibGVDb250YWluZXIgYXMgSWJtVGFibGVDb250YWluZXIgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci90YWJsZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidGxwLWRhdGEtdGFibGUtY29udGFpbmVyXCIsXHJcbiAgdGVtcGxhdGU6IGA8bmctY29udGVudD48L25nLWNvbnRlbnQ+YCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbnRhaW5lckNvbXBvbmVudCBleHRlbmRzIElibVRhYmxlQ29udGFpbmVyIHt9XHJcbiJdfQ==
@@ -0,0 +1,7 @@
1
+ import { TableHeaderItem as IbmTableHeaderItem } from "carbon-components-angular/table";
2
+ export class DataTableHeaderItem extends IbmTableHeaderItem {
3
+ constructor(options) {
4
+ super(options);
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1oZWFkZXItaXRlbS5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtaGVhZGVyLWl0ZW0uY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsSUFBSSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBU3hGLE1BQU0sT0FBTyxtQkFBb0IsU0FBUSxrQkFBa0I7SUFDekQsWUFBWSxPQUFnQjtRQUMxQixLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUYWJsZUhlYWRlckl0ZW0gYXMgSWJtVGFibGVIZWFkZXJJdGVtIH0gZnJvbSBcImNhcmJvbi1jb21wb25lbnRzLWFuZ3VsYXIvdGFibGVcIjtcclxuXHJcbmludGVyZmFjZSBPcHRpb25zIHtcclxuICBkYXRhPzogdW5rbm93bjtcclxuICBzb3J0YWJsZT86IGJvb2xlYW47XHJcbiAgc3R5bGU/OiB7IHdpZHRoOiBzdHJpbmcgfTtcclxuICB0ZW1wbGF0ZT86IFRlbXBsYXRlUmVmPGFueT47XHJcbiAgdmlzaWJsZT86IGJvb2xlYW47XHJcbn1cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUhlYWRlckl0ZW0gZXh0ZW5kcyBJYm1UYWJsZUhlYWRlckl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,7 @@
1
+ import { TableItem as IbmTableItem } from "carbon-components-angular/table";
2
+ export class DataTableItem extends IbmTableItem {
3
+ constructor(options) {
4
+ super(options);
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1pdGVtLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS1pdGVtLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLElBQUksWUFBWSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFVNUUsTUFBTSxPQUFPLGFBQWMsU0FBUSxZQUFZO0lBQzdDLFlBQVksT0FBZ0I7UUFDMUIsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ2pCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRlbXBsYXRlUmVmIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgVGFibGVJdGVtIGFzIElibVRhYmxlSXRlbSB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL3RhYmxlXCI7XHJcblxyXG5pbnRlcmZhY2UgT3B0aW9ucyB7XHJcbiAgZGF0YT86IHVua25vd247XHJcbiAgdGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcclxuICBleHBhbmRlZFRlbXBsYXRlPzogVGVtcGxhdGVSZWY8dW5rbm93bj47XHJcbiAgZXhwYW5kZWREYXRhPzogdW5rbm93bjtcclxuICBleHBhbmRBc1RhYmxlPzogYm9vbGVhbjtcclxufVxyXG5cclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUl0ZW0gZXh0ZW5kcyBJYm1UYWJsZUl0ZW0ge1xyXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IE9wdGlvbnMpIHtcclxuICAgIHN1cGVyKG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=
@@ -0,0 +1,4 @@
1
+ import { TableModel as IbmTableModel } from "carbon-components-angular/table";
2
+ export class DataTableModel extends IbmTableModel {
3
+ }
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS1tb2RlbC5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtbW9kZWwuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsSUFBSSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUU5RSxNQUFNLE9BQU8sY0FBZSxTQUFRLGFBQWE7Q0FBRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFRhYmxlTW9kZWwgYXMgSWJtVGFibGVNb2RlbCB9IGZyb20gXCJjYXJib24tY29tcG9uZW50cy1hbmd1bGFyL3RhYmxlXCI7XHJcblxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlTW9kZWwgZXh0ZW5kcyBJYm1UYWJsZU1vZGVsIHt9XHJcbiJdfQ==
@@ -0,0 +1,15 @@
1
+ import { Component } from "@angular/core";
2
+ import { TableToolbarContent as IbmTableToolbarContent } from "carbon-components-angular/table";
3
+ import * as i0 from "@angular/core";
4
+ export class DataTableToolbarContentComponent extends IbmTableToolbarContent {
5
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableToolbarContentComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
6
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableToolbarContentComponent, selector: "tlp-data-table-toolbar-content", usesInheritance: true, ngImport: i0, template: ` <ng-content></ng-content> `, isInline: true });
7
+ }
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableToolbarContentComponent, decorators: [{
9
+ type: Component,
10
+ args: [{
11
+ selector: "tlp-data-table-toolbar-content",
12
+ template: ` <ng-content></ng-content> `,
13
+ }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS10b29sYmFyLWNvbnRlbnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2RhdGEtdGFibGUvZGF0YS10YWJsZS10b29sYmFyLWNvbnRlbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLG1CQUFtQixJQUFJLHNCQUFzQixFQUFFLE1BQU0saUNBQWlDLENBQUM7O0FBTWhHLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxzQkFBc0I7d0dBQS9ELGdDQUFnQzs0RkFBaEMsZ0NBQWdDLDZGQUZqQyw2QkFBNkI7OzRGQUU1QixnQ0FBZ0M7a0JBSjVDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsUUFBUSxFQUFFLDZCQUE2QjtpQkFDeEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBUYWJsZVRvb2xiYXJDb250ZW50IGFzIElibVRhYmxlVG9vbGJhckNvbnRlbnQgfSBmcm9tIFwiY2FyYm9uLWNvbXBvbmVudHMtYW5ndWxhci90YWJsZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidGxwLWRhdGEtdGFibGUtdG9vbGJhci1jb250ZW50XCIsXHJcbiAgdGVtcGxhdGU6IGAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PiBgLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0YVRhYmxlVG9vbGJhckNvbnRlbnRDb21wb25lbnQgZXh0ZW5kcyBJYm1UYWJsZVRvb2xiYXJDb250ZW50IHt9XHJcbiJdfQ==
@@ -0,0 +1,26 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "carbon-components-angular/table";
4
+ export class DataTableToolbarComponent {
5
+ model;
6
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableToolbarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableToolbarComponent, selector: "tlp-data-table-toolbar", inputs: { model: "model" }, ngImport: i0, template: `
8
+ <ibm-table-toolbar [model]="model!">
9
+ <ng-content></ng-content>
10
+ </ibm-table-toolbar>
11
+ `, isInline: true, dependencies: [{ kind: "component", type: i1.TableToolbar, selector: "cds-table-toolbar, ibm-table-toolbar", inputs: ["model", "batchText", "ariaLabel", "cancelText", "size"], outputs: ["cancel"] }] });
12
+ }
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableToolbarComponent, decorators: [{
14
+ type: Component,
15
+ args: [{
16
+ selector: "tlp-data-table-toolbar",
17
+ template: `
18
+ <ibm-table-toolbar [model]="model!">
19
+ <ng-content></ng-content>
20
+ </ibm-table-toolbar>
21
+ `,
22
+ }]
23
+ }], propDecorators: { model: [{
24
+ type: Input
25
+ }] } });
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS10b29sYmFyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUtdG9vbGJhci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQVdqRCxNQUFNLE9BQU8seUJBQXlCO0lBQzNCLEtBQUssQ0FBa0I7d0dBRHJCLHlCQUF5Qjs0RkFBekIseUJBQXlCLDBGQU4xQjs7OztHQUlUOzs0RkFFVSx5QkFBeUI7a0JBUnJDLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsUUFBUSxFQUFFOzs7O0dBSVQ7aUJBQ0Y7OEJBRVUsS0FBSztzQkFBYixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhdGFUYWJsZU1vZGVsIH0gZnJvbSBcIi4vZGF0YS10YWJsZS1tb2RlbC5jbGFzc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidGxwLWRhdGEtdGFibGUtdG9vbGJhclwiLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8aWJtLXRhYmxlLXRvb2xiYXIgW21vZGVsXT1cIm1vZGVsIVwiPlxyXG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2libS10YWJsZS10b29sYmFyPlxyXG4gIGAsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEYXRhVGFibGVUb29sYmFyQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSBtb2RlbD86IERhdGFUYWJsZU1vZGVsO1xyXG59XHJcbiJdfQ==
@@ -0,0 +1,76 @@
1
+ import { Component, EventEmitter, Input, Output } from "@angular/core";
2
+ import { DataTableModel } from "./data-table-model.class";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "carbon-components-angular/table";
5
+ export class DataTableComponent {
6
+ model = new DataTableModel();
7
+ showSelectionColumn = false;
8
+ sortable = true;
9
+ striped = true;
10
+ stickyHeader = false;
11
+ size = "md";
12
+ sort = new EventEmitter();
13
+ selectAll = new EventEmitter();
14
+ deselectAll = new EventEmitter();
15
+ selectRow = new EventEmitter();
16
+ deselectRow = new EventEmitter();
17
+ rowClick = new EventEmitter();
18
+ doSort(index) {
19
+ if (!this.sort.observed) {
20
+ // no observers. do the simple sort
21
+ if (this.model.header[index].sorted) {
22
+ // already sorted. flip sorting direction
23
+ this.model.header[index].ascending =
24
+ this.model.header[index].descending;
25
+ }
26
+ this.model.sort(index);
27
+ }
28
+ this.sort.emit(index);
29
+ }
30
+ onSelectAll(model) {
31
+ this.selectAll.emit(model);
32
+ }
33
+ onDeselectAll(model) {
34
+ this.deselectAll.emit(model);
35
+ }
36
+ onSelectRow(event) {
37
+ this.selectRow.emit(event);
38
+ }
39
+ onDeselectRow(event) {
40
+ this.deselectRow.emit(event);
41
+ }
42
+ onRowClick(index) {
43
+ this.rowClick.emit(index);
44
+ }
45
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
46
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DataTableComponent, selector: "tlp-data-table", inputs: { model: "model", showSelectionColumn: "showSelectionColumn", sortable: "sortable", striped: "striped", stickyHeader: "stickyHeader", size: "size" }, outputs: { sort: "sort", selectAll: "selectAll", deselectAll: "deselectAll", selectRow: "selectRow", deselectRow: "deselectRow", rowClick: "rowClick" }, ngImport: i0, template: "<div class=\"table-wrapper\">\r\n <ibm-table\r\n [model]=\"model\"\r\n [showSelectionColumn]=\"showSelectionColumn\"\r\n [sortable]=\"sortable\"\r\n [striped]=\"striped\"\r\n [stickyHeader]=\"stickyHeader\"\r\n [size]=\"size\"\r\n (sort)=\"doSort($event)\"\r\n (selectAll)=\"onSelectAll($event)\"\r\n (deselectAll)=\"onDeselectAll($event)\"\r\n (selectRow)=\"onSelectRow($event)\"\r\n (deselectRow)=\"onDeselectRow($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n ></ibm-table>\r\n</div>\r\n", styles: ["::ng-deep .bx--data-table--sort th{padding-left:0}::ng-deep .bx--table-toolbar{padding-bottom:.5rem}::ng-deep .bx--toolbar-content{column-gap:.5rem}.table-wrapper{overflow-x:auto}\n"], dependencies: [{ kind: "component", type: i1.Table, selector: "cds-table, ibm-table", inputs: ["ariaLabelledby", "ariaDescribedby", "model", "size", "skeleton", "isDataGrid", "sortable", "noBorder", "showExpandAllToggle", "showSelectionColumn", "enableSingleSelect", "scrollLoadDistance", "expandButtonAriaLabel", "sortDescendingLabel", "sortAscendingLabel", "translations", "striped", "stickyHeader", "footerTemplate", "selectionLabelColumn"], outputs: ["sort", "selectAll", "deselectAll", "selectRow", "deselectRow", "rowClick", "scrollLoad"] }] });
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DataTableComponent, decorators: [{
49
+ type: Component,
50
+ args: [{ selector: "tlp-data-table", template: "<div class=\"table-wrapper\">\r\n <ibm-table\r\n [model]=\"model\"\r\n [showSelectionColumn]=\"showSelectionColumn\"\r\n [sortable]=\"sortable\"\r\n [striped]=\"striped\"\r\n [stickyHeader]=\"stickyHeader\"\r\n [size]=\"size\"\r\n (sort)=\"doSort($event)\"\r\n (selectAll)=\"onSelectAll($event)\"\r\n (deselectAll)=\"onDeselectAll($event)\"\r\n (selectRow)=\"onSelectRow($event)\"\r\n (deselectRow)=\"onDeselectRow($event)\"\r\n (rowClick)=\"onRowClick($event)\"\r\n ></ibm-table>\r\n</div>\r\n", styles: ["::ng-deep .bx--data-table--sort th{padding-left:0}::ng-deep .bx--table-toolbar{padding-bottom:.5rem}::ng-deep .bx--toolbar-content{column-gap:.5rem}.table-wrapper{overflow-x:auto}\n"] }]
51
+ }], propDecorators: { model: [{
52
+ type: Input
53
+ }], showSelectionColumn: [{
54
+ type: Input
55
+ }], sortable: [{
56
+ type: Input
57
+ }], striped: [{
58
+ type: Input
59
+ }], stickyHeader: [{
60
+ type: Input
61
+ }], size: [{
62
+ type: Input
63
+ }], sort: [{
64
+ type: Output
65
+ }], selectAll: [{
66
+ type: Output
67
+ }], deselectAll: [{
68
+ type: Output
69
+ }], selectRow: [{
70
+ type: Output
71
+ }], deselectRow: [{
72
+ type: Output
73
+ }], rowClick: [{
74
+ type: Output
75
+ }] } });
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvZGF0YS10YWJsZS9kYXRhLXRhYmxlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9kYXRhLXRhYmxlL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7OztBQU8xRCxNQUFNLE9BQU8sa0JBQWtCO0lBQ3BCLEtBQUssR0FBbUIsSUFBSSxjQUFjLEVBQUUsQ0FBQztJQUM3QyxtQkFBbUIsR0FBRyxLQUFLLENBQUM7SUFDNUIsUUFBUSxHQUFHLElBQUksQ0FBQztJQUNoQixPQUFPLEdBQUcsSUFBSSxDQUFDO0lBQ2YsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUNyQixJQUFJLEdBQXVCLElBQUksQ0FBQztJQUUvQixJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVsQyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUN2QyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUN6QyxTQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUN2QyxXQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUV6QyxRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztJQUVoRCxNQUFNLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN4QixtQ0FBbUM7WUFDbkMsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDcEMseUNBQXlDO2dCQUN6QyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTO29CQUNoQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUM7WUFDeEMsQ0FBQztZQUNELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLENBQUM7UUFFRCxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWE7UUFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFhO1FBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBYTtRQUN2QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQsYUFBYSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFhO1FBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzVCLENBQUM7d0dBakRVLGtCQUFrQjs0RkFBbEIsa0JBQWtCLDZXQ1IvQixzaEJBZ0JBOzs0RkRSYSxrQkFBa0I7a0JBTDlCLFNBQVM7K0JBQ0UsZ0JBQWdCOzhCQUtqQixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVJLElBQUk7c0JBQWIsTUFBTTtnQkFFRyxTQUFTO3NCQUFsQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVHLFFBQVE7c0JBQWpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IERhdGFUYWJsZU1vZGVsIH0gZnJvbSBcIi4vZGF0YS10YWJsZS1tb2RlbC5jbGFzc1wiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwidGxwLWRhdGEtdGFibGVcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2RhdGEtdGFibGUuY29tcG9uZW50Lmh0bWxcIixcclxuICBzdHlsZVVybHM6IFtcIi4vZGF0YS10YWJsZS5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFUYWJsZUNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgbW9kZWw6IERhdGFUYWJsZU1vZGVsID0gbmV3IERhdGFUYWJsZU1vZGVsKCk7XHJcbiAgQElucHV0KCkgc2hvd1NlbGVjdGlvbkNvbHVtbiA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHNvcnRhYmxlID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdHJpcGVkID0gdHJ1ZTtcclxuICBASW5wdXQoKSBzdGlja3lIZWFkZXIgPSBmYWxzZTtcclxuICBASW5wdXQoKSBzaXplOiBcInNtXCIgfCBcIm1kXCIgfCBcImxnXCIgPSBcIm1kXCI7XHJcblxyXG4gIEBPdXRwdXQoKSBzb3J0ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSBzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcclxuICBAT3V0cHV0KCkgZGVzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPE9iamVjdD4oKTtcclxuICBAT3V0cHV0KCkgc2VsZWN0Um93ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XHJcbiAgQE91dHB1dCgpIGRlc2VsZWN0Um93ID0gbmV3IEV2ZW50RW1pdHRlcjxPYmplY3Q+KCk7XHJcblxyXG4gIEBPdXRwdXQoKSByb3dDbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xyXG5cclxuICBkb1NvcnQoaW5kZXg6IG51bWJlcikge1xyXG4gICAgaWYgKCF0aGlzLnNvcnQub2JzZXJ2ZWQpIHtcclxuICAgICAgLy8gbm8gb2JzZXJ2ZXJzLiBkbyB0aGUgc2ltcGxlIHNvcnRcclxuICAgICAgaWYgKHRoaXMubW9kZWwuaGVhZGVyW2luZGV4XS5zb3J0ZWQpIHtcclxuICAgICAgICAvLyBhbHJlYWR5IHNvcnRlZC4gZmxpcCBzb3J0aW5nIGRpcmVjdGlvblxyXG4gICAgICAgIHRoaXMubW9kZWwuaGVhZGVyW2luZGV4XS5hc2NlbmRpbmcgPVxyXG4gICAgICAgICAgdGhpcy5tb2RlbC5oZWFkZXJbaW5kZXhdLmRlc2NlbmRpbmc7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5tb2RlbC5zb3J0KGluZGV4KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNvcnQuZW1pdChpbmRleCk7XHJcbiAgfVxyXG5cclxuICBvblNlbGVjdEFsbChtb2RlbDogT2JqZWN0KSB7XHJcbiAgICB0aGlzLnNlbGVjdEFsbC5lbWl0KG1vZGVsKTtcclxuICB9XHJcblxyXG4gIG9uRGVzZWxlY3RBbGwobW9kZWw6IE9iamVjdCkge1xyXG4gICAgdGhpcy5kZXNlbGVjdEFsbC5lbWl0KG1vZGVsKTtcclxuICB9XHJcblxyXG4gIG9uU2VsZWN0Um93KGV2ZW50OiBPYmplY3QpIHtcclxuICAgIHRoaXMuc2VsZWN0Um93LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25EZXNlbGVjdFJvdyhldmVudDogT2JqZWN0KSB7XHJcbiAgICB0aGlzLmRlc2VsZWN0Um93LmVtaXQoZXZlbnQpO1xyXG4gIH1cclxuXHJcbiAgb25Sb3dDbGljayhpbmRleDogbnVtYmVyKSB7XHJcbiAgICB0aGlzLnJvd0NsaWNrLmVtaXQoaW5kZXgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwidGFibGUtd3JhcHBlclwiPlxyXG4gIDxpYm0tdGFibGVcclxuICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICBbc2hvd1NlbGVjdGlvbkNvbHVtbl09XCJzaG93U2VsZWN0aW9uQ29sdW1uXCJcclxuICAgIFtzb3J0YWJsZV09XCJzb3J0YWJsZVwiXHJcbiAgICBbc3RyaXBlZF09XCJzdHJpcGVkXCJcclxuICAgIFtzdGlja3lIZWFkZXJdPVwic3RpY2t5SGVhZGVyXCJcclxuICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgKHNvcnQpPVwiZG9Tb3J0KCRldmVudClcIlxyXG4gICAgKHNlbGVjdEFsbCk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgIChkZXNlbGVjdEFsbCk9XCJvbkRlc2VsZWN0QWxsKCRldmVudClcIlxyXG4gICAgKHNlbGVjdFJvdyk9XCJvblNlbGVjdFJvdygkZXZlbnQpXCJcclxuICAgIChkZXNlbGVjdFJvdyk9XCJvbkRlc2VsZWN0Um93KCRldmVudClcIlxyXG4gICAgKHJvd0NsaWNrKT1cIm9uUm93Q2xpY2soJGV2ZW50KVwiXHJcbiAgPjwvaWJtLXRhYmxlPlxyXG48L2Rpdj5cclxuIl19
@@ -0,0 +1,114 @@
1
+ import { Component, Input } from "@angular/core";
2
+ import { NG_VALUE_ACCESSOR } from "@angular/forms";
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common";
5
+ import * as i2 from "carbon-components-angular/datepicker";
6
+ export class DatepickerComponent {
7
+ disabled = false;
8
+ invalid = false;
9
+ invalidText = "";
10
+ range = false;
11
+ /** Set to `true` to display the invalid state for the second datepicker input. */
12
+ rangeInvalid = false;
13
+ /** Value displayed if the second datepicker input is in an invalid state. */
14
+ rangeInvalidText = "";
15
+ /**
16
+ * Format of the displayed date
17
+ *
18
+ * @see https://flatpickr.js.org/formatting/
19
+ */
20
+ dateFormat = "d/m/Y";
21
+ /** Language of the calendar panel. Doesn't affect the format of the displayed date */
22
+ language = "es";
23
+ label = "";
24
+ rangeLabel = "";
25
+ placeholder = "";
26
+ size = "md";
27
+ /** Forces the width to be same as calendar panel, making it more visually aligned */
28
+ fixedWidth = false;
29
+ /** When setting it to `true`, make sure to provide a `dateFormat` with time, so the time value is tracked */
30
+ enableTime = false;
31
+ value = [];
32
+ isTouched = false;
33
+ _onChangeCallback;
34
+ _onTouchCallback;
35
+ handleChange(value) {
36
+ this._onChangeCallback?.(value);
37
+ }
38
+ handleTouch(event) {
39
+ if (!this.isTouched) {
40
+ this.isTouched = true;
41
+ this._onTouchCallback?.(event);
42
+ }
43
+ }
44
+ // NgModel passes null for "no value" or for the initial value before change detection runs
45
+ // Carbon throws "Cannot read properties of null (reading '0')" if the initial value is null and the user changes the date
46
+ writeValue(value) {
47
+ if (!value) {
48
+ this.value = [];
49
+ }
50
+ else if (value instanceof Date) {
51
+ // support unwrapped Date instance as value even though Carbon doesn't support it as it is a very common usage
52
+ this.value = [value];
53
+ }
54
+ else {
55
+ this.value = value;
56
+ }
57
+ }
58
+ registerOnChange(fn) {
59
+ this._onChangeCallback = fn;
60
+ }
61
+ registerOnTouched(fn) {
62
+ this._onTouchCallback = fn;
63
+ }
64
+ setDisabledState(isDisabled) {
65
+ this.disabled = isDisabled;
66
+ }
67
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DatepickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
68
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: DatepickerComponent, selector: "tlp-datepicker", inputs: { disabled: "disabled", invalid: "invalid", invalidText: "invalidText", range: "range", rangeInvalid: "rangeInvalid", rangeInvalidText: "rangeInvalidText", dateFormat: "dateFormat", language: "language", label: "label", rangeLabel: "rangeLabel", placeholder: "placeholder", size: "size", fixedWidth: "fixedWidth", enableTime: "enableTime" }, providers: [
69
+ {
70
+ provide: NG_VALUE_ACCESSOR,
71
+ multi: true,
72
+ useExisting: DatepickerComponent,
73
+ },
74
+ ], ngImport: i0, template: "<ibm-date-picker\r\n [ngClass]=\"{ disabled: disabled, expand: !fixedWidth }\"\r\n [range]=\"range\"\r\n [disabled]=\"disabled\"\r\n [invalid]=\"invalid\"\r\n [invalidText]=\"invalidText\"\r\n [rangeInvalid]=\"rangeInvalid\"\r\n [rangeInvalidText]=\"rangeInvalidText\"\r\n [label]=\"label\"\r\n [rangeLabel]=\"rangeLabel\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (valueChange)=\"handleChange($event)\"\r\n [dateFormat]=\"dateFormat\"\r\n [language]=\"language\"\r\n [size]=\"size\"\r\n [flatpickrOptions]=\"{\r\n enableTime, \r\n disableMobile: true\r\n }\"\r\n ><!-- // [!] DON'T extract `flatpickrOptions` to a method or getter, else the calendar won't open -->\r\n</ibm-date-picker>\r\n", styles: ["::ng-deep .bx--date-picker__input{border:1px solid #003c69;border-radius:4px;padding:0 .5rem;--cds-field: #ffffff}::ng-deep .bx--date-picker__input:focus{border-color:#287eff}::ng-deep .bx--date-picker__input:disabled{--cds-field: #f4f4f4;border:1px solid #afafaf}::ng-deep .bx--date-picker__input:disabled:hover{border-bottom:1px solid #afafaf}::ng-deep .bx--date-picker__calendar{--cds-field-01: var(--cds-ui-01);--cds-ui-01: #ffffff;--cds-highlight: var(--cds-layer-accent, #d0e2ff);border-radius:4px}::ng-deep .bx--date-picker__day{--cds-ui-01: var(--cds-layer-accent, #d0e2ff)}::ng-deep .bx--date-picker__day:hover{--cds-hover-ui: var(--cds-layer-accent, #d0e2ff)}::ng-deep .bx--date-picker__day.flatpickr-day.endRange:hover{outline:none}:host ::ng-deep .disabled{--cds-text-02: #afafaf}.expand ::ng-deep .bx--date-picker--range .bx--date-picker-container,.expand ::ng-deep .bx--date-picker--range .bx--date-picker__input{width:100%}.expand ::ng-deep .bx--date-picker-container{width:100%}.expand ::ng-deep .bx--date-picker.bx--date-picker--single .bx--date-picker__input{width:100%}.expand ::ng-deep .bx--date-picker{width:100%}::ng-deep .dayContainer{justify-content:initial}::ng-deep .flatpickr-calendar.open{height:auto}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time{height:2.5rem;border-top:1px solid #e6e6e6;display:flex;gap:4px;align-items:center;width:100%;justify-content:center}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .arrowUp{top:0}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .arrowDown{top:unset;bottom:0}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .numInput{border:1px solid #e6e6e6;border-radius:3px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DatePicker, selector: "cds-date-picker, ibm-date-picker", inputs: ["range", "dateFormat", "language", "label", "helperText", "rangeHelperText", "rangeLabel", "placeholder", "ariaLabel", "inputPattern", "id", "value", "theme", "disabled", "readonly", "invalid", "invalidText", "warn", "warnText", "size", "rangeInvalid", "rangeInvalidText", "rangeWarn", "rangeWarnText", "skeleton", "plugins", "flatpickrOptions"], outputs: ["valueChange", "onClose"] }] });
75
+ }
76
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: DatepickerComponent, decorators: [{
77
+ type: Component,
78
+ args: [{ selector: "tlp-datepicker", providers: [
79
+ {
80
+ provide: NG_VALUE_ACCESSOR,
81
+ multi: true,
82
+ useExisting: DatepickerComponent,
83
+ },
84
+ ], template: "<ibm-date-picker\r\n [ngClass]=\"{ disabled: disabled, expand: !fixedWidth }\"\r\n [range]=\"range\"\r\n [disabled]=\"disabled\"\r\n [invalid]=\"invalid\"\r\n [invalidText]=\"invalidText\"\r\n [rangeInvalid]=\"rangeInvalid\"\r\n [rangeInvalidText]=\"rangeInvalidText\"\r\n [label]=\"label\"\r\n [rangeLabel]=\"rangeLabel\"\r\n [placeholder]=\"placeholder\"\r\n [value]=\"value\"\r\n (valueChange)=\"handleChange($event)\"\r\n [dateFormat]=\"dateFormat\"\r\n [language]=\"language\"\r\n [size]=\"size\"\r\n [flatpickrOptions]=\"{\r\n enableTime, \r\n disableMobile: true\r\n }\"\r\n ><!-- // [!] DON'T extract `flatpickrOptions` to a method or getter, else the calendar won't open -->\r\n</ibm-date-picker>\r\n", styles: ["::ng-deep .bx--date-picker__input{border:1px solid #003c69;border-radius:4px;padding:0 .5rem;--cds-field: #ffffff}::ng-deep .bx--date-picker__input:focus{border-color:#287eff}::ng-deep .bx--date-picker__input:disabled{--cds-field: #f4f4f4;border:1px solid #afafaf}::ng-deep .bx--date-picker__input:disabled:hover{border-bottom:1px solid #afafaf}::ng-deep .bx--date-picker__calendar{--cds-field-01: var(--cds-ui-01);--cds-ui-01: #ffffff;--cds-highlight: var(--cds-layer-accent, #d0e2ff);border-radius:4px}::ng-deep .bx--date-picker__day{--cds-ui-01: var(--cds-layer-accent, #d0e2ff)}::ng-deep .bx--date-picker__day:hover{--cds-hover-ui: var(--cds-layer-accent, #d0e2ff)}::ng-deep .bx--date-picker__day.flatpickr-day.endRange:hover{outline:none}:host ::ng-deep .disabled{--cds-text-02: #afafaf}.expand ::ng-deep .bx--date-picker--range .bx--date-picker-container,.expand ::ng-deep .bx--date-picker--range .bx--date-picker__input{width:100%}.expand ::ng-deep .bx--date-picker-container{width:100%}.expand ::ng-deep .bx--date-picker.bx--date-picker--single .bx--date-picker__input{width:100%}.expand ::ng-deep .bx--date-picker{width:100%}::ng-deep .dayContainer{justify-content:initial}::ng-deep .flatpickr-calendar.open{height:auto}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time{height:2.5rem;border-top:1px solid #e6e6e6;display:flex;gap:4px;align-items:center;width:100%;justify-content:center}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .arrowUp{top:0}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .arrowDown{top:unset;bottom:0}::ng-deep .flatpickr-calendar.hasTime .flatpickr-time .numInput{border:1px solid #e6e6e6;border-radius:3px}\n"] }]
85
+ }], propDecorators: { disabled: [{
86
+ type: Input
87
+ }], invalid: [{
88
+ type: Input
89
+ }], invalidText: [{
90
+ type: Input
91
+ }], range: [{
92
+ type: Input
93
+ }], rangeInvalid: [{
94
+ type: Input
95
+ }], rangeInvalidText: [{
96
+ type: Input
97
+ }], dateFormat: [{
98
+ type: Input
99
+ }], language: [{
100
+ type: Input
101
+ }], label: [{
102
+ type: Input
103
+ }], rangeLabel: [{
104
+ type: Input
105
+ }], placeholder: [{
106
+ type: Input
107
+ }], size: [{
108
+ type: Input
109
+ }], fixedWidth: [{
110
+ type: Input
111
+ }], enableTime: [{
112
+ type: Input
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9kYXRlcGlja2VyL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7O0FBaUJ6RSxNQUFNLE9BQU8sbUJBQW1CO0lBQ3JCLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixXQUFXLEdBQUcsRUFBRSxDQUFDO0lBQ2pCLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDdkIsa0ZBQWtGO0lBQ3pFLFlBQVksR0FBRyxLQUFLLENBQUM7SUFDOUIsNkVBQTZFO0lBQ3BFLGdCQUFnQixHQUFHLEVBQUUsQ0FBQztJQUMvQjs7OztPQUlHO0lBQ00sVUFBVSxHQUFHLE9BQU8sQ0FBQztJQUM5QixzRkFBc0Y7SUFDN0UsUUFBUSxHQVVOLElBQUksQ0FBQztJQUNQLEtBQUssR0FBRyxFQUFFLENBQUM7SUFDWCxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFdBQVcsR0FBRyxFQUFFLENBQUM7SUFDakIsSUFBSSxHQUF1QixJQUFJLENBQUM7SUFDekMscUZBQXFGO0lBQzVFLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsNkdBQTZHO0lBQ3BHLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFNUIsS0FBSyxHQUFVLEVBQUUsQ0FBQztJQUNsQixTQUFTLEdBQUcsS0FBSyxDQUFDO0lBRWxCLGlCQUFpQixDQUF1QztJQUN4RCxnQkFBZ0IsQ0FBdUM7SUFFdkQsWUFBWSxDQUFDLEtBQVk7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxLQUFZO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7WUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCwyRkFBMkY7SUFDM0YsMEhBQTBIO0lBQzFILFVBQVUsQ0FBQyxLQUFtQjtRQUM1QixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDWCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsQixDQUFDO2FBQU0sSUFBSSxLQUFLLFlBQVksSUFBSSxFQUFFLENBQUM7WUFDakMsOEdBQThHO1lBQzlHLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLENBQUM7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsRUFBTztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO1FBQ3ZCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxFQUFFLENBQUM7SUFDN0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQW1CO1FBQ2xDLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO0lBQzdCLENBQUM7d0dBNUVVLG1CQUFtQjs0RkFBbkIsbUJBQW1CLHVZQVJuQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxtQkFBbUI7YUFDakM7U0FDRiwwQkNoQkgsK3RCQXNCQTs7NEZESmEsbUJBQW1CO2tCQVovQixTQUFTOytCQUNFLGdCQUFnQixhQUdmO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcscUJBQXFCO3lCQUNqQztxQkFDRjs4QkFHUSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFFRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFNRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBV0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxJQUFJO3NCQUFaLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFFRyxVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxudHlwZSBWYWx1ZSA9IFtdIHwgW0RhdGVdIHwgW0RhdGUsIERhdGVdO1xyXG5leHBvcnQgdHlwZSBEYXRlcGlja2VyVmFsdWUgPSBWYWx1ZTsgLy8gZm9yIHB1YmxpYy1hcGksIG11c3QgaGF2ZSBjb21wb25lbnQgcHJlZml4XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJ0bHAtZGF0ZXBpY2tlclwiLFxyXG4gIHRlbXBsYXRlVXJsOiBcIi4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzXCJdLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBEYXRlcGlja2VyQ29tcG9uZW50LFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBpbnZhbGlkVGV4dCA9IFwiXCI7XHJcbiAgQElucHV0KCkgcmFuZ2UgPSBmYWxzZTtcclxuICAvKiogU2V0IHRvIGB0cnVlYCB0byBkaXNwbGF5IHRoZSBpbnZhbGlkIHN0YXRlIGZvciB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQuICovXHJcbiAgQElucHV0KCkgcmFuZ2VJbnZhbGlkID0gZmFsc2U7XHJcbiAgLyoqIFZhbHVlIGRpc3BsYXllZCBpZiB0aGUgc2Vjb25kIGRhdGVwaWNrZXIgaW5wdXQgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4gKi9cclxuICBASW5wdXQoKSByYW5nZUludmFsaWRUZXh0ID0gXCJcIjtcclxuICAvKipcclxuICAgKiBGb3JtYXQgb2YgdGhlIGRpc3BsYXllZCBkYXRlXHJcbiAgICpcclxuICAgKiBAc2VlIGh0dHBzOi8vZmxhdHBpY2tyLmpzLm9yZy9mb3JtYXR0aW5nL1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpIGRhdGVGb3JtYXQgPSBcImQvbS9ZXCI7XHJcbiAgLyoqIExhbmd1YWdlIG9mIHRoZSBjYWxlbmRhciBwYW5lbC4gRG9lc24ndCBhZmZlY3QgdGhlIGZvcm1hdCBvZiB0aGUgZGlzcGxheWVkIGRhdGUgKi9cclxuICBASW5wdXQoKSBsYW5ndWFnZTpcclxuICAgIHwgXCJlblwiXHJcbiAgICB8IFwiZGVcIlxyXG4gICAgfCBcImZpXCJcclxuICAgIHwgXCJqYVwiXHJcbiAgICB8IFwiemhcIlxyXG4gICAgfCBcImVzXCJcclxuICAgIHwgXCJmclwiXHJcbiAgICB8IFwiaXRcIlxyXG4gICAgfCBcImtvXCJcclxuICAgIHwgXCJwdFwiID0gXCJlc1wiO1xyXG4gIEBJbnB1dCgpIGxhYmVsID0gXCJcIjtcclxuICBASW5wdXQoKSByYW5nZUxhYmVsID0gXCJcIjtcclxuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9IFwiXCI7XHJcbiAgQElucHV0KCkgc2l6ZTogXCJzbVwiIHwgXCJtZFwiIHwgXCJsZ1wiID0gXCJtZFwiO1xyXG4gIC8qKiBGb3JjZXMgdGhlIHdpZHRoIHRvIGJlIHNhbWUgYXMgY2FsZW5kYXIgcGFuZWwsIG1ha2luZyBpdCBtb3JlIHZpc3VhbGx5IGFsaWduZWQgKi9cclxuICBASW5wdXQoKSBmaXhlZFdpZHRoID0gZmFsc2U7XHJcbiAgLyoqIFdoZW4gc2V0dGluZyBpdCB0byBgdHJ1ZWAsIG1ha2Ugc3VyZSB0byBwcm92aWRlIGEgYGRhdGVGb3JtYXRgIHdpdGggdGltZSwgc28gdGhlIHRpbWUgdmFsdWUgaXMgdHJhY2tlZCAqL1xyXG4gIEBJbnB1dCgpIGVuYWJsZVRpbWUgPSBmYWxzZTtcclxuXHJcbiAgdmFsdWU6IFZhbHVlID0gW107XHJcbiAgaXNUb3VjaGVkID0gZmFsc2U7XHJcblxyXG4gIF9vbkNoYW5nZUNhbGxiYWNrOiAoKHZhbHVlOiBWYWx1ZSkgPT4gdm9pZCkgfCB1bmRlZmluZWQ7XHJcbiAgX29uVG91Y2hDYWxsYmFjazogKChldmVudDogRXZlbnQpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xyXG5cclxuICBoYW5kbGVDaGFuZ2UodmFsdWU6IFZhbHVlKSB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZUNhbGxiYWNrPy4odmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgaGFuZGxlVG91Y2goZXZlbnQ6IEV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuaXNUb3VjaGVkKSB7XHJcbiAgICAgIHRoaXMuaXNUb3VjaGVkID0gdHJ1ZTtcclxuICAgICAgdGhpcy5fb25Ub3VjaENhbGxiYWNrPy4oZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLy8gTmdNb2RlbCBwYXNzZXMgbnVsbCBmb3IgXCJubyB2YWx1ZVwiIG9yIGZvciB0aGUgaW5pdGlhbCB2YWx1ZSBiZWZvcmUgY2hhbmdlIGRldGVjdGlvbiBydW5zXHJcbiAgLy8gQ2FyYm9uIHRocm93cyBcIkNhbm5vdCByZWFkIHByb3BlcnRpZXMgb2YgbnVsbCAocmVhZGluZyAnMCcpXCIgaWYgdGhlIGluaXRpYWwgdmFsdWUgaXMgbnVsbCBhbmQgdGhlIHVzZXIgY2hhbmdlcyB0aGUgZGF0ZVxyXG4gIHdyaXRlVmFsdWUodmFsdWU6IFZhbHVlIHwgbnVsbCk6IHZvaWQge1xyXG4gICAgaWYgKCF2YWx1ZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gW107XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICAvLyBzdXBwb3J0IHVud3JhcHBlZCBEYXRlIGluc3RhbmNlIGFzIHZhbHVlIGV2ZW4gdGhvdWdoIENhcmJvbiBkb2Vzbid0IHN1cHBvcnQgaXQgYXMgaXQgaXMgYSB2ZXJ5IGNvbW1vbiB1c2FnZVxyXG4gICAgICB0aGlzLnZhbHVlID0gW3ZhbHVlXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB2YWx1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25DaGFuZ2VDYWxsYmFjayA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5fb25Ub3VjaENhbGxiYWNrID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxufVxyXG4iLCI8aWJtLWRhdGUtcGlja2VyXHJcbiAgW25nQ2xhc3NdPVwieyBkaXNhYmxlZDogZGlzYWJsZWQsIGV4cGFuZDogIWZpeGVkV2lkdGggfVwiXHJcbiAgW3JhbmdlXT1cInJhbmdlXCJcclxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIFtpbnZhbGlkXT1cImludmFsaWRcIlxyXG4gIFtpbnZhbGlkVGV4dF09XCJpbnZhbGlkVGV4dFwiXHJcbiAgW3JhbmdlSW52YWxpZF09XCJyYW5nZUludmFsaWRcIlxyXG4gIFtyYW5nZUludmFsaWRUZXh0XT1cInJhbmdlSW52YWxpZFRleHRcIlxyXG4gIFtsYWJlbF09XCJsYWJlbFwiXHJcbiAgW3JhbmdlTGFiZWxdPVwicmFuZ2VMYWJlbFwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICBbdmFsdWVdPVwidmFsdWVcIlxyXG4gICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgW2RhdGVGb3JtYXRdPVwiZGF0ZUZvcm1hdFwiXHJcbiAgW2xhbmd1YWdlXT1cImxhbmd1YWdlXCJcclxuICBbc2l6ZV09XCJzaXplXCJcclxuICBbZmxhdHBpY2tyT3B0aW9uc109XCJ7XHJcbiAgICBlbmFibGVUaW1lLCBcclxuICAgIGRpc2FibGVNb2JpbGU6IHRydWVcclxuICB9XCJcclxuICA+PCEtLSAvLyBbIV0gRE9OJ1QgZXh0cmFjdCBgZmxhdHBpY2tyT3B0aW9uc2AgdG8gYSBtZXRob2Qgb3IgZ2V0dGVyLCBlbHNlIHRoZSBjYWxlbmRhciB3b24ndCBvcGVuIC0tPlxyXG48L2libS1kYXRlLXBpY2tlcj5cclxuIl19