@tetacom/ng-components 1.4.4 → 1.4.7
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/assets/icons.svg +54 -0
- package/component/avatar/avatar/avatar.component.d.ts +1 -1
- package/component/button/button/button.component.d.ts +1 -1
- package/component/date-picker/base-calendar.d.ts +1 -1
- package/component/date-picker/base-picker.d.ts +1 -1
- package/component/date-picker/date-picker/date-calendar/date-calendar.component.d.ts +1 -1
- package/component/date-picker/date-picker/date-picker.component.d.ts +1 -1
- package/component/date-picker/date-range/date-range.component.d.ts +1 -1
- package/component/date-picker/date-range/range-calendar/range-calendar.component.d.ts +1 -1
- package/component/date-picker/day-picker/day-item/day-item.component.d.ts +1 -1
- package/component/date-picker/day-picker/day-picker.component.d.ts +4 -4
- package/component/date-picker/month-picker/month-picker.component.d.ts +2 -2
- package/component/date-picker/public-api.d.ts +2 -2
- package/component/date-picker/year-picker/year-picker.component.d.ts +3 -3
- package/component/filter/boolean-filter/boolean-filter.component.d.ts +3 -3
- package/component/message/model/message.d.ts +1 -1
- package/component/property-grid/property-grid/property-grid-group/property-grid-group.component.d.ts +11 -17
- package/component/property-grid/property-grid/property-grid-item/property-grid-item.component.d.ts +18 -19
- package/component/property-grid/property-grid/property-grid.component.d.ts +10 -15
- package/component/property-grid/public-api.d.ts +0 -1
- package/component/switch/switch/switch.component.d.ts +1 -1
- package/component/table/table-row/table-row.component.d.ts +2 -2
- package/component/tree/tree/tree.component.d.ts +1 -1
- package/docs/avatarDocs.mdx +78 -72
- package/docs/datePickerDocs.mdx +3 -3
- package/docs/dateRangeDocs.mdx +3 -3
- package/docs/delimiterDocs.mdx +78 -78
- package/docs/dropdownDocs.mdx +143 -123
- package/docs/expandCardlDocs.mdx +49 -45
- package/docs/expandPanelDocs.mdx +104 -92
- package/docs/fileAreaDocs.mdx +64 -59
- package/docs/inputDocs.mdx +70 -67
- package/docs/listDocs.mdx +14 -8
- package/docs/messageDocs.mdx +47 -34
- package/docs/progressBarDocs.mdx +65 -51
- package/docs/propertyGridDocs.mdx +173 -115
- package/docs/radioDocs.mdx +92 -80
- package/docs/resizePanelDocs.mdx +79 -67
- package/docs/selectDocs.mdx +262 -220
- package/docs/switchDocs.mdx +86 -73
- package/docs/tagDocs.mdx +17 -11
- package/docs/toggleDocs.mdx +42 -36
- package/docs/toolbarDocs.mdx +14 -8
- package/docs/treeDocs.mdx +108 -89
- package/esm2022/common/contract/teta-content-ref.mjs +1 -1
- package/esm2022/common/enum/align.enum.mjs +1 -1
- package/esm2022/common/enum/vertical-align.enum.mjs +1 -1
- package/esm2022/common/service/dynamic-component.service.mjs +1 -1
- package/esm2022/common/util/array-util.mjs +5 -7
- package/esm2022/common/util/dom-util.mjs +2 -3
- package/esm2022/common/util/position-util.mjs +6 -14
- package/esm2022/component/accordion/accordion-content.directive.mjs +2 -2
- package/esm2022/component/accordion/public-api.mjs +1 -1
- package/esm2022/component/autocomplete/autocomplete/autocomplete.component.mjs +2 -3
- package/esm2022/component/autocomplete/public-api.mjs +1 -1
- package/esm2022/component/avatar/avatar/avatar.component.mjs +4 -5
- package/esm2022/component/avatar/model/avatar-color.enum.mjs +1 -1
- package/esm2022/component/avatar/public-api.mjs +1 -1
- package/esm2022/component/button/button/button.component.mjs +2 -2
- package/esm2022/component/button/public-api.mjs +1 -1
- package/esm2022/component/chart-3d/chart3d/chart3d.component.mjs +11 -24
- package/esm2022/component/chart-3d/model/chart-3d-options.mjs +1 -1
- package/esm2022/component/chart-3d/public-api.mjs +1 -1
- package/esm2022/component/checkbox/checkbox/checkbox.component.mjs +3 -3
- package/esm2022/component/checkbox/public-api.mjs +1 -1
- package/esm2022/component/date-picker/base-calendar.mjs +7 -14
- package/esm2022/component/date-picker/base-picker.mjs +3 -2
- package/esm2022/component/date-picker/date-picker/date-calendar/date-calendar.component.mjs +4 -11
- package/esm2022/component/date-picker/date-picker/date-picker.component.mjs +5 -6
- package/esm2022/component/date-picker/date-range/date-range.component.mjs +6 -14
- package/esm2022/component/date-picker/date-range/range-calendar/range-calendar.component.mjs +4 -4
- package/esm2022/component/date-picker/day-picker/day-item/day-item.component.mjs +5 -6
- package/esm2022/component/date-picker/day-picker/day-picker.component.mjs +9 -9
- package/esm2022/component/date-picker/model/date-picker-mode.enum.mjs +1 -1
- package/esm2022/component/date-picker/model/from-to.model.mjs +1 -1
- package/esm2022/component/date-picker/model/min-max-date.model.mjs +1 -1
- package/esm2022/component/date-picker/month-picker/month-picker.component.mjs +4 -4
- package/esm2022/component/date-picker/public-api.mjs +3 -3
- package/esm2022/component/date-picker/year-picker/scroll-to-selected-year.directive.mjs +3 -3
- package/esm2022/component/date-picker/year-picker/year-picker.component.mjs +9 -7
- package/esm2022/component/delimiter/delimiter/delimiter.component.mjs +2 -2
- package/esm2022/component/delimiter/public-api.mjs +1 -1
- package/esm2022/component/divider/divider/divider.component.mjs +4 -4
- package/esm2022/component/divider/public-api.mjs +1 -1
- package/esm2022/component/dropdown/dropdown/dropdown.component.mjs +2 -3
- package/esm2022/component/dropdown/dropdown-base.mjs +11 -22
- package/esm2022/component/dropdown/dropdown-content.directive.mjs +2 -2
- package/esm2022/component/dropdown/dropdown-head.directive.mjs +2 -2
- package/esm2022/component/dropdown/dropdown.directive.mjs +4 -5
- package/esm2022/component/dropdown/public-api.mjs +1 -1
- package/esm2022/component/dynamic-component/popup-content/popup-content.component.mjs +4 -10
- package/esm2022/component/dynamic-component/public-api.mjs +1 -1
- package/esm2022/component/expand-card/expand-card/expand-card.component.mjs +4 -5
- package/esm2022/component/expand-card/expand-item/expand-item.component.mjs +4 -4
- package/esm2022/component/expand-card/public-api.mjs +1 -1
- package/esm2022/component/expand-panel/expand-panel/expand-panel.component.mjs +4 -9
- package/esm2022/component/expand-panel/expand-panel-content.directive.mjs +1 -1
- package/esm2022/component/expand-panel/expand-panel-head.directive.mjs +1 -1
- package/esm2022/component/expand-panel/public-api.mjs +1 -1
- package/esm2022/component/file-upload/file-item/file-item.component.mjs +1 -1
- package/esm2022/component/file-upload/file-upload-area/file-upload-area.component.mjs +3 -8
- package/esm2022/component/file-upload/public-api.mjs +1 -1
- package/esm2022/component/filter/base/filter-base.mjs +1 -1
- package/esm2022/component/filter/base/filter-component-base.mjs +1 -1
- package/esm2022/component/filter/boolean-filter/boolean-filter.component.mjs +5 -11
- package/esm2022/component/filter/contarct/boolean-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/date-filter-value.mjs +3 -3
- package/esm2022/component/filter/contarct/date-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/filter-component-map.mjs +2 -4
- package/esm2022/component/filter/contarct/filter-item.mjs +2 -2
- package/esm2022/component/filter/contarct/filter-state.mjs +1 -1
- package/esm2022/component/filter/contarct/list-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/numeric-filter.mjs +1 -1
- package/esm2022/component/filter/contarct/sort-param.mjs +1 -1
- package/esm2022/component/filter/contarct/string-filter.mjs +1 -1
- package/esm2022/component/filter/date-filter/date-filter.component.mjs +3 -8
- package/esm2022/component/filter/enum/list-filter-type.enum.mjs +1 -1
- package/esm2022/component/filter/filter-host/filter-host.component.mjs +2 -3
- package/esm2022/component/filter/list-filter/list-filter.component.mjs +5 -14
- package/esm2022/component/filter/numeric-filter/numeric-filter.component.mjs +3 -8
- package/esm2022/component/filter/public-api.mjs +1 -1
- package/esm2022/component/filter/string-filter/string-filter.component.mjs +4 -9
- package/esm2022/component/icon/icon/icon.component.mjs +3 -3
- package/esm2022/component/icon/icon-file/icon-file.component.mjs +2 -3
- package/esm2022/component/icon/icon-sprite.directive.mjs +2 -2
- package/esm2022/component/icon/icon.service.mjs +5 -6
- package/esm2022/component/icon/public-api.mjs +1 -1
- package/esm2022/component/input/color-input/color-input.component.mjs +3 -3
- package/esm2022/component/input/form-group-title/form-group-title.component.mjs +2 -2
- package/esm2022/component/input/input/input.component.mjs +4 -4
- package/esm2022/component/input/public-api.mjs +1 -1
- package/esm2022/component/input/text-field/text-field.component.mjs +3 -9
- package/esm2022/component/message/message/message.component.mjs +3 -7
- package/esm2022/component/message/message-host/message-host.component.mjs +5 -9
- package/esm2022/component/message/message.service.mjs +2 -2
- package/esm2022/component/message/model/message.mjs +2 -2
- package/esm2022/component/message/public-api.mjs +1 -1
- package/esm2022/component/modal/dialog/dialog.component.mjs +3 -8
- package/esm2022/component/modal/dialog.service.mjs +1 -1
- package/esm2022/component/modal/modal-container/modal-container.component.mjs +4 -11
- package/esm2022/component/modal/modal.module.mjs +4 -12
- package/esm2022/component/modal/modal.service.mjs +1 -1
- package/esm2022/component/modal/model/current-modal.mjs +1 -1
- package/esm2022/component/modal/model/i-modal-result.mjs +1 -1
- package/esm2022/component/modal/model/modal-instance.mjs +1 -1
- package/esm2022/component/pager/model/pager-state.mjs +3 -2
- package/esm2022/component/pager/pager/pager.component.mjs +1 -1
- package/esm2022/component/pager/public-api.mjs +1 -1
- package/esm2022/component/pager/util/pager-util.mjs +1 -1
- package/esm2022/component/panel/panel/panel.component.mjs +4 -10
- package/esm2022/component/panel/public-api.mjs +1 -1
- package/esm2022/component/progress-bar/progress-bar/progress-bar.component.mjs +5 -6
- package/esm2022/component/progress-bar/public-api.mjs +1 -1
- package/esm2022/component/property-grid/property-grid/property-grid-group/property-grid-group.component.mjs +15 -49
- package/esm2022/component/property-grid/property-grid/property-grid-item/property-grid-item.component.mjs +44 -58
- package/esm2022/component/property-grid/property-grid/property-grid-item-description.directive.mjs +2 -2
- package/esm2022/component/property-grid/property-grid/property-grid.component.mjs +24 -46
- package/esm2022/component/property-grid/public-api.mjs +1 -2
- package/esm2022/component/radio/public-api.mjs +1 -1
- package/esm2022/component/radio/radio/radio.component.mjs +7 -11
- package/esm2022/component/radio/radio-button/radio-button.component.mjs +3 -3
- package/esm2022/component/resize-panel/public-api.mjs +1 -1
- package/esm2022/component/resize-panel/resize-panel/resize-panel.component.mjs +5 -10
- package/esm2022/component/select/public-api.mjs +1 -1
- package/esm2022/component/select/select/select.component.mjs +10 -18
- package/esm2022/component/select/select-option.directive.mjs +2 -2
- package/esm2022/component/select/select-value.directive.mjs +2 -2
- package/esm2022/component/sidebar/public-api.mjs +1 -1
- package/esm2022/component/sidebar/sidebar/sidebar.component.mjs +6 -12
- package/esm2022/component/sidebar/sidebar-position.enum.mjs +1 -1
- package/esm2022/component/switch/public-api.mjs +1 -1
- package/esm2022/component/switch/switch/switch.component.mjs +4 -7
- package/esm2022/component/switch/switch-button/switch-button.component.mjs +2 -3
- package/esm2022/component/switch/switch.service.mjs +2 -2
- package/esm2022/component/table/base/cell-component-base.mjs +10 -22
- package/esm2022/component/table/base/detail-component-base.mjs +1 -1
- package/esm2022/component/table/base/head-cell-component-base.mjs +2 -2
- package/esm2022/component/table/cell/cell.component.mjs +4 -4
- package/esm2022/component/table/cell-host/cell-host.component.mjs +1 -1
- package/esm2022/component/table/contract/cell-components-map.mjs +2 -4
- package/esm2022/component/table/contract/column-reorder-event.mjs +1 -1
- package/esm2022/component/table/contract/sort-event.mjs +1 -1
- package/esm2022/component/table/contract/table-column.mjs +3 -3
- package/esm2022/component/table/default/boolean-cell/boolean-cell.component.mjs +4 -8
- package/esm2022/component/table/default/date-cell/date-cell.component.mjs +4 -9
- package/esm2022/component/table/default/date-time-cell/date-time-cell.component.mjs +4 -9
- package/esm2022/component/table/default/default-head-cell/default-head-cell.component.mjs +5 -6
- package/esm2022/component/table/default/list-cell/list-cell.component.mjs +7 -13
- package/esm2022/component/table/default/numeric-cell/numeric-cell.component.mjs +4 -9
- package/esm2022/component/table/default/string-cell/string-cell.component.mjs +4 -8
- package/esm2022/component/table/enum/edit-event.enum.mjs +1 -1
- package/esm2022/component/table/enum/edit-type.enum.mjs +1 -1
- package/esm2022/component/table/enum/select-type.enum.mjs +1 -1
- package/esm2022/component/table/head-cell-dropdown/head-cell-dropdown.component.mjs +4 -11
- package/esm2022/component/table/head-cell-host/head-cell-host.component.mjs +3 -4
- package/esm2022/component/table/public-api.mjs +1 -1
- package/esm2022/component/table/selection-cell/selection-cell.component.mjs +4 -6
- package/esm2022/component/table/selection-head-cell/selection-head-cell.component.mjs +5 -7
- package/esm2022/component/table/service/table.service.mjs +35 -52
- package/esm2022/component/table/table/table.component.mjs +12 -24
- package/esm2022/component/table/table-body/table-body.component.mjs +15 -21
- package/esm2022/component/table/table-head/filter-dropdown-tab/filter-dropdown-tab.component.mjs +5 -6
- package/esm2022/component/table/table-head/main-dropdown-tab/main-dropdown-tab.component.mjs +4 -5
- package/esm2022/component/table/table-head/table-head.component.mjs +10 -10
- package/esm2022/component/table/table-head/visibility-dropdown-tab/visibility-dropdown-tab.component.mjs +12 -12
- package/esm2022/component/table/table-head-group/table-head-group.component.mjs +7 -12
- package/esm2022/component/table/table-row/table-row.component.mjs +3 -3
- package/esm2022/component/table/util/state-util.mjs +13 -25
- package/esm2022/component/table/util/table-util.mjs +15 -9
- package/esm2022/component/tabs/public-api.mjs +1 -1
- package/esm2022/component/tabs/tab-content.directive.mjs +2 -2
- package/esm2022/component/tabs/tab-title.directive.mjs +2 -2
- package/esm2022/component/theme-switch/public-api.mjs +1 -1
- package/esm2022/component/toggle/public-api.mjs +1 -1
- package/esm2022/component/toggle/toggle/toggle.component.mjs +3 -3
- package/esm2022/component/toolbar/public-api.mjs +1 -1
- package/esm2022/component/toolbar/toolbar/toolbar.component.mjs +2 -2
- package/esm2022/component/tree/public-api.mjs +1 -1
- package/esm2022/component/tree/tree/tree.component.mjs +6 -6
- package/esm2022/component/tree/tree-item/tree-item.component.mjs +9 -20
- package/esm2022/component/tree/tree-item-toggle/tree-item-toggle.component.mjs +5 -6
- package/esm2022/component/tree/tree.service.mjs +1 -1
- package/esm2022/directive/auto-position/auto-position.directive.mjs +3 -3
- package/esm2022/directive/auto-position/public-api.mjs +1 -1
- package/esm2022/directive/click-outside/click-outside.directive.mjs +2 -2
- package/esm2022/directive/click-outside/public-api.mjs +1 -1
- package/esm2022/directive/context-menu/context-menu.directive.mjs +4 -8
- package/esm2022/directive/context-menu/public-api.mjs +1 -1
- package/esm2022/directive/disable-control/disable-control.directive.mjs +1 -1
- package/esm2022/directive/disable-control/public-api.mjs +1 -1
- package/esm2022/directive/drag-drop/drag-container.directive.mjs +8 -10
- package/esm2022/directive/drag-drop/drag-drop.service.mjs +14 -11
- package/esm2022/directive/drag-drop/drag-placeholder.directive.mjs +2 -2
- package/esm2022/directive/drag-drop/drag-preview.directive.mjs +2 -2
- package/esm2022/directive/drag-drop/drag.directive.mjs +4 -7
- package/esm2022/directive/drag-drop/model/drag-container-instance.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-instance.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-process.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drag-selection.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drop-event.mjs +1 -1
- package/esm2022/directive/drag-drop/model/drop-target.mjs +1 -1
- package/esm2022/directive/drag-sort/drag-sort-container.directive.mjs +2 -3
- package/esm2022/directive/drag-sort/drag-sort-item.directive.mjs +4 -10
- package/esm2022/directive/drag-sort/public-api.mjs +1 -1
- package/esm2022/directive/dynamic-content-base.directive.mjs +3 -3
- package/esm2022/directive/highlight/highlight.directive.mjs +4 -5
- package/esm2022/directive/highlight/public-api.mjs +1 -1
- package/esm2022/directive/hint/hint.directive.mjs +5 -14
- package/esm2022/directive/hint/public-api.mjs +1 -1
- package/esm2022/directive/let/let.directive.mjs +2 -2
- package/esm2022/directive/let/public-api.mjs +1 -1
- package/esm2022/directive/loader/loader.directive.mjs +3 -3
- package/esm2022/directive/loader/public-api.mjs +1 -1
- package/esm2022/directive/no-autofill/no-autofill.directive.mjs +1 -1
- package/esm2022/directive/no-autofill/public-api.mjs +1 -1
- package/esm2022/directive/only-number/public-api.mjs +1 -1
- package/esm2022/directive/resize-drag/public-api.mjs +1 -1
- package/esm2022/directive/resize-drag/resize-drag.directive.mjs +2 -2
- package/esm2022/directive/scroll-into-view/public-api.mjs +1 -1
- package/esm2022/directive/scroll-into-view/scroll-into-view.directive.mjs +3 -3
- package/esm2022/directive/scrollable/public-api.mjs +1 -1
- package/esm2022/directive/scrollable/scrollable/scrollable.component.mjs +6 -13
- package/esm2022/directive/scrollable/scrollable.directive.mjs +2 -2
- package/esm2022/directive/teta-template/public-api.mjs +1 -1
- package/esm2022/directive/teta-template/teta-template.directive.mjs +2 -2
- package/esm2022/directive/tooltip/public-api.mjs +1 -1
- package/esm2022/directive/tooltip/tooltip.directive.mjs +3 -4
- package/esm2022/index.mjs +1 -1
- package/esm2022/locale/en.mjs +2 -10
- package/esm2022/locale/ru.mjs +2 -10
- package/esm2022/locale/teta-config.service.mjs +2 -2
- package/esm2022/locale/teta-localisation.mjs +1 -1
- package/esm2022/observable/public-api.mjs +1 -1
- package/esm2022/observable/zone-observable.mjs +4 -4
- package/esm2022/pipe/date-pipe/teta-date.pipe.mjs +2 -2
- package/esm2022/pipe/number-pipe/number.pipe.mjs +2 -2
- package/esm2022/pipe/number-pipe/public-api.mjs +1 -1
- package/esm2022/pipe/util/number-helper.mjs +1 -1
- package/esm2022/util/bool-or-func.mjs +1 -1
- package/esm2022/util/date-util.mjs +2 -4
- package/esm2022/util/export-dom-image.mjs +1 -1
- package/esm2022/util/forms-util.mjs +9 -27
- package/esm2022/util/string-util.mjs +1 -3
- package/fesm2022/tetacom-ng-components.mjs +548 -1024
- package/fesm2022/tetacom-ng-components.mjs.map +1 -1
- package/locale/teta-localisation.d.ts +1 -14
- package/package.json +1 -1
- package/style/assembly-library.scss +41 -41
- package/style/assembly-presets.scss +4 -4
- package/style/assembly.scss +3 -3
- package/style/border.scss +2 -2
- package/style/color.scss +2 -3
- package/style/datepicker.scss +9 -10
- package/style/divider.scss +2 -1
- package/style/drag.scss +1 -1
- package/style/dropdown.scss +4 -5
- package/style/font.scss +2 -2
- package/style/hint.scss +3 -3
- package/style/input.scss +14 -9
- package/style/layout.scss +8 -8
- package/style/list.scss +4 -3
- package/style/loader.scss +1 -1
- package/style/message.scss +3 -3
- package/style/navigation.scss +6 -6
- package/style/presets/color-presets.scss +2 -2
- package/style/presets/view-types.scss +1 -1
- package/style/progress.scss +3 -2
- package/style/radio.scss +2 -4
- package/style/reset.scss +3 -1
- package/style/resize-panel.scss +12 -6
- package/style/scroll.scss +1 -1
- package/style/select.scss +5 -4
- package/style/shadow.scss +3 -3
- package/style/sidebar.scss +2 -2
- package/style/sizing.scss +1 -1
- package/style/skeleton.scss +3 -4
- package/style/spacing.scss +1 -1
- package/style/switch.scss +2 -3
- package/style/tag.scss +8 -8
- package/style/toggle.scss +3 -6
- package/style/toolbar.scss +3 -3
- package/style/tooltip.scss +5 -4
- package/style/tree.scss +2 -2
- package/style/util/font-util.scss +1 -1
- package/util/forms-util.d.ts +1 -2
- package/component/property-grid/property-grid.module.d.ts +0 -13
- package/esm2022/component/property-grid/property-grid.module.mjs +0 -57
|
@@ -132,9 +132,7 @@ export class DateUtil {
|
|
|
132
132
|
return res;
|
|
133
133
|
}
|
|
134
134
|
static toISOString(date) {
|
|
135
|
-
return
|
|
136
|
-
.toISOString()
|
|
137
|
-
.slice(0, -5) + 'Z');
|
|
135
|
+
return new Date(date - new Date().getTimezoneOffset() * 60000).toISOString().slice(0, -5) + 'Z';
|
|
138
136
|
}
|
|
139
137
|
static isValidDate(date) {
|
|
140
138
|
return date instanceof Date && !isNaN(date.getTime());
|
|
@@ -230,4 +228,4 @@ export class DateUtil {
|
|
|
230
228
|
return null;
|
|
231
229
|
}
|
|
232
230
|
}
|
|
233
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUV2RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUVJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJ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Q0FBQztpQkFBTSxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUNyQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsUUFBUSxDQUFDLHlCQUF5QixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFELENBQUM7aUJBQU0sQ0FBQztnQkFDTixNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ3RCLENBQUM7UUFDSCxDQUFDO1FBQ0QsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVPLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxVQUFrQjtRQUN4RCxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN6QixNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztZQUNsQyxPQUFPLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge3ByZXBlbmRaZXJvfSBmcm9tICcuLi9waXBlL3V0aWwvbnVtYmVyLWhlbHBlcic7XG5cbmV4cG9ydCBjbGFzcyBEYXRlVXRpbCB7XG4gIC8qKlxuICAgKiDQktGL0YfQtdGB0YLRjCBuLdC00L3QtdC5XG4gICAqL1xuXG4gIHB1YmxpYyBzdGF0aWMgc3VidHJhY3REYXlzKGRhdGU6IERhdGUsIGRheXMgPSAwKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcblxuICAgICAgZHQuc2V0RGF0ZShkdC5nZXREYXRlKCkgLSBkYXlzKTtcbiAgICAgIHJldHVybiBkdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQlNC+0LHQsNCy0LjRgtGMIG4t0LTQvdC10LlcbiAgICovXG5cbiAgcHVibGljIHN0YXRpYyBhZGREYXlzKGRhdGU6IERhdGUsIGRheXMgPSAwKTogRGF0ZSB8IG51bGwge1xuICAgIGlmIChkYXRlICYmIGRhdGUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpKTtcblxuICAgICAgZHQuc2V0RGF0ZShkdC5nZXREYXRlKCkgKyBkYXlzKTtcbiAgICAgIHJldHVybiBkdDtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LvRg9GH0LjRgtGMINC00LDRgtGDINC40Lcg0YHRgtGA0L7QutC4XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHBhcnNlU3RyaW5nKGRhdDogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGlmICghZGF0IHx8IGRhdC5sZW5ndGggPCAxKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBwYXJ0cyA9IGRhdC5zcGxpdCgnICcpO1xuICAgIGNvbnN0IGR0UGFydCA9IHBhcnRzWzBdLnNwbGl0KCcuJyk7XG4gICAgY29uc3QgdFBhcnQgPSBwYXJ0c1sxXT8uc3BsaXQoJzonKSA/PyBbJzAnLCAnMCcsICcwJ107XG4gICAgY29uc3QgcGFyc2VkRGF0ZSA9IG5ldyBEYXRlKFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzJdLCAxMCksXG4gICAgICBwYXJzZUludChkdFBhcnRbMV0sIDEwKSAtIDEsXG4gICAgICBwYXJzZUludChkdFBhcnRbMF0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzBdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFsxXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMl0sIDEwKVxuICAgICk7XG4gICAgaWYgKGlzTmFOKHBhcnNlZERhdGUuZ2V0VGltZSgpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZWREYXRlO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0YDQuNCy0LXRgdGC0Lgg0LTQsNGC0YMg0Log0YHRgtGA0L7QutC1XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRvU3RyaW5nKGRhdDogRGF0ZSk6IHN0cmluZyB7XG4gICAgaWYgKCFkYXQgfHwgIShkYXQgaW5zdGFuY2VvZiBEYXRlKSkge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgICBjb25zdCBtb250aCA9IGRhdC5nZXRNb250aCgpICsgMTtcbiAgICByZXR1cm4gYCR7cHJlcGVuZFplcm8oZGF0LmdldERhdGUoKSwgMil9LiR7cHJlcGVuZFplcm8obW9udGgsIDIpfS4ke2RhdC5nZXRGdWxsWWVhcigpfSAke3ByZXBlbmRaZXJvKGRhdC5nZXRIb3VycygpLCAyKX06JHtwcmVwZW5kWmVybyhkYXQuZ2V0TWludXRlcygpLCAyKX06JHtwcmVwZW5kWmVybyhkYXQuZ2V0U2Vjb25kcygpLCAyKX1gO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7QtNCz0L7RgtC+0LLQutCwINC00LDRgtGLINC6INC+0YLQv9GA0LDQstC60LUg0L3QsCDRgdC10YDQstC10YAsINGH0YLQvtCx0Ysg0L3QtdCx0YvQu9C+INGB0LzQtdGJ0LXQvdC40Y8g0YfQsNGB0L7QslxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0VVRDMkRhdGVMb2NhbChkYXRlPzogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgdGltZXpvbmVPZmZzZXRNczogbnVtYmVyID1cbiAgICAgICAgbmV3IERhdGUoXG4gICAgICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgICAgICBkYXRlLmdldERhdGUoKVxuICAgICAgICApLmdldFRpbWV6b25lT2Zmc2V0KCkgKiA2MDAwMDtcbiAgICAgIHJldHVybiBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSAtIHRpbWV6b25lT2Zmc2V0TXMpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydERhdGVMb2NhbDJVVEMoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKFxuICAgICAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICAgICAgZGF0ZS5nZXREYXRlKClcbiAgICAgICAgKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gZGF0ZSA9PSBudWxsID8gbnVsbCA6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9XG4gICAgICAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFopPyQvaTtcbiAgICBpZiAodHlwZW9mIGlucHV0ID09PSAnc3RyaW5nJyAmJiByZWdleElzbzg2MDEudGVzdChpbnB1dCkpIHtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5jb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoaW5wdXQpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIGlucHV0ICE9PSAnb2JqZWN0JyB8fCAhaW5wdXQpIHtcbiAgICAgIHJldHVybiBpbnB1dDtcbiAgICB9XG4gICAgbGV0IHJlczogYW55IHwgYW55W107XG4gICAgaWYgKGlucHV0IGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICAgIHJlcyA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXMgPSB7fTtcbiAgICB9XG4gICAgcmV0dXJuIERhdGVVdGlsLmZpbGxDb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHJlcywgaW5wdXQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZXMoaW5wdXQ6IGFueSB8IGFueVtdKTogYW55IHwgYW55W10ge1xuICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnIHx8ICFpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydFVUQzJEYXRlTG9jYWwoaW5wdXQpO1xuICAgIH1cbiAgICBsZXQgcmVzOiBhbnkgfCBhbnlbXTtcbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgcmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gRGF0ZVV0aWwuZmlsbENvbnZlcnREYXRlcyhyZXMsIGlucHV0KTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0TW9udGhEYXlzQ291bnQoZGF0ZTogRGF0ZSk6IG51bWJlciB7XG4gICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpICsgMSwgMCkuZ2V0RGF0ZSgpO1xuICB9XG5cbiAgLy8g0JLQvtC30LLRgNCw0YnQsNC10YIg0YHQv9C40YHQvtC6INC80LXRgdGP0YbQtdCyINC80LXQttC00YMg0LTQstGD0LzRjyDQtNCw0YLQsNC80LhcbiAgcHVibGljIHN0YXRpYyBnZXRSYW5nZU9mTW9udGhzKHN0YXJ0OiBEYXRlLCBlbmQ6IERhdGUpOiBEYXRlW10ge1xuICAgIGlmIChzdGFydCA+IGVuZCB8fCAhc3RhcnQgfHwgIWVuZCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlc0RhdGVzOiBEYXRlW10gPSBbXTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGRhdGVUbXAgPSBuZXcgRGF0ZShzdGFydC5nZXRGdWxsWWVhcigpLCBzdGFydC5nZXRNb250aCgpICsgaSwgMSk7XG4gICAgd2hpbGUgKGVuZCA+PSBkYXRlVG1wKSB7XG4gICAgICByZXNEYXRlcy5wdXNoKGRhdGVUbXApO1xuICAgICAgaSsrO1xuICAgICAgZGF0ZVRtcCA9IG5ldyBEYXRlKHN0YXJ0LmdldEZ1bGxZZWFyKCksIHN0YXJ0LmdldE1vbnRoKCkgKyBpLCAxKTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc0RhdGVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvTW9udGgoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxLCAwLCAwLCAwKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvRGF5KGRhdGU6IERhdGUpOiBEYXRlIHtcbiAgICBjb25zdCByZXMgPSBuZXcgRGF0ZShcbiAgICAgIGRhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgIGRhdGUuZ2V0TW9udGgoKSxcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxuICAgICAgMCxcbiAgICAgIDAsXG4gICAgICAwXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0cnVuY2F0ZVRvSG91cihkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoXG4gICAgICBkYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICBkYXRlLmdldE1vbnRoKCksXG4gICAgICBkYXRlLmdldERhdGUoKSxcbiAgICAgIGRhdGUuZ2V0SG91cnMoKSxcbiAgICAgIDAsXG4gICAgICAwXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0lTT1N0cmluZyhkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiAoXG4gICAgICBuZXcgRGF0ZShkYXRlIC0gbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApXG4gICAgICAgIC50b0lTT1N0cmluZygpXG4gICAgICAgIC5zbGljZSgwLCAtNSkgKyAnWidcbiAgICApO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWlsbGlzZWNvbmRUb0h1bWFuRm9ybWF0KG1pbGxpU2Vjb25kczogbnVtYmVyLCBtYXhWYWx1ZSA9IDUwMDAsIHNob3dEYXlzID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gbWlsbGlTZWNvbmRzIDwgMDtcbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIG1pbGxpU2Vjb25kcyA9IC1taWxsaVNlY29uZHM7XG4gICAgfVxuICAgIGxldCBkO1xuICAgIGlmIChzaG93RGF5cykge1xuICAgICAgZCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjAgKiAyNCkpO1xuICAgICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiA2MCAqIDI0ICogZDtcbiAgICB9XG4gICAgY29uc3QgaCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjApKTtcbiAgICBtaWxsaVNlY29uZHMgPSBtaWxsaVNlY29uZHMgLSA2MDAwMCAqIDYwICogaDtcbiAgICBjb25zdCBtID0gTWF0aC50cnVuYyhtaWxsaVNlY29uZHMgLyA2MDAwMCk7XG4gICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiBtO1xuICAgIGNvbnN0IHMgPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvIDEwMDApO1xuICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDEwMDAgKiBzO1xuICAgIGNvbnN0IGZyYWMgPSBtaWxsaVNlY29uZHM7XG4gICAgbGV0IHJlc3VsdCA9IG0gPyBtICsgJyDQvCAnIDogJyc7IC8vIHN0YXJ0IHdpdGggbWludXRlc1xuICAgIGlmIChtYXhWYWx1ZSA8IDYwMDAwICogNjApIHtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHMgKyAnINGBICc7IC8vIGFkZCBzZWNvbmRzIHZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmKHMgPT09IDAgJiYgIW0pIHtcbiAgICAgICAgcmVzdWx0ID0gcmVzdWx0ICsgJzAgYydcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKG1heFZhbHVlIDwgNTAwMCkge1xuICAgICAgcmVzdWx0ID0gZnJhYyA/IHJlc3VsdCArIGZyYWMgKyAnINC80YEgJyA6IHJlc3VsdDtcbiAgICB9XG5cbiAgICBpZiAoaCkge1xuICAgICAgcmVzdWx0ID0gaCArICcg0YcgJyArIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKGQpIHtcbiAgICAgIHJlc3VsdCA9IGQgKyAn0LQgJyArIHJlc3VsdDtcbiAgICB9XG4gICAgaWYgKG5lZ2F0aXZlKSB7XG4gICAgICByZXN1bHQgPSAnLScgKyByZXN1bHQ7XG4gICAgfVxuXG5cblxuICAgIHJldHVybiByZXN1bHQudHJpbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZmlsbENvbnZlcnREYXRlcyhyZXN1bHQ6IGFueSwgaW5wdXQ6IGFueSk6IGFueSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkgfHwgIWlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBsZXQgdmFsdWUgPSBpbnB1dFtrZXldO1xuICAgICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBEYXRlKSB7XG4gICAgICAgICAgaWYgKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHZhbHVlID0gRGF0ZVV0aWwuY29udmVydFVUQzJEYXRlTG9jYWwodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXN1bHRba2V5XSA9IHZhbHVlO1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnREYXRlcyh2YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZmlsbENvbnZlcnREYXRlU3RyaW5nc1RvRGF0ZXMocmVzdWx0OiBhbnksIGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9XG4gICAgICAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFo/KT8kL2k7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KHZhbHVlKSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UoZGF0ZVN0cmluZyk7XG4gICAgaWYgKCFpc05hTihtaWxsaXNlY29uZHMpKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydERhdGVMb2NhbDJVVEMoZHQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
|
231
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS11dGlsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL3V0aWwvZGF0ZS11dGlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxNQUFNLE9BQU8sUUFBUTtJQUNuQjs7T0FFRztJQUVJLE1BQU0sQ0FBQyxZQUFZLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQzdDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUVJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBVSxFQUFFLElBQUksR0FBRyxDQUFDO1FBQ3hDLElBQUksSUFBSSxJQUFJLElBQUksWUFBWSxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUVwQyxFQUFFLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBVztRQUNuQyxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDM0IsT0FBTyxJQUFJ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T0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3JDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxRQUFRLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsQ0FBQztpQkFBTSxDQUFDO2dCQUNOLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU8sTUFBTSxDQUFDLHdCQUF3QixDQUFDLFVBQWtCO1FBQ3hELE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sRUFBRSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ2xDLE9BQU8sUUFBUSxDQUFDLG9CQUFvQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQzNDLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHByZXBlbmRaZXJvIH0gZnJvbSAnLi4vcGlwZS91dGlsL251bWJlci1oZWxwZXInO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVV0aWwge1xuICAvKipcbiAgICog0JLRi9GH0LXRgdGC0Ywgbi3QtNC90LXQuVxuICAgKi9cblxuICBwdWJsaWMgc3RhdGljIHN1YnRyYWN0RGF5cyhkYXRlOiBEYXRlLCBkYXlzID0gMCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG5cbiAgICAgIGR0LnNldERhdGUoZHQuZ2V0RGF0ZSgpIC0gZGF5cyk7XG4gICAgICByZXR1cm4gZHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0JTQvtCx0LDQstC40YLRjCBuLdC00L3QtdC5XG4gICAqL1xuXG4gIHB1YmxpYyBzdGF0aWMgYWRkRGF5cyhkYXRlOiBEYXRlLCBkYXlzID0gMCk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZShkYXRlLmdldFRpbWUoKSk7XG5cbiAgICAgIGR0LnNldERhdGUoZHQuZ2V0RGF0ZSgpICsgZGF5cyk7XG4gICAgICByZXR1cm4gZHQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvKipcbiAgICog0J/QvtC70YPRh9C40YLRjCDQtNCw0YLRgyDQuNC3INGB0YLRgNC+0LrQuFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBwYXJzZVN0cmluZyhkYXQ6IHN0cmluZyk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoIWRhdCB8fCBkYXQubGVuZ3RoIDwgMSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgcGFydHMgPSBkYXQuc3BsaXQoJyAnKTtcbiAgICBjb25zdCBkdFBhcnQgPSBwYXJ0c1swXS5zcGxpdCgnLicpO1xuICAgIGNvbnN0IHRQYXJ0ID0gcGFydHNbMV0/LnNwbGl0KCc6JykgPz8gWycwJywgJzAnLCAnMCddO1xuICAgIGNvbnN0IHBhcnNlZERhdGUgPSBuZXcgRGF0ZShcbiAgICAgIHBhcnNlSW50KGR0UGFydFsyXSwgMTApLFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzFdLCAxMCkgLSAxLFxuICAgICAgcGFyc2VJbnQoZHRQYXJ0WzBdLCAxMCksXG4gICAgICBwYXJzZUludCh0UGFydFswXSwgMTApLFxuICAgICAgcGFyc2VJbnQodFBhcnRbMV0sIDEwKSxcbiAgICAgIHBhcnNlSW50KHRQYXJ0WzJdLCAxMClcbiAgICApO1xuICAgIGlmIChpc05hTihwYXJzZWREYXRlLmdldFRpbWUoKSkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gcGFyc2VkRGF0ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9GA0LjQstC10YHRgtC4INC00LDRgtGDINC6INGB0YLRgNC+0LrQtVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB0b1N0cmluZyhkYXQ6IERhdGUpOiBzdHJpbmcge1xuICAgIGlmICghZGF0IHx8ICEoZGF0IGluc3RhbmNlb2YgRGF0ZSkpIHtcbiAgICAgIHJldHVybiAnJztcbiAgICB9XG4gICAgY29uc3QgbW9udGggPSBkYXQuZ2V0TW9udGgoKSArIDE7XG4gICAgcmV0dXJuIGAke3ByZXBlbmRaZXJvKGRhdC5nZXREYXRlKCksIDIpfS4ke3ByZXBlbmRaZXJvKG1vbnRoLCAyKX0uJHtkYXQuZ2V0RnVsbFllYXIoKX0gJHtwcmVwZW5kWmVybyhcbiAgICAgIGRhdC5nZXRIb3VycygpLFxuICAgICAgMlxuICAgICl9OiR7cHJlcGVuZFplcm8oZGF0LmdldE1pbnV0ZXMoKSwgMil9OiR7cHJlcGVuZFplcm8oZGF0LmdldFNlY29uZHMoKSwgMil9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiDQn9C+0LTQs9C+0YLQvtCy0LrQsCDQtNCw0YLRiyDQuiDQvtGC0L/RgNCw0LLQutC1INC90LAg0YHQtdGA0LLQtdGALCDRh9GC0L7QsdGLINC90LXQsdGL0LvQviDRgdC80LXRidC10L3QuNGPINGH0LDRgdC+0LJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgY29udmVydFVUQzJEYXRlTG9jYWwoZGF0ZT86IERhdGUpOiBEYXRlIHwgbnVsbCB7XG4gICAgaWYgKGRhdGUgJiYgZGF0ZSBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIGNvbnN0IHRpbWV6b25lT2Zmc2V0TXM6IG51bWJlciA9XG4gICAgICAgIG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSkuZ2V0VGltZXpvbmVPZmZzZXQoKSAqIDYwMDAwO1xuICAgICAgcmV0dXJuIG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpIC0gdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLyoqXG4gICAqINCf0L7QtNCz0L7RgtC+0LLQutCwINC00LDRgtGLINC6INC+0YLQv9GA0LDQstC60LUg0L3QsCDRgdC10YDQstC10YAsINGH0YLQvtCx0Ysg0L3QtdCx0YvQu9C+INGB0LzQtdGJ0LXQvdC40Y8g0YfQsNGB0L7QslxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZUxvY2FsMlVUQyhkYXRlPzogRGF0ZSk6IERhdGUgfCBudWxsIHtcbiAgICBpZiAoZGF0ZSAmJiBkYXRlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgY29uc3QgdGltZXpvbmVPZmZzZXRNczogbnVtYmVyID1cbiAgICAgICAgbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDA7XG4gICAgICByZXR1cm4gZGF0ZSA9PSBudWxsID8gbnVsbCA6IG5ldyBEYXRlKGRhdGUuZ2V0VGltZSgpICsgdGltZXpvbmVPZmZzZXRNcyk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBjb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGNvbnN0IHJlZ2V4SXNvODYwMSA9IC9eXFxkezR9LVxcZFxcZC1cXGRcXGRUXFxkXFxkOlxcZFxcZDpcXGRcXGQoXFwuXFxkKyk/KChbKy1dXFxkXFxkOlxcZFxcZCl8Wik/JC9pO1xuICAgIGlmICh0eXBlb2YgaW5wdXQgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KGlucHV0KSkge1xuICAgICAgcmV0dXJuIERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZShpbnB1dCk7XG4gICAgfVxuICAgIGlmICh0eXBlb2YgaW5wdXQgIT09ICdvYmplY3QnIHx8ICFpbnB1dCkge1xuICAgICAgcmV0dXJuIGlucHV0O1xuICAgIH1cbiAgICBsZXQgcmVzOiBhbnkgfCBhbnlbXTtcbiAgICBpZiAoaW5wdXQgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgICAgcmVzID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlcyA9IHt9O1xuICAgIH1cbiAgICByZXR1cm4gRGF0ZVV0aWwuZmlsbENvbnZlcnREYXRlU3RyaW5nc1RvRGF0ZXMocmVzLCBpbnB1dCk7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGNvbnZlcnREYXRlcyhpbnB1dDogYW55IHwgYW55W10pOiBhbnkgfCBhbnlbXSB7XG4gICAgaWYgKHR5cGVvZiBpbnB1dCAhPT0gJ29iamVjdCcgfHwgIWlucHV0KSB7XG4gICAgICByZXR1cm4gaW5wdXQ7XG4gICAgfVxuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIERhdGUpIHtcbiAgICAgIHJldHVybiBEYXRlVXRpbC5jb252ZXJ0VVRDMkRhdGVMb2NhbChpbnB1dCk7XG4gICAgfVxuICAgIGxldCByZXM6IGFueSB8IGFueVtdO1xuICAgIGlmIChpbnB1dCBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgICByZXMgPSBbXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVzID0ge307XG4gICAgfVxuICAgIHJldHVybiBEYXRlVXRpbC5maWxsQ29udmVydERhdGVzKHJlcywgaW5wdXQpO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXRNb250aERheXNDb3VudChkYXRlOiBEYXRlKTogbnVtYmVyIHtcbiAgICByZXR1cm4gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCAwKS5nZXREYXRlKCk7XG4gIH1cblxuICAvLyDQktC+0LfQstGA0LDRidCw0LXRgiDRgdC/0LjRgdC+0Log0LzQtdGB0Y/RhtC10LIg0LzQtdC20LTRgyDQtNCy0YPQvNGPINC00LDRgtCw0LzQuFxuICBwdWJsaWMgc3RhdGljIGdldFJhbmdlT2ZNb250aHMoc3RhcnQ6IERhdGUsIGVuZDogRGF0ZSk6IERhdGVbXSB7XG4gICAgaWYgKHN0YXJ0ID4gZW5kIHx8ICFzdGFydCB8fCAhZW5kKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgY29uc3QgcmVzRGF0ZXM6IERhdGVbXSA9IFtdO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgZGF0ZVRtcCA9IG5ldyBEYXRlKHN0YXJ0LmdldEZ1bGxZZWFyKCksIHN0YXJ0LmdldE1vbnRoKCkgKyBpLCAxKTtcbiAgICB3aGlsZSAoZW5kID49IGRhdGVUbXApIHtcbiAgICAgIHJlc0RhdGVzLnB1c2goZGF0ZVRtcCk7XG4gICAgICBpKys7XG4gICAgICBkYXRlVG1wID0gbmV3IERhdGUoc3RhcnQuZ2V0RnVsbFllYXIoKSwgc3RhcnQuZ2V0TW9udGgoKSArIGksIDEpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzRGF0ZXM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlVG9Nb250aChkYXRlOiBEYXRlKTogRGF0ZSB7XG4gICAgY29uc3QgcmVzID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEsIDAsIDAsIDApO1xuICAgIHJldHVybiByZXM7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIHRydW5jYXRlVG9EYXkoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgMCwgMCwgMCk7XG4gICAgcmV0dXJuIHJlcztcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgdHJ1bmNhdGVUb0hvdXIoZGF0ZTogRGF0ZSk6IERhdGUge1xuICAgIGNvbnN0IHJlcyA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgZGF0ZS5nZXRIb3VycygpLCAwLCAwKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyB0b0lTT1N0cmluZyhkYXRlOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIHJldHVybiBuZXcgRGF0ZShkYXRlIC0gbmV3IERhdGUoKS5nZXRUaW1lem9uZU9mZnNldCgpICogNjAwMDApLnRvSVNPU3RyaW5nKCkuc2xpY2UoMCwgLTUpICsgJ1onO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBpc1ZhbGlkRGF0ZShkYXRlOiBhbnkpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZGF0ZSBpbnN0YW5jZW9mIERhdGUgJiYgIWlzTmFOKGRhdGUuZ2V0VGltZSgpKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgbWlsbGlzZWNvbmRUb0h1bWFuRm9ybWF0KG1pbGxpU2Vjb25kczogbnVtYmVyLCBtYXhWYWx1ZSA9IDUwMDAsIHNob3dEYXlzID0gZmFsc2UpOiBzdHJpbmcge1xuICAgIGNvbnN0IG5lZ2F0aXZlID0gbWlsbGlTZWNvbmRzIDwgMDtcbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIG1pbGxpU2Vjb25kcyA9IC1taWxsaVNlY29uZHM7XG4gICAgfVxuICAgIGxldCBkO1xuICAgIGlmIChzaG93RGF5cykge1xuICAgICAgZCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjAgKiAyNCkpO1xuICAgICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiA2MCAqIDI0ICogZDtcbiAgICB9XG4gICAgY29uc3QgaCA9IE1hdGgudHJ1bmMobWlsbGlTZWNvbmRzIC8gKDYwMDAwICogNjApKTtcbiAgICBtaWxsaVNlY29uZHMgPSBtaWxsaVNlY29uZHMgLSA2MDAwMCAqIDYwICogaDtcbiAgICBjb25zdCBtID0gTWF0aC50cnVuYyhtaWxsaVNlY29uZHMgLyA2MDAwMCk7XG4gICAgbWlsbGlTZWNvbmRzID0gbWlsbGlTZWNvbmRzIC0gNjAwMDAgKiBtO1xuICAgIGNvbnN0IHMgPSBNYXRoLnRydW5jKG1pbGxpU2Vjb25kcyAvIDEwMDApO1xuICAgIG1pbGxpU2Vjb25kcyA9IG1pbGxpU2Vjb25kcyAtIDEwMDAgKiBzO1xuICAgIGNvbnN0IGZyYWMgPSBtaWxsaVNlY29uZHM7XG4gICAgbGV0IHJlc3VsdCA9IG0gPyBtICsgJyDQvCAnIDogJyc7IC8vIHN0YXJ0IHdpdGggbWludXRlc1xuICAgIGlmIChtYXhWYWx1ZSA8IDYwMDAwICogNjApIHtcbiAgICAgIGlmIChzKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArIHMgKyAnINGBICc7IC8vIGFkZCBzZWNvbmRzIHZhbHVlXG4gICAgICB9XG5cbiAgICAgIGlmIChzID09PSAwICYmICFtKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdCArICcwIGMnO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAobWF4VmFsdWUgPCA1MDAwKSB7XG4gICAgICByZXN1bHQgPSBmcmFjID8gcmVzdWx0ICsgZnJhYyArICcg0LzRgSAnIDogcmVzdWx0O1xuICAgIH1cblxuICAgIGlmIChoKSB7XG4gICAgICByZXN1bHQgPSBoICsgJyDRhyAnICsgcmVzdWx0O1xuICAgIH1cbiAgICBpZiAoZCkge1xuICAgICAgcmVzdWx0ID0gZCArICfQtCAnICsgcmVzdWx0O1xuICAgIH1cbiAgICBpZiAobmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9ICctJyArIHJlc3VsdDtcbiAgICB9XG5cbiAgICByZXR1cm4gcmVzdWx0LnRyaW0oKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZXMocmVzdWx0OiBhbnksIGlucHV0OiBhbnkpOiBhbnkge1xuICAgIGZvciAoY29uc3Qga2V5IGluIGlucHV0KSB7XG4gICAgICBpZiAoIWlucHV0Lmhhc093blByb3BlcnR5IHx8ICFpbnB1dC5oYXNPd25Qcm9wZXJ0eShrZXkpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKGlucHV0Lmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgbGV0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgICAgaWYgKHZhbHVlIGluc3RhbmNlb2YgRGF0ZSkge1xuICAgICAgICAgIGlmICh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB2YWx1ZSA9IERhdGVVdGlsLmNvbnZlcnRVVEMyRGF0ZUxvY2FsKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZXModmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGZpbGxDb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHJlc3VsdDogYW55LCBpbnB1dDogYW55KTogYW55IHtcbiAgICBjb25zdCByZWdleElzbzg2MDEgPSAvXlxcZHs0fS1cXGRcXGQtXFxkXFxkVFxcZFxcZDpcXGRcXGQ6XFxkXFxkKFxcLlxcZCspPygoWystXVxcZFxcZDpcXGRcXGQpfFo/KT8kL2k7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gaW5wdXQpIHtcbiAgICAgIGlmICghaW5wdXQuaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhbHVlID0gaW5wdXRba2V5XTtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmIHJlZ2V4SXNvODYwMS50ZXN0KHZhbHVlKSkge1xuICAgICAgICByZXN1bHRba2V5XSA9IERhdGVVdGlsLmNvbnZlcnRTdHJpbmdUb0xvY2FsRGF0ZSh2YWx1ZSk7XG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgcmVzdWx0W2tleV0gPSBEYXRlVXRpbC5jb252ZXJ0RGF0ZVN0cmluZ3NUb0RhdGVzKHZhbHVlKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdFtrZXldID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0U3RyaW5nVG9Mb2NhbERhdGUoZGF0ZVN0cmluZzogc3RyaW5nKTogRGF0ZSB8IG51bGwge1xuICAgIGNvbnN0IG1pbGxpc2Vjb25kcyA9IERhdGUucGFyc2UoZGF0ZVN0cmluZyk7XG4gICAgaWYgKCFpc05hTihtaWxsaXNlY29uZHMpKSB7XG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKG1pbGxpc2Vjb25kcyk7XG4gICAgICByZXR1cm4gRGF0ZVV0aWwuY29udmVydERhdGVMb2NhbDJVVEMoZHQpO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxufVxuIl19
|
|
@@ -19,4 +19,4 @@ export const exportDomToImage = (node, type = ExportType.png, options) => {
|
|
|
19
19
|
const render = renderMapping.get(type) ?? toPng;
|
|
20
20
|
return render(node, { filter: options?.filter ?? null });
|
|
21
21
|
};
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LWRvbS1pbWFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2V4cG9ydC1kb20taW1hZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXBGLE1BQU0sQ0FBTixJQUFZLFVBT1g7QUFQRCxXQUFZLFVBQVU7SUFDcEIseUNBQUcsQ0FBQTtJQUNILHlDQUFHLENBQUE7SUFDSCwyQ0FBSSxDQUFBO0lBQ0osMkNBQUksQ0FBQTtJQUNKLCtDQUFNLENBQUE7SUFDTixxREFBUyxDQUFBO0FBQ1gsQ0FBQyxFQVBXLFVBQVUsS0FBVixVQUFVLFFBT3JCO0FBTUQsTUFBTSxhQUFhLEdBQUcsSUFBSSxHQUFHLEVBQW1CO0tBQzdDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDO0tBQ2hDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLE1BQU0sQ0FBQztLQUM1QixHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUM7S0FDMUIsR0FBRyxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFFMUMsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxJQUFpQixFQUFFLElBQUksR0FBRyxVQUFVLENBQUMsR0FBRyxFQUFFLE9BQXVCLEVBQUUsRUFBRTtJQUNwRyxNQUFNLE1BQU0sR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssQ0FBQztJQUNoRCxPQUFPLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsT0FBTyxFQUFFLE1BQU0sSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQzNELENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHRvUG5nLCB0b0Jsb2IsIHRvQ2FudmFzLCB0b0pwZWcsIHRvU3ZnLCB0b1BpeGVsRGF0YSB9IGZyb20gJ2h0bWwtdG8taW1hZ2UnO1xuXG5leHBvcnQgZW51bSBFeHBvcnRUeXBlIHtcbiAgcG5nLFxuICBzdmcsXG4gIGpwZWcsXG4gIGJsb2IsXG4gIGNhbnZhcyxcbiAgcGl4ZWxEYXRhLFxufVxuXG5leHBvcnQgdHlwZSBFeHBvcnRPcHRpb25zID0ge1xuICBmaWx0ZXI6IChub2RlOiBIVE1MRWxlbWVudCkgPT4gYm9vbGVhbjtcbn07XG5cbmNvbnN0IHJlbmRlck1hcHBpbmcgPSBuZXcgTWFwPEV4cG9ydFR5cGUsIGFueT4oKVxuICAuc2V0KEV4cG9ydFR5cGUuYmxvYiwgdG9CbG9iKVxuICAuc2V0KEV4cG9ydFR5cGUucG5nLCB0b1BuZylcbiAgLnNldChFeHBvcnRUeXBlLmNhbnZhcywgdG9DYW52YXMpXG4gIC5zZXQoRXhwb3J0VHlwZS5qcGVnLCB0b0pwZWcpXG4gIC5zZXQoRXhwb3J0VHlwZS5zdmcsIHRvU3ZnKVxuICAuc2V0KEV4cG9ydFR5cGUucGl4ZWxEYXRhLCB0b1BpeGVsRGF0YSk7XG5cbmV4cG9ydCBjb25zdCBleHBvcnREb21Ub0ltYWdlID0gKG5vZGU6IEhUTUxFbGVtZW50LCB0eXBlID0gRXhwb3J0VHlwZS5wbmcsIG9wdGlvbnM/OiBFeHBvcnRPcHRpb25zKSA9PiB7XG4gIGNvbnN0IHJlbmRlciA9IHJlbmRlck1hcHBpbmcuZ2V0KHR5cGUpID8/IHRvUG5nO1xuICByZXR1cm4gcmVuZGVyKG5vZGUsIHsgZmlsdGVyOiBvcHRpb25zPy5maWx0ZXIgPz8gbnVsbCB9KTtcbn07XG4iXX0=
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { ControlContainer,
|
|
1
|
+
import { inject } from '@angular/core';
|
|
2
|
+
import { ControlContainer, UntypedFormControl, UntypedFormGroup, Validators, } from '@angular/forms';
|
|
3
3
|
import { ArrayUtil } from '../common/util/array-util';
|
|
4
4
|
import { FilterType } from '../component/filter/enum/filter-type.enum';
|
|
5
5
|
export class FormsUtil {
|
|
6
6
|
static validateAllFormFields(formGroup) {
|
|
7
7
|
formGroup.updateValueAndValidity();
|
|
8
|
-
Object.keys(formGroup.controls).forEach(field => {
|
|
8
|
+
Object.keys(formGroup.controls).forEach((field) => {
|
|
9
9
|
const control = formGroup.get(field);
|
|
10
10
|
if (control instanceof UntypedFormControl) {
|
|
11
11
|
control.markAsTouched({ onlySelf: true });
|
|
@@ -17,8 +17,7 @@ export class FormsUtil {
|
|
|
17
17
|
});
|
|
18
18
|
}
|
|
19
19
|
static controlIsInvalid(formGroup, controlName) {
|
|
20
|
-
return
|
|
21
|
-
formGroup.controls[controlName]?.dirty);
|
|
20
|
+
return formGroup.controls[controlName]?.invalid && formGroup.controls[controlName]?.dirty;
|
|
22
21
|
}
|
|
23
22
|
static getControlErrors(formGroup, controlName) {
|
|
24
23
|
if (FormsUtil.controlIsInvalid(formGroup, controlName)) {
|
|
@@ -27,19 +26,12 @@ export class FormsUtil {
|
|
|
27
26
|
return [];
|
|
28
27
|
}
|
|
29
28
|
static matchValuesValidator(matchTo) {
|
|
30
|
-
return (control) => !!control.parent &&
|
|
31
|
-
!!control.parent.value &&
|
|
32
|
-
control.value === control.parent.controls[matchTo].value
|
|
29
|
+
return (control) => !!control.parent && !!control.parent.value && control.value === control.parent.controls[matchTo].value
|
|
33
30
|
? null
|
|
34
31
|
: { isMatching: false };
|
|
35
32
|
}
|
|
36
33
|
static requiredIf(value) {
|
|
37
|
-
return (control) => !!control.parent &&
|
|
38
|
-
!!control.parent.value &&
|
|
39
|
-
control.value != null &&
|
|
40
|
-
value
|
|
41
|
-
? null
|
|
42
|
-
: { isMatching: false };
|
|
34
|
+
return (control) => !!control.parent && !!control.parent.value && control.value != null && value ? null : { isMatching: false };
|
|
43
35
|
}
|
|
44
36
|
static initFormFromColumns(columns, dataItem) {
|
|
45
37
|
const form = new UntypedFormGroup({});
|
|
@@ -56,10 +48,7 @@ export class FormsUtil {
|
|
|
56
48
|
disabled: !column.editable,
|
|
57
49
|
}, {
|
|
58
50
|
validators: FormsUtil.getValidators(column),
|
|
59
|
-
updateOn: column.filterType === FilterType.number ||
|
|
60
|
-
column.filterType === FilterType.string
|
|
61
|
-
? 'blur'
|
|
62
|
-
: 'change',
|
|
51
|
+
updateOn: column.filterType === FilterType.number || column.filterType === FilterType.string ? 'blur' : 'change',
|
|
63
52
|
});
|
|
64
53
|
}
|
|
65
54
|
static getValidators(column) {
|
|
@@ -90,14 +79,7 @@ export class FormsUtil {
|
|
|
90
79
|
}
|
|
91
80
|
static { this.formProvider = {
|
|
92
81
|
provide: ControlContainer,
|
|
93
|
-
useFactory:
|
|
94
|
-
deps: [
|
|
95
|
-
[new Optional(), NgForm],
|
|
96
|
-
[new Optional(), NgModelGroup],
|
|
97
|
-
],
|
|
82
|
+
useFactory: () => inject(ControlContainer, { skipSelf: true })
|
|
98
83
|
}; }
|
|
99
|
-
static formFactory(ngForm, ngModelGroup) {
|
|
100
|
-
return ngModelGroup || ngForm || null;
|
|
101
|
-
}
|
|
102
84
|
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLE1BQU0sRUFDTixZQUFZLEVBQ1osa0JBQWtCLEVBQ2xCLGdCQUFnQixFQUVoQixVQUFVLEdBQ1gsTUFBTSxnQkFBZ0IsQ0FBQztBQUV4QixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBR3ZFLE1BQU0sT0FBTyxTQUFTO0lBQ3BCLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxTQUEyQjtRQUN0RCxTQUFTLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUNuQyxNQUFNLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDOUMsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFNLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQTJCLEVB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QkFBZ0I7UUFDekIsVUFBVSxFQUFFLFNBQVMsQ0FBQyxXQUFXO1FBQ2pDLElBQUksRUFBRTtZQUNKLENBQUMsSUFBSSxRQUFRLEVBQUUsRUFBRSxNQUFNLENBQUM7WUFDeEIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLFlBQVksQ0FBQztTQUMvQjtLQUNGLENBQUM7SUFFRixNQUFNLENBQUMsV0FBVyxDQUFDLE1BQWMsRUFBRSxZQUEwQjtRQUMzRCxPQUFPLFlBQVksSUFBSSxNQUFNLElBQUksSUFBSSxDQUFDO0lBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb25hbCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgTmdGb3JtLFxuICBOZ01vZGVsR3JvdXAsXG4gIFVudHlwZWRGb3JtQ29udHJvbCxcbiAgVW50eXBlZEZvcm1Hcm91cCxcbiAgVmFsaWRhdGlvbkVycm9ycyxcbiAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBcnJheVV0aWwgfSBmcm9tICcuLi9jb21tb24vdXRpbC9hcnJheS11dGlsJztcbmltcG9ydCB7IEZpbHRlclR5cGUgfSBmcm9tICcuLi9jb21wb25lbnQvZmlsdGVyL2VudW0vZmlsdGVyLXR5cGUuZW51bSc7XG5pbXBvcnQgeyBUYWJsZUNvbHVtbiB9IGZyb20gJy4uL2NvbXBvbmVudC90YWJsZS9jb250cmFjdC90YWJsZS1jb2x1bW4nO1xuXG5leHBvcnQgY2xhc3MgRm9ybXNVdGlsIHtcbiAgc3RhdGljIHZhbGlkYXRlQWxsRm9ybUZpZWxkcyhmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICBmb3JtR3JvdXAudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIE9iamVjdC5rZXlzKGZvcm1Hcm91cC5jb250cm9scykuZm9yRWFjaChmaWVsZCA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gZm9ybUdyb3VwLmdldChmaWVsZCk7XG4gICAgICBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtQ29udHJvbCkge1xuICAgICAgICBjb250cm9sLm1hcmtBc1RvdWNoZWQoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgICAgY29udHJvbC5tYXJrQXNEaXJ0eSh7IG9ubHlTZWxmOiB0cnVlIH0pO1xuICAgICAgfSBlbHNlIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgICB0aGlzLnZhbGlkYXRlQWxsRm9ybUZpZWxkcyhjb250cm9sKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHN0YXRpYyBjb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZykge1xuICAgIHJldHVybiAoXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5pbnZhbGlkICYmXG4gICAgICBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eVxuICAgICk7XG4gIH1cblxuICBzdGF0aWMgZ2V0Q29udHJvbEVycm9ycyhcbiAgICBmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsXG4gICAgY29udHJvbE5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmdbXSB7XG4gICAgaWYgKEZvcm1zVXRpbC5jb250cm9sSXNJbnZhbGlkKGZvcm1Hcm91cCwgY29udHJvbE5hbWUpKSB7XG4gICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uZXJyb3JzKTtcbiAgICB9XG4gICAgcmV0dXJuIFtdO1xuICB9XG5cbiAgc3RhdGljIG1hdGNoVmFsdWVzVmFsaWRhdG9yKFxuICAgIG1hdGNoVG86IHN0cmluZ1xuICApOiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSA9PiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PlxuICAgICAgISFjb250cm9sLnBhcmVudCAmJlxuICAgICAgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJlxuICAgICAgY29udHJvbC52YWx1ZSA9PT0gY29udHJvbC5wYXJlbnQuY29udHJvbHNbbWF0Y2hUb10udmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIHJlcXVpcmVkSWYoXG4gICAgdmFsdWU6IGJvb2xlYW5cbiAgKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiZcbiAgICAgICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiZcbiAgICAgIGNvbnRyb2wudmFsdWUgIT0gbnVsbCAmJlxuICAgICAgdmFsdWVcbiAgICAgICAgPyBudWxsXG4gICAgICAgIDogeyBpc01hdGNoaW5nOiBmYWxzZSB9O1xuICB9XG5cbiAgc3RhdGljIGluaXRGb3JtRnJvbUNvbHVtbnMoY29sdW1uczogVGFibGVDb2x1bW5bXSwgZGF0YUl0ZW06IGFueSkge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7fSk7XG4gICAgY29uc3QgZmxhdCA9IEFycmF5VXRpbC5mbGF0dGVuKGNvbHVtbnMsICdjb2x1bW5zJyk7XG4gICAgZmxhdC5mb3JFYWNoKChjb2x1bW46IFRhYmxlQ29sdW1uKSA9PiB7XG4gICAgICBjb25zdCBjb250cm9sID0gRm9ybXNVdGlsLmluaXRDb250cm9sRnJvbUNvbHVtbihjb2x1bW4sIGRhdGFJdGVtKTtcbiAgICAgIGZvcm0ucmVnaXN0ZXJDb250cm9sKGNvbHVtbi5uYW1lLCBjb250cm9sKTtcbiAgICB9KTtcbiAgICByZXR1cm4gZm9ybTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uOiBUYWJsZUNvbHVtbiwgZGF0YUl0ZW06IGFueSkge1xuICAgIHJldHVybiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFxuICAgICAge1xuICAgICAgICB2YWx1ZTogZGF0YUl0ZW0gPyBkYXRhSXRlbVtjb2x1bW4ubmFtZV0gOiB1bmRlZmluZWQsXG4gICAgICAgIGRpc2FibGVkOiAhY29sdW1uLmVkaXRhYmxlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgdmFsaWRhdG9yczogRm9ybXNVdGlsLmdldFZhbGlkYXRvcnMoY29sdW1uKSxcbiAgICAgICAgdXBkYXRlT246XG4gICAgICAgICAgY29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUubnVtYmVyIHx8XG4gICAgICAgICAgY29sdW1uLmZpbHRlclR5cGUgPT09IEZpbHRlclR5cGUuc3RyaW5nXG4gICAgICAgICAgICA/ICdibHVyJ1xuICAgICAgICAgICAgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiBGb3Jtc1V0aWwuZm9ybUZhY3RvcnksXG4gICAgZGVwczogW1xuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ0Zvcm1dLFxuICAgICAgW25ldyBPcHRpb25hbCgpLCBOZ01vZGVsR3JvdXBdLFxuICAgIF0sXG4gIH07XG5cbiAgc3RhdGljIGZvcm1GYWN0b3J5KG5nRm9ybTogTmdGb3JtLCBuZ01vZGVsR3JvdXA6IE5nTW9kZWxHcm91cCkge1xuICAgIHJldHVybiBuZ01vZGVsR3JvdXAgfHwgbmdGb3JtIHx8IG51bGw7XG4gIH1cbn1cbiJdfQ==
|
|
85
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXMtdXRpbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy91dGlsL2Zvcm1zLXV0aWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLE1BQU0sRUFBVyxNQUFNLGVBQWUsQ0FBQztBQUMvQyxPQUFPLEVBRUwsZ0JBQWdCLEVBQ2hCLGtCQUFrQixFQUNsQixnQkFBZ0IsRUFFaEIsVUFBVSxHQUNYLE1BQU0sZ0JBQWdCLENBQUM7QUFFeEIsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUd2RSxNQUFNLE9BQU8sU0FBUztJQUNwQixNQUFNLENBQUMscUJBQXFCLENBQUMsU0FBMkI7UUFDdEQsU0FBUyxDQUFDLHNCQUFzQixFQUFFLENBQUM7UUFDbkMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUU7WUFDaEQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFJLE9BQU8sWUFBWSxrQkFBa0IsRUFBRSxDQUFDO2dCQUMxQyxPQUFPLENBQUMsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7Z0JBQzFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztZQUMxQyxDQUFDO2lCQUFNLElBQUksT0FBTyxZQUFZLGdCQUFnQixFQUFFLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxDQUFDLGdCQUFnQixDQUFDLFNBQTJCLEVBQUUsV0FBbUI7UUFDdEUs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LE1BQU0sQ0FBQyxnQkFBZ0IsRUFBRSxFQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUMsQ0FBQztLQUM3RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtpbmplY3QsIFByb3ZpZGVyfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFic3RyYWN0Q29udHJvbCxcbiAgQ29udHJvbENvbnRhaW5lcixcbiAgVW50eXBlZEZvcm1Db250cm9sLFxuICBVbnR5cGVkRm9ybUdyb3VwLFxuICBWYWxpZGF0aW9uRXJyb3JzLFxuICBWYWxpZGF0b3JzLFxufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFycmF5VXRpbCB9IGZyb20gJy4uL2NvbW1vbi91dGlsL2FycmF5LXV0aWwnO1xuaW1wb3J0IHsgRmlsdGVyVHlwZSB9IGZyb20gJy4uL2NvbXBvbmVudC9maWx0ZXIvZW51bS9maWx0ZXItdHlwZS5lbnVtJztcbmltcG9ydCB7IFRhYmxlQ29sdW1uIH0gZnJvbSAnLi4vY29tcG9uZW50L3RhYmxlL2NvbnRyYWN0L3RhYmxlLWNvbHVtbic7XG5cbmV4cG9ydCBjbGFzcyBGb3Jtc1V0aWwge1xuICBzdGF0aWMgdmFsaWRhdGVBbGxGb3JtRmllbGRzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCkge1xuICAgIGZvcm1Hcm91cC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgT2JqZWN0LmtleXMoZm9ybUdyb3VwLmNvbnRyb2xzKS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IGZvcm1Hcm91cC5nZXQoZmllbGQpO1xuICAgICAgaWYgKGNvbnRyb2wgaW5zdGFuY2VvZiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgY29udHJvbC5tYXJrQXNUb3VjaGVkKHsgb25seVNlbGY6IHRydWUgfSk7XG4gICAgICAgIGNvbnRyb2wubWFya0FzRGlydHkoeyBvbmx5U2VsZjogdHJ1ZSB9KTtcbiAgICAgIH0gZWxzZSBpZiAoY29udHJvbCBpbnN0YW5jZW9mIFVudHlwZWRGb3JtR3JvdXApIHtcbiAgICAgICAgdGhpcy52YWxpZGF0ZUFsbEZvcm1GaWVsZHMoY29udHJvbCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBzdGF0aWMgY29udHJvbElzSW52YWxpZChmb3JtR3JvdXA6IFVudHlwZWRGb3JtR3JvdXAsIGNvbnRyb2xOYW1lOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gZm9ybUdyb3VwLmNvbnRyb2xzW2NvbnRyb2xOYW1lXT8uaW52YWxpZCAmJiBmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5kaXJ0eTtcbiAgfVxuXG4gIHN0YXRpYyBnZXRDb250cm9sRXJyb3JzKGZvcm1Hcm91cDogVW50eXBlZEZvcm1Hcm91cCwgY29udHJvbE5hbWU6IHN0cmluZyk6IHN0cmluZ1tdIHtcbiAgICBpZiAoRm9ybXNVdGlsLmNvbnRyb2xJc0ludmFsaWQoZm9ybUdyb3VwLCBjb250cm9sTmFtZSkpIHtcbiAgICAgIHJldHVybiBPYmplY3Qua2V5cyhmb3JtR3JvdXAuY29udHJvbHNbY29udHJvbE5hbWVdPy5lcnJvcnMpO1xuICAgIH1cbiAgICByZXR1cm4gW107XG4gIH1cblxuICBzdGF0aWMgbWF0Y2hWYWx1ZXNWYWxpZGF0b3IobWF0Y2hUbzogc3RyaW5nKTogKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCkgPT4gVmFsaWRhdGlvbkVycm9ycyB8IG51bGwge1xuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT5cbiAgICAgICEhY29udHJvbC5wYXJlbnQgJiYgISFjb250cm9sLnBhcmVudC52YWx1ZSAmJiBjb250cm9sLnZhbHVlID09PSBjb250cm9sLnBhcmVudC5jb250cm9sc1ttYXRjaFRvXS52YWx1ZVxuICAgICAgICA/IG51bGxcbiAgICAgICAgOiB7IGlzTWF0Y2hpbmc6IGZhbHNlIH07XG4gIH1cblxuICBzdGF0aWMgcmVxdWlyZWRJZih2YWx1ZTogYm9vbGVhbik6IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpID0+IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsID0+XG4gICAgICAhIWNvbnRyb2wucGFyZW50ICYmICEhY29udHJvbC5wYXJlbnQudmFsdWUgJiYgY29udHJvbC52YWx1ZSAhPSBudWxsICYmIHZhbHVlID8gbnVsbCA6IHsgaXNNYXRjaGluZzogZmFsc2UgfTtcbiAgfVxuXG4gIHN0YXRpYyBpbml0Rm9ybUZyb21Db2x1bW5zKGNvbHVtbnM6IFRhYmxlQ29sdW1uW10sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICBjb25zdCBmb3JtID0gbmV3IFVudHlwZWRGb3JtR3JvdXAoe30pO1xuICAgIGNvbnN0IGZsYXQgPSBBcnJheVV0aWwuZmxhdHRlbihjb2x1bW5zLCAnY29sdW1ucycpO1xuICAgIGZsYXQuZm9yRWFjaCgoY29sdW1uOiBUYWJsZUNvbHVtbikgPT4ge1xuICAgICAgY29uc3QgY29udHJvbCA9IEZvcm1zVXRpbC5pbml0Q29udHJvbEZyb21Db2x1bW4oY29sdW1uLCBkYXRhSXRlbSk7XG4gICAgICBmb3JtLnJlZ2lzdGVyQ29udHJvbChjb2x1bW4ubmFtZSwgY29udHJvbCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBzdGF0aWMgaW5pdENvbnRyb2xGcm9tQ29sdW1uKGNvbHVtbjogVGFibGVDb2x1bW4sIGRhdGFJdGVtOiBhbnkpIHtcbiAgICByZXR1cm4gbmV3IFVudHlwZWRGb3JtQ29udHJvbChcbiAgICAgIHtcbiAgICAgICAgdmFsdWU6IGRhdGFJdGVtID8gZGF0YUl0ZW1bY29sdW1uLm5hbWVdIDogdW5kZWZpbmVkLFxuICAgICAgICBkaXNhYmxlZDogIWNvbHVtbi5lZGl0YWJsZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHZhbGlkYXRvcnM6IEZvcm1zVXRpbC5nZXRWYWxpZGF0b3JzKGNvbHVtbiksXG4gICAgICAgIHVwZGF0ZU9uOlxuICAgICAgICAgIGNvbHVtbi5maWx0ZXJUeXBlID09PSBGaWx0ZXJUeXBlLm51bWJlciB8fCBjb2x1bW4uZmlsdGVyVHlwZSA9PT0gRmlsdGVyVHlwZS5zdHJpbmcgPyAnYmx1cicgOiAnY2hhbmdlJyxcbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgc3RhdGljIGdldFZhbGlkYXRvcnMoY29sdW1uOiBUYWJsZUNvbHVtbikge1xuICAgIGNvbnN0IHZhbGlkYXRvcnMgPSBbXTtcbiAgICBpZiAoY29sdW1uLnJlcXVpcmVkKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goRm9ybXNVdGlsLnZhbGlkYXRvck5vdEVtcHR5KTtcbiAgICB9XG4gICAgaWYgKGNvbHVtbi5taW5WYWx1ZSAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5taW4oY29sdW1uLm1pblZhbHVlKSk7XG4gICAgfVxuICAgIGlmIChjb2x1bW4ubWF4VmFsdWUgIT0gbnVsbCkge1xuICAgICAgdmFsaWRhdG9ycy5wdXNoKFZhbGlkYXRvcnMubWF4KGNvbHVtbi5tYXhWYWx1ZSkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLm1heExlbmd0aCAhPSBudWxsKSB7XG4gICAgICB2YWxpZGF0b3JzLnB1c2goVmFsaWRhdG9ycy5tYXhMZW5ndGgoY29sdW1uLm1heExlbmd0aCkpO1xuICAgIH1cbiAgICBpZiAoY29sdW1uLnZhbGlkYXRvcnM/Lmxlbmd0aCA+IDApIHtcbiAgICAgIHZhbGlkYXRvcnMucHVzaCguLi5jb2x1bW4udmFsaWRhdG9ycyk7XG4gICAgfVxuICAgIHJldHVybiB2YWxpZGF0b3JzO1xuICB9XG5cbiAgc3RhdGljIHZhbGlkYXRvck5vdEVtcHR5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcbiAgICBpZiAoY29udHJvbD8udmFsdWU/LnRvU3RyaW5nKCk/LnRyaW0oKT8ubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybiB7IHJlcXVpcmVkOiB0cnVlIH07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgc3RhdGljIGZvcm1Qcm92aWRlcjogUHJvdmlkZXIgPSB7XG4gICAgcHJvdmlkZTogQ29udHJvbENvbnRhaW5lcixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBpbmplY3QoQ29udHJvbENvbnRhaW5lciwge3NraXBTZWxmOiB0cnVlfSlcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -2,10 +2,8 @@ export class StringUtil {
|
|
|
2
2
|
static firstLetterToLower(input) {
|
|
3
3
|
return input.charAt(0).toLocaleLowerCase() + input.slice(1);
|
|
4
4
|
}
|
|
5
|
-
;
|
|
6
5
|
static firstLetterToUpper(input) {
|
|
7
6
|
return input.charAt(0).toLocaleUpperCase() + input.slice(1);
|
|
8
7
|
}
|
|
9
|
-
;
|
|
10
8
|
}
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbC9zdHJpbmctdXRpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sVUFBVTtJQUNyQixNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFRCxNQUFNLENBQUMsa0JBQWtCLENBQUMsS0FBYTtRQUNyQyxPQUFPLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsaUJBQWlCLEVBQUUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBTdHJpbmdVdGlsIHtcbiAgc3RhdGljIGZpcnN0TGV0dGVyVG9Mb3dlcihpbnB1dDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIGlucHV0LmNoYXJBdCgwKS50b0xvY2FsZUxvd2VyQ2FzZSgpICsgaW5wdXQuc2xpY2UoMSk7XG4gIH1cblxuICBzdGF0aWMgZmlyc3RMZXR0ZXJUb1VwcGVyKGlucHV0OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaW5wdXQuY2hhckF0KDApLnRvTG9jYWxlVXBwZXJDYXNlKCkgKyBpbnB1dC5zbGljZSgxKTtcbiAgfVxufVxuIl19
|