carbon-components-angular 5.8.1 → 5.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/documentation/classes/NumberChange.html +5 -0
- package/docs/documentation/components/Accordion.html +1 -1
- package/docs/documentation/components/AccordionItem.html +1 -1
- package/docs/documentation/components/ActionableNotification.html +1 -1
- package/docs/documentation/components/AlertModal.html +1 -1
- package/docs/documentation/components/BaseIconButton.html +1 -1
- package/docs/documentation/components/BaseNotification.html +1 -1
- package/docs/documentation/components/BaseTabHeader.html +1 -1
- package/docs/documentation/components/Breadcrumb.html +1 -1
- package/docs/documentation/components/BreadcrumbItemComponent.html +1 -1
- package/docs/documentation/components/ButtonSet.html +1 -1
- package/docs/documentation/components/Checkbox.html +1 -1
- package/docs/documentation/components/ClickableTile.html +1 -1
- package/docs/documentation/components/CodeSnippet.html +1 -1
- package/docs/documentation/components/ComboBox.html +22 -20
- package/docs/documentation/components/ContentSwitcher.html +1 -1
- package/docs/documentation/components/ContextMenuComponent.html +1 -1
- package/docs/documentation/components/ContextMenuDividerComponent.html +1 -1
- package/docs/documentation/components/ContextMenuGroupComponent.html +1 -1
- package/docs/documentation/components/ContextMenuItemComponent.html +1 -1
- package/docs/documentation/components/DatePicker.html +1 -1
- package/docs/documentation/components/DatePickerInput.html +1 -1
- package/docs/documentation/components/Dialog.html +1 -1
- package/docs/documentation/components/Documentation.html +1 -1
- package/docs/documentation/components/Dropdown.html +1 -1
- package/docs/documentation/components/DropdownList.html +85 -74
- package/docs/documentation/components/ExpandableTile.html +1 -1
- package/docs/documentation/components/FileComponent.html +1 -1
- package/docs/documentation/components/FileUploader.html +46 -42
- package/docs/documentation/components/Hamburger.html +1 -1
- package/docs/documentation/components/Header.html +1 -1
- package/docs/documentation/components/HeaderAction.html +1 -1
- package/docs/documentation/components/HeaderGlobal.html +1 -1
- package/docs/documentation/components/HeaderItem.html +1 -1
- package/docs/documentation/components/HeaderMenu.html +1 -1
- package/docs/documentation/components/HeaderNavigation.html +1 -1
- package/docs/documentation/components/IconButton.html +1 -1
- package/docs/documentation/components/InlineLoading.html +1 -1
- package/docs/documentation/components/Label.html +311 -252
- package/docs/documentation/components/ListColumn.html +1 -1
- package/docs/documentation/components/ListHeader.html +1 -1
- package/docs/documentation/components/ListRow.html +1 -1
- package/docs/documentation/components/Loading.html +1 -1
- package/docs/documentation/components/Modal.html +1 -1
- package/docs/documentation/components/ModalFooter.html +1 -1
- package/docs/documentation/components/ModalHeader.html +10 -23
- package/docs/documentation/components/Notification.html +1 -1
- package/docs/documentation/components/NumberComponent.html +105 -64
- package/docs/documentation/components/OverflowMenu.html +1 -1
- package/docs/documentation/components/OverflowMenuCustomPane.html +1 -1
- package/docs/documentation/components/OverflowMenuOption.html +1 -1
- package/docs/documentation/components/OverflowMenuPane.html +1 -1
- package/docs/documentation/components/Overlay.html +1 -1
- package/docs/documentation/components/Pagination.html +1 -1
- package/docs/documentation/components/PaginationNav.html +1 -1
- package/docs/documentation/components/PaginationNavItem.html +1 -1
- package/docs/documentation/components/PaginationOverflow.html +1 -1
- package/docs/documentation/components/Panel.html +1 -1
- package/docs/documentation/components/Placeholder.html +1 -1
- package/docs/documentation/components/PopoverContent.html +1 -1
- package/docs/documentation/components/ProgressBar.html +1 -1
- package/docs/documentation/components/ProgressIndicator.html +23 -36
- package/docs/documentation/components/Radio.html +1 -1
- package/docs/documentation/components/RadioGroup.html +1 -1
- package/docs/documentation/components/Search.html +1 -1
- package/docs/documentation/components/Select.html +1 -1
- package/docs/documentation/components/SelectionTile.html +46 -48
- package/docs/documentation/components/SideNav.html +1 -1
- package/docs/documentation/components/SideNavItem.html +30 -24
- package/docs/documentation/components/SideNavMenu.html +5 -9
- package/docs/documentation/components/SkeletonPlaceholder.html +1 -1
- package/docs/documentation/components/SkeletonText.html +1 -1
- package/docs/documentation/components/Slider.html +107 -90
- package/docs/documentation/components/StructuredList.html +1 -1
- package/docs/documentation/components/SwitcherList.html +1 -1
- package/docs/documentation/components/SwitcherListItem.html +1 -1
- package/docs/documentation/components/Tab.html +1 -1
- package/docs/documentation/components/TabHeaderGroup.html +1 -1
- package/docs/documentation/components/TabHeaders.html +120 -31
- package/docs/documentation/components/TabSkeleton.html +1 -1
- package/docs/documentation/components/Table.html +1 -1
- package/docs/documentation/components/TableBody.html +1 -1
- package/docs/documentation/components/TableCheckbox.html +1 -1
- package/docs/documentation/components/TableContainer.html +1 -1
- package/docs/documentation/components/TableData.html +1 -1
- package/docs/documentation/components/TableExpandButton.html +1 -1
- package/docs/documentation/components/TableExpandedRow.html +1 -1
- package/docs/documentation/components/TableHead.html +1 -1
- package/docs/documentation/components/TableHeadCell.html +1 -1
- package/docs/documentation/components/TableHeadCheckbox.html +1 -1
- package/docs/documentation/components/TableHeadExpand.html +1 -1
- package/docs/documentation/components/TableHeader.html +1 -1
- package/docs/documentation/components/TableRadio.html +1 -1
- package/docs/documentation/components/TableRowComponent.html +1 -1
- package/docs/documentation/components/TableToolbar.html +8 -8
- package/docs/documentation/components/TableToolbarActions.html +1 -1
- package/docs/documentation/components/TableToolbarContent.html +1 -1
- package/docs/documentation/components/TableToolbarSearch.html +1 -1
- package/docs/documentation/components/Tabs.html +1 -1
- package/docs/documentation/components/Tag.html +1 -1
- package/docs/documentation/components/TagFilter.html +1 -1
- package/docs/documentation/components/TextInputLabelComponent.html +1197 -0
- package/docs/documentation/components/TextareaLabelComponent.html +1243 -0
- package/docs/documentation/components/Tile.html +1 -1
- package/docs/documentation/components/TileGroup.html +142 -27
- package/docs/documentation/components/TimePicker.html +1 -1
- package/docs/documentation/components/TimePickerSelect.html +1 -1
- package/docs/documentation/components/Toast.html +28 -44
- package/docs/documentation/components/Toggle.html +1 -1
- package/docs/documentation/components/Toggletip.html +1 -1
- package/docs/documentation/components/Tooltip.html +1 -1
- package/docs/documentation/components/TooltipDefinition.html +1 -1
- package/docs/documentation/coverage.html +35 -11
- package/docs/documentation/directives/DialogDirective.html +9 -11
- package/docs/documentation/directives/OverflowMenuDirective.html +2 -2
- package/docs/documentation/graph/dependencies.svg +2646 -2598
- package/docs/documentation/images/coverage-badge-documentation.svg +1 -1
- package/docs/documentation/js/menu-wc.js +15 -9
- package/docs/documentation/js/menu-wc_es5.js +1 -1
- package/docs/documentation/js/search/search_index.js +2 -2
- package/docs/documentation/modules/DatePickerInputModule/dependencies.svg +40 -36
- package/docs/documentation/modules/DatePickerInputModule.html +40 -36
- package/docs/documentation/modules/DatePickerModule/dependencies.svg +39 -39
- package/docs/documentation/modules/DatePickerModule.html +39 -39
- package/docs/documentation/modules/FileUploaderModule/dependencies.svg +34 -34
- package/docs/documentation/modules/FileUploaderModule.html +34 -34
- package/docs/documentation/modules/GridModule/dependencies.svg +60 -60
- package/docs/documentation/modules/GridModule.html +60 -60
- package/docs/documentation/modules/InputModule/dependencies.svg +107 -59
- package/docs/documentation/modules/InputModule.html +126 -60
- package/docs/documentation/modules/LoadingModule/dependencies.svg +4 -4
- package/docs/documentation/modules/LoadingModule.html +4 -4
- package/docs/documentation/modules/NFormsModule/dependencies.svg +10 -4
- package/docs/documentation/modules/NFormsModule.html +15 -5
- package/docs/documentation/modules/NumberModule/dependencies.svg +4 -4
- package/docs/documentation/modules/NumberModule.html +4 -4
- package/docs/documentation/modules/ProgressBarModule/dependencies.svg +4 -4
- package/docs/documentation/modules/ProgressBarModule.html +4 -4
- package/docs/documentation/modules/ProgressIndicatorModule/dependencies.svg +42 -54
- package/docs/documentation/modules/ProgressIndicatorModule.html +43 -60
- package/docs/documentation/modules/RadioModule/dependencies.svg +4 -8
- package/docs/documentation/modules/RadioModule.html +4 -8
- package/docs/documentation/modules/SearchModule/dependencies.svg +4 -4
- package/docs/documentation/modules/SearchModule.html +4 -4
- package/docs/documentation/modules/SliderModule/dependencies.svg +4 -4
- package/docs/documentation/modules/SliderModule.html +4 -4
- package/docs/documentation/modules/StructuredListModule/dependencies.svg +66 -66
- package/docs/documentation/modules/StructuredListModule.html +66 -66
- package/docs/documentation/modules/TableModule/dependencies.svg +216 -216
- package/docs/documentation/modules/TableModule.html +216 -216
- package/docs/documentation/modules/TilesModule/dependencies.svg +73 -73
- package/docs/documentation/modules/TilesModule.html +73 -73
- package/docs/documentation/modules/TimePickerModule/dependencies.svg +41 -45
- package/docs/documentation/modules/TimePickerModule.html +41 -45
- package/docs/documentation/modules/TimePickerSelectModule/dependencies.svg +41 -45
- package/docs/documentation/modules/TimePickerSelectModule.html +41 -45
- package/docs/documentation/modules/ToggleModule/dependencies.svg +45 -41
- package/docs/documentation/modules/ToggleModule.html +45 -41
- package/docs/documentation/modules/ToggletipModule/dependencies.svg +37 -37
- package/docs/documentation/modules/ToggletipModule.html +37 -37
- package/docs/documentation/modules/TooltipModule/dependencies.svg +28 -28
- package/docs/documentation/modules/TooltipModule.html +28 -28
- package/docs/documentation/modules/UIShellModule/dependencies.svg +4 -4
- package/docs/documentation/modules/UIShellModule.html +4 -4
- package/docs/documentation/overview.html +2647 -2599
- package/docs/documentation.json +1057 -448
- package/docs/storybook/1741.0cb8b504.iframe.bundle.js +1 -0
- package/docs/storybook/1895.d4241266.iframe.bundle.js +1 -0
- package/docs/storybook/{3224.acb75ed6.iframe.bundle.js → 3224.8b16624b.iframe.bundle.js} +1 -1
- package/docs/storybook/{3348.91a6fc53.iframe.bundle.js → 3348.683a45b7.iframe.bundle.js} +1 -1
- package/docs/storybook/{3931.f22006ff.iframe.bundle.js → 3931.55f9fea9.iframe.bundle.js} +1 -1
- package/docs/storybook/5868.3e7f17a9.iframe.bundle.js +1 -0
- package/docs/storybook/{1235.8d840d5b.iframe.bundle.js → 7153.87910de3.iframe.bundle.js} +1 -1
- package/docs/storybook/7773.6c3cf943.iframe.bundle.js +1 -0
- package/docs/storybook/{901.aa635bd3.iframe.bundle.js → 901.3e5cc559.iframe.bundle.js} +1 -1
- package/docs/storybook/combobox-combobox-stories.fdeea2f7.iframe.bundle.js +1 -0
- package/docs/storybook/file-uploader-file-uploader-stories.fb6f46e6.iframe.bundle.js +1 -0
- package/docs/storybook/iframe.html +2 -2
- package/docs/storybook/main.bfc9d82d.iframe.bundle.js +1 -0
- package/docs/storybook/{progress-indicator-progress-indicator-stories.7a79da0d.iframe.bundle.js → number-input-number-stories.3ea609db.iframe.bundle.js} +1 -1
- package/docs/storybook/{patterns-dialogs-modal-with-table-stories.f2295407.iframe.bundle.js → patterns-dialogs-modal-with-table-stories.494ac5a3.iframe.bundle.js} +1 -1
- package/docs/storybook/{patterns-forms-multi-step-form-stories.0d86ee5b.iframe.bundle.js → patterns-forms-multi-step-form-stories.75d0fa39.iframe.bundle.js} +1 -1
- package/docs/storybook/patterns-loading-large-loading-stories.8c04d095.iframe.bundle.js +1 -0
- package/docs/storybook/progress-indicator-progress-indicator-stories.dcc5c5ca.iframe.bundle.js +1 -0
- package/docs/storybook/project.json +1 -1
- package/docs/storybook/{runtime~main.c5d3a693.iframe.bundle.js → runtime~main.5d2fe1c8.iframe.bundle.js} +1 -1
- package/docs/storybook/slider-slider-stories.feee50aa.iframe.bundle.js +1 -0
- package/docs/storybook/{tabs-tabs-stories.d36fc351.iframe.bundle.js → tabs-tabs-stories.675b2d72.iframe.bundle.js} +1 -1
- package/docs/storybook/ui-shell-ui-shell-stories.90ac54a8.iframe.bundle.js +1 -0
- package/esm2020/combobox/combobox.component.mjs +4 -2
- package/esm2020/dialog/dialog.directive.mjs +4 -6
- package/esm2020/dropdown/list/dropdown-list.component.mjs +39 -30
- package/esm2020/file-uploader/file-uploader.component.mjs +16 -13
- package/esm2020/forms/forms.module.mjs +7 -4
- package/esm2020/forms/index.mjs +2 -2
- package/esm2020/input/index.mjs +3 -1
- package/esm2020/input/input.module.mjs +13 -3
- package/esm2020/input/label.component.mjs +200 -124
- package/esm2020/input/text-input-label.component.mjs +211 -0
- package/esm2020/input/textarea-label.component.mjs +215 -0
- package/esm2020/modal/modal-header.component.mjs +7 -9
- package/esm2020/notification/toast.component.mjs +10 -12
- package/esm2020/number-input/number.component.mjs +10 -2
- package/esm2020/progress-indicator/progress-indicator.component.mjs +8 -10
- package/esm2020/progress-indicator/progress-indicator.module.mjs +1 -5
- package/esm2020/slider/slider.component.mjs +6 -5
- package/esm2020/table/toolbar/table-toolbar.component.mjs +7 -7
- package/esm2020/tabs/tab-headers.component.mjs +10 -2
- package/esm2020/tiles/selection-tile.component.mjs +21 -23
- package/esm2020/tiles/tile-group.component.mjs +25 -5
- package/esm2020/ui-shell/sidenav/sidenav-item.component.mjs +8 -2
- package/esm2020/ui-shell/sidenav/sidenav-menu.component.mjs +4 -9
- package/fesm2015/carbon-components-angular-combobox.mjs +3 -1
- package/fesm2015/carbon-components-angular-combobox.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-dialog.mjs +3 -5
- package/fesm2015/carbon-components-angular-dialog.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-dropdown.mjs +38 -29
- package/fesm2015/carbon-components-angular-dropdown.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-file-uploader.mjs +15 -12
- package/fesm2015/carbon-components-angular-file-uploader.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-forms.mjs +7 -4
- package/fesm2015/carbon-components-angular-forms.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-input.mjs +572 -74
- package/fesm2015/carbon-components-angular-input.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-modal.mjs +11 -13
- package/fesm2015/carbon-components-angular-modal.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-notification.mjs +7 -9
- package/fesm2015/carbon-components-angular-notification.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-number-input.mjs +9 -1
- package/fesm2015/carbon-components-angular-number-input.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-progress-indicator.mjs +7 -13
- package/fesm2015/carbon-components-angular-progress-indicator.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-slider.mjs +5 -4
- package/fesm2015/carbon-components-angular-slider.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-table.mjs +6 -6
- package/fesm2015/carbon-components-angular-table.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-tabs.mjs +9 -1
- package/fesm2015/carbon-components-angular-tabs.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-tiles.mjs +43 -26
- package/fesm2015/carbon-components-angular-tiles.mjs.map +1 -1
- package/fesm2015/carbon-components-angular-ui-shell.mjs +10 -9
- package/fesm2015/carbon-components-angular-ui-shell.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-combobox.mjs +3 -1
- package/fesm2020/carbon-components-angular-combobox.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-dialog.mjs +3 -5
- package/fesm2020/carbon-components-angular-dialog.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-dropdown.mjs +38 -29
- package/fesm2020/carbon-components-angular-dropdown.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-file-uploader.mjs +15 -12
- package/fesm2020/carbon-components-angular-file-uploader.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-forms.mjs +7 -4
- package/fesm2020/carbon-components-angular-forms.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-input.mjs +572 -74
- package/fesm2020/carbon-components-angular-input.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-modal.mjs +11 -13
- package/fesm2020/carbon-components-angular-modal.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-notification.mjs +7 -9
- package/fesm2020/carbon-components-angular-notification.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-number-input.mjs +9 -1
- package/fesm2020/carbon-components-angular-number-input.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-progress-indicator.mjs +7 -13
- package/fesm2020/carbon-components-angular-progress-indicator.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-slider.mjs +5 -4
- package/fesm2020/carbon-components-angular-slider.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-table.mjs +6 -6
- package/fesm2020/carbon-components-angular-table.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-tabs.mjs +9 -1
- package/fesm2020/carbon-components-angular-tabs.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-tiles.mjs +43 -26
- package/fesm2020/carbon-components-angular-tiles.mjs.map +1 -1
- package/fesm2020/carbon-components-angular-ui-shell.mjs +10 -9
- package/fesm2020/carbon-components-angular-ui-shell.mjs.map +1 -1
- package/file-uploader/file-uploader.component.d.ts +2 -1
- package/forms/forms.module.d.ts +1 -1
- package/forms/index.d.ts +1 -1
- package/input/index.d.ts +2 -0
- package/input/input.module.d.ts +6 -4
- package/input/label.component.d.ts +10 -23
- package/input/text-input-label.component.d.ts +85 -0
- package/input/textarea-label.component.d.ts +87 -0
- package/modal/modal-header.component.d.ts +1 -3
- package/notification/toast.component.d.ts +1 -3
- package/number-input/number.component.d.ts +5 -1
- package/package.json +1 -1
- package/progress-indicator/progress-indicator.component.d.ts +1 -3
- package/progress-indicator/progress-indicator.module.d.ts +3 -4
- package/slider/slider.component.d.ts +3 -2
- package/tabs/tab-headers.component.d.ts +5 -3
- package/tiles/tile-group.component.d.ts +4 -2
- package/ui-shell/sidenav/sidenav-menu.component.d.ts +1 -1
- package/docs/storybook/1741.baa0e588.iframe.bundle.js +0 -1
- package/docs/storybook/1895.cdd3d03e.iframe.bundle.js +0 -1
- package/docs/storybook/5868.bc6e8b2d.iframe.bundle.js +0 -1
- package/docs/storybook/7773.ef20c61a.iframe.bundle.js +0 -1
- package/docs/storybook/combobox-combobox-stories.cc751a45.iframe.bundle.js +0 -1
- package/docs/storybook/file-uploader-file-uploader-stories.f41b9fbb.iframe.bundle.js +0 -1
- package/docs/storybook/main.760cce33.iframe.bundle.js +0 -1
- package/docs/storybook/number-input-number-stories.aadfb01f.iframe.bundle.js +0 -1
- package/docs/storybook/patterns-loading-large-loading-stories.95988daa.iframe.bundle.js +0 -1
- package/docs/storybook/slider-slider-stories.fe053915.iframe.bundle.js +0 -1
- package/docs/storybook/ui-shell-ui-shell-stories.9dc19b9f.iframe.bundle.js +0 -1
|
@@ -1,25 +1,20 @@
|
|
|
1
1
|
import { Component, Input, HostBinding, TemplateRef, ViewChild, ContentChild } from "@angular/core";
|
|
2
2
|
import { TextArea } from "./text-area.directive";
|
|
3
|
+
import { TextInput } from "./input.directive";
|
|
3
4
|
import * as i0 from "@angular/core";
|
|
4
5
|
import * as i1 from "@angular/common";
|
|
5
6
|
import * as i2 from "carbon-components-angular/icon";
|
|
7
|
+
import * as i3 from "./textarea-label.component";
|
|
8
|
+
import * as i4 from "./text-input-label.component";
|
|
6
9
|
/**
|
|
7
10
|
* [See demo](../../?path=/story/components-input--label)
|
|
8
11
|
*
|
|
9
|
-
*
|
|
10
|
-
* <cds-label labelState="success">
|
|
11
|
-
* <label label>Field with success</label>
|
|
12
|
-
* <input type="text" class="input-field">
|
|
13
|
-
* </cds-label>
|
|
12
|
+
* To prevent attribute drilling, use `ibm-text-label` or `ibm-textarea-label` components
|
|
14
13
|
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
* <cds-label labelState="error">
|
|
21
|
-
* <label label>Field with error</label>
|
|
22
|
-
* <input type="text" class="input-field">
|
|
14
|
+
* ```html
|
|
15
|
+
* <cds-label>
|
|
16
|
+
* Label
|
|
17
|
+
* <input cdsText type="text" class="input-field">
|
|
23
18
|
* </cds-label>
|
|
24
19
|
* ```
|
|
25
20
|
*/
|
|
@@ -29,10 +24,6 @@ export class Label {
|
|
|
29
24
|
*/
|
|
30
25
|
constructor(changeDetectorRef) {
|
|
31
26
|
this.changeDetectorRef = changeDetectorRef;
|
|
32
|
-
/**
|
|
33
|
-
* The class of the wrapper
|
|
34
|
-
*/
|
|
35
|
-
this.wrapperClass = "cds--text-input__field-wrapper";
|
|
36
27
|
/**
|
|
37
28
|
* The id of the input item associated with the `Label`. This value is also used to associate the `Label` with
|
|
38
29
|
* its input counterpart through the 'for' attribute.
|
|
@@ -42,10 +33,6 @@ export class Label {
|
|
|
42
33
|
* Set to `true` for disabled state.
|
|
43
34
|
*/
|
|
44
35
|
this.disabled = false;
|
|
45
|
-
/**
|
|
46
|
-
* State of the `Label` will determine the styles applied.
|
|
47
|
-
*/
|
|
48
|
-
this.labelState = "";
|
|
49
36
|
/**
|
|
50
37
|
* Set to `true` for a loading label.
|
|
51
38
|
*/
|
|
@@ -58,20 +45,26 @@ export class Label {
|
|
|
58
45
|
* Set to `true` to show a warning (contents set by warningText)
|
|
59
46
|
*/
|
|
60
47
|
this.warn = false;
|
|
61
|
-
|
|
48
|
+
}
|
|
49
|
+
get labelClass() {
|
|
50
|
+
return this.type === undefined;
|
|
62
51
|
}
|
|
63
52
|
/**
|
|
64
53
|
* Update wrapper class if a textarea is hosted.
|
|
65
54
|
*/
|
|
66
55
|
ngAfterContentInit() {
|
|
67
56
|
if (this.textArea) {
|
|
68
|
-
this.
|
|
57
|
+
this.type = "TextArea";
|
|
58
|
+
}
|
|
59
|
+
else if (this.textInput) {
|
|
60
|
+
this.type = "TextInput";
|
|
69
61
|
}
|
|
70
62
|
}
|
|
71
63
|
/**
|
|
72
64
|
* Sets the id on the input item associated with the `Label`.
|
|
73
65
|
*/
|
|
74
66
|
ngAfterViewInit() {
|
|
67
|
+
// Will only be called when `default` template is being used
|
|
75
68
|
if (this.wrapper) {
|
|
76
69
|
// Prioritize setting id to `input` & `textarea` over div
|
|
77
70
|
const inputElement = this.wrapper.nativeElement.querySelector("input,textarea");
|
|
@@ -103,123 +96,203 @@ export class Label {
|
|
|
103
96
|
*/
|
|
104
97
|
Label.labelCounter = 0;
|
|
105
98
|
Label.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Label, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
106
|
-
Label.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Label, selector: "cds-label, ibm-label", inputs: { labelInputID: "labelInputID", disabled: "disabled",
|
|
107
|
-
<
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
'cds--skeleton': skeleton,
|
|
113
|
-
'cds--label--disabled': disabled && !skeleton
|
|
114
|
-
}">
|
|
99
|
+
Label.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: Label, selector: "cds-label, ibm-label", inputs: { labelInputID: "labelInputID", disabled: "disabled", skeleton: "skeleton", helperText: "helperText", invalidText: "invalidText", invalid: "invalid", warn: "warn", warnText: "warnText", ariaLabel: "ariaLabel" }, host: { properties: { "class.cds--form-item": "this.labelClass" } }, queries: [{ propertyName: "textArea", first: true, predicate: TextArea, descendants: true }, { propertyName: "textInput", first: true, predicate: TextInput, descendants: true }], viewQueries: [{ propertyName: "wrapper", first: true, predicate: ["wrapper"], descendants: true }], ngImport: i0, template: `
|
|
100
|
+
<ng-template #inputContentTemplate>
|
|
101
|
+
<ng-content select="input,textarea,div"></ng-content>
|
|
102
|
+
</ng-template>
|
|
103
|
+
|
|
104
|
+
<ng-template #labelContentTemplate>
|
|
115
105
|
<ng-content></ng-content>
|
|
116
|
-
</
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
106
|
+
</ng-template>
|
|
107
|
+
|
|
108
|
+
<ng-container [ngSwitch]="type">
|
|
109
|
+
<ng-container *ngSwitchCase="'TextArea'">
|
|
110
|
+
<cds-textarea-label
|
|
111
|
+
[labelInputID]="labelInputID"
|
|
112
|
+
[disabled]="disabled"
|
|
113
|
+
[skeleton]="skeleton"
|
|
114
|
+
[helperText]="helperText"
|
|
115
|
+
[invalid]="invalid"
|
|
116
|
+
[invalidText]="invalidText"
|
|
117
|
+
[warn]="warn"
|
|
118
|
+
[warnText]="warnText"
|
|
119
|
+
[ariaLabel]="ariaLabel"
|
|
120
|
+
[labelTemplate]="labelContentTemplate"
|
|
121
|
+
[textAreaTemplate]="inputContentTemplate">
|
|
122
|
+
</cds-textarea-label>
|
|
123
|
+
</ng-container>
|
|
124
|
+
<ng-container *ngSwitchCase="'TextInput'">
|
|
125
|
+
<cds-text-label
|
|
126
|
+
[labelInputID]="labelInputID"
|
|
127
|
+
[disabled]="disabled"
|
|
128
|
+
[skeleton]="skeleton"
|
|
129
|
+
[helperText]="helperText"
|
|
130
|
+
[invalid]="invalid"
|
|
131
|
+
[invalidText]="invalidText"
|
|
132
|
+
[warn]="warn"
|
|
133
|
+
[warnText]="warnText"
|
|
134
|
+
[ariaLabel]="ariaLabel"
|
|
135
|
+
[labelTemplate]="labelContentTemplate"
|
|
136
|
+
[textInputTemplate]="inputContentTemplate">
|
|
137
|
+
</cds-text-label>
|
|
138
|
+
</ng-container>
|
|
139
|
+
<ng-container *ngSwitchDefault>
|
|
140
|
+
<ng-template [ngTemplateOutlet]="default"></ng-template>
|
|
141
|
+
</ng-container>
|
|
142
|
+
</ng-container>
|
|
143
|
+
|
|
144
|
+
<ng-template #default>
|
|
145
|
+
<label
|
|
146
|
+
[for]="labelInputID"
|
|
147
|
+
[attr.aria-label]="ariaLabel"
|
|
148
|
+
class="cds--label"
|
|
128
149
|
[ngClass]="{
|
|
129
|
-
'cds--
|
|
130
|
-
'cds--
|
|
150
|
+
'cds--label--disabled': disabled,
|
|
151
|
+
'cds--skeleton': skeleton
|
|
131
152
|
}">
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
<
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
153
|
+
<ng-template [ngTemplateOutlet]="labelContentTemplate"></ng-template>
|
|
154
|
+
</label>
|
|
155
|
+
<div
|
|
156
|
+
class="cds--text-input__field-wrapper"
|
|
157
|
+
[ngClass]="{
|
|
158
|
+
'cds--text-input__field-wrapper--warning': warn
|
|
159
|
+
}"
|
|
160
|
+
[attr.data-invalid]="(invalid ? true : null)"
|
|
161
|
+
#wrapper>
|
|
162
|
+
<svg
|
|
163
|
+
*ngIf="!warn && invalid"
|
|
164
|
+
ibmIcon="warning--filled"
|
|
165
|
+
size="16"
|
|
166
|
+
class="cds--text-input__invalid-icon">
|
|
167
|
+
</svg>
|
|
168
|
+
<svg
|
|
169
|
+
*ngIf="!invalid && warn"
|
|
170
|
+
ibmIcon="warning--alt--filled"
|
|
171
|
+
size="16"
|
|
172
|
+
class="cds--text-input__invalid-icon cds--text-input__invalid-icon--warning">
|
|
173
|
+
</svg>
|
|
174
|
+
<ng-template [ngTemplateOutlet]="inputContentTemplate"></ng-template>
|
|
175
|
+
</div>
|
|
176
|
+
<div
|
|
177
|
+
*ngIf="!skeleton && helperText && !invalid && !warn"
|
|
178
|
+
class="cds--form__helper-text"
|
|
179
|
+
[ngClass]="{'cds--form__helper-text--disabled': disabled}">
|
|
180
|
+
<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
|
|
181
|
+
<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
|
|
182
|
+
</div>
|
|
183
|
+
<div *ngIf="!warn && invalid" class="cds--form-requirement">
|
|
184
|
+
<ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
|
|
185
|
+
<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
|
|
186
|
+
</div>
|
|
187
|
+
<div *ngIf="!invalid && warn" class="cds--form-requirement">
|
|
188
|
+
<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
|
|
189
|
+
<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
|
|
190
|
+
</div>
|
|
191
|
+
</ng-template>
|
|
192
|
+
`, isInline: true, 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.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i2.IconDirective, selector: "[cdsIcon], [ibmIcon]", inputs: ["ibmIcon", "cdsIcon", "size", "title", "ariaLabel", "ariaLabelledBy", "ariaHidden", "isFocusable"] }, { kind: "component", type: i3.TextareaLabelComponent, selector: "cds-textarea-label, ibm-textarea-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textAreaTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }, { kind: "component", type: i4.TextInputLabelComponent, selector: "cds-text-label, ibm-text-label", inputs: ["labelInputID", "disabled", "skeleton", "labelTemplate", "textInputTemplate", "helperText", "invalidText", "invalid", "warn", "warnText", "ariaLabel"] }] });
|
|
159
193
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: Label, decorators: [{
|
|
160
194
|
type: Component,
|
|
161
195
|
args: [{
|
|
162
196
|
selector: "cds-label, ibm-label",
|
|
163
197
|
template: `
|
|
164
|
-
<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
'cds--skeleton': skeleton,
|
|
170
|
-
'cds--label--disabled': disabled && !skeleton
|
|
171
|
-
}">
|
|
198
|
+
<ng-template #inputContentTemplate>
|
|
199
|
+
<ng-content select="input,textarea,div"></ng-content>
|
|
200
|
+
</ng-template>
|
|
201
|
+
|
|
202
|
+
<ng-template #labelContentTemplate>
|
|
172
203
|
<ng-content></ng-content>
|
|
173
|
-
</
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
204
|
+
</ng-template>
|
|
205
|
+
|
|
206
|
+
<ng-container [ngSwitch]="type">
|
|
207
|
+
<ng-container *ngSwitchCase="'TextArea'">
|
|
208
|
+
<cds-textarea-label
|
|
209
|
+
[labelInputID]="labelInputID"
|
|
210
|
+
[disabled]="disabled"
|
|
211
|
+
[skeleton]="skeleton"
|
|
212
|
+
[helperText]="helperText"
|
|
213
|
+
[invalid]="invalid"
|
|
214
|
+
[invalidText]="invalidText"
|
|
215
|
+
[warn]="warn"
|
|
216
|
+
[warnText]="warnText"
|
|
217
|
+
[ariaLabel]="ariaLabel"
|
|
218
|
+
[labelTemplate]="labelContentTemplate"
|
|
219
|
+
[textAreaTemplate]="inputContentTemplate">
|
|
220
|
+
</cds-textarea-label>
|
|
221
|
+
</ng-container>
|
|
222
|
+
<ng-container *ngSwitchCase="'TextInput'">
|
|
223
|
+
<cds-text-label
|
|
224
|
+
[labelInputID]="labelInputID"
|
|
225
|
+
[disabled]="disabled"
|
|
226
|
+
[skeleton]="skeleton"
|
|
227
|
+
[helperText]="helperText"
|
|
228
|
+
[invalid]="invalid"
|
|
229
|
+
[invalidText]="invalidText"
|
|
230
|
+
[warn]="warn"
|
|
231
|
+
[warnText]="warnText"
|
|
232
|
+
[ariaLabel]="ariaLabel"
|
|
233
|
+
[labelTemplate]="labelContentTemplate"
|
|
234
|
+
[textInputTemplate]="inputContentTemplate">
|
|
235
|
+
</cds-text-label>
|
|
236
|
+
</ng-container>
|
|
237
|
+
<ng-container *ngSwitchDefault>
|
|
238
|
+
<ng-template [ngTemplateOutlet]="default"></ng-template>
|
|
239
|
+
</ng-container>
|
|
240
|
+
</ng-container>
|
|
241
|
+
|
|
242
|
+
<ng-template #default>
|
|
243
|
+
<label
|
|
244
|
+
[for]="labelInputID"
|
|
245
|
+
[attr.aria-label]="ariaLabel"
|
|
246
|
+
class="cds--label"
|
|
185
247
|
[ngClass]="{
|
|
186
|
-
'cds--
|
|
187
|
-
'cds--
|
|
248
|
+
'cds--label--disabled': disabled,
|
|
249
|
+
'cds--skeleton': skeleton
|
|
188
250
|
}">
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
<
|
|
213
|
-
|
|
214
|
-
|
|
251
|
+
<ng-template [ngTemplateOutlet]="labelContentTemplate"></ng-template>
|
|
252
|
+
</label>
|
|
253
|
+
<div
|
|
254
|
+
class="cds--text-input__field-wrapper"
|
|
255
|
+
[ngClass]="{
|
|
256
|
+
'cds--text-input__field-wrapper--warning': warn
|
|
257
|
+
}"
|
|
258
|
+
[attr.data-invalid]="(invalid ? true : null)"
|
|
259
|
+
#wrapper>
|
|
260
|
+
<svg
|
|
261
|
+
*ngIf="!warn && invalid"
|
|
262
|
+
ibmIcon="warning--filled"
|
|
263
|
+
size="16"
|
|
264
|
+
class="cds--text-input__invalid-icon">
|
|
265
|
+
</svg>
|
|
266
|
+
<svg
|
|
267
|
+
*ngIf="!invalid && warn"
|
|
268
|
+
ibmIcon="warning--alt--filled"
|
|
269
|
+
size="16"
|
|
270
|
+
class="cds--text-input__invalid-icon cds--text-input__invalid-icon--warning">
|
|
271
|
+
</svg>
|
|
272
|
+
<ng-template [ngTemplateOutlet]="inputContentTemplate"></ng-template>
|
|
273
|
+
</div>
|
|
274
|
+
<div
|
|
275
|
+
*ngIf="!skeleton && helperText && !invalid && !warn"
|
|
276
|
+
class="cds--form__helper-text"
|
|
277
|
+
[ngClass]="{'cds--form__helper-text--disabled': disabled}">
|
|
278
|
+
<ng-container *ngIf="!isTemplate(helperText)">{{helperText}}</ng-container>
|
|
279
|
+
<ng-template *ngIf="isTemplate(helperText)" [ngTemplateOutlet]="helperText"></ng-template>
|
|
280
|
+
</div>
|
|
281
|
+
<div *ngIf="!warn && invalid" class="cds--form-requirement">
|
|
282
|
+
<ng-container *ngIf="!isTemplate(invalidText)">{{invalidText}}</ng-container>
|
|
283
|
+
<ng-template *ngIf="isTemplate(invalidText)" [ngTemplateOutlet]="invalidText"></ng-template>
|
|
284
|
+
</div>
|
|
285
|
+
<div *ngIf="!invalid && warn" class="cds--form-requirement">
|
|
286
|
+
<ng-container *ngIf="!isTemplate(warnText)">{{warnText}}</ng-container>
|
|
287
|
+
<ng-template *ngIf="isTemplate(warnText)" [ngTemplateOutlet]="warnText"></ng-template>
|
|
288
|
+
</div>
|
|
289
|
+
</ng-template>
|
|
215
290
|
`
|
|
216
291
|
}]
|
|
217
292
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { labelInputID: [{
|
|
218
293
|
type: Input
|
|
219
294
|
}], disabled: [{
|
|
220
295
|
type: Input
|
|
221
|
-
}], labelState: [{
|
|
222
|
-
type: Input
|
|
223
296
|
}], skeleton: [{
|
|
224
297
|
type: Input
|
|
225
298
|
}], helperText: [{
|
|
@@ -240,8 +313,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
240
313
|
}], textArea: [{
|
|
241
314
|
type: ContentChild,
|
|
242
315
|
args: [TextArea]
|
|
316
|
+
}], textInput: [{
|
|
317
|
+
type: ContentChild,
|
|
318
|
+
args: [TextInput, { static: false }]
|
|
243
319
|
}], labelClass: [{
|
|
244
320
|
type: HostBinding,
|
|
245
321
|
args: ["class.cds--form-item"]
|
|
246
322
|
}] } });
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L2xhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDOzs7O0FBRWpEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUJHO0FBeURILE1BQU0sT0FBTyxLQUFLO0lBeURqQjs7T0FFRztJQUNILFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBdkQxRDs7V0FFRztRQUNILGlCQUFZLEdBQUcsZ0NBQWdDLENBQUM7UUFDaEQ7OztVQUdFO1FBQ08saUJBQVksR0FBRyxhQUFhLEtBQUssQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDO1FBQzVEOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7V0FFRztRQUNNLGVBQVUsR0FBeUMsRUFBRSxDQUFDO1FBQy9EOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQVMxQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7O1lBRUk7UUFDSyxTQUFJLEdBQUcsS0FBSyxDQUFDO1FBY2UsZUFBVSxHQUFHLElBQUksQ0FBQztJQUtNLENBQUM7SUFFOUQ7O09BRUc7SUFDSCxrQkFBa0I7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcseUJBQXlCLENBQUM7U0FDOUM7SUFDRixDQUFDO0lBRUQ7O09BRUc7SUFDSCxlQUFlO1FBQ2QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2pCLHlEQUF5RDtZQUN6RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRixJQUFJLFlBQVksRUFBRTtnQkFDakIsZ0VBQWdFO2dCQUNoRSxJQUFJLFlBQVksQ0FBQyxFQUFFLEVBQUU7b0JBQ3BCLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQztvQkFDcEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2lCQUN2QztnQkFDRCxZQUFZLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7Z0JBQ25ELE9BQU87YUFDUDtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNuRSxJQUFJLFVBQVUsRUFBRTtnQkFDZixJQUFJLFVBQVUsQ0FBQyxFQUFFLEVBQUU7b0JBQ2xCLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDLEVBQUUsQ0FBQztvQkFDbEMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsRUFBRSxDQUFDO2lCQUN2QztnQkFDRCxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDakQ7U0FDRDtJQUNGLENBQUM7SUFFTSxVQUFVLENBQUMsS0FBSztRQUN0QixPQUFPLEtBQUssWUFBWSxXQUFXLENBQUM7SUFDckMsQ0FBQzs7QUFwR0Q7O0dBRUc7QUFDSSxrQkFBWSxHQUFHLENBQUMsQ0FBQztrR0FKWixLQUFLO3NGQUFMLEtBQUssNlpBcURILFFBQVEsb0pBM0daOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBb0RUOzJGQUVXLEtBQUs7a0JBeERqQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQW9EVDtpQkFDRDt3R0FjUyxZQUFZO3NCQUFwQixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsVUFBVTtzQkFBbEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFFZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVJLFFBQVE7c0JBQS9CLFlBQVk7dUJBQUMsUUFBUTtnQkFFZSxVQUFVO3NCQUE5QyxXQUFXO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdENvbXBvbmVudCxcblx0SW5wdXQsXG5cdEFmdGVyVmlld0luaXQsXG5cdEVsZW1lbnRSZWYsXG5cdEhvc3RCaW5kaW5nLFxuXHRUZW1wbGF0ZVJlZixcblx0Vmlld0NoaWxkLFxuXHRDb250ZW50Q2hpbGQsXG5cdEFmdGVyQ29udGVudEluaXQsXG5cdENoYW5nZURldGVjdG9yUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IFRleHRBcmVhIH0gZnJvbSBcIi4vdGV4dC1hcmVhLmRpcmVjdGl2ZVwiO1xuXG4vKipcbiAqIFtTZWUgZGVtb10oLi4vLi4vP3BhdGg9L3N0b3J5L2NvbXBvbmVudHMtaW5wdXQtLWxhYmVsKVxuICpcbiAqIGBgYGh0bWxcbiAqIDxjZHMtbGFiZWwgbGFiZWxTdGF0ZT1cInN1Y2Nlc3NcIj5cbiAqIFx0PGxhYmVsIGxhYmVsPkZpZWxkIHdpdGggc3VjY2VzczwvbGFiZWw+XG4gKiBcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAqIDwvY2RzLWxhYmVsPlxuICpcbiAqIDxjZHMtbGFiZWwgbGFiZWxTdGF0ZT1cIndhcm5pbmdcIj5cbiAqIFx0PGxhYmVsIGxhYmVsPkZpZWxkIHdpdGggd2FybmluZzwvbGFiZWw+XG4gKiBcdDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiaW5wdXQtZmllbGRcIj5cbiAqIDwvY2RzLWxhYmVsPlxuICpcbiAqIDxjZHMtbGFiZWwgbGFiZWxTdGF0ZT1cImVycm9yXCI+XG4gKiBcdDxsYWJlbCBsYWJlbD5GaWVsZCB3aXRoIGVycm9yPC9sYWJlbD5cbiAqIFx0PGlucHV0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9jZHMtbGFiZWw+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1sYWJlbCwgaWJtLWxhYmVsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PGxhYmVsXG5cdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRbYXR0ci5hcmlhLWxhYmVsXT1cImFyaWFMYWJlbFwiXG5cdFx0XHRjbGFzcz1cImNkcy0tbGFiZWxcIlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS1za2VsZXRvbic6IHNrZWxldG9uLFxuXHRcdFx0XHQnY2RzLS1sYWJlbC0tZGlzYWJsZWQnOiBkaXNhYmxlZCAmJiAhc2tlbGV0b25cblx0XHRcdH1cIj5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L2xhYmVsPlxuXHRcdDxkaXZcblx0XHRcdFtjbGFzc109XCJ3cmFwcGVyQ2xhc3NcIlxuXHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHQnY2RzLS10ZXh0LWlucHV0X19maWVsZC13cmFwcGVyLS13YXJuaW5nJzogd2FyblxuXHRcdFx0fVwiXG5cdFx0XHRbYXR0ci5kYXRhLWludmFsaWRdPVwiKGludmFsaWQgPyB0cnVlIDogbnVsbClcIlxuXHRcdFx0I3dyYXBwZXI+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdCpuZ0lmPVwiIXdhcm4gJiYgaW52YWxpZFwiXG5cdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1maWxsZWRcIlxuXHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9faW52YWxpZC1pY29uJzogIXRleHRBcmVhLFxuXHRcdFx0XHRcdCdjZHMtLXRleHQtYXJlYV9faW52YWxpZC1pY29uJzogdGV4dEFyZWFcblx0XHRcdFx0fVwiPlxuXHRcdFx0PC9zdmc+XG5cdFx0XHQ8c3ZnXG5cdFx0XHRcdCpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiXG5cdFx0XHRcdGNkc0ljb249XCJ3YXJuaW5nLS1hbHQtLWZpbGxlZFwiXG5cdFx0XHRcdHNpemU9XCIxNlwiXG5cdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24gY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb24tLXdhcm5pbmdcIj5cblx0XHRcdDwvc3ZnPlxuXHRcdFx0PG5nLWNvbnRlbnQgc2VsZWN0PVwiaW5wdXQsdGV4dGFyZWEsZGl2XCI+PC9uZy1jb250ZW50PlxuXHRcdDwvZGl2PlxuXHRcdDxkaXZcblx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uICYmIGhlbHBlclRleHQgJiYgIWludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0Y2xhc3M9XCJjZHMtLWZvcm1fX2hlbHBlci10ZXh0XCJcblx0XHRcdFtuZ0NsYXNzXT1cIntcblx0XHRcdFx0J2Nkcy0tZm9ybV9faGVscGVyLXRleHQtLWRpc2FibGVkJzogZGlzYWJsZWRcblx0XHRcdH1cIj5cblx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiPnt7aGVscGVyVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHQ8bmctdGVtcGxhdGUgKm5nSWY9XCJpc1RlbXBsYXRlKGhlbHBlclRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaGVscGVyVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiF3YXJuICYmIGludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKGludmFsaWRUZXh0KVwiPnt7aW52YWxpZFRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZShpbnZhbGlkVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJpbnZhbGlkVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdFx0PGRpdiAqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc1RlbXBsYXRlKHdhcm5UZXh0KVwiPnt7d2FyblRleHR9fTwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZSh3YXJuVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ3YXJuVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0PC9kaXY+XG5cdGBcbn0pXG5leHBvcnQgY2xhc3MgTGFiZWwgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBBZnRlclZpZXdJbml0IHtcblx0LyoqXG5cdCAqIFVzZWQgdG8gYnVpbGQgdGhlIGlkIG9mIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC5cblx0ICovXG5cdHN0YXRpYyBsYWJlbENvdW50ZXIgPSAwO1xuXHQvKipcblx0ICogVGhlIGNsYXNzIG9mIHRoZSB3cmFwcGVyXG5cdCAqL1xuXHR3cmFwcGVyQ2xhc3MgPSBcImNkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlclwiO1xuXHQvKipcblx0ICogVGhlIGlkIG9mIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC4gVGhpcyB2YWx1ZSBpcyBhbHNvIHVzZWQgdG8gYXNzb2NpYXRlIHRoZSBgTGFiZWxgIHdpdGhcblx0ICogaXRzIGlucHV0IGNvdW50ZXJwYXJ0IHRocm91Z2ggdGhlICdmb3InIGF0dHJpYnV0ZS5cblx0Ki9cblx0QElucHV0KCkgbGFiZWxJbnB1dElEID0gYGNkcy1sYWJlbC0ke0xhYmVsLmxhYmVsQ291bnRlcisrfWA7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBkaXNhYmxlZCBzdGF0ZS5cblx0ICovXG5cdEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTdGF0ZSBvZiB0aGUgYExhYmVsYCB3aWxsIGRldGVybWluZSB0aGUgc3R5bGVzIGFwcGxpZWQuXG5cdCAqL1xuXHRASW5wdXQoKSBsYWJlbFN0YXRlOiBcInN1Y2Nlc3NcIiB8IFwid2FybmluZ1wiIHwgXCJlcnJvclwiIHwgXCJcIiA9IFwiXCI7XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhIGxvYWRpbmcgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBza2VsZXRvbiA9IGZhbHNlO1xuXHQvKipcblx0ICogT3B0aW9uYWwgaGVscGVyIHRleHQgdGhhdCBhcHBlYXJzIHVuZGVyIHRoZSBsYWJlbC5cblx0ICovXG5cdEBJbnB1dCgpIGhlbHBlclRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBpbnZhbGlkIHRleHQuXG5cdCAqL1xuXHRASW5wdXQoKSBpbnZhbGlkVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0byBgdHJ1ZWAgZm9yIGFuIGludmFsaWQgbGFiZWwgY29tcG9uZW50LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZCA9IGZhbHNlO1xuXHQvKipcblx0ICAqIFNldCB0byBgdHJ1ZWAgdG8gc2hvdyBhIHdhcm5pbmcgKGNvbnRlbnRzIHNldCBieSB3YXJuaW5nVGV4dClcblx0ICAqL1xuXHRASW5wdXQoKSB3YXJuID0gZmFsc2U7XG5cdC8qKlxuXHQgKiBTZXRzIHRoZSB3YXJuaW5nIHRleHRcblx0ICovXG5cdEBJbnB1dCgpIHdhcm5UZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0IHRoZSBhcmlhbGFiZWwgZm9yIGxhYmVsXG5cdCAqL1xuXHRASW5wdXQoKSBhcmlhTGFiZWw6IHN0cmluZztcblxuXHRAVmlld0NoaWxkKFwid3JhcHBlclwiKSB3cmFwcGVyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuXHRAQ29udGVudENoaWxkKFRleHRBcmVhKSB0ZXh0QXJlYTogVGV4dEFyZWE7XG5cblx0QEhvc3RCaW5kaW5nKFwiY2xhc3MuY2RzLS1mb3JtLWl0ZW1cIikgbGFiZWxDbGFzcyA9IHRydWU7XG5cblx0LyoqXG5cdCAqIENyZWF0ZXMgYW4gaW5zdGFuY2Ugb2YgTGFiZWwuXG5cdCAqL1xuXHRjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG5cdC8qKlxuXHQgKiBVcGRhdGUgd3JhcHBlciBjbGFzcyBpZiBhIHRleHRhcmVhIGlzIGhvc3RlZC5cblx0ICovXG5cdG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblx0XHRpZiAodGhpcy50ZXh0QXJlYSkge1xuXHRcdFx0dGhpcy53cmFwcGVyQ2xhc3MgPSBcImNkcy0tdGV4dC1hcmVhX193cmFwcGVyXCI7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFNldHMgdGhlIGlkIG9uIHRoZSBpbnB1dCBpdGVtIGFzc29jaWF0ZWQgd2l0aCB0aGUgYExhYmVsYC5cblx0ICovXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpIHtcblx0XHRpZiAodGhpcy53cmFwcGVyKSB7XG5cdFx0XHQvLyBQcmlvcml0aXplIHNldHRpbmcgaWQgdG8gYGlucHV0YCAmIGB0ZXh0YXJlYWAgb3ZlciBkaXZcblx0XHRcdGNvbnN0IGlucHV0RWxlbWVudCA9IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJpbnB1dCx0ZXh0YXJlYVwiKTtcblx0XHRcdGlmIChpbnB1dEVsZW1lbnQpIHtcblx0XHRcdFx0Ly8gYXZvaWQgb3ZlcnJpZGluZyBpZHMgYWxyZWFkeSBzZXQgYnkgdGhlIHVzZXIgcmV1c2UgaXQgaW5zdGVhZFxuXHRcdFx0XHRpZiAoaW5wdXRFbGVtZW50LmlkKSB7XG5cdFx0XHRcdFx0dGhpcy5sYWJlbElucHV0SUQgPSBpbnB1dEVsZW1lbnQuaWQ7XG5cdFx0XHRcdFx0dGhpcy5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0aW5wdXRFbGVtZW50LnNldEF0dHJpYnV0ZShcImlkXCIsIHRoaXMubGFiZWxJbnB1dElEKTtcblx0XHRcdFx0cmV0dXJuO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCBkaXZFbGVtZW50ID0gdGhpcy53cmFwcGVyLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcImRpdlwiKTtcblx0XHRcdGlmIChkaXZFbGVtZW50KSB7XG5cdFx0XHRcdGlmIChkaXZFbGVtZW50LmlkKSB7XG5cdFx0XHRcdFx0dGhpcy5sYWJlbElucHV0SUQgPSBkaXZFbGVtZW50LmlkO1xuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGRpdkVsZW1lbnQuc2V0QXR0cmlidXRlKFwiaWRcIiwgdGhpcy5sYWJlbElucHV0SUQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdHB1YmxpYyBpc1RlbXBsYXRlKHZhbHVlKSB7XG5cdFx0cmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgVGVtcGxhdGVSZWY7XG5cdH1cbn1cbiJdfQ==
|
|
323
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2lucHV0L2xhYmVsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ04sU0FBUyxFQUNULEtBQUssRUFHTCxXQUFXLEVBQ1gsV0FBVyxFQUNYLFNBQVMsRUFDVCxZQUFZLEVBR1osTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7Ozs7O0FBRTlDOzs7Ozs7Ozs7OztHQVdHO0FBa0dILE1BQU0sT0FBTyxLQUFLO0lBd0RqQjs7T0FFRztJQUNILFlBQXNCLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBdEQxRDs7O1VBR0U7UUFDTyxpQkFBWSxHQUFHLGFBQWEsS0FBSyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7UUFDNUQ7O1dBRUc7UUFDTSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzFCOztXQUVHO1FBQ00sYUFBUSxHQUFHLEtBQUssQ0FBQztRQVMxQjs7V0FFRztRQUNNLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDekI7O1lBRUk7UUFDSyxTQUFJLEdBQUcsS0FBSyxDQUFDO0lBMEJ1QyxDQUFDO0lBVDlELElBQXlDLFVBQVU7UUFDbEQsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBU0Q7O09BRUc7SUFDSCxrQkFBa0I7UUFDakIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxJQUFJLEdBQUcsVUFBVSxDQUFDO1NBQ3ZCO2FBQU0sSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQzFCLElBQUksQ0FBQyxJQUFJLEdBQUcsV0FBVyxDQUFDO1NBQ3hCO0lBQ0YsQ0FBQztJQUVEOztPQUVHO0lBQ0gsZUFBZTtRQUNkLDREQUE0RDtRQUM1RCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDakIseURBQXlEO1lBQ3pELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQ2hGLElBQUksWUFBWSxFQUFFO2dCQUNqQixnRUFBZ0U7Z0JBQ2hFLElBQUksWUFBWSxDQUFDLEVBQUUsRUFBRTtvQkFDcEIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3ZDO2dCQUNELFlBQVksQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDbkQsT0FBTzthQUNQO1lBRUQsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ25FLElBQUksVUFBVSxFQUFFO2dCQUNmLElBQUksVUFBVSxDQUFDLEVBQUUsRUFBRTtvQkFDbEIsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsRUFBRSxDQUFDO29CQUNsQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLENBQUM7aUJBQ3ZDO2dCQUNELFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUNqRDtTQUNEO0lBQ0YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxLQUFLO1FBQ3RCLE9BQU8sS0FBSyxZQUFZLFdBQVcsQ0FBQztJQUNyQyxDQUFDOztBQXRHRDs7R0FFRztBQUNJLGtCQUFZLEdBQUcsQ0FBQyxDQUFDO2tHQUpaLEtBQUs7c0ZBQUwsS0FBSyxtWUE2Q0gsUUFBUSw0RUFHUixTQUFTLG9KQS9JYjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkZUOzJGQUVXLEtBQUs7a0JBakdqQixTQUFTO21CQUFDO29CQUNWLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0VBNkZUO2lCQUNEO3dHQVVTLFlBQVk7c0JBQXBCLEtBQUs7Z0JBSUcsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxRQUFRO3NCQUFoQixLQUFLO2dCQUlHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBSUcsV0FBVztzQkFBbkIsS0FBSztnQkFJRyxPQUFPO3NCQUFmLEtBQUs7Z0JBSUcsSUFBSTtzQkFBWixLQUFLO2dCQUlHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSztnQkFFZ0IsT0FBTztzQkFBNUIsU0FBUzt1QkFBQyxTQUFTO2dCQUVJLFFBQVE7c0JBQS9CLFlBQVk7dUJBQUMsUUFBUTtnQkFHc0IsU0FBUztzQkFBcEQsWUFBWTt1QkFBQyxTQUFTLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUVELFVBQVU7c0JBQWxELFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcblx0Q29tcG9uZW50LFxuXHRJbnB1dCxcblx0QWZ0ZXJWaWV3SW5pdCxcblx0RWxlbWVudFJlZixcblx0SG9zdEJpbmRpbmcsXG5cdFRlbXBsYXRlUmVmLFxuXHRWaWV3Q2hpbGQsXG5cdENvbnRlbnRDaGlsZCxcblx0QWZ0ZXJDb250ZW50SW5pdCxcblx0Q2hhbmdlRGV0ZWN0b3JSZWZcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgVGV4dEFyZWEgfSBmcm9tIFwiLi90ZXh0LWFyZWEuZGlyZWN0aXZlXCI7XG5pbXBvcnQgeyBUZXh0SW5wdXQgfSBmcm9tIFwiLi9pbnB1dC5kaXJlY3RpdmVcIjtcblxuLyoqXG4gKiBbU2VlIGRlbW9dKC4uLy4uLz9wYXRoPS9zdG9yeS9jb21wb25lbnRzLWlucHV0LS1sYWJlbClcbiAqXG4gKiBUbyBwcmV2ZW50IGF0dHJpYnV0ZSBkcmlsbGluZywgdXNlIGBpYm0tdGV4dC1sYWJlbGAgb3IgYGlibS10ZXh0YXJlYS1sYWJlbGAgY29tcG9uZW50c1xuICpcbiAqIGBgYGh0bWxcbiAqIDxjZHMtbGFiZWw+XG4gKiBcdExhYmVsXG4gKiBcdDxpbnB1dCBjZHNUZXh0IHR5cGU9XCJ0ZXh0XCIgY2xhc3M9XCJpbnB1dC1maWVsZFwiPlxuICogPC9jZHMtbGFiZWw+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG5cdHNlbGVjdG9yOiBcImNkcy1sYWJlbCwgaWJtLWxhYmVsXCIsXG5cdHRlbXBsYXRlOiBgXG5cdFx0PG5nLXRlbXBsYXRlICNpbnB1dENvbnRlbnRUZW1wbGF0ZT5cblx0XHRcdDxuZy1jb250ZW50IHNlbGVjdD1cImlucHV0LHRleHRhcmVhLGRpdlwiPjwvbmctY29udGVudD5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0PG5nLXRlbXBsYXRlICNsYWJlbENvbnRlbnRUZW1wbGF0ZT5cblx0XHRcdDxuZy1jb250ZW50PjwvbmctY29udGVudD5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXG5cdFx0PG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwidHlwZVwiPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1RleHRBcmVhJ1wiPlxuXHRcdFx0XHQ8Y2RzLXRleHRhcmVhLWxhYmVsXG5cdFx0XHRcdFx0W2xhYmVsSW5wdXRJRF09XCJsYWJlbElucHV0SURcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFx0W3NrZWxldG9uXT1cInNrZWxldG9uXCJcblx0XHRcdFx0XHRbaGVscGVyVGV4dF09XCJoZWxwZXJUZXh0XCJcblx0XHRcdFx0XHRbaW52YWxpZF09XCJpbnZhbGlkXCJcblx0XHRcdFx0XHRbaW52YWxpZFRleHRdPVwiaW52YWxpZFRleHRcIlxuXHRcdFx0XHRcdFt3YXJuXT1cIndhcm5cIlxuXHRcdFx0XHRcdFt3YXJuVGV4dF09XCJ3YXJuVGV4dFwiXG5cdFx0XHRcdFx0W2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0XHRcdFtsYWJlbFRlbXBsYXRlXT1cImxhYmVsQ29udGVudFRlbXBsYXRlXCJcblx0XHRcdFx0XHRbdGV4dEFyZWFUZW1wbGF0ZV09XCJpbnB1dENvbnRlbnRUZW1wbGF0ZVwiPlxuXHRcdFx0XHQ8L2Nkcy10ZXh0YXJlYS1sYWJlbD5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ1RleHRJbnB1dCdcIj5cblx0XHRcdFx0PGNkcy10ZXh0LWxhYmVsXG5cdFx0XHRcdFx0W2xhYmVsSW5wdXRJRF09XCJsYWJlbElucHV0SURcIlxuXHRcdFx0XHRcdFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG5cdFx0XHRcdFx0W3NrZWxldG9uXT1cInNrZWxldG9uXCJcblx0XHRcdFx0XHRbaGVscGVyVGV4dF09XCJoZWxwZXJUZXh0XCJcblx0XHRcdFx0XHRbaW52YWxpZF09XCJpbnZhbGlkXCJcblx0XHRcdFx0XHRbaW52YWxpZFRleHRdPVwiaW52YWxpZFRleHRcIlxuXHRcdFx0XHRcdFt3YXJuXT1cIndhcm5cIlxuXHRcdFx0XHRcdFt3YXJuVGV4dF09XCJ3YXJuVGV4dFwiXG5cdFx0XHRcdFx0W2FyaWFMYWJlbF09XCJhcmlhTGFiZWxcIlxuXHRcdFx0XHRcdFtsYWJlbFRlbXBsYXRlXT1cImxhYmVsQ29udGVudFRlbXBsYXRlXCJcblx0XHRcdFx0XHRbdGV4dElucHV0VGVtcGxhdGVdPVwiaW5wdXRDb250ZW50VGVtcGxhdGVcIj5cblx0XHRcdFx0PC9jZHMtdGV4dC1sYWJlbD5cblx0XHRcdDwvbmctY29udGFpbmVyPlxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L25nLWNvbnRhaW5lcj5cblx0XHQ8L25nLWNvbnRhaW5lcj5cblxuXHRcdDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cblx0XHRcdDxsYWJlbFxuXHRcdFx0XHRbZm9yXT1cImxhYmVsSW5wdXRJRFwiXG5cdFx0XHRcdFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsXCJcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLWxhYmVsXCJcblx0XHRcdFx0W25nQ2xhc3NdPVwie1xuXHRcdFx0XHRcdCdjZHMtLWxhYmVsLS1kaXNhYmxlZCc6IGRpc2FibGVkLFxuXHRcdFx0XHRcdCdjZHMtLXNrZWxldG9uJzogc2tlbGV0b25cblx0XHRcdFx0fVwiPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwibGFiZWxDb250ZW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9sYWJlbD5cblx0XHRcdDxkaXZcblx0XHRcdFx0Y2xhc3M9XCJjZHMtLXRleHQtaW5wdXRfX2ZpZWxkLXdyYXBwZXJcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7XG5cdFx0XHRcdFx0J2Nkcy0tdGV4dC1pbnB1dF9fZmllbGQtd3JhcHBlci0td2FybmluZyc6IHdhcm5cblx0XHRcdFx0fVwiXG5cdFx0XHRcdFthdHRyLmRhdGEtaW52YWxpZF09XCIoaW52YWxpZCA/IHRydWUgOiBudWxsKVwiXG5cdFx0XHRcdCN3cmFwcGVyPlxuXHRcdFx0XHQ8c3ZnXG5cdFx0XHRcdFx0Km5nSWY9XCIhd2FybiAmJiBpbnZhbGlkXCJcblx0XHRcdFx0XHRpYm1JY29uPVwid2FybmluZy0tZmlsbGVkXCJcblx0XHRcdFx0XHRzaXplPVwiMTZcIlxuXHRcdFx0XHRcdGNsYXNzPVwiY2RzLS10ZXh0LWlucHV0X19pbnZhbGlkLWljb25cIj5cblx0XHRcdFx0PC9zdmc+XG5cdFx0XHRcdDxzdmdcblx0XHRcdFx0XHQqbmdJZj1cIiFpbnZhbGlkICYmIHdhcm5cIlxuXHRcdFx0XHRcdGlibUljb249XCJ3YXJuaW5nLS1hbHQtLWZpbGxlZFwiXG5cdFx0XHRcdFx0c2l6ZT1cIjE2XCJcblx0XHRcdFx0XHRjbGFzcz1cImNkcy0tdGV4dC1pbnB1dF9faW52YWxpZC1pY29uIGNkcy0tdGV4dC1pbnB1dF9faW52YWxpZC1pY29uLS13YXJuaW5nXCI+XG5cdFx0XHRcdDwvc3ZnPlxuXHRcdFx0XHQ8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW5wdXRDb250ZW50VGVtcGxhdGVcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2XG5cdFx0XHRcdCpuZ0lmPVwiIXNrZWxldG9uICYmIGhlbHBlclRleHQgJiYgIWludmFsaWQgJiYgIXdhcm5cIlxuXHRcdFx0XHRjbGFzcz1cImNkcy0tZm9ybV9faGVscGVyLXRleHRcIlxuXHRcdFx0XHRbbmdDbGFzc109XCJ7J2Nkcy0tZm9ybV9faGVscGVyLXRleHQtLWRpc2FibGVkJzogZGlzYWJsZWR9XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZShoZWxwZXJUZXh0KVwiPnt7aGVscGVyVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUoaGVscGVyVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJoZWxwZXJUZXh0XCI+PC9uZy10ZW1wbGF0ZT5cblx0XHRcdDwvZGl2PlxuXHRcdFx0PGRpdiAqbmdJZj1cIiF3YXJuICYmIGludmFsaWRcIiBjbGFzcz1cImNkcy0tZm9ybS1yZXF1aXJlbWVudFwiPlxuXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCI+e3tpbnZhbGlkVGV4dH19PC9uZy1jb250YWluZXI+XG5cdFx0XHRcdDxuZy10ZW1wbGF0ZSAqbmdJZj1cImlzVGVtcGxhdGUoaW52YWxpZFRleHQpXCIgW25nVGVtcGxhdGVPdXRsZXRdPVwiaW52YWxpZFRleHRcIj48L25nLXRlbXBsYXRlPlxuXHRcdFx0PC9kaXY+XG5cdFx0XHQ8ZGl2ICpuZ0lmPVwiIWludmFsaWQgJiYgd2FyblwiIGNsYXNzPVwiY2RzLS1mb3JtLXJlcXVpcmVtZW50XCI+XG5cdFx0XHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNUZW1wbGF0ZSh3YXJuVGV4dClcIj57e3dhcm5UZXh0fX08L25nLWNvbnRhaW5lcj5cblx0XHRcdFx0PG5nLXRlbXBsYXRlICpuZ0lmPVwiaXNUZW1wbGF0ZSh3YXJuVGV4dClcIiBbbmdUZW1wbGF0ZU91dGxldF09XCJ3YXJuVGV4dFwiPjwvbmctdGVtcGxhdGU+XG5cdFx0XHQ8L2Rpdj5cblx0XHQ8L25nLXRlbXBsYXRlPlxuXHRgXG59KVxuZXhwb3J0IGNsYXNzIExhYmVsIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG5cdC8qKlxuXHQgKiBVc2VkIHRvIGJ1aWxkIHRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuXG5cdCAqL1xuXHRzdGF0aWMgbGFiZWxDb3VudGVyID0gMDtcblx0LyoqXG5cdCAqIFRoZSBpZCBvZiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuIFRoaXMgdmFsdWUgaXMgYWxzbyB1c2VkIHRvIGFzc29jaWF0ZSB0aGUgYExhYmVsYCB3aXRoXG5cdCAqIGl0cyBpbnB1dCBjb3VudGVycGFydCB0aHJvdWdoIHRoZSAnZm9yJyBhdHRyaWJ1dGUuXG5cdCovXG5cdEBJbnB1dCgpIGxhYmVsSW5wdXRJRCA9IGBjZHMtbGFiZWwtJHtMYWJlbC5sYWJlbENvdW50ZXIrK31gO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgZGlzYWJsZWQgc3RhdGUuXG5cdCAqL1xuXHRASW5wdXQoKSBkaXNhYmxlZCA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0IHRvIGB0cnVlYCBmb3IgYSBsb2FkaW5nIGxhYmVsLlxuXHQgKi9cblx0QElucHV0KCkgc2tlbGV0b24gPSBmYWxzZTtcblx0LyoqXG5cdCAqIE9wdGlvbmFsIGhlbHBlciB0ZXh0IHRoYXQgYXBwZWFycyB1bmRlciB0aGUgbGFiZWwuXG5cdCAqL1xuXHRASW5wdXQoKSBoZWxwZXJUZXh0OiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXHQvKipcblx0ICogU2V0cyB0aGUgaW52YWxpZCB0ZXh0LlxuXHQgKi9cblx0QElucHV0KCkgaW52YWxpZFRleHQ6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cdC8qKlxuXHQgKiBTZXQgdG8gYHRydWVgIGZvciBhbiBpbnZhbGlkIGxhYmVsIGNvbXBvbmVudC5cblx0ICovXG5cdEBJbnB1dCgpIGludmFsaWQgPSBmYWxzZTtcblx0LyoqXG5cdCAgKiBTZXQgdG8gYHRydWVgIHRvIHNob3cgYSB3YXJuaW5nIChjb250ZW50cyBzZXQgYnkgd2FybmluZ1RleHQpXG5cdCAgKi9cblx0QElucHV0KCkgd2FybiA9IGZhbHNlO1xuXHQvKipcblx0ICogU2V0cyB0aGUgd2FybmluZyB0ZXh0XG5cdCAqL1xuXHRASW5wdXQoKSB3YXJuVGV4dDogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pjtcblx0LyoqXG5cdCAqIFNldCB0aGUgYXJpYWxhYmVsIGZvciBsYWJlbFxuXHQgKi9cblx0QElucHV0KCkgYXJpYUxhYmVsOiBzdHJpbmc7XG5cblx0QFZpZXdDaGlsZChcIndyYXBwZXJcIikgd3JhcHBlcjogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cblx0QENvbnRlbnRDaGlsZChUZXh0QXJlYSkgdGV4dEFyZWE6IFRleHRBcmVhO1xuXG5cdC8vIEB0cy1pZ25vcmVcblx0QENvbnRlbnRDaGlsZChUZXh0SW5wdXQsIHsgc3RhdGljOiBmYWxzZSB9KSB0ZXh0SW5wdXQ6IFRleHRJbnB1dDtcblxuXHRASG9zdEJpbmRpbmcoXCJjbGFzcy5jZHMtLWZvcm0taXRlbVwiKSBnZXQgbGFiZWxDbGFzcygpIHtcblx0XHRyZXR1cm4gdGhpcy50eXBlID09PSB1bmRlZmluZWQ7XG5cdH1cblxuXHR0eXBlOiBcIlRleHRBcmVhXCIgfCBcIlRleHRJbnB1dFwiO1xuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIExhYmVsLlxuXHQgKi9cblx0Y29uc3RydWN0b3IocHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuXHQvKipcblx0ICogVXBkYXRlIHdyYXBwZXIgY2xhc3MgaWYgYSB0ZXh0YXJlYSBpcyBob3N0ZWQuXG5cdCAqL1xuXHRuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cdFx0aWYgKHRoaXMudGV4dEFyZWEpIHtcblx0XHRcdHRoaXMudHlwZSA9IFwiVGV4dEFyZWFcIjtcblx0XHR9IGVsc2UgaWYgKHRoaXMudGV4dElucHV0KSB7XG5cdFx0XHR0aGlzLnR5cGUgPSBcIlRleHRJbnB1dFwiO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBpZCBvbiB0aGUgaW5wdXQgaXRlbSBhc3NvY2lhdGVkIHdpdGggdGhlIGBMYWJlbGAuXG5cdCAqL1xuXHRuZ0FmdGVyVmlld0luaXQoKSB7XG5cdFx0Ly8gV2lsbCBvbmx5IGJlIGNhbGxlZCB3aGVuIGBkZWZhdWx0YCB0ZW1wbGF0ZSBpcyBiZWluZyB1c2VkXG5cdFx0aWYgKHRoaXMud3JhcHBlcikge1xuXHRcdFx0Ly8gUHJpb3JpdGl6ZSBzZXR0aW5nIGlkIHRvIGBpbnB1dGAgJiBgdGV4dGFyZWFgIG92ZXIgZGl2XG5cdFx0XHRjb25zdCBpbnB1dEVsZW1lbnQgPSB0aGlzLndyYXBwZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKFwiaW5wdXQsdGV4dGFyZWFcIik7XG5cdFx0XHRpZiAoaW5wdXRFbGVtZW50KSB7XG5cdFx0XHRcdC8vIGF2b2lkIG92ZXJyaWRpbmcgaWRzIGFscmVhZHkgc2V0IGJ5IHRoZSB1c2VyIHJldXNlIGl0IGluc3RlYWRcblx0XHRcdFx0aWYgKGlucHV0RWxlbWVudC5pZCkge1xuXHRcdFx0XHRcdHRoaXMubGFiZWxJbnB1dElEID0gaW5wdXRFbGVtZW50LmlkO1xuXHRcdFx0XHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYuZGV0ZWN0Q2hhbmdlcygpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlucHV0RWxlbWVudC5zZXRBdHRyaWJ1dGUoXCJpZFwiLCB0aGlzLmxhYmVsSW5wdXRJRCk7XG5cdFx0XHRcdHJldHVybjtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgZGl2RWxlbWVudCA9IHRoaXMud3JhcHBlci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXCJkaXZcIik7XG5cdFx0XHRpZiAoZGl2RWxlbWVudCkge1xuXHRcdFx0XHRpZiAoZGl2RWxlbWVudC5pZCkge1xuXHRcdFx0XHRcdHRoaXMubGFiZWxJbnB1dElEID0gZGl2RWxlbWVudC5pZDtcblx0XHRcdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRkaXZFbGVtZW50LnNldEF0dHJpYnV0ZShcImlkXCIsIHRoaXMubGFiZWxJbnB1dElEKTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgaXNUZW1wbGF0ZSh2YWx1ZSkge1xuXHRcdHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuXHR9XG59XG4iXX0=
|