@po-ui/ng-components 5.22.0 → 5.22.4
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/README.md +36 -36
- package/bundles/po-ui-ng-components.umd.js +38669 -38625
- package/bundles/po-ui-ng-components.umd.js.map +1 -1
- package/esm2015/lib/components/components.module.js +122 -122
- package/esm2015/lib/components/index.js +38 -38
- package/esm2015/lib/components/po-accordion/index.js +4 -4
- package/esm2015/lib/components/po-accordion/po-accordion-base.component.js +29 -29
- package/esm2015/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.js +66 -66
- package/esm2015/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.js +23 -23
- package/esm2015/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.js +24 -24
- package/esm2015/lib/components/po-accordion/po-accordion.component.js +70 -70
- package/esm2015/lib/components/po-accordion/po-accordion.module.js +52 -52
- package/esm2015/lib/components/po-accordion/services/po-accordion.service.js +27 -27
- package/esm2015/lib/components/po-avatar/index.js +3 -3
- package/esm2015/lib/components/po-avatar/po-avatar-base.component.js +68 -68
- package/esm2015/lib/components/po-avatar/po-avatar.component.js +42 -42
- package/esm2015/lib/components/po-avatar/po-avatar.module.js +18 -18
- package/esm2015/lib/components/po-badge/po-badge-base.component.js +89 -89
- package/esm2015/lib/components/po-badge/po-badge.component.js +16 -16
- package/esm2015/lib/components/po-badge/po-badge.module.js +18 -18
- package/esm2015/lib/components/po-breadcrumb/index.js +5 -5
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-base.component.js +48 -48
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.js +20 -20
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.js +77 -77
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.service.js +49 -49
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.js +27 -27
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb-item.interface.js +2 -2
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.component.js +159 -159
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.interface.js +2 -2
- package/esm2015/lib/components/po-breadcrumb/po-breadcrumb.module.js +28 -28
- package/esm2015/lib/components/po-button/index.js +3 -3
- package/esm2015/lib/components/po-button/po-button-base.component.js +127 -127
- package/esm2015/lib/components/po-button/po-button.component.js +69 -69
- package/esm2015/lib/components/po-button/po-button.module.js +20 -20
- package/esm2015/lib/components/po-button-group/index.js +5 -5
- package/esm2015/lib/components/po-button-group/po-button-group-base.component.js +95 -95
- package/esm2015/lib/components/po-button-group/po-button-group-item.interface.js +2 -2
- package/esm2015/lib/components/po-button-group/po-button-group-toggle.enum.js +17 -17
- package/esm2015/lib/components/po-button-group/po-button-group.component.js +43 -43
- package/esm2015/lib/components/po-button-group/po-button-group.module.js +20 -20
- package/esm2015/lib/components/po-calendar/index.js +4 -4
- package/esm2015/lib/components/po-calendar/po-calendar-base.component.js +176 -176
- package/esm2015/lib/components/po-calendar/po-calendar-header/po-calendar-header.component.js +24 -24
- package/esm2015/lib/components/po-calendar/po-calendar-mode.enum.js +13 -13
- package/esm2015/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.js +251 -251
- package/esm2015/lib/components/po-calendar/po-calendar.component.js +199 -199
- package/esm2015/lib/components/po-calendar/po-calendar.module.js +19 -19
- package/esm2015/lib/components/po-calendar/services/po-calendar.lang.service.js +187 -187
- package/esm2015/lib/components/po-calendar/services/po-calendar.service.js +44 -44
- package/esm2015/lib/components/po-chart/directives/po-resize-observer.directive.js +44 -44
- package/esm2015/lib/components/po-chart/enums/po-chart-type.enum.js +51 -51
- package/esm2015/lib/components/po-chart/helpers/po-chart-default-values.constant.js +18 -18
- package/esm2015/lib/components/po-chart/index.js +8 -8
- package/esm2015/lib/components/po-chart/interfaces/po-chart-axis-options.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-bar-coordinates.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-container-size.interface.js +11 -11
- package/esm2015/lib/components/po-chart/interfaces/po-chart-label-coordinates.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-min-max-values.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-options.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.js +2 -2
- package/esm2015/lib/components/po-chart/interfaces/po-chart-serie.interface.js +2 -2
- package/esm2015/lib/components/po-chart/po-chart-base.component.js +244 -244
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-label/po-chart-axis-label.component.js +23 -23
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-path/po-chart-axis-path.component.js +19 -19
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis.component.js +287 -287
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-base.component.js +94 -94
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-path/po-chart-bar-path.component.js +33 -33
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar.component.js +58 -58
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-column/po-chart-column.component.js +59 -59
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-label/po-chart-circular-label.component.js +29 -29
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-circular-path.component.js +35 -35
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-tooltip.directive.js +76 -76
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular.component.js +142 -142
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-donut/po-chart-donut.component.js +115 -115
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-pie/po-chart-pie.component.js +57 -57
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-container.component.js +119 -119
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-area/po-chart-area.component.js +77 -77
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.js +151 -151
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.js +41 -41
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-path/po-chart-path.component.js +65 -65
- package/esm2015/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.js +95 -95
- package/esm2015/lib/components/po-chart/po-chart-legend/po-chart-legend.component.js +21 -21
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.constant.js +11 -11
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.js +374 -374
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-dynamic-type.component.js +45 -45
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-series.interface.js +2 -2
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-text-content/po-chart-gauge-text-content.component.js +75 -75
- package/esm2015/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge.component.js +85 -85
- package/esm2015/lib/components/po-chart/po-chart.component.js +203 -203
- package/esm2015/lib/components/po-chart/po-chart.module.js +61 -61
- package/esm2015/lib/components/po-chart/services/po-chart-maths.service.js +135 -135
- package/esm2015/lib/components/po-chart/services/po-chart-svg-container.service.js +57 -57
- package/esm2015/lib/components/po-container/index.js +3 -3
- package/esm2015/lib/components/po-container/po-container-base.component.js +88 -88
- package/esm2015/lib/components/po-container/po-container.component.js +32 -32
- package/esm2015/lib/components/po-container/po-container.module.js +18 -18
- package/esm2015/lib/components/po-disclaimer/index.js +4 -4
- package/esm2015/lib/components/po-disclaimer/po-disclaimer-base.component.js +77 -77
- package/esm2015/lib/components/po-disclaimer/po-disclaimer.component.js +29 -29
- package/esm2015/lib/components/po-disclaimer/po-disclaimer.interface.js +2 -2
- package/esm2015/lib/components/po-disclaimer/po-disclaimer.module.js +17 -17
- package/esm2015/lib/components/po-disclaimer-group/index.js +5 -5
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group-base.component.js +194 -194
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group-remove-action.interface.js +2 -2
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.component.js +41 -41
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.interface.js +2 -2
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-group.module.js +20 -20
- package/esm2015/lib/components/po-disclaimer-group/po-disclaimer-remove/po-disclaimer-remove.component.js +30 -30
- package/esm2015/lib/components/po-divider/index.js +3 -3
- package/esm2015/lib/components/po-divider/po-divider-base.component.js +16 -16
- package/esm2015/lib/components/po-divider/po-divider.component.js +32 -32
- package/esm2015/lib/components/po-divider/po-divider.module.js +18 -18
- package/esm2015/lib/components/po-dropdown/index.js +4 -4
- package/esm2015/lib/components/po-dropdown/po-dropdown-action.interface.js +2 -2
- package/esm2015/lib/components/po-dropdown/po-dropdown-base.component.js +71 -71
- package/esm2015/lib/components/po-dropdown/po-dropdown.component.js +97 -97
- package/esm2015/lib/components/po-dropdown/po-dropdown.module.js +18 -18
- package/esm2015/lib/components/po-dynamic/index.js +11 -11
- package/esm2015/lib/components/po-dynamic/po-dynamic-field-type.enum.js +25 -25
- package/esm2015/lib/components/po-dynamic/po-dynamic-field.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.js +104 -104
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-field-internal.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.js +200 -200
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.js +129 -129
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.service.js +32 -32
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-operation/po-dynamic-form-operation.js +20 -20
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-response.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-validation.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.service.js +39 -39
- package/esm2015/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.js +167 -167
- package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.js +163 -163
- package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.js +2 -2
- package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.js +101 -101
- package/esm2015/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.js +17 -17
- package/esm2015/lib/components/po-dynamic/po-dynamic.module.js +35 -35
- package/esm2015/lib/components/po-dynamic/po-dynamic.util.js +18 -18
- package/esm2015/lib/components/po-field/index.js +51 -51
- package/esm2015/lib/components/po-field/po-checkbox/po-checkbox-base.component.js +98 -98
- package/esm2015/lib/components/po-field/po-checkbox/po-checkbox.component.js +94 -94
- package/esm2015/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option-view.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.js +297 -289
- package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.js +98 -98
- package/esm2015/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.js +20 -20
- package/esm2015/lib/components/po-field/po-clean/po-clean-base.component.js +42 -42
- package/esm2015/lib/components/po-field/po-clean/po-clean.component.js +33 -33
- package/esm2015/lib/components/po-field/po-clean/po-clean.module.js +18 -18
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-filter.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-group.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-option-group.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-combo-option.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/interfaces/po-response.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-combo/po-combo-base.component.js +749 -741
- package/esm2015/lib/components/po-field/po-combo/po-combo-filter-mode.enum.js +17 -17
- package/esm2015/lib/components/po-field/po-combo/po-combo-filter.service.js +78 -78
- package/esm2015/lib/components/po-field/po-combo/po-combo-option-template/po-combo-option-template.directive.js +81 -81
- package/esm2015/lib/components/po-field/po-combo/po-combo.component.js +525 -525
- package/esm2015/lib/components/po-field/po-datepicker/enums/po-datepicker-iso-format.enum.js +17 -17
- package/esm2015/lib/components/po-field/po-datepicker/po-datepicker-base.component.js +396 -396
- package/esm2015/lib/components/po-field/po-datepicker/po-datepicker.component.js +345 -345
- package/esm2015/lib/components/po-field/po-datepicker/po-datepicker.module.js +22 -22
- package/esm2015/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.js +475 -475
- package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.js +443 -443
- package/esm2015/lib/components/po-field/po-datepicker-range/po-datepicker-range.literals.js +27 -27
- package/esm2015/lib/components/po-field/po-decimal/po-decimal.component.js +598 -598
- package/esm2015/lib/components/po-field/po-email/po-email.component.js +106 -106
- package/esm2015/lib/components/po-field/po-field-container/po-field-container-bottom/po-field-container-bottom.component.js +29 -29
- package/esm2015/lib/components/po-field/po-field-container/po-field-container-literals.js +15 -15
- package/esm2015/lib/components/po-field/po-field-container/po-field-container.component.js +39 -39
- package/esm2015/lib/components/po-field/po-field-container/po-field-container.module.js +19 -19
- package/esm2015/lib/components/po-field/po-field-validate.model.js +69 -69
- package/esm2015/lib/components/po-field/po-field.model.js +78 -78
- package/esm2015/lib/components/po-field/po-field.module.js +156 -156
- package/esm2015/lib/components/po-field/po-input/po-input-base.component.js +357 -357
- package/esm2015/lib/components/po-field/po-input/po-input.component.js +56 -56
- package/esm2015/lib/components/po-field/po-input/po-mask.js +460 -460
- package/esm2015/lib/components/po-field/po-input-generic/po-input-generic.js +187 -187
- package/esm2015/lib/components/po-field/po-login/po-login.component.js +65 -65
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-advanced-filter.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-filter.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-filtered-items-params.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-literals.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/interfaces/po-lookup-response-api.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-lookup/po-lookup-base.component.js +451 -451
- package/esm2015/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.js +357 -347
- package/esm2015/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.js +130 -130
- package/esm2015/lib/components/po-field/po-lookup/po-lookup.component.js +337 -337
- package/esm2015/lib/components/po-field/po-lookup/services/po-lookup-filter.service.js +59 -59
- package/esm2015/lib/components/po-field/po-lookup/services/po-lookup-modal.service.js +62 -62
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-base.component.js +576 -573
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.js +139 -139
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter-mode.enum.js +17 -17
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-filter.service.js +50 -50
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.js +33 -33
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-option.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.js +57 -57
- package/esm2015/lib/components/po-field/po-multiselect/po-multiselect.component.js +359 -359
- package/esm2015/lib/components/po-field/po-number/po-number-base.component.js +114 -114
- package/esm2015/lib/components/po-field/po-number/po-number.component.js +119 -119
- package/esm2015/lib/components/po-field/po-password/po-password.component.js +92 -92
- package/esm2015/lib/components/po-field/po-radio-group/po-radio-group-base.component.js +184 -184
- package/esm2015/lib/components/po-field/po-radio-group/po-radio-group-option.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-radio-group/po-radio-group.component.js +119 -119
- package/esm2015/lib/components/po-field/po-rich-text/interfaces/po-rich-text-toolbar-button-group-item.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-base.component.js +181 -181
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-body/po-rich-text-body.component.js +312 -312
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-image-modal/po-rich-text-image-modal.component.js +96 -96
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-link-modal/po-rich-text-link-modal.component.js +140 -140
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-literals.js +83 -83
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.js +166 -166
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text.component.js +147 -147
- package/esm2015/lib/components/po-field/po-rich-text/po-rich-text.service.js +17 -17
- package/esm2015/lib/components/po-field/po-select/po-select-option-template/po-select-option-template.directive.js +59 -59
- package/esm2015/lib/components/po-field/po-select/po-select-option.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-select/po-select.component.js +366 -359
- package/esm2015/lib/components/po-field/po-switch/po-switch-label-position.enum.js +15 -15
- package/esm2015/lib/components/po-field/po-switch/po-switch.component.js +190 -190
- package/esm2015/lib/components/po-field/po-textarea/po-textarea-base.component.js +269 -269
- package/esm2015/lib/components/po-field/po-textarea/po-textarea.component.js +130 -130
- package/esm2015/lib/components/po-field/po-upload/interfaces/po-upload-file-restriction.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-upload/interfaces/po-upload-literals.interface.js +2 -2
- package/esm2015/lib/components/po-field/po-upload/po-upload-base.component.js +581 -573
- package/esm2015/lib/components/po-field/po-upload/po-upload-base.service.js +88 -88
- package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area/po-upload-drag-drop-area.component.js +30 -30
- package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area-overlay/po-upload-drag-drop-area-overlay.component.js +40 -40
- package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.component.js +60 -60
- package/esm2015/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.directive.js +165 -165
- package/esm2015/lib/components/po-field/po-upload/po-upload-file-restrictions/po-upload-file-restrictions.component.js +63 -63
- package/esm2015/lib/components/po-field/po-upload/po-upload-file.js +39 -39
- package/esm2015/lib/components/po-field/po-upload/po-upload-status.enum.js +13 -13
- package/esm2015/lib/components/po-field/po-upload/po-upload.component.js +326 -326
- package/esm2015/lib/components/po-field/po-upload/po-upload.service.js +8 -8
- package/esm2015/lib/components/po-field/po-url/po-url.component.js +86 -86
- package/esm2015/lib/components/po-field/validators.js +41 -41
- package/esm2015/lib/components/po-gauge/index.js +4 -4
- package/esm2015/lib/components/po-gauge/interfaces/po-gauge-coordinates.interface.js +2 -2
- package/esm2015/lib/components/po-gauge/interfaces/po-gauge-ranges.interface.js +2 -2
- package/esm2015/lib/components/po-gauge/interfaces/po-gauge-svg-container.interface.js +2 -2
- package/esm2015/lib/components/po-gauge/po-gauge-base.component.js +146 -146
- package/esm2015/lib/components/po-gauge/po-gauge-default-values.constant.js +11 -11
- package/esm2015/lib/components/po-gauge/po-gauge-description/po-gauge-description.component.js +27 -27
- package/esm2015/lib/components/po-gauge/po-gauge-legend/po-gauge-legend.component.js +27 -27
- package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-path/po-gauge-path.component.js +20 -20
- package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-pointer/po-gauge-pointer.component.js +50 -50
- package/esm2015/lib/components/po-gauge/po-gauge-svg/po-gauge-svg.component.js +204 -204
- package/esm2015/lib/components/po-gauge/po-gauge-title/po-gauge-title.component.js +13 -13
- package/esm2015/lib/components/po-gauge/po-gauge.component.js +72 -72
- package/esm2015/lib/components/po-gauge/po-gauge.module.js +32 -32
- package/esm2015/lib/components/po-grid/index.js +4 -4
- package/esm2015/lib/components/po-grid/po-grid-cell/po-grid-cell.component.js +111 -111
- package/esm2015/lib/components/po-grid/po-grid-cell-action/po-grid-cell-action.component.js +24 -24
- package/esm2015/lib/components/po-grid/po-grid-head/po-grid-head.component.js +30 -30
- package/esm2015/lib/components/po-grid/po-grid-row-actions.interface.js +2 -2
- package/esm2015/lib/components/po-grid/po-grid.component.js +314 -314
- package/esm2015/lib/components/po-grid/po-grid.module.js +23 -23
- package/esm2015/lib/components/po-icon/index.js +3 -3
- package/esm2015/lib/components/po-icon/po-icon.component.js +62 -62
- package/esm2015/lib/components/po-icon/po-icon.module.js +18 -18
- package/esm2015/lib/components/po-info/index.js +4 -4
- package/esm2015/lib/components/po-info/po-info-base.component.js +62 -62
- package/esm2015/lib/components/po-info/po-info-orietation.enum.js +15 -15
- package/esm2015/lib/components/po-info/po-info.component.js +36 -36
- package/esm2015/lib/components/po-info/po-info.module.js +21 -21
- package/esm2015/lib/components/po-list-view/index.js +7 -7
- package/esm2015/lib/components/po-list-view/interfaces/po-list-view-action.interface.js +2 -2
- package/esm2015/lib/components/po-list-view/interfaces/po-list-view-literals.interface.js +2 -2
- package/esm2015/lib/components/po-list-view/po-list-view-base.component.js +274 -274
- package/esm2015/lib/components/po-list-view/po-list-view-content-template/po-list-view-content-template.directive.js +101 -101
- package/esm2015/lib/components/po-list-view/po-list-view-detail-template/po-list-view-detail-template.directive.js +64 -64
- package/esm2015/lib/components/po-list-view/po-list-view.component.js +128 -128
- package/esm2015/lib/components/po-list-view/po-list-view.module.js +51 -51
- package/esm2015/lib/components/po-loading/index.js +5 -5
- package/esm2015/lib/components/po-loading/po-loading-base.component.js +24 -24
- package/esm2015/lib/components/po-loading/po-loading-icon/po-loading-icon.component.js +37 -37
- package/esm2015/lib/components/po-loading/po-loading-overlay/interfaces/po-loading-overlay-literals.interface.js +2 -2
- package/esm2015/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.js +91 -91
- package/esm2015/lib/components/po-loading/po-loading-overlay/po-loading-overlay.component.js +41 -41
- package/esm2015/lib/components/po-loading/po-loading.component.js +16 -16
- package/esm2015/lib/components/po-loading/po-loading.module.js +22 -22
- package/esm2015/lib/components/po-menu/index.js +9 -9
- package/esm2015/lib/components/po-menu/po-menu-base.component.js +299 -299
- package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter-literals.interface.js +2 -2
- package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter.component.js +40 -40
- package/esm2015/lib/components/po-menu/po-menu-filter/po-menu-filter.interface.js +2 -2
- package/esm2015/lib/components/po-menu/po-menu-header-template/po-menu-header-template.directive.js +51 -51
- package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item-badge.interface.js +2 -2
- package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item-filtered.interface.js +2 -2
- package/esm2015/lib/components/po-menu/po-menu-item/po-menu-item.component.js +173 -173
- package/esm2015/lib/components/po-menu/po-menu-item.interface.js +2 -2
- package/esm2015/lib/components/po-menu/po-menu.component.js +497 -497
- package/esm2015/lib/components/po-menu/po-menu.module.js +26 -26
- package/esm2015/lib/components/po-menu/services/po-menu-global.service.js +32 -32
- package/esm2015/lib/components/po-menu/services/po-menu-items.service.js +35 -35
- package/esm2015/lib/components/po-menu/services/po-menu.service.js +35 -35
- package/esm2015/lib/components/po-menu-panel/index.js +4 -4
- package/esm2015/lib/components/po-menu-panel/po-menu-panel-base.component.js +76 -76
- package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item-internal.interface.js +2 -2
- package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.component.js +54 -54
- package/esm2015/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.js +2 -2
- package/esm2015/lib/components/po-menu-panel/po-menu-panel.component.js +145 -145
- package/esm2015/lib/components/po-menu-panel/po-menu-panel.module.js +24 -24
- package/esm2015/lib/components/po-menu-panel/services/po-menu-panel-items.service.js +35 -35
- package/esm2015/lib/components/po-modal/index.js +5 -5
- package/esm2015/lib/components/po-modal/po-modal-action.interface.js +2 -2
- package/esm2015/lib/components/po-modal/po-modal-base.component.js +121 -121
- package/esm2015/lib/components/po-modal/po-modal-footer/po-modal-footer.component.js +43 -43
- package/esm2015/lib/components/po-modal/po-modal.component.js +114 -114
- package/esm2015/lib/components/po-modal/po-modal.literals.js +15 -15
- package/esm2015/lib/components/po-modal/po-modal.module.js +19 -19
- package/esm2015/lib/components/po-navbar/index.js +5 -5
- package/esm2015/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.js +2 -2
- package/esm2015/lib/components/po-navbar/interfaces/po-navbar-item.interface.js +2 -2
- package/esm2015/lib/components/po-navbar/interfaces/po-navbar-literals.interface.js +2 -2
- package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-action/po-navbar-action.component.js +43 -43
- package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-action-popup/po-navbar-action-popup.component.js +18 -18
- package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.component.js +19 -19
- package/esm2015/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.module.js +18 -18
- package/esm2015/lib/components/po-navbar/po-navbar-base.component.js +147 -147
- package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation-icon/po-navbar-item-navigation-icon.component.js +18 -18
- package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.component.js +18 -18
- package/esm2015/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.module.js +15 -15
- package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-item/po-navbar-item.component.js +30 -30
- package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-items.component.js +53 -53
- package/esm2015/lib/components/po-navbar/po-navbar-items/po-navbar-items.module.js +15 -15
- package/esm2015/lib/components/po-navbar/po-navbar-logo/po-navbar-logo.component.js +13 -13
- package/esm2015/lib/components/po-navbar/po-navbar.component.js +213 -213
- package/esm2015/lib/components/po-navbar/po-navbar.module.js +57 -57
- package/esm2015/lib/components/po-page/index.js +15 -15
- package/esm2015/lib/components/po-page/po-page-action.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-base.component.js +23 -23
- package/esm2015/lib/components/po-page/po-page-content/po-page-content-base.component.js +10 -10
- package/esm2015/lib/components/po-page/po-page-content/po-page-content.component.js +54 -54
- package/esm2015/lib/components/po-page/po-page-default/po-page-default-base.component.js +111 -111
- package/esm2015/lib/components/po-page/po-page-default/po-page-default-literals.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-default/po-page-default.component.js +98 -98
- package/esm2015/lib/components/po-page/po-page-default/po-page-default.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-detail/po-page-detail-base.component.js +141 -141
- package/esm2015/lib/components/po-page/po-page-detail/po-page-detail-literals.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-detail/po-page-detail.component.js +62 -62
- package/esm2015/lib/components/po-page/po-page-edit/po-page-edit-base.component.js +146 -146
- package/esm2015/lib/components/po-page/po-page-edit/po-page-edit-literals.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-edit/po-page-edit.component.js +65 -65
- package/esm2015/lib/components/po-page/po-page-filter.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-header/po-page-header-base.component.js +26 -26
- package/esm2015/lib/components/po-page/po-page-header/po-page-header.component.js +15 -15
- package/esm2015/lib/components/po-page/po-page-list/po-page-list-base.component.js +137 -137
- package/esm2015/lib/components/po-page/po-page-list/po-page-list-literals.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page-list/po-page-list.component.js +188 -188
- package/esm2015/lib/components/po-page/po-page-slide/po-page-slide-base.component.js +135 -135
- package/esm2015/lib/components/po-page/po-page-slide/po-page-slide.component.js +121 -121
- package/esm2015/lib/components/po-page/po-page.component.js +16 -16
- package/esm2015/lib/components/po-page/po-page.interface.js +2 -2
- package/esm2015/lib/components/po-page/po-page.module.js +60 -60
- package/esm2015/lib/components/po-popover/index.js +3 -3
- package/esm2015/lib/components/po-popover/po-popover-base.component.js +113 -113
- package/esm2015/lib/components/po-popover/po-popover.component.js +138 -138
- package/esm2015/lib/components/po-popover/po-popover.module.js +17 -17
- package/esm2015/lib/components/po-popup/index.js +4 -4
- package/esm2015/lib/components/po-popup/po-popup-action.interface.js +2 -2
- package/esm2015/lib/components/po-popup/po-popup-base.component.js +186 -186
- package/esm2015/lib/components/po-popup/po-popup.component.js +169 -169
- package/esm2015/lib/components/po-popup/po-popup.module.js +21 -21
- package/esm2015/lib/components/po-progress/enums/po-progress-status.enum.js +17 -17
- package/esm2015/lib/components/po-progress/index.js +4 -4
- package/esm2015/lib/components/po-progress/po-progress-bar/po-progress-bar.component.js +18 -18
- package/esm2015/lib/components/po-progress/po-progress-base.component.js +107 -107
- package/esm2015/lib/components/po-progress/po-progress.component.js +56 -56
- package/esm2015/lib/components/po-progress/po-progress.module.js +19 -19
- package/esm2015/lib/components/po-slide/directives/po-slide-content-template.directive.js +59 -59
- package/esm2015/lib/components/po-slide/index.js +5 -5
- package/esm2015/lib/components/po-slide/interfaces/po-slide-item.interface.js +2 -2
- package/esm2015/lib/components/po-slide/po-slide-base.component.js +104 -104
- package/esm2015/lib/components/po-slide/po-slide-circles/po-slide-circles.component.js +26 -26
- package/esm2015/lib/components/po-slide/po-slide-control/po-slide-control.component.js +25 -25
- package/esm2015/lib/components/po-slide/po-slide-item/po-slide-item.component.js +37 -37
- package/esm2015/lib/components/po-slide/po-slide.component.js +256 -256
- package/esm2015/lib/components/po-slide/po-slide.module.js +58 -58
- package/esm2015/lib/components/po-stepper/enums/po-stepper-orientation.enum.js +18 -18
- package/esm2015/lib/components/po-stepper/enums/po-stepper-status.enum.js +23 -23
- package/esm2015/lib/components/po-stepper/index.js +7 -7
- package/esm2015/lib/components/po-stepper/po-step/po-step.component.js +78 -78
- package/esm2015/lib/components/po-stepper/po-stepper-base.component.js +144 -144
- package/esm2015/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.js +47 -47
- package/esm2015/lib/components/po-stepper/po-stepper-item.interface.js +2 -2
- package/esm2015/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.js +20 -20
- package/esm2015/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.js +116 -116
- package/esm2015/lib/components/po-stepper/po-stepper.component.js +219 -219
- package/esm2015/lib/components/po-stepper/po-stepper.module.js +27 -27
- package/esm2015/lib/components/po-table/enums/po-table-column-sort-type.enum.js +14 -14
- package/esm2015/lib/components/po-table/enums/po-table-row-template-arrow-direction.enum.js +14 -14
- package/esm2015/lib/components/po-table/index.js +18 -18
- package/esm2015/lib/components/po-table/interfaces/po-table-action.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-boolean.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-column-sort.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-column.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-filter.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-filtered-items-params.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-literals.interface.js +2 -2
- package/esm2015/lib/components/po-table/interfaces/po-table-response-api.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-base.component.js +860 -860
- package/esm2015/lib/components/po-table/po-table-cell-template/po-table-cell-template.directive.js +82 -82
- package/esm2015/lib/components/po-table/po-table-column-icon/po-table-column-icon.component.js +72 -72
- package/esm2015/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-column-label/po-table-column-label.component.js +38 -38
- package/esm2015/lib/components/po-table/po-table-column-label/po-table-column-label.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-column-link/po-table-column-link.component.js +38 -38
- package/esm2015/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.js +250 -250
- package/esm2015/lib/components/po-table/po-table-column-template/po-table-column-template.directive.js +90 -90
- package/esm2015/lib/components/po-table/po-table-detail/po-table-detail-column.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-detail/po-table-detail.component.js +88 -88
- package/esm2015/lib/components/po-table/po-table-detail/po-table-detail.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-icon/po-table-icon.component.js +46 -46
- package/esm2015/lib/components/po-table/po-table-row-template/po-table-row-template.directive.js +128 -128
- package/esm2015/lib/components/po-table/po-table-show-subtitle/po-table-show-subtitle.component.js +21 -21
- package/esm2015/lib/components/po-table/po-table-subtitle-circle/po-table-subtitle-circle.component.js +41 -41
- package/esm2015/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-column.interface.js +2 -2
- package/esm2015/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-footer.component.js +70 -70
- package/esm2015/lib/components/po-table/po-table.component.js +542 -542
- package/esm2015/lib/components/po-table/po-table.module.js +75 -75
- package/esm2015/lib/components/po-table/services/po-table.service.js +38 -38
- package/esm2015/lib/components/po-tabs/index.js +5 -5
- package/esm2015/lib/components/po-tabs/po-tab/po-tab-base.component.js +82 -82
- package/esm2015/lib/components/po-tabs/po-tab/po-tab.component.js +27 -27
- package/esm2015/lib/components/po-tabs/po-tab/po-tab.interface.js +2 -2
- package/esm2015/lib/components/po-tabs/po-tab-button/po-tab-button.component.js +75 -75
- package/esm2015/lib/components/po-tabs/po-tab-dropdown/po-tab-dropdown.component.js +44 -44
- package/esm2015/lib/components/po-tabs/po-tabs-base.component.js +49 -49
- package/esm2015/lib/components/po-tabs/po-tabs.component.js +126 -126
- package/esm2015/lib/components/po-tabs/po-tabs.module.js +21 -21
- package/esm2015/lib/components/po-tag/enums/po-tag-icon.enum.js +19 -19
- package/esm2015/lib/components/po-tag/enums/po-tag-orientation.enum.js +15 -15
- package/esm2015/lib/components/po-tag/enums/po-tag-type.enum.js +19 -19
- package/esm2015/lib/components/po-tag/index.js +5 -5
- package/esm2015/lib/components/po-tag/interfaces/po-tag-item.interface.js +2 -2
- package/esm2015/lib/components/po-tag/po-tag-base.component.js +175 -175
- package/esm2015/lib/components/po-tag/po-tag.component.js +71 -71
- package/esm2015/lib/components/po-tag/po-tag.module.js +21 -21
- package/esm2015/lib/components/po-toolbar/index.js +5 -5
- package/esm2015/lib/components/po-toolbar/po-toolbar-action.interface.js +2 -2
- package/esm2015/lib/components/po-toolbar/po-toolbar-actions/po-toolbar-actions.component.js +35 -35
- package/esm2015/lib/components/po-toolbar/po-toolbar-base.component.js +43 -43
- package/esm2015/lib/components/po-toolbar/po-toolbar-notification/po-toolbar-notification.component.js +39 -39
- package/esm2015/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.component.js +28 -28
- package/esm2015/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.interface.js +2 -2
- package/esm2015/lib/components/po-toolbar/po-toolbar.component.js +46 -46
- package/esm2015/lib/components/po-toolbar/po-toolbar.module.js +32 -32
- package/esm2015/lib/components/po-tree-view/index.js +4 -4
- package/esm2015/lib/components/po-tree-view/po-tree-view-base.component.js +197 -197
- package/esm2015/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.js +58 -58
- package/esm2015/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.js +2 -2
- package/esm2015/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.js +26 -26
- package/esm2015/lib/components/po-tree-view/po-tree-view.component.js +60 -60
- package/esm2015/lib/components/po-tree-view/po-tree-view.module.js +49 -49
- package/esm2015/lib/components/po-tree-view/services/po-tree-view.service.js +24 -24
- package/esm2015/lib/components/po-widget/index.js +3 -3
- package/esm2015/lib/components/po-widget/po-widget-base.component.js +216 -216
- package/esm2015/lib/components/po-widget/po-widget.component.js +114 -114
- package/esm2015/lib/components/po-widget/po-widget.module.js +19 -19
- package/esm2015/lib/decorators/index.js +3 -3
- package/esm2015/lib/decorators/input-boolean/input-boolean.decorator.js +18 -18
- package/esm2015/lib/decorators/input-required/input-required.decorator.js +34 -34
- package/esm2015/lib/decorators/property-decorator.interface.js +2 -2
- package/esm2015/lib/decorators/utils-decorators.js +64 -64
- package/esm2015/lib/directives/directives.module.js +14 -14
- package/esm2015/lib/directives/index.js +3 -3
- package/esm2015/lib/directives/po-tooltip/index.js +3 -3
- package/esm2015/lib/directives/po-tooltip/po-tooltip-base.directive.js +106 -106
- package/esm2015/lib/directives/po-tooltip/po-tooltip-control-position.service.js +8 -8
- package/esm2015/lib/directives/po-tooltip/po-tooltip.directive.js +147 -147
- package/esm2015/lib/directives/po-tooltip/po-tooltip.module.js +18 -18
- package/esm2015/lib/enums/po-color-palette.enum.js +35 -35
- package/esm2015/lib/enums/po-key-code.enum.js +31 -31
- package/esm2015/lib/guards/guards.module.js +13 -13
- package/esm2015/lib/guards/index.js +2 -2
- package/esm2015/lib/index.js +10 -10
- package/esm2015/lib/interceptors/index.js +4 -4
- package/esm2015/lib/interceptors/interceptors.module.js +15 -15
- package/esm2015/lib/interceptors/po-http-interceptor/index.js +3 -3
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.js +249 -249
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail-literals.interface.js +39 -39
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.component.js +83 -83
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.js +2 -2
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor-literals.js +23 -23
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor.module.js +28 -28
- package/esm2015/lib/interceptors/po-http-interceptor/po-http-interceptor.service.js +28 -28
- package/esm2015/lib/interceptors/po-http-request/index.js +3 -3
- package/esm2015/lib/interceptors/po-http-request/po-http-request-control-service.js +23 -23
- package/esm2015/lib/interceptors/po-http-request/po-http-request-interceptor.service.js +169 -169
- package/esm2015/lib/interceptors/po-http-request/po-http-request.module.js +24 -24
- package/esm2015/lib/interfaces/index.js +2 -2
- package/esm2015/lib/interfaces/po-http/po-response-api.interface.js +2 -2
- package/esm2015/lib/pipes/index.js +3 -3
- package/esm2015/lib/pipes/pipes.module.js +14 -14
- package/esm2015/lib/pipes/po-time/index.js +3 -3
- package/esm2015/lib/pipes/po-time/po-time.module.js +19 -19
- package/esm2015/lib/pipes/po-time/po-time.pipe.js +55 -55
- package/esm2015/lib/po.module.js +34 -34
- package/esm2015/lib/services/index.js +11 -11
- package/esm2015/lib/services/po-active-overlay/index.js +3 -3
- package/esm2015/lib/services/po-active-overlay/po-active-overlay.module.js +16 -16
- package/esm2015/lib/services/po-active-overlay/po-active-overlay.service.js +14 -14
- package/esm2015/lib/services/po-color/po-color.service.js +60 -60
- package/esm2015/lib/services/po-color/po-colors.constant.js +43 -43
- package/esm2015/lib/services/po-color-palette/index.js +3 -3
- package/esm2015/lib/services/po-color-palette/po-color-palette.module.js +16 -16
- package/esm2015/lib/services/po-color-palette/po-color-palette.service.js +25 -25
- package/esm2015/lib/services/po-component-injector/index.js +3 -3
- package/esm2015/lib/services/po-component-injector/po-component-injector.module.js +14 -14
- package/esm2015/lib/services/po-component-injector/po-component-injector.service.js +34 -34
- package/esm2015/lib/services/po-control-position/index.js +3 -3
- package/esm2015/lib/services/po-control-position/po-control-position.constants.js +16 -16
- package/esm2015/lib/services/po-control-position/po-control-position.module.js +15 -15
- package/esm2015/lib/services/po-control-position/po-control-position.service.js +361 -361
- package/esm2015/lib/services/po-date/index.js +3 -3
- package/esm2015/lib/services/po-date/po-date.module.js +16 -16
- package/esm2015/lib/services/po-date/po-date.service.js +201 -201
- package/esm2015/lib/services/po-dialog/index.js +8 -8
- package/esm2015/lib/services/po-dialog/interfaces/po-dialog-alert-literals.interface.js +2 -2
- package/esm2015/lib/services/po-dialog/interfaces/po-dialog-confirm-literals.interface.js +2 -2
- package/esm2015/lib/services/po-dialog/interfaces/po-dialog.interface.js +2 -2
- package/esm2015/lib/services/po-dialog/po-dialog-base.service.js +18 -18
- package/esm2015/lib/services/po-dialog/po-dialog.component.js +115 -115
- package/esm2015/lib/services/po-dialog/po-dialog.enum.js +16 -16
- package/esm2015/lib/services/po-dialog/po-dialog.module.js +15 -15
- package/esm2015/lib/services/po-dialog/po-dialog.service.js +42 -42
- package/esm2015/lib/services/po-i18n/index.js +8 -8
- package/esm2015/lib/services/po-i18n/interfaces/po-i18n-config-default.interface.js +2 -2
- package/esm2015/lib/services/po-i18n/interfaces/po-i18n-config.interface.js +2 -2
- package/esm2015/lib/services/po-i18n/interfaces/po-i18n-literals.interface.js +2 -2
- package/esm2015/lib/services/po-i18n/po-i18n-base.pipe.js +40 -40
- package/esm2015/lib/services/po-i18n/po-i18n-base.service.js +439 -439
- package/esm2015/lib/services/po-i18n/po-i18n-config-injection-token.js +3 -3
- package/esm2015/lib/services/po-i18n/po-i18n.module.js +188 -188
- package/esm2015/lib/services/po-i18n/po-i18n.pipe.js +21 -21
- package/esm2015/lib/services/po-i18n/po-i18n.service.js +20 -20
- package/esm2015/lib/services/po-language/index.js +5 -5
- package/esm2015/lib/services/po-language/po-language.constant.js +75 -75
- package/esm2015/lib/services/po-language/po-language.interface.js +2 -2
- package/esm2015/lib/services/po-language/po-language.module.js +15 -15
- package/esm2015/lib/services/po-language/po-language.service.js +136 -136
- package/esm2015/lib/services/po-notification/index.js +6 -6
- package/esm2015/lib/services/po-notification/po-notification-base.service.js +111 -111
- package/esm2015/lib/services/po-notification/po-notification.interface.js +2 -2
- package/esm2015/lib/services/po-notification/po-notification.module.js +15 -15
- package/esm2015/lib/services/po-notification/po-notification.service.js +92 -92
- package/esm2015/lib/services/po-notification/po-toaster/po-toaster-base.component.js +15 -15
- package/esm2015/lib/services/po-notification/po-toaster/po-toaster-orientation.enum.js +13 -13
- package/esm2015/lib/services/po-notification/po-toaster/po-toaster-type.enum.js +17 -17
- package/esm2015/lib/services/po-notification/po-toaster/po-toaster.component.js +132 -132
- package/esm2015/lib/services/po-notification/po-toaster/po-toaster.interface.js +2 -2
- package/esm2015/lib/services/services.module.js +40 -40
- package/esm2015/lib/utils/util.js +508 -508
- package/esm2015/po-ui-ng-components.js +205 -205
- package/esm2015/public-api.js +2 -2
- package/fesm2015/po-ui-ng-components.js +35214 -35170
- package/fesm2015/po-ui-ng-components.js.map +1 -1
- package/lib/components/components.module.d.ts +2 -2
- package/lib/components/index.d.ts +37 -37
- package/lib/components/po-accordion/index.d.ts +3 -3
- package/lib/components/po-accordion/po-accordion-base.component.d.ts +28 -28
- package/lib/components/po-accordion/po-accordion-item/po-accordion-item.component.d.ts +49 -49
- package/lib/components/po-accordion/po-accordion-item-body/po-accordion-item-body.component.d.ts +3 -3
- package/lib/components/po-accordion/po-accordion-item-header/po-accordion-item-header.component.d.ts +7 -7
- package/lib/components/po-accordion/po-accordion.component.d.ts +37 -37
- package/lib/components/po-accordion/po-accordion.module.d.ts +33 -33
- package/lib/components/po-accordion/services/po-accordion.service.d.ts +13 -13
- package/lib/components/po-avatar/index.d.ts +2 -2
- package/lib/components/po-avatar/po-avatar-base.component.d.ts +53 -53
- package/lib/components/po-avatar/po-avatar.component.d.ts +28 -28
- package/lib/components/po-avatar/po-avatar.module.d.ts +7 -7
- package/lib/components/po-badge/po-badge-base.component.d.ts +55 -55
- package/lib/components/po-badge/po-badge.component.d.ts +8 -8
- package/lib/components/po-badge/po-badge.module.d.ts +7 -7
- package/lib/components/po-breadcrumb/index.d.ts +4 -4
- package/lib/components/po-breadcrumb/po-breadcrumb-base.component.d.ts +104 -104
- package/lib/components/po-breadcrumb/po-breadcrumb-dropdown/po-breadcrumb-dropdown.component.d.ts +11 -11
- package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.component.d.ts +29 -29
- package/lib/components/po-breadcrumb/po-breadcrumb-favorite/po-breadcrumb-favorite.service.d.ts +27 -27
- package/lib/components/po-breadcrumb/po-breadcrumb-item/po-breadcrumb-item.component.d.ts +13 -13
- package/lib/components/po-breadcrumb/po-breadcrumb-item.interface.d.ts +31 -31
- package/lib/components/po-breadcrumb/po-breadcrumb.component.d.ts +53 -53
- package/lib/components/po-breadcrumb/po-breadcrumb.interface.d.ts +42 -42
- package/lib/components/po-breadcrumb/po-breadcrumb.module.d.ts +8 -8
- package/lib/components/po-button/index.d.ts +2 -2
- package/lib/components/po-button/po-button-base.component.d.ts +120 -120
- package/lib/components/po-button/po-button.component.d.ts +49 -49
- package/lib/components/po-button/po-button.module.d.ts +7 -7
- package/lib/components/po-button-group/index.d.ts +4 -4
- package/lib/components/po-button-group/po-button-group-base.component.d.ts +53 -53
- package/lib/components/po-button-group/po-button-group-item.interface.d.ts +64 -64
- package/lib/components/po-button-group/po-button-group-toggle.enum.d.ts +15 -15
- package/lib/components/po-button-group/po-button-group.component.d.ts +31 -31
- package/lib/components/po-button-group/po-button-group.module.d.ts +7 -7
- package/lib/components/po-calendar/index.d.ts +3 -3
- package/lib/components/po-calendar/po-calendar-base.component.d.ts +129 -129
- package/lib/components/po-calendar/po-calendar-header/po-calendar-header.component.d.ts +8 -8
- package/lib/components/po-calendar/po-calendar-mode.enum.d.ts +11 -11
- package/lib/components/po-calendar/po-calendar-wrapper/po-calendar-wrapper.component.d.ts +77 -77
- package/lib/components/po-calendar/po-calendar.component.d.ts +53 -53
- package/lib/components/po-calendar/po-calendar.module.d.ts +6 -6
- package/lib/components/po-calendar/services/po-calendar.lang.service.d.ts +16 -16
- package/lib/components/po-calendar/services/po-calendar.service.d.ts +5 -5
- package/lib/components/po-chart/directives/po-resize-observer.directive.d.ts +12 -12
- package/lib/components/po-chart/enums/po-chart-type.enum.d.ts +49 -49
- package/lib/components/po-chart/helpers/po-chart-default-values.constant.d.ts +8 -8
- package/lib/components/po-chart/index.d.ts +7 -7
- package/lib/components/po-chart/interfaces/po-chart-axis-options.interface.d.ts +37 -37
- package/lib/components/po-chart/interfaces/po-chart-bar-coordinates.interface.d.ts +23 -23
- package/lib/components/po-chart/interfaces/po-chart-container-size.interface.d.ts +23 -23
- package/lib/components/po-chart/interfaces/po-chart-label-coordinates.interface.d.ts +19 -19
- package/lib/components/po-chart/interfaces/po-chart-min-max-values.interface.d.ts +19 -19
- package/lib/components/po-chart/interfaces/po-chart-options.interface.d.ts +20 -20
- package/lib/components/po-chart/interfaces/po-chart-path-coordinates.interface.d.ts +23 -23
- package/lib/components/po-chart/interfaces/po-chart-points-coordinates.interface.d.ts +26 -26
- package/lib/components/po-chart/interfaces/po-chart-serie.interface.d.ts +101 -101
- package/lib/components/po-chart/po-chart-base.component.d.ts +152 -152
- package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-label/po-chart-axis-label.component.d.ts +10 -10
- package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis-path/po-chart-axis-path.component.d.ts +7 -7
- package/lib/components/po-chart/po-chart-container/po-chart-axis/po-chart-axis.component.d.ts +60 -60
- package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-base.component.d.ts +31 -31
- package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar-path/po-chart-bar-path.component.d.ts +13 -13
- package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-bar.component.d.ts +13 -13
- package/lib/components/po-chart/po-chart-container/po-chart-bar/po-chart-column/po-chart-column.component.d.ts +13 -13
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-label/po-chart-circular-label.component.d.ts +11 -11
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-circular-path.component.d.ts +13 -13
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular-path/po-chart-tooltip.directive.d.ts +20 -20
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-circular.component.d.ts +42 -42
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-donut/po-chart-donut.component.d.ts +16 -16
- package/lib/components/po-chart/po-chart-container/po-chart-circular/po-chart-pie/po-chart-pie.component.d.ts +8 -8
- package/lib/components/po-chart/po-chart-container/po-chart-container.component.d.ts +43 -43
- package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-area/po-chart-area.component.d.ts +20 -20
- package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line-base.component.d.ts +46 -46
- package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-line.component.d.ts +13 -13
- package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-path/po-chart-path.component.d.ts +19 -19
- package/lib/components/po-chart/po-chart-container/po-chart-line/po-chart-series-point/po-chart-series-point.component.d.ts +30 -30
- package/lib/components/po-chart/po-chart-legend/po-chart-legend.component.d.ts +7 -7
- package/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.constant.d.ts +7 -7
- package/lib/components/po-chart/po-chart-types/po-chart-circular/po-chart-circular.d.ts +55 -55
- package/lib/components/po-chart/po-chart-types/po-chart-dynamic-type.component.d.ts +36 -36
- package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-series.interface.d.ts +39 -39
- package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge-text-content/po-chart-gauge-text-content.component.d.ts +24 -24
- package/lib/components/po-chart/po-chart-types/po-chart-gauge/po-chart-gauge.component.d.ts +20 -20
- package/lib/components/po-chart/po-chart.component.d.ts +67 -67
- package/lib/components/po-chart/po-chart.module.d.ts +7 -7
- package/lib/components/po-chart/services/po-chart-maths.service.d.ts +63 -63
- package/lib/components/po-chart/services/po-chart-svg-container.service.d.ts +21 -21
- package/lib/components/po-container/index.d.ts +2 -2
- package/lib/components/po-container/po-container-base.component.d.ts +59 -59
- package/lib/components/po-container/po-container.component.d.ts +24 -24
- package/lib/components/po-container/po-container.module.d.ts +7 -7
- package/lib/components/po-disclaimer/index.d.ts +3 -3
- package/lib/components/po-disclaimer/po-disclaimer-base.component.d.ts +56 -56
- package/lib/components/po-disclaimer/po-disclaimer.component.d.ts +16 -16
- package/lib/components/po-disclaimer/po-disclaimer.interface.d.ts +17 -17
- package/lib/components/po-disclaimer/po-disclaimer.module.d.ts +6 -6
- package/lib/components/po-disclaimer-group/index.d.ts +4 -4
- package/lib/components/po-disclaimer-group/po-disclaimer-group-base.component.d.ts +114 -114
- package/lib/components/po-disclaimer-group/po-disclaimer-group-remove-action.interface.d.ts +18 -18
- package/lib/components/po-disclaimer-group/po-disclaimer-group.component.d.ts +28 -28
- package/lib/components/po-disclaimer-group/po-disclaimer-group.interface.d.ts +78 -78
- package/lib/components/po-disclaimer-group/po-disclaimer-group.module.d.ts +7 -7
- package/lib/components/po-disclaimer-group/po-disclaimer-remove/po-disclaimer-remove.component.d.ts +16 -16
- package/lib/components/po-divider/index.d.ts +2 -2
- package/lib/components/po-divider/po-divider-base.component.d.ts +10 -10
- package/lib/components/po-divider/po-divider.component.d.ts +23 -23
- package/lib/components/po-divider/po-divider.module.d.ts +7 -7
- package/lib/components/po-dropdown/index.d.ts +3 -3
- package/lib/components/po-dropdown/po-dropdown-action.interface.d.ts +11 -11
- package/lib/components/po-dropdown/po-dropdown-base.component.d.ts +54 -54
- package/lib/components/po-dropdown/po-dropdown.component.d.ts +41 -41
- package/lib/components/po-dropdown/po-dropdown.module.d.ts +6 -6
- package/lib/components/po-dynamic/index.d.ts +10 -10
- package/lib/components/po-dynamic/po-dynamic-field-type.enum.d.ts +23 -23
- package/lib/components/po-dynamic/po-dynamic-field.interface.d.ts +130 -130
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-base.component.d.ts +215 -215
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-field.interface.d.ts +249 -249
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-field-internal.interface.d.ts +14 -14
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields-base.component.d.ts +44 -44
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-fields/po-dynamic-form-fields.component.d.ts +36 -36
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.interface.d.ts +20 -20
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-load/po-dynamic-form-load.service.d.ts +8 -8
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-operation/po-dynamic-form-operation.d.ts +10 -10
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-response.interface.d.ts +29 -29
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-changed.interface.d.ts +13 -13
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-field-validation.interface.d.ts +21 -21
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.interface.d.ts +20 -20
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form-validation/po-dynamic-form-validation.service.d.ts +12 -12
- package/lib/components/po-dynamic/po-dynamic-form/po-dynamic-form.component.d.ts +83 -83
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-base.component.d.ts +134 -134
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view-field.interface.d.ts +104 -104
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.component.d.ts +36 -36
- package/lib/components/po-dynamic/po-dynamic-view/po-dynamic-view.service.d.ts +10 -10
- package/lib/components/po-dynamic/po-dynamic.module.d.ts +2 -2
- package/lib/components/po-dynamic/po-dynamic.util.d.ts +4 -4
- package/lib/components/po-field/index.d.ts +50 -50
- package/lib/components/po-field/po-checkbox/po-checkbox-base.component.d.ts +62 -62
- package/lib/components/po-field/po-checkbox/po-checkbox.component.d.ts +51 -51
- package/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option-view.interface.d.ts +14 -14
- package/lib/components/po-field/po-checkbox-group/interfaces/po-checkbox-group-option.interface.d.ts +24 -24
- package/lib/components/po-field/po-checkbox-group/po-checkbox-group-base.component.d.ts +184 -176
- package/lib/components/po-field/po-checkbox-group/po-checkbox-group.component.d.ts +50 -50
- package/lib/components/po-field/po-checkbox-group/po-checkbox-group.module.d.ts +7 -7
- package/lib/components/po-field/po-clean/po-clean-base.component.d.ts +30 -30
- package/lib/components/po-field/po-clean/po-clean.component.d.ts +17 -17
- package/lib/components/po-field/po-clean/po-clean.module.d.ts +7 -7
- package/lib/components/po-field/po-combo/interfaces/po-combo-filter.interface.d.ts +27 -27
- package/lib/components/po-field/po-combo/interfaces/po-combo-group.interface.d.ts +11 -11
- package/lib/components/po-field/po-combo/interfaces/po-combo-literals.interface.d.ts +11 -11
- package/lib/components/po-field/po-combo/interfaces/po-combo-option-group.interface.d.ts +14 -14
- package/lib/components/po-field/po-combo/interfaces/po-combo-option.interface.d.ts +21 -21
- package/lib/components/po-field/po-combo/interfaces/po-response.interface.d.ts +11 -11
- package/lib/components/po-field/po-combo/po-combo-base.component.d.ts +409 -401
- package/lib/components/po-field/po-combo/po-combo-filter-mode.enum.d.ts +15 -15
- package/lib/components/po-field/po-combo/po-combo-filter.service.d.ts +28 -28
- package/lib/components/po-field/po-combo/po-combo-option-template/po-combo-option-template.directive.d.ts +70 -70
- package/lib/components/po-field/po-combo/po-combo.component.d.ts +139 -139
- package/lib/components/po-field/po-datepicker/enums/po-datepicker-iso-format.enum.d.ts +15 -15
- package/lib/components/po-field/po-datepicker/po-datepicker-base.component.d.ts +223 -223
- package/lib/components/po-field/po-datepicker/po-datepicker.component.d.ts +101 -101
- package/lib/components/po-field/po-datepicker/po-datepicker.module.d.ts +7 -7
- package/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range-literals.interface.d.ts +17 -17
- package/lib/components/po-field/po-datepicker-range/interfaces/po-datepicker-range.interface.d.ts +16 -16
- package/lib/components/po-field/po-datepicker-range/po-datepicker-range-base.component.d.ts +269 -269
- package/lib/components/po-field/po-datepicker-range/po-datepicker-range.component.d.ts +125 -125
- package/lib/components/po-field/po-datepicker-range/po-datepicker-range.literals.d.ts +7 -7
- package/lib/components/po-field/po-decimal/po-decimal.component.d.ts +180 -180
- package/lib/components/po-field/po-email/po-email.component.d.ts +42 -42
- package/lib/components/po-field/po-field-container/po-field-container-bottom/po-field-container-bottom.component.d.ts +15 -15
- package/lib/components/po-field/po-field-container/po-field-container-literals.d.ts +14 -14
- package/lib/components/po-field/po-field-container/po-field-container.component.d.ts +18 -18
- package/lib/components/po-field/po-field-container/po-field-container.module.d.ts +7 -7
- package/lib/components/po-field/po-field-validate.model.d.ts +38 -38
- package/lib/components/po-field/po-field.model.d.ts +51 -51
- package/lib/components/po-field/po-field.module.d.ts +12 -12
- package/lib/components/po-field/po-input/po-input-base.component.d.ts +265 -265
- package/lib/components/po-field/po-input/po-input.component.d.ts +29 -29
- package/lib/components/po-field/po-input/po-mask.d.ts +49 -49
- package/lib/components/po-field/po-input-generic/po-input-generic.d.ts +35 -35
- package/lib/components/po-field/po-login/po-login.component.d.ts +34 -34
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-advanced-filter.interface.d.ts +8 -8
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-column.interface.d.ts +44 -44
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-filter.interface.d.ts +29 -29
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-filtered-items-params.interface.d.ts +40 -40
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-literals.interface.d.ts +40 -40
- package/lib/components/po-field/po-lookup/interfaces/po-lookup-response-api.interface.d.ts +8 -8
- package/lib/components/po-field/po-lookup/po-lookup-base.component.d.ts +387 -387
- package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal-base.component.d.ts +119 -119
- package/lib/components/po-field/po-lookup/po-lookup-modal/po-lookup-modal.component.d.ts +41 -41
- package/lib/components/po-field/po-lookup/po-lookup.component.d.ts +113 -113
- package/lib/components/po-field/po-lookup/services/po-lookup-filter.service.d.ts +25 -25
- package/lib/components/po-field/po-lookup/services/po-lookup-modal.service.d.ts +44 -44
- package/lib/components/po-field/po-multiselect/po-multiselect-base.component.d.ts +345 -345
- package/lib/components/po-field/po-multiselect/po-multiselect-dropdown/po-multiselect-dropdown.component.d.ts +57 -57
- package/lib/components/po-field/po-multiselect/po-multiselect-filter-mode.enum.d.ts +15 -15
- package/lib/components/po-field/po-multiselect/po-multiselect-filter.interface.d.ts +28 -28
- package/lib/components/po-field/po-multiselect/po-multiselect-filter.service.d.ts +18 -18
- package/lib/components/po-field/po-multiselect/po-multiselect-item/po-multiselect-item.component.d.ts +17 -17
- package/lib/components/po-field/po-multiselect/po-multiselect-literals.interface.d.ts +15 -15
- package/lib/components/po-field/po-multiselect/po-multiselect-option.interface.d.ts +13 -13
- package/lib/components/po-field/po-multiselect/po-multiselect-search/po-multiselect-search.component.d.ts +34 -34
- package/lib/components/po-field/po-multiselect/po-multiselect.component.d.ts +107 -107
- package/lib/components/po-field/po-number/po-number-base.component.d.ts +18 -18
- package/lib/components/po-field/po-number/po-number.component.d.ts +59 -59
- package/lib/components/po-field/po-password/po-password.component.d.ts +48 -48
- package/lib/components/po-field/po-radio-group/po-radio-group-base.component.d.ts +119 -119
- package/lib/components/po-field/po-radio-group/po-radio-group-option.interface.d.ts +15 -15
- package/lib/components/po-field/po-radio-group/po-radio-group.component.d.ts +64 -64
- package/lib/components/po-field/po-rich-text/interfaces/po-rich-text-toolbar-button-group-item.interface.d.ts +4 -4
- package/lib/components/po-field/po-rich-text/po-rich-text-base.component.d.ts +144 -144
- package/lib/components/po-field/po-rich-text/po-rich-text-body/po-rich-text-body.component.d.ts +52 -52
- package/lib/components/po-field/po-rich-text/po-rich-text-image-modal/po-rich-text-image-modal.component.d.ts +34 -34
- package/lib/components/po-field/po-rich-text/po-rich-text-link-modal/po-rich-text-link-modal.component.d.ts +45 -45
- package/lib/components/po-field/po-rich-text/po-rich-text-literals.d.ts +82 -82
- package/lib/components/po-field/po-rich-text/po-rich-text-toolbar/po-rich-text-toolbar.component.d.ts +45 -45
- package/lib/components/po-field/po-rich-text/po-rich-text.component.d.ts +60 -60
- package/lib/components/po-field/po-rich-text/po-rich-text.service.d.ts +5 -5
- package/lib/components/po-field/po-select/po-select-option-template/po-select-option-template.directive.d.ts +48 -48
- package/lib/components/po-field/po-select/po-select-option.interface.d.ts +13 -13
- package/lib/components/po-field/po-select/po-select.component.d.ts +158 -151
- package/lib/components/po-field/po-switch/po-switch-label-position.enum.d.ts +13 -13
- package/lib/components/po-field/po-switch/po-switch.component.d.ts +102 -102
- package/lib/components/po-field/po-textarea/po-textarea-base.component.d.ts +178 -178
- package/lib/components/po-field/po-textarea/po-textarea.component.d.ts +59 -59
- package/lib/components/po-field/po-upload/interfaces/po-upload-file-restriction.interface.d.ts +37 -37
- package/lib/components/po-field/po-upload/interfaces/po-upload-literals.interface.d.ts +45 -45
- package/lib/components/po-field/po-upload/po-upload-base.component.d.ts +333 -325
- package/lib/components/po-field/po-upload/po-upload-base.service.d.ts +32 -32
- package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area/po-upload-drag-drop-area.component.d.ts +14 -14
- package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop-area-overlay/po-upload-drag-drop-area-overlay.component.d.ts +14 -14
- package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.component.d.ts +24 -24
- package/lib/components/po-field/po-upload/po-upload-drag-drop/po-upload-drag-drop.directive.d.ts +32 -32
- package/lib/components/po-field/po-upload/po-upload-file-restrictions/po-upload-file-restrictions.component.d.ts +21 -21
- package/lib/components/po-field/po-upload/po-upload-file.d.ts +15 -15
- package/lib/components/po-field/po-upload/po-upload-status.enum.d.ts +6 -6
- package/lib/components/po-field/po-upload/po-upload.component.d.ts +106 -106
- package/lib/components/po-field/po-upload/po-upload.service.d.ts +3 -3
- package/lib/components/po-field/po-url/po-url.component.d.ts +41 -41
- package/lib/components/po-field/validators.d.ts +7 -7
- package/lib/components/po-gauge/index.d.ts +3 -3
- package/lib/components/po-gauge/interfaces/po-gauge-coordinates.interface.d.ts +19 -19
- package/lib/components/po-gauge/interfaces/po-gauge-ranges.interface.d.ts +44 -44
- package/lib/components/po-gauge/interfaces/po-gauge-svg-container.interface.d.ts +15 -15
- package/lib/components/po-gauge/po-gauge-base.component.d.ts +98 -98
- package/lib/components/po-gauge/po-gauge-default-values.constant.d.ts +5 -5
- package/lib/components/po-gauge/po-gauge-description/po-gauge-description.component.d.ts +11 -11
- package/lib/components/po-gauge/po-gauge-legend/po-gauge-legend.component.d.ts +9 -9
- package/lib/components/po-gauge/po-gauge-svg/po-gauge-path/po-gauge-path.component.d.ts +9 -9
- package/lib/components/po-gauge/po-gauge-svg/po-gauge-pointer/po-gauge-pointer.component.d.ts +15 -15
- package/lib/components/po-gauge/po-gauge-svg/po-gauge-svg.component.d.ts +32 -32
- package/lib/components/po-gauge/po-gauge-title/po-gauge-title.component.d.ts +3 -3
- package/lib/components/po-gauge/po-gauge.component.d.ts +37 -37
- package/lib/components/po-gauge/po-gauge.module.d.ts +6 -6
- package/lib/components/po-grid/index.d.ts +3 -3
- package/lib/components/po-grid/po-grid-cell/po-grid-cell.component.d.ts +27 -27
- package/lib/components/po-grid/po-grid-cell-action/po-grid-cell-action.component.d.ts +6 -6
- package/lib/components/po-grid/po-grid-head/po-grid-head.component.d.ts +10 -10
- package/lib/components/po-grid/po-grid-row-actions.interface.d.ts +86 -86
- package/lib/components/po-grid/po-grid.component.d.ts +80 -80
- package/lib/components/po-grid/po-grid.module.d.ts +7 -7
- package/lib/components/po-icon/index.d.ts +2 -2
- package/lib/components/po-icon/po-icon.component.d.ts +39 -39
- package/lib/components/po-icon/po-icon.module.d.ts +7 -7
- package/lib/components/po-info/index.d.ts +3 -3
- package/lib/components/po-info/po-info-base.component.d.ts +46 -46
- package/lib/components/po-info/po-info-orietation.enum.d.ts +13 -13
- package/lib/components/po-info/po-info.component.d.ts +24 -24
- package/lib/components/po-info/po-info.module.d.ts +7 -7
- package/lib/components/po-list-view/index.d.ts +6 -6
- package/lib/components/po-list-view/interfaces/po-list-view-action.interface.d.ts +15 -15
- package/lib/components/po-list-view/interfaces/po-list-view-literals.interface.d.ts +19 -19
- package/lib/components/po-list-view/po-list-view-base.component.d.ts +165 -165
- package/lib/components/po-list-view/po-list-view-content-template/po-list-view-content-template.directive.d.ts +97 -97
- package/lib/components/po-list-view/po-list-view-detail-template/po-list-view-detail-template.directive.d.ts +60 -60
- package/lib/components/po-list-view/po-list-view.component.d.ts +53 -53
- package/lib/components/po-list-view/po-list-view.module.d.ts +33 -33
- package/lib/components/po-loading/index.d.ts +4 -4
- package/lib/components/po-loading/po-loading-base.component.d.ts +14 -14
- package/lib/components/po-loading/po-loading-icon/po-loading-icon.component.d.ts +22 -22
- package/lib/components/po-loading/po-loading-overlay/interfaces/po-loading-overlay-literals.interface.d.ts +13 -13
- package/lib/components/po-loading/po-loading-overlay/po-loading-overlay-base.component.d.ts +59 -59
- package/lib/components/po-loading/po-loading-overlay/po-loading-overlay.component.d.ts +28 -28
- package/lib/components/po-loading/po-loading.component.d.ts +8 -8
- package/lib/components/po-loading/po-loading.module.d.ts +8 -8
- package/lib/components/po-menu/index.d.ts +8 -8
- package/lib/components/po-menu/po-menu-base.component.d.ts +182 -182
- package/lib/components/po-menu/po-menu-filter/po-menu-filter-literals.interface.d.ts +14 -14
- package/lib/components/po-menu/po-menu-filter/po-menu-filter.component.d.ts +25 -25
- package/lib/components/po-menu/po-menu-filter/po-menu-filter.interface.d.ts +19 -19
- package/lib/components/po-menu/po-menu-header-template/po-menu-header-template.directive.d.ts +40 -40
- package/lib/components/po-menu/po-menu-item/po-menu-item-badge.interface.d.ts +49 -49
- package/lib/components/po-menu/po-menu-item/po-menu-item-filtered.interface.d.ts +13 -13
- package/lib/components/po-menu/po-menu-item/po-menu-item.component.d.ts +54 -54
- package/lib/components/po-menu/po-menu-item.interface.d.ts +78 -78
- package/lib/components/po-menu/po-menu.component.d.ts +178 -178
- package/lib/components/po-menu/po-menu.module.d.ts +7 -7
- package/lib/components/po-menu/services/po-menu-global.service.d.ts +14 -14
- package/lib/components/po-menu/services/po-menu-items.service.d.ts +16 -16
- package/lib/components/po-menu/services/po-menu.service.d.ts +20 -20
- package/lib/components/po-menu-panel/index.d.ts +3 -3
- package/lib/components/po-menu-panel/po-menu-panel-base.component.d.ts +33 -33
- package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item-internal.interface.d.ts +16 -16
- package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.component.d.ts +23 -23
- package/lib/components/po-menu-panel/po-menu-panel-item/po-menu-panel-item.interface.d.ts +18 -18
- package/lib/components/po-menu-panel/po-menu-panel.component.d.ts +91 -91
- package/lib/components/po-menu-panel/po-menu-panel.module.d.ts +7 -7
- package/lib/components/po-menu-panel/services/po-menu-panel-items.service.d.ts +16 -16
- package/lib/components/po-modal/index.d.ts +4 -4
- package/lib/components/po-modal/po-modal-action.interface.d.ts +23 -23
- package/lib/components/po-modal/po-modal-base.component.d.ts +79 -79
- package/lib/components/po-modal/po-modal-footer/po-modal-footer.component.d.ts +30 -30
- package/lib/components/po-modal/po-modal.component.d.ts +46 -46
- package/lib/components/po-modal/po-modal.literals.d.ts +14 -14
- package/lib/components/po-modal/po-modal.module.d.ts +6 -6
- package/lib/components/po-navbar/index.d.ts +4 -4
- package/lib/components/po-navbar/interfaces/po-navbar-icon-action.interface.d.ts +55 -55
- package/lib/components/po-navbar/interfaces/po-navbar-item.interface.d.ts +21 -21
- package/lib/components/po-navbar/interfaces/po-navbar-literals.interface.d.ts +11 -11
- package/lib/components/po-navbar/po-navbar-actions/po-navbar-action/po-navbar-action.component.d.ts +13 -13
- package/lib/components/po-navbar/po-navbar-actions/po-navbar-action-popup/po-navbar-action-popup.component.d.ts +5 -5
- package/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.component.d.ts +6 -6
- package/lib/components/po-navbar/po-navbar-actions/po-navbar-actions.module.d.ts +2 -2
- package/lib/components/po-navbar/po-navbar-base.component.d.ts +129 -129
- package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation-icon/po-navbar-item-navigation-icon.component.d.ts +6 -6
- package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.component.d.ts +6 -6
- package/lib/components/po-navbar/po-navbar-item-navigation/po-navbar-item-navigation.module.d.ts +2 -2
- package/lib/components/po-navbar/po-navbar-items/po-navbar-item/po-navbar-item.component.d.ts +11 -11
- package/lib/components/po-navbar/po-navbar-items/po-navbar-items.component.d.ts +17 -17
- package/lib/components/po-navbar/po-navbar-items/po-navbar-items.module.d.ts +2 -2
- package/lib/components/po-navbar/po-navbar-logo/po-navbar-logo.component.d.ts +3 -3
- package/lib/components/po-navbar/po-navbar.component.d.ts +57 -57
- package/lib/components/po-navbar/po-navbar.module.d.ts +33 -33
- package/lib/components/po-page/index.d.ts +14 -14
- package/lib/components/po-page/po-page-action.interface.d.ts +16 -16
- package/lib/components/po-page/po-page-base.component.d.ts +22 -22
- package/lib/components/po-page/po-page-content/po-page-content-base.component.d.ts +10 -10
- package/lib/components/po-page/po-page-content/po-page-content.component.d.ts +20 -20
- package/lib/components/po-page/po-page-default/po-page-default-base.component.d.ts +75 -75
- package/lib/components/po-page/po-page-default/po-page-default-literals.interface.d.ts +11 -11
- package/lib/components/po-page/po-page-default/po-page-default.component.d.ts +45 -45
- package/lib/components/po-page/po-page-default/po-page-default.interface.d.ts +13 -13
- package/lib/components/po-page/po-page-detail/po-page-detail-base.component.d.ts +100 -100
- package/lib/components/po-page/po-page-detail/po-page-detail-literals.interface.d.ts +15 -15
- package/lib/components/po-page/po-page-detail/po-page-detail.component.d.ts +28 -28
- package/lib/components/po-page/po-page-edit/po-page-edit-base.component.d.ts +106 -106
- package/lib/components/po-page/po-page-edit/po-page-edit-literals.interface.d.ts +15 -15
- package/lib/components/po-page/po-page-edit/po-page-edit.component.d.ts +29 -29
- package/lib/components/po-page/po-page-filter.interface.d.ts +26 -26
- package/lib/components/po-page/po-page-header/po-page-header-base.component.d.ts +17 -17
- package/lib/components/po-page/po-page-header/po-page-header.component.d.ts +7 -7
- package/lib/components/po-page/po-page-list/po-page-list-base.component.d.ts +108 -108
- package/lib/components/po-page/po-page-list/po-page-list-literals.interface.d.ts +11 -11
- package/lib/components/po-page/po-page-list/po-page-list.component.d.ts +71 -71
- package/lib/components/po-page/po-page-slide/po-page-slide-base.component.d.ts +111 -111
- package/lib/components/po-page/po-page-slide/po-page-slide.component.d.ts +42 -42
- package/lib/components/po-page/po-page.component.d.ts +8 -8
- package/lib/components/po-page/po-page.interface.d.ts +14 -14
- package/lib/components/po-page/po-page.module.d.ts +7 -7
- package/lib/components/po-popover/index.d.ts +2 -2
- package/lib/components/po-popover/po-popover-base.component.d.ts +131 -131
- package/lib/components/po-popover/po-popover.component.d.ts +47 -47
- package/lib/components/po-popover/po-popover.module.d.ts +6 -6
- package/lib/components/po-popup/index.d.ts +3 -3
- package/lib/components/po-popup/po-popup-action.interface.d.ts +91 -91
- package/lib/components/po-popup/po-popup-base.component.d.ts +151 -151
- package/lib/components/po-popup/po-popup.component.d.ts +69 -69
- package/lib/components/po-popup/po-popup.module.d.ts +7 -7
- package/lib/components/po-progress/enums/po-progress-status.enum.d.ts +15 -15
- package/lib/components/po-progress/index.d.ts +3 -3
- package/lib/components/po-progress/po-progress-bar/po-progress-bar.component.d.ts +5 -5
- package/lib/components/po-progress/po-progress-base.component.d.ts +103 -103
- package/lib/components/po-progress/po-progress.component.d.ts +28 -28
- package/lib/components/po-progress/po-progress.module.d.ts +7 -7
- package/lib/components/po-slide/directives/po-slide-content-template.directive.d.ts +48 -48
- package/lib/components/po-slide/index.d.ts +4 -4
- package/lib/components/po-slide/interfaces/po-slide-item.interface.d.ts +17 -17
- package/lib/components/po-slide/po-slide-base.component.d.ts +75 -75
- package/lib/components/po-slide/po-slide-circles/po-slide-circles.component.d.ts +16 -16
- package/lib/components/po-slide/po-slide-control/po-slide-control.component.d.ts +14 -14
- package/lib/components/po-slide/po-slide-item/po-slide-item.component.d.ts +28 -28
- package/lib/components/po-slide/po-slide.component.d.ts +110 -110
- package/lib/components/po-slide/po-slide.module.d.ts +33 -33
- package/lib/components/po-stepper/enums/po-stepper-orientation.enum.d.ts +16 -16
- package/lib/components/po-stepper/enums/po-stepper-status.enum.d.ts +21 -21
- package/lib/components/po-stepper/index.d.ts +6 -6
- package/lib/components/po-stepper/po-step/po-step.component.d.ts +76 -76
- package/lib/components/po-stepper/po-stepper-base.component.d.ts +132 -132
- package/lib/components/po-stepper/po-stepper-circle/po-stepper-circle.component.d.ts +20 -20
- package/lib/components/po-stepper/po-stepper-item.interface.d.ts +14 -14
- package/lib/components/po-stepper/po-stepper-label/po-stepper-label.component.d.ts +10 -10
- package/lib/components/po-stepper/po-stepper-step/po-stepper-step.component.d.ts +37 -37
- package/lib/components/po-stepper/po-stepper.component.d.ts +80 -80
- package/lib/components/po-stepper/po-stepper.module.d.ts +6 -6
- package/lib/components/po-table/enums/po-table-column-sort-type.enum.d.ts +12 -12
- package/lib/components/po-table/enums/po-table-row-template-arrow-direction.enum.d.ts +12 -12
- package/lib/components/po-table/index.d.ts +17 -17
- package/lib/components/po-table/interfaces/po-table-action.interface.d.ts +8 -8
- package/lib/components/po-table/interfaces/po-table-boolean.interface.d.ts +13 -13
- package/lib/components/po-table/interfaces/po-table-column-sort.interface.d.ts +15 -15
- package/lib/components/po-table/interfaces/po-table-column.interface.d.ts +242 -242
- package/lib/components/po-table/interfaces/po-table-filter.interface.d.ts +16 -16
- package/lib/components/po-table/interfaces/po-table-filtered-items-params.interface.d.ts +33 -33
- package/lib/components/po-table/interfaces/po-table-literals.interface.d.ts +25 -25
- package/lib/components/po-table/interfaces/po-table-response-api.interface.d.ts +7 -7
- package/lib/components/po-table/po-table-base.component.d.ts +501 -501
- package/lib/components/po-table/po-table-cell-template/po-table-cell-template.directive.d.ts +71 -71
- package/lib/components/po-table/po-table-column-icon/po-table-column-icon.component.d.ts +26 -26
- package/lib/components/po-table/po-table-column-icon/po-table-column-icon.interface.d.ts +80 -80
- package/lib/components/po-table/po-table-column-label/po-table-column-label.component.d.ts +17 -17
- package/lib/components/po-table/po-table-column-label/po-table-column-label.interface.d.ts +42 -42
- package/lib/components/po-table/po-table-column-link/po-table-column-link.component.d.ts +15 -15
- package/lib/components/po-table/po-table-column-manager/po-table-column-manager.component.d.ts +74 -74
- package/lib/components/po-table/po-table-column-template/po-table-column-template.directive.d.ts +86 -86
- package/lib/components/po-table/po-table-detail/po-table-detail-column.interface.d.ts +61 -61
- package/lib/components/po-table/po-table-detail/po-table-detail.component.d.ts +44 -44
- package/lib/components/po-table/po-table-detail/po-table-detail.interface.d.ts +36 -36
- package/lib/components/po-table/po-table-icon/po-table-icon.component.d.ts +27 -27
- package/lib/components/po-table/po-table-row-template/po-table-row-template.directive.d.ts +120 -120
- package/lib/components/po-table/po-table-show-subtitle/po-table-show-subtitle.component.d.ts +14 -14
- package/lib/components/po-table/po-table-subtitle-circle/po-table-subtitle-circle.component.d.ts +19 -19
- package/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-column.interface.d.ts +39 -39
- package/lib/components/po-table/po-table-subtitle-footer/po-table-subtitle-footer.component.d.ts +31 -31
- package/lib/components/po-table/po-table.component.d.ts +229 -229
- package/lib/components/po-table/po-table.module.d.ts +6 -6
- package/lib/components/po-table/services/po-table.service.d.ts +14 -14
- package/lib/components/po-tabs/index.d.ts +4 -4
- package/lib/components/po-tabs/po-tab/po-tab-base.component.d.ts +57 -57
- package/lib/components/po-tabs/po-tab/po-tab.component.d.ts +11 -11
- package/lib/components/po-tabs/po-tab/po-tab.interface.d.ts +45 -45
- package/lib/components/po-tabs/po-tab-button/po-tab-button.component.d.ts +29 -29
- package/lib/components/po-tabs/po-tab-dropdown/po-tab-dropdown.component.d.ts +23 -23
- package/lib/components/po-tabs/po-tabs-base.component.d.ts +34 -34
- package/lib/components/po-tabs/po-tabs.component.d.ts +50 -50
- package/lib/components/po-tabs/po-tabs.module.d.ts +6 -6
- package/lib/components/po-tag/enums/po-tag-icon.enum.d.ts +17 -17
- package/lib/components/po-tag/enums/po-tag-orientation.enum.d.ts +13 -13
- package/lib/components/po-tag/enums/po-tag-type.enum.d.ts +17 -17
- package/lib/components/po-tag/index.d.ts +4 -4
- package/lib/components/po-tag/interfaces/po-tag-item.interface.d.ts +13 -13
- package/lib/components/po-tag/po-tag-base.component.d.ts +144 -144
- package/lib/components/po-tag/po-tag.component.d.ts +32 -32
- package/lib/components/po-tag/po-tag.module.d.ts +7 -7
- package/lib/components/po-toolbar/index.d.ts +4 -4
- package/lib/components/po-toolbar/po-toolbar-action.interface.d.ts +8 -8
- package/lib/components/po-toolbar/po-toolbar-actions/po-toolbar-actions.component.d.ts +19 -19
- package/lib/components/po-toolbar/po-toolbar-base.component.d.ts +75 -75
- package/lib/components/po-toolbar/po-toolbar-notification/po-toolbar-notification.component.d.ts +22 -22
- package/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.component.d.ts +18 -18
- package/lib/components/po-toolbar/po-toolbar-profile/po-toolbar-profile.interface.d.ts +15 -15
- package/lib/components/po-toolbar/po-toolbar.component.d.ts +29 -29
- package/lib/components/po-toolbar/po-toolbar.module.d.ts +8 -8
- package/lib/components/po-tree-view/index.d.ts +3 -3
- package/lib/components/po-tree-view/po-tree-view-base.component.d.ts +86 -86
- package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.component.d.ts +12 -12
- package/lib/components/po-tree-view/po-tree-view-item/po-tree-view-item.interface.d.ts +24 -24
- package/lib/components/po-tree-view/po-tree-view-item-header/po-tree-view-item-header.component.d.ts +10 -10
- package/lib/components/po-tree-view/po-tree-view.component.d.ts +35 -35
- package/lib/components/po-tree-view/po-tree-view.module.d.ts +33 -33
- package/lib/components/po-tree-view/services/po-tree-view.service.d.ts +9 -9
- package/lib/components/po-widget/index.d.ts +2 -2
- package/lib/components/po-widget/po-widget-base.component.d.ts +162 -162
- package/lib/components/po-widget/po-widget.component.d.ts +41 -41
- package/lib/components/po-widget/po-widget.module.d.ts +7 -7
- package/lib/decorators/index.d.ts +2 -2
- package/lib/decorators/input-boolean/input-boolean.decorator.d.ts +10 -10
- package/lib/decorators/input-required/input-required.decorator.d.ts +22 -22
- package/lib/decorators/property-decorator.interface.d.ts +13 -13
- package/lib/decorators/utils-decorators.d.ts +27 -27
- package/lib/directives/directives.module.d.ts +2 -2
- package/lib/directives/index.d.ts +2 -2
- package/lib/directives/po-tooltip/index.d.ts +2 -2
- package/lib/directives/po-tooltip/po-tooltip-base.directive.d.ts +67 -67
- package/lib/directives/po-tooltip/po-tooltip-control-position.service.d.ts +3 -3
- package/lib/directives/po-tooltip/po-tooltip.directive.d.ts +52 -52
- package/lib/directives/po-tooltip/po-tooltip.module.d.ts +7 -7
- package/lib/enums/po-color-palette.enum.d.ts +33 -33
- package/lib/enums/po-key-code.enum.d.ts +29 -29
- package/lib/guards/guards.module.d.ts +2 -2
- package/lib/guards/index.d.ts +1 -1
- package/lib/index.d.ts +9 -9
- package/lib/interceptors/index.d.ts +3 -3
- package/lib/interceptors/interceptors.module.d.ts +2 -2
- package/lib/interceptors/po-http-interceptor/index.d.ts +2 -2
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-base.service.d.ts +154 -154
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail-literals.interface.d.ts +6 -6
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.component.d.ts +39 -39
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-detail/po-http-interceptor-detail.interface.d.ts +23 -23
- package/lib/interceptors/po-http-interceptor/po-http-interceptor-literals.d.ts +6 -6
- package/lib/interceptors/po-http-interceptor/po-http-interceptor.module.d.ts +2 -2
- package/lib/interceptors/po-http-interceptor/po-http-interceptor.service.d.ts +16 -16
- package/lib/interceptors/po-http-request/index.d.ts +2 -2
- package/lib/interceptors/po-http-request/po-http-request-control-service.d.ts +12 -12
- package/lib/interceptors/po-http-request/po-http-request-interceptor.service.d.ts +102 -102
- package/lib/interceptors/po-http-request/po-http-request.module.d.ts +2 -2
- package/lib/interfaces/index.d.ts +1 -1
- package/lib/interfaces/po-http/po-response-api.interface.d.ts +13 -13
- package/lib/pipes/index.d.ts +2 -2
- package/lib/pipes/pipes.module.d.ts +2 -2
- package/lib/pipes/po-time/index.d.ts +2 -2
- package/lib/pipes/po-time/po-time.module.d.ts +7 -7
- package/lib/pipes/po-time/po-time.pipe.d.ts +14 -14
- package/lib/po.module.d.ts +2 -2
- package/lib/services/index.d.ts +10 -10
- package/lib/services/po-active-overlay/index.d.ts +2 -2
- package/lib/services/po-active-overlay/po-active-overlay.module.d.ts +7 -7
- package/lib/services/po-active-overlay/po-active-overlay.service.d.ts +3 -3
- package/lib/services/po-color/po-color.service.d.ts +16 -16
- package/lib/services/po-color/po-colors.constant.d.ts +2 -2
- package/lib/services/po-color-palette/index.d.ts +2 -2
- package/lib/services/po-color-palette/po-color-palette.module.d.ts +7 -7
- package/lib/services/po-color-palette/po-color-palette.service.d.ts +7 -7
- package/lib/services/po-component-injector/index.d.ts +2 -2
- package/lib/services/po-component-injector/po-component-injector.module.d.ts +2 -2
- package/lib/services/po-component-injector/po-component-injector.service.d.ts +9 -9
- package/lib/services/po-control-position/index.d.ts +2 -2
- package/lib/services/po-control-position/po-control-position.constants.d.ts +1 -1
- package/lib/services/po-control-position/po-control-position.module.d.ts +7 -7
- package/lib/services/po-control-position/po-control-position.service.d.ts +56 -56
- package/lib/services/po-date/index.d.ts +2 -2
- package/lib/services/po-date/po-date.module.d.ts +7 -7
- package/lib/services/po-date/po-date.service.d.ts +94 -94
- package/lib/services/po-dialog/index.d.ts +7 -7
- package/lib/services/po-dialog/interfaces/po-dialog-alert-literals.interface.d.ts +11 -11
- package/lib/services/po-dialog/interfaces/po-dialog-confirm-literals.interface.d.ts +13 -13
- package/lib/services/po-dialog/interfaces/po-dialog.interface.d.ts +82 -82
- package/lib/services/po-dialog/po-dialog-base.service.d.ts +15 -15
- package/lib/services/po-dialog/po-dialog.component.d.ts +48 -48
- package/lib/services/po-dialog/po-dialog.enum.d.ts +12 -12
- package/lib/services/po-dialog/po-dialog.module.d.ts +2 -2
- package/lib/services/po-dialog/po-dialog.service.d.ts +29 -29
- package/lib/services/po-i18n/index.d.ts +7 -7
- package/lib/services/po-i18n/interfaces/po-i18n-config-default.interface.d.ts +35 -35
- package/lib/services/po-i18n/interfaces/po-i18n-config.interface.d.ts +78 -78
- package/lib/services/po-i18n/interfaces/po-i18n-literals.interface.d.ts +15 -15
- package/lib/services/po-i18n/po-i18n-base.pipe.d.ts +29 -29
- package/lib/services/po-i18n/po-i18n-base.service.d.ts +212 -212
- package/lib/services/po-i18n/po-i18n-config-injection-token.d.ts +3 -3
- package/lib/services/po-i18n/po-i18n.module.d.ts +150 -150
- package/lib/services/po-i18n/po-i18n.pipe.d.ts +15 -15
- package/lib/services/po-i18n/po-i18n.service.d.ts +10 -10
- package/lib/services/po-language/index.d.ts +4 -4
- package/lib/services/po-language/po-language.constant.d.ts +58 -58
- package/lib/services/po-language/po-language.interface.d.ts +43 -43
- package/lib/services/po-language/po-language.module.d.ts +7 -7
- package/lib/services/po-language/po-language.service.d.ts +95 -95
- package/lib/services/po-notification/index.d.ts +5 -5
- package/lib/services/po-notification/po-notification-base.service.d.ts +84 -84
- package/lib/services/po-notification/po-notification.interface.d.ts +33 -33
- package/lib/services/po-notification/po-notification.module.d.ts +2 -2
- package/lib/services/po-notification/po-notification.service.d.ts +31 -31
- package/lib/services/po-notification/po-toaster/po-toaster-base.component.d.ts +41 -41
- package/lib/services/po-notification/po-toaster/po-toaster-orientation.enum.d.ts +11 -11
- package/lib/services/po-notification/po-toaster/po-toaster-type.enum.d.ts +15 -15
- package/lib/services/po-notification/po-toaster/po-toaster.component.d.ts +33 -33
- package/lib/services/po-notification/po-toaster/po-toaster.interface.d.ts +15 -15
- package/lib/services/services.module.d.ts +2 -2
- package/lib/utils/util.d.ts +217 -217
- package/package.json +5 -5
- package/po-ui-ng-components-5.22.4.tgz +0 -0
- package/po-ui-ng-components.d.ts +205 -205
- package/po-ui-ng-components.metadata.json +1 -1
- package/public-api.d.ts +1 -1
- package/schematics/README.md +74 -74
- package/schematics/collection.json +40 -40
- package/schematics/migrations.json +25 -25
- package/schematics/ng-add/index.d.ts +8 -8
- package/schematics/ng-add/index.js +25 -25
- package/schematics/ng-add/index.spec.d.ts +1 -1
- package/schematics/ng-add/index.spec.js +91 -91
- package/schematics/ng-add/schema.json +16 -16
- package/schematics/ng-add/setup-project.d.ts +8 -8
- package/schematics/ng-add/setup-project.js +55 -55
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +3 -3
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +18 -18
- package/schematics/ng-generate/po-page-default/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-default/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-default/index.js +12 -12
- package/schematics/ng-generate/po-page-default/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-default/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-default/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-default/schema.js +2 -2
- package/schematics/ng-generate/po-page-default/schema.json +67 -67
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +8 -8
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +26 -26
- package/schematics/ng-generate/po-page-detail/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-detail/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-detail/index.js +12 -12
- package/schematics/ng-generate/po-page-detail/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-detail/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-detail/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-detail/schema.js +2 -2
- package/schematics/ng-generate/po-page-detail/schema.json +67 -67
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +8 -8
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +32 -32
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +26 -26
- package/schematics/ng-generate/po-page-edit/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-edit/index.d.ts +4 -4
- package/schematics/ng-generate/po-page-edit/index.js +12 -12
- package/schematics/ng-generate/po-page-edit/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-edit/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-edit/schema.d.ts +3 -3
- package/schematics/ng-generate/po-page-edit/schema.js +2 -2
- package/schematics/ng-generate/po-page-edit/schema.json +67 -67
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__-routing.module.ts.template +14 -14
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.html.template +28 -28
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.spec.ts.template +35 -35
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.component.ts.template +33 -33
- package/schematics/ng-generate/po-page-list/files/__path__/__name@dasherize__/__name@dasherize__.module.ts.template +19 -19
- package/schematics/ng-generate/po-page-list/index.d.ts +7 -7
- package/schematics/ng-generate/po-page-list/index.js +15 -15
- package/schematics/ng-generate/po-page-list/index.spec.d.ts +1 -1
- package/schematics/ng-generate/po-page-list/index.spec.js +120 -120
- package/schematics/ng-generate/po-page-list/schema.d.ts +5 -5
- package/schematics/ng-generate/po-page-list/schema.js +2 -2
- package/schematics/ng-generate/po-page-list/schema.json +78 -78
- package/schematics/ng-generate/sidemenu/files/app.component.html.template +9 -9
- package/schematics/ng-generate/sidemenu/files/app.component.spec.ts.template +30 -30
- package/schematics/ng-generate/sidemenu/files/app.component.ts.template +20 -20
- package/schematics/ng-generate/sidemenu/index.d.ts +8 -8
- package/schematics/ng-generate/sidemenu/index.js +51 -51
- package/schematics/ng-generate/sidemenu/index.spec.d.ts +1 -1
- package/schematics/ng-generate/sidemenu/index.spec.js +62 -62
- package/schematics/ng-generate/sidemenu/schema.d.ts +13 -13
- package/schematics/ng-generate/sidemenu/schema.js +2 -2
- package/schematics/ng-generate/sidemenu/schema.json +32 -32
- package/schematics/ng-update/v2/changes.d.ts +19 -19
- package/schematics/ng-update/v2/changes.js +58 -58
- package/schematics/ng-update/v2/index.d.ts +1 -1
- package/schematics/ng-update/v2/index.js +145 -145
- package/schematics/ng-update/v3/changes.d.ts +4 -4
- package/schematics/ng-update/v3/changes.js +20 -20
- package/schematics/ng-update/v3/index.d.ts +1 -1
- package/schematics/ng-update/v3/index.js +66 -66
- package/schematics/ng-update/v4/changes.d.ts +4 -4
- package/schematics/ng-update/v4/changes.js +20 -20
- package/schematics/ng-update/v4/index.d.ts +1 -1
- package/schematics/ng-update/v4/index.js +65 -65
- package/schematics/ng-update/v5/changes.d.ts +4 -4
- package/schematics/ng-update/v5/changes.js +25 -25
- package/schematics/ng-update/v5/index.d.ts +1 -1
- package/schematics/ng-update/v5/index.js +65 -65
- package/po-ui-ng-components-5.22.0.tgz +0 -0
|
@@ -1,497 +1,497 @@
|
|
|
1
|
-
import { __awaiter } from "tslib";
|
|
2
|
-
import { ChangeDetectorRef, Component, ContentChild, ElementRef, Renderer2 } from '@angular/core';
|
|
3
|
-
import { NavigationCancel, NavigationEnd, Router } from '@angular/router';
|
|
4
|
-
import { map } from 'rxjs/operators';
|
|
5
|
-
import { getFormattedLink, isMobile, openExternalLink, uuid } from '../../utils/util';
|
|
6
|
-
import { PoMenuBaseComponent } from './po-menu-base.component';
|
|
7
|
-
import { PoMenuHeaderTemplateDirective } from './po-menu-header-template/po-menu-header-template.directive';
|
|
8
|
-
import { PoMenuItemsService } from './services/po-menu-items.service';
|
|
9
|
-
import { PoMenuGlobalService } from './services/po-menu-global.service';
|
|
10
|
-
import { PoMenuService } from './services/po-menu.service';
|
|
11
|
-
import { PoLanguageService } from '../../services/po-language/po-language.service';
|
|
12
|
-
const poMenuDebounceTime = 400;
|
|
13
|
-
const poMenuMinLength = 3;
|
|
14
|
-
const poMenuRootLevel = 1;
|
|
15
|
-
/**
|
|
16
|
-
* @docsExtends PoMenuBaseComponent
|
|
17
|
-
*
|
|
18
|
-
* @description
|
|
19
|
-
*
|
|
20
|
-
* Aparece completo em telas com largura maior que 1200px, caso contrário o menu é escondido e chamado por meio de um botão.
|
|
21
|
-
*
|
|
22
|
-
* O menu também pode ser colapsado. Essa opção é habilitada quando todos os itens de primeiro nível possuírem ícones e textos curtos.
|
|
23
|
-
* Se colapsado, somente os itens de primeiro nível serão exibidos e, caso o item selecionado possua sub-níveis,
|
|
24
|
-
* então o menu alternará novamente para o estado aberto.
|
|
25
|
-
*
|
|
26
|
-
* Existe a possibilidade de customizar a logomarca, que é exibida na parte superior do componente.
|
|
27
|
-
*
|
|
28
|
-
* E para adicionar um conteúdo personalizado entre a logomarca e o campo de filtro,
|
|
29
|
-
* basta adicionar este conteúdo com a diretiva [**p-menu-header-template**](/documentation/po-menu-header-template).
|
|
30
|
-
*
|
|
31
|
-
* Caso utilizar o filtro de menus, é possível realizar buscas em serviço, apenas informando a URL do serviço ou a instância de
|
|
32
|
-
* um serviço customizado implementando a interface `PoMenuFilter`.
|
|
33
|
-
*
|
|
34
|
-
* Para o menu funcionar corretamente é necessário importar o `RouterModule` e `Routes` do módulo principal de
|
|
35
|
-
* sua aplicação:
|
|
36
|
-
*
|
|
37
|
-
* ````
|
|
38
|
-
* import { RouterModule, Routes } from '@angular/router';
|
|
39
|
-
*
|
|
40
|
-
* ...
|
|
41
|
-
*
|
|
42
|
-
* @NgModule({
|
|
43
|
-
* imports: [
|
|
44
|
-
* RouterModule,
|
|
45
|
-
* Routes,
|
|
46
|
-
* ...
|
|
47
|
-
* PoModule,
|
|
48
|
-
* ...
|
|
49
|
-
* ],
|
|
50
|
-
* declarations: [
|
|
51
|
-
* AppComponent
|
|
52
|
-
* ],
|
|
53
|
-
* providers: [],
|
|
54
|
-
* bootstrap: [AppComponent]
|
|
55
|
-
* })
|
|
56
|
-
* export class AppModule { }
|
|
57
|
-
* ```
|
|
58
|
-
*
|
|
59
|
-
* Além disso é necessário criar um módulo configurando as rotas da aplicação.
|
|
60
|
-
*
|
|
61
|
-
* ```
|
|
62
|
-
* import { NgModule } from '@angular/core';
|
|
63
|
-
*
|
|
64
|
-
* import { RouterModule, Routes } from '@angular/router';
|
|
65
|
-
*
|
|
66
|
-
* import { HelloWorldComponent } from './hello-world/hello-world.component';
|
|
67
|
-
*
|
|
68
|
-
* const routes: Routes = [
|
|
69
|
-
* {path: 'hello-world', component: HelloWorldComponent}
|
|
70
|
-
* ];
|
|
71
|
-
*
|
|
72
|
-
* @NgModule({
|
|
73
|
-
* imports: [RouterModule.forRoot(routes, {useHash: true})],
|
|
74
|
-
* exports: [RouterModule]
|
|
75
|
-
* })
|
|
76
|
-
* export class AppRoutingModule {}
|
|
77
|
-
* ```
|
|
78
|
-
*
|
|
79
|
-
* @example
|
|
80
|
-
*
|
|
81
|
-
* <example name="po-menu-basic" title="PO Menu Basic">
|
|
82
|
-
* <file name="sample-po-menu-basic/sample-po-menu-basic.component.html"> </file>
|
|
83
|
-
* <file name="sample-po-menu-basic/sample-po-menu-basic.component.ts"> </file>
|
|
84
|
-
* </example>
|
|
85
|
-
*
|
|
86
|
-
* <example name="po-menu-labs" title="PO Menu Labs">
|
|
87
|
-
* <file name="sample-po-menu-labs/sample-po-menu-labs.component.html"> </file>
|
|
88
|
-
* <file name="sample-po-menu-labs/sample-po-menu-labs.component.ts"> </file>
|
|
89
|
-
* </example>
|
|
90
|
-
*
|
|
91
|
-
* <example name="po-menu-human-resources" title="PO Menu - Human Resources">
|
|
92
|
-
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.component.html"> </file>
|
|
93
|
-
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.component.ts"> </file>
|
|
94
|
-
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.service.ts"> </file>
|
|
95
|
-
* </example>
|
|
96
|
-
*/
|
|
97
|
-
export class PoMenuComponent extends PoMenuBaseComponent {
|
|
98
|
-
constructor(changeDetector, element, renderer, router, menuItemsService, menuGlobalService, menuService, languageService) {
|
|
99
|
-
super(menuGlobalService, menuService, languageService);
|
|
100
|
-
this.changeDetector = changeDetector;
|
|
101
|
-
this.element = element;
|
|
102
|
-
this.renderer = renderer;
|
|
103
|
-
this.router = router;
|
|
104
|
-
this.menuItemsService = menuItemsService;
|
|
105
|
-
this.filterLoading = false;
|
|
106
|
-
this.id = uuid();
|
|
107
|
-
this.mobileOpened = false;
|
|
108
|
-
this.noData = false;
|
|
109
|
-
this.filteringItems = false;
|
|
110
|
-
this.menuInitialized = false;
|
|
111
|
-
this.menuPrevious = null;
|
|
112
|
-
}
|
|
113
|
-
get isActiveItemMenuSubMenu() {
|
|
114
|
-
return this.activeMenuItem['level'] > this.groupedMenuItem['level'];
|
|
115
|
-
}
|
|
116
|
-
get enableCollapse() {
|
|
117
|
-
return this.isCollapsed && !this.collapsedMobile;
|
|
118
|
-
}
|
|
119
|
-
get enableCollapseButton() {
|
|
120
|
-
return this.allowCollapseMenu && !this.collapsed && !this.mobileOpened;
|
|
121
|
-
}
|
|
122
|
-
get hasFooter() {
|
|
123
|
-
return this.enableCollapseButton || this.enableCollapse;
|
|
124
|
-
}
|
|
125
|
-
get isCollapsed() {
|
|
126
|
-
return this.allowCollapseMenu && this.collapsed;
|
|
127
|
-
}
|
|
128
|
-
ngDoCheck() {
|
|
129
|
-
if (this.filteringItems && this.filter) {
|
|
130
|
-
return;
|
|
131
|
-
}
|
|
132
|
-
const menuCurrent = this.stringify(this.menus);
|
|
133
|
-
if (this.menuPrevious !== menuCurrent || !this.menuInitialized) {
|
|
134
|
-
this.updateMenu();
|
|
135
|
-
this.validateCollapseClass();
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
ngOnDestroy() {
|
|
139
|
-
this.itemSubscription.unsubscribe();
|
|
140
|
-
this.routeSubscription.unsubscribe();
|
|
141
|
-
if (this.resizeListener) {
|
|
142
|
-
this.resizeListener();
|
|
143
|
-
}
|
|
144
|
-
this.menuGlobalService.sendRemovedApplicationMenu(this.id);
|
|
145
|
-
}
|
|
146
|
-
ngOnInit() {
|
|
147
|
-
this.subscribeToMenuItem();
|
|
148
|
-
this.subscribeToRoute();
|
|
149
|
-
}
|
|
150
|
-
ngAfterViewInit() {
|
|
151
|
-
this.menuGlobalService.sendApplicationMenu(this);
|
|
152
|
-
}
|
|
153
|
-
activateMenuByUrl(urlPath, menus) {
|
|
154
|
-
if (menus) {
|
|
155
|
-
const urlPathWithoutLastFragment = urlPath.substr(0, urlPath.lastIndexOf('/'));
|
|
156
|
-
return menus.some(menu => {
|
|
157
|
-
const formattedMenuLink = getFormattedLink(menu.link);
|
|
158
|
-
const menuLinkPath = `${urlPathWithoutLastFragment}${formattedMenuLink.substr(formattedMenuLink.lastIndexOf('/'))}`;
|
|
159
|
-
if (menuLinkPath === urlPath) {
|
|
160
|
-
this.linkActive = formattedMenuLink;
|
|
161
|
-
this.activateMenuItem(menu);
|
|
162
|
-
return true;
|
|
163
|
-
}
|
|
164
|
-
else {
|
|
165
|
-
return this.activateMenuByUrl(urlPath, menu.subItems);
|
|
166
|
-
}
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
checkActiveMenuByUrl(urlPath) {
|
|
171
|
-
if (!this.linkActive || this.linkActive !== urlPath) {
|
|
172
|
-
this.activateMenuByUrl(urlPath, this.menus);
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
/**
|
|
176
|
-
* <a id="colapseMethod"></a>
|
|
177
|
-
*
|
|
178
|
-
* *Método para colapsar (retrair) o menu.
|
|
179
|
-
*/
|
|
180
|
-
collapse() {
|
|
181
|
-
this.validateToggleMenu(true);
|
|
182
|
-
}
|
|
183
|
-
debounceFilter(filter) {
|
|
184
|
-
clearTimeout(this.timeoutFilter);
|
|
185
|
-
this.timeoutFilter = setTimeout(() => {
|
|
186
|
-
this.filterProcess(filter);
|
|
187
|
-
}, poMenuDebounceTime);
|
|
188
|
-
}
|
|
189
|
-
/**
|
|
190
|
-
* <a id="expandMethod"></a>
|
|
191
|
-
*
|
|
192
|
-
* *Método para expandir (aumentar) o menu.
|
|
193
|
-
*/
|
|
194
|
-
expand() {
|
|
195
|
-
this.validateToggleMenu(false);
|
|
196
|
-
}
|
|
197
|
-
subscribeToMenuItem() {
|
|
198
|
-
this.itemSubscription = this.menuItemsService.receiveFromChildMenuClicked().subscribe((menu) => {
|
|
199
|
-
this.clickMenuItem(menu);
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
subscribeToRoute() {
|
|
203
|
-
this.routeSubscription = this.router.events.subscribe(val => {
|
|
204
|
-
if (val instanceof NavigationEnd || val instanceof NavigationCancel) {
|
|
205
|
-
const urlRouter = this.checkingRouterChildrenFragments();
|
|
206
|
-
this.checkActiveMenuByUrl(urlRouter);
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
}
|
|
210
|
-
/**
|
|
211
|
-
* <a id="toggleMethod"></a>
|
|
212
|
-
* *Método que colapsa e expande o menu alternadamente.
|
|
213
|
-
*
|
|
214
|
-
* > *Os métodos apenas vão colapsar/expandir o menu se:
|
|
215
|
-
* - Todos os itens de menu tiverem valor nas propriedades `icon` e `shortLabel`.
|
|
216
|
-
*/
|
|
217
|
-
toggle() {
|
|
218
|
-
this.validateToggleMenu(!this.collapsed);
|
|
219
|
-
}
|
|
220
|
-
toggleMenuMobile() {
|
|
221
|
-
this.mobileOpened = !this.mobileOpened;
|
|
222
|
-
this.collapsedMobile = this.collapsed && this.mobileOpened;
|
|
223
|
-
this.validateCollapseClass(this.collapsedMobile);
|
|
224
|
-
if (isMobile()) {
|
|
225
|
-
return;
|
|
226
|
-
}
|
|
227
|
-
if (this.mobileOpened) {
|
|
228
|
-
this.createResizeListener();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
checkingRouterChildrenFragments() {
|
|
232
|
-
const childrenPrimary = this.router.parseUrl(this.router.url).root.children['primary'];
|
|
233
|
-
return childrenPrimary ? `/${childrenPrimary.segments.map(it => it.path).join('/')}` : '';
|
|
234
|
-
}
|
|
235
|
-
validateCollapseClass(collapsedMobile = false) {
|
|
236
|
-
const wrapper = this.element.nativeElement.parentNode;
|
|
237
|
-
this.renderer[this.isCollapsed && !collapsedMobile ? 'addClass' : 'removeClass'](wrapper, 'po-collapsed-menu');
|
|
238
|
-
}
|
|
239
|
-
activateCollapseSubMenuItem() {
|
|
240
|
-
this.clearGroupMenuIfFirstLevel(this.activeMenuItem);
|
|
241
|
-
if (!this.collapsed && this.activeMenuItem['level'] > poMenuRootLevel && this.isActiveItemMenuSubMenu) {
|
|
242
|
-
this.openParentMenu(this.activeMenuItem);
|
|
243
|
-
}
|
|
244
|
-
}
|
|
245
|
-
activateMenuItem(menu) {
|
|
246
|
-
this.activeMenuItem = menu;
|
|
247
|
-
this.linkActive = menu.link;
|
|
248
|
-
if (this.activeMenuItem['level'] > poMenuRootLevel) {
|
|
249
|
-
this.openParentMenu(this.activeMenuItem);
|
|
250
|
-
}
|
|
251
|
-
else {
|
|
252
|
-
this.groupedMenuItem = null;
|
|
253
|
-
}
|
|
254
|
-
this.menuItemsService.sendToChildMenuClicked({
|
|
255
|
-
active: this.activeMenuItem,
|
|
256
|
-
grouped: this.groupedMenuItem,
|
|
257
|
-
activatedByRoute: true
|
|
258
|
-
});
|
|
259
|
-
}
|
|
260
|
-
areSubMenus(menus) {
|
|
261
|
-
return menus.every(menu => menu['level'] > poMenuRootLevel);
|
|
262
|
-
}
|
|
263
|
-
clearGroupMenuIfFirstLevel(activeMenuItem) {
|
|
264
|
-
if (activeMenuItem['level'] === poMenuRootLevel) {
|
|
265
|
-
this.groupedMenuItem = undefined;
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
clickMenuItem(menu) {
|
|
269
|
-
if (menu.action) {
|
|
270
|
-
this.executeMenuAction(menu);
|
|
271
|
-
}
|
|
272
|
-
if (menu['type'] === 'externalLink') {
|
|
273
|
-
openExternalLink(menu.link);
|
|
274
|
-
}
|
|
275
|
-
else if (menu['type'] === 'internalLink') {
|
|
276
|
-
this.activateMenuItem(menu);
|
|
277
|
-
}
|
|
278
|
-
else if (menu['type'] === 'subItems') {
|
|
279
|
-
if (this.filteringItems) {
|
|
280
|
-
this.filteringItems = false;
|
|
281
|
-
}
|
|
282
|
-
this.groupMenuItem(menu);
|
|
283
|
-
}
|
|
284
|
-
if (menu['type'] !== 'subItems') {
|
|
285
|
-
this.mobileOpened = false;
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
convertToMenuItemFiltered(menuItem = { label: '', link: '' }) {
|
|
289
|
-
const { label, link } = menuItem;
|
|
290
|
-
const menuItemFiltered = { label, link };
|
|
291
|
-
this.setMenuItemProperties(menuItemFiltered);
|
|
292
|
-
return menuItemFiltered;
|
|
293
|
-
}
|
|
294
|
-
createResizeListener() {
|
|
295
|
-
this.resizeListener = this.renderer.listen('window', 'resize', () => {
|
|
296
|
-
this.toggleResize();
|
|
297
|
-
this.resizeListener();
|
|
298
|
-
});
|
|
299
|
-
}
|
|
300
|
-
executeMenuAction(menu) {
|
|
301
|
-
menu.action(menu);
|
|
302
|
-
}
|
|
303
|
-
filterItems(filter) {
|
|
304
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
-
const trimFilter = filter && filter.trim();
|
|
306
|
-
if (trimFilter) {
|
|
307
|
-
this.filteredItems = [];
|
|
308
|
-
this.filteredItems = this.filterService
|
|
309
|
-
? yield this.filterOnService(trimFilter)
|
|
310
|
-
: this.filterLocalItems(trimFilter);
|
|
311
|
-
this.filteringItems = true;
|
|
312
|
-
}
|
|
313
|
-
else {
|
|
314
|
-
this.filteredItems = [...this.menus];
|
|
315
|
-
this.filteringItems = false;
|
|
316
|
-
}
|
|
317
|
-
});
|
|
318
|
-
}
|
|
319
|
-
filterLocalItems(filter) {
|
|
320
|
-
const filteredItems = [];
|
|
321
|
-
this.findItems(this.menus, filter.toLowerCase(), filteredItems);
|
|
322
|
-
return filteredItems;
|
|
323
|
-
}
|
|
324
|
-
filterProcess(filter) {
|
|
325
|
-
this.filterLoading = true;
|
|
326
|
-
this.filterItems(filter)
|
|
327
|
-
.then(() => {
|
|
328
|
-
this.filterLoading = false;
|
|
329
|
-
this.showNoData();
|
|
330
|
-
this.changeDetector.detectChanges();
|
|
331
|
-
this.menuItemsService.sendToChildMenuClicked({ active: this.activeMenuItem, grouped: this.groupedMenuItem });
|
|
332
|
-
})
|
|
333
|
-
.catch(error => {
|
|
334
|
-
this.filterLoading = false;
|
|
335
|
-
Promise.reject(error);
|
|
336
|
-
});
|
|
337
|
-
}
|
|
338
|
-
filterOnService(search = '') {
|
|
339
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
340
|
-
if (search.length >= poMenuMinLength) {
|
|
341
|
-
return yield this.filterService
|
|
342
|
-
.getFilteredData(search, this.params)
|
|
343
|
-
.pipe(map(menuItemsFiltered => menuItemsFiltered.map(menuItem => this.convertToMenuItemFiltered(menuItem))))
|
|
344
|
-
.toPromise();
|
|
345
|
-
}
|
|
346
|
-
else {
|
|
347
|
-
return this.filteredItems;
|
|
348
|
-
}
|
|
349
|
-
});
|
|
350
|
-
}
|
|
351
|
-
findItems(menus, filter, filteredItems) {
|
|
352
|
-
menus.forEach(menu => {
|
|
353
|
-
var _a;
|
|
354
|
-
const hasAction = menu.action || menu.link;
|
|
355
|
-
const labelHasFilter = menu.label.toLowerCase().includes(filter);
|
|
356
|
-
if (labelHasFilter && hasAction) {
|
|
357
|
-
const newMenu = Object.assign({}, menu);
|
|
358
|
-
if ((_a = newMenu.subItems) === null || _a === void 0 ? void 0 : _a.length) {
|
|
359
|
-
delete newMenu.subItems;
|
|
360
|
-
newMenu['type'] = this.setMenuType(newMenu);
|
|
361
|
-
}
|
|
362
|
-
filteredItems.push(newMenu);
|
|
363
|
-
}
|
|
364
|
-
if (menu.subItems) {
|
|
365
|
-
this.findItems(menu.subItems, filter, filteredItems);
|
|
366
|
-
}
|
|
367
|
-
});
|
|
368
|
-
}
|
|
369
|
-
findParent(menus, menuItem) {
|
|
370
|
-
const getParent = function (menuItems, id) {
|
|
371
|
-
if (menuItems) {
|
|
372
|
-
for (let index = 0; index < menuItems.length; index++) {
|
|
373
|
-
const menu = menuItems[index];
|
|
374
|
-
if (menu.subItems && menu.subItems.find(subItem => subItem['id'] === id)) {
|
|
375
|
-
return menu;
|
|
376
|
-
}
|
|
377
|
-
const found = getParent(menu.subItems, id);
|
|
378
|
-
if (found) {
|
|
379
|
-
return found;
|
|
380
|
-
}
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
};
|
|
384
|
-
return getParent(menus, menuItem['id']);
|
|
385
|
-
}
|
|
386
|
-
findRootParent(menus, menu) {
|
|
387
|
-
const findParent = this.findParent;
|
|
388
|
-
const getRootParent = function (menuItems, menuItem) {
|
|
389
|
-
let parent = findParent(menuItems, menuItem);
|
|
390
|
-
if (parent['level'] !== poMenuRootLevel) {
|
|
391
|
-
parent = getRootParent(menuItems, parent);
|
|
392
|
-
}
|
|
393
|
-
return parent;
|
|
394
|
-
};
|
|
395
|
-
return getRootParent(menus, menu);
|
|
396
|
-
}
|
|
397
|
-
getActiveMenuParent(menus, activeMenuItem, groupedMenuItem) {
|
|
398
|
-
if (this.areSubMenus([groupedMenuItem, activeMenuItem])) {
|
|
399
|
-
return this.findRootParent(menus, activeMenuItem);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
|
-
groupMenuItem(menu) {
|
|
403
|
-
if (this.collapsed) {
|
|
404
|
-
this.toggleMenuCollapse();
|
|
405
|
-
}
|
|
406
|
-
menu['isOpened'] = !menu['isOpened'];
|
|
407
|
-
this.groupedMenuItem = menu;
|
|
408
|
-
if (this.activeMenuItem &&
|
|
409
|
-
menu['isOpened'] &&
|
|
410
|
-
this.isActiveItemMenuSubMenu &&
|
|
411
|
-
this.isRootMenuEqualGroupedMenu(this.menus, this.activeMenuItem, menu)) {
|
|
412
|
-
this.activateMenuItem(this.activeMenuItem);
|
|
413
|
-
}
|
|
414
|
-
this.menuItemsService.sendToChildMenuClicked({ active: this.activeMenuItem, grouped: this.groupedMenuItem });
|
|
415
|
-
}
|
|
416
|
-
isRootMenuEqualGroupedMenu(menus, activeMenuItem, groupedMenuItem) {
|
|
417
|
-
const activeMenuRootParent = this.findRootParent(menus, activeMenuItem);
|
|
418
|
-
return activeMenuRootParent['id'] === groupedMenuItem['id'];
|
|
419
|
-
}
|
|
420
|
-
openParentMenu(childMenu) {
|
|
421
|
-
const parent = this.findParent(this.menus, childMenu);
|
|
422
|
-
parent['isOpened'] = true;
|
|
423
|
-
this.groupedMenuItem = parent;
|
|
424
|
-
}
|
|
425
|
-
showNoData() {
|
|
426
|
-
this.noData = this.filteredItems.length === 0;
|
|
427
|
-
}
|
|
428
|
-
stringify(menus) {
|
|
429
|
-
// não faz o stringify da propriedade icon, pois pode conter objeto complexo e disparar um erro.
|
|
430
|
-
return JSON.stringify(this.menus, (key, value) => {
|
|
431
|
-
if (key !== 'icon') {
|
|
432
|
-
return value;
|
|
433
|
-
}
|
|
434
|
-
});
|
|
435
|
-
}
|
|
436
|
-
toggleGroupedMenuItem() {
|
|
437
|
-
this.groupedMenuItem['isOpened'] = !this.collapsed && this.allowCollapseMenu;
|
|
438
|
-
}
|
|
439
|
-
toggleMenuCollapse(collapsed = false) {
|
|
440
|
-
this.collapsed = collapsed;
|
|
441
|
-
if (this.groupedMenuItem && this.activeMenuItem) {
|
|
442
|
-
this.groupedMenuItem =
|
|
443
|
-
this.getActiveMenuParent(this.menus, this.activeMenuItem, this.groupedMenuItem) || this.groupedMenuItem;
|
|
444
|
-
this.toggleGroupedMenuItem();
|
|
445
|
-
}
|
|
446
|
-
if (this.activeMenuItem) {
|
|
447
|
-
this.activateCollapseSubMenuItem();
|
|
448
|
-
this.menuItemsService.sendToChildMenuClicked({
|
|
449
|
-
active: this.activeMenuItem,
|
|
450
|
-
grouped: this.groupedMenuItem,
|
|
451
|
-
activatedByRoute: true
|
|
452
|
-
});
|
|
453
|
-
}
|
|
454
|
-
this.updateMenu();
|
|
455
|
-
}
|
|
456
|
-
toggleResize() {
|
|
457
|
-
if (this.mobileOpened) {
|
|
458
|
-
this.mobileOpened = false;
|
|
459
|
-
this.collapsedMobile = false;
|
|
460
|
-
this.validateCollapseClass(this.collapsedMobile);
|
|
461
|
-
}
|
|
462
|
-
}
|
|
463
|
-
validateToggleMenu(collapsed) {
|
|
464
|
-
if (!this.allowCollapseMenu) {
|
|
465
|
-
return;
|
|
466
|
-
}
|
|
467
|
-
this.toggleMenuCollapse(collapsed);
|
|
468
|
-
}
|
|
469
|
-
updateMenu() {
|
|
470
|
-
this.menuInitialized = true;
|
|
471
|
-
this.setMenuExtraProperties();
|
|
472
|
-
this.filteredItems = [...this.menus];
|
|
473
|
-
this.menuPrevious = this.stringify(this.menus);
|
|
474
|
-
this.validateMenus(this.menus);
|
|
475
|
-
}
|
|
476
|
-
}
|
|
477
|
-
PoMenuComponent.decorators = [
|
|
478
|
-
{ type: Component, args: [{
|
|
479
|
-
selector: 'po-menu',
|
|
480
|
-
template: "<div *ngIf=\"mobileOpened\" class=\"po-menu-overlay\" (click)=\"toggleMenuMobile()\"></div>\n<div class=\"po-menu-mobile po-clickable\" (click)=\"toggleMenuMobile()\">\n <span class=\"po-icon po-icon-menu\"></span>\n</div>\n\n<div class=\"po-menu\" [ngClass]=\"{ 'po-menu-animation': mobileOpened }\">\n <div class=\"po-menu-header\">\n <div *ngIf=\"logo || (shortLogo && enableCollapse)\" class=\"po-menu-header-container-logo\">\n <a href=\"./\">\n <img\n [ngClass]=\"enableCollapse ? 'po-menu-short-logo' : 'po-menu-logo'\"\n [src]=\"enableCollapse ? shortLogo || logo : logo\"\n />\n </a>\n </div>\n\n <div *ngIf=\"!enableCollapse && menuHeaderTemplate\" class=\"po-menu-header-template\">\n <ng-container *ngTemplateOutlet=\"menuHeaderTemplate.templateRef\"></ng-container>\n </div>\n\n <po-menu-filter *ngIf=\"filter && !enableCollapse\" [p-loading]=\"filterLoading\" (p-filter)=\"debounceFilter($event)\">\n </po-menu-filter>\n </div>\n\n <nav class=\"po-menu-body\">\n <!-- Inner e outer para esconder scroll -->\n <div class=\"po-menu-outer\">\n <div class=\"po-menu-inner\">\n <div *ngIf=\"noData\" class=\"po-menu-item-wrapper\">\n <div class=\"po-menu-item-first\">\n <div class=\"po-menu-icon-container po-menu-item-no-data\">\n <po-icon class=\"po-icon po-icon-info po-menu-icon-item po-lg-2\"></po-icon>\n <div class=\"po-lg-10 po-menu-icon-label\">{{ literals.itemNotFound }}</div>\n </div>\n </div>\n </div>\n\n <div *ngFor=\"let menu of filteredItems; let menuIndex = index\" class=\"po-menu-item-wrapper\">\n <po-menu-item\n [class.po-menu-item-first]=\"menuIndex === 0\"\n [p-action]=\"menu.action\"\n [p-badge-alert]=\"menu.badgeAlert\"\n [p-badge-color]=\"menu.badge ? menu.badge.color : undefined\"\n [p-badge-value]=\"menu.badge ? menu.badge.value : undefined\"\n [p-collapsed-menu]=\"enableCollapse\"\n [p-icon]=\"allowIcons ? menu.icon : null\"\n [p-id]=\"menu.id\"\n [p-label]=\"menu.label\"\n [p-level]=\"menu.level\"\n [p-link]=\"menu.link\"\n [p-short-label]=\"menu.shortLabel\"\n [p-sub-items]=\"menu.subItems\"\n [p-type]=\"menu.type\"\n >\n </po-menu-item>\n </div>\n </div>\n </div>\n </nav>\n\n <div *ngIf=\"hasFooter\" class=\"po-menu-footer\">\n <a class=\"po-menu-collapse-button-icon po-clickable\" (click)=\"toggle()\">\n <span\n class=\"po-icon\"\n [class.po-icon-menu-close]=\"enableCollapseButton\"\n [class.po-icon-menu-open]=\"enableCollapse\"\n >\n </span>\n </a>\n </div>\n</div>\n",
|
|
481
|
-
providers: [PoMenuItemsService, PoMenuService]
|
|
482
|
-
},] }
|
|
483
|
-
];
|
|
484
|
-
PoMenuComponent.ctorParameters = () => [
|
|
485
|
-
{ type: ChangeDetectorRef },
|
|
486
|
-
{ type: ElementRef },
|
|
487
|
-
{ type: Renderer2 },
|
|
488
|
-
{ type: Router },
|
|
489
|
-
{ type: PoMenuItemsService },
|
|
490
|
-
{ type: PoMenuGlobalService },
|
|
491
|
-
{ type: PoMenuService },
|
|
492
|
-
{ type: PoLanguageService }
|
|
493
|
-
];
|
|
494
|
-
PoMenuComponent.propDecorators = {
|
|
495
|
-
menuHeaderTemplate: [{ type: ContentChild, args: [PoMenuHeaderTemplateDirective, { static: true },] }]
|
|
496
|
-
};
|
|
497
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbWVudS9wby1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUVaLFVBQVUsRUFHVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUc1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFbkYsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZHO0FB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QUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2pDLENBQUM7OztZQTlkRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLFNBQVM7Z0JBQ25CLGd5RkFBdUM7Z0JBQ3ZDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixFQUFFLGFBQWEsQ0FBQzthQUMvQzs7O1lBcEhDLGlCQUFpQjtZQUlqQixVQUFVO1lBR1YsU0FBUztZQUcrQixNQUFNO1lBV3ZDLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsYUFBYTtZQUNiLGlCQUFpQjs7O2lDQThGdkIsWUFBWSxTQUFDLDZCQUE2QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRG9DaGVjayxcbiAgRWxlbWVudFJlZixcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIFJlbmRlcmVyMlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTmF2aWdhdGlvbkNhbmNlbCwgTmF2aWdhdGlvbkVuZCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IGdldEZvcm1hdHRlZExpbmssIGlzTW9iaWxlLCBvcGVuRXh0ZXJuYWxMaW5rLCB1dWlkIH0gZnJvbSAnLi4vLi4vdXRpbHMvdXRpbCc7XG5cbmltcG9ydCB7IFBvTWVudUJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLW1lbnUtYmFzZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgUG9NZW51SGVhZGVyVGVtcGxhdGVEaXJlY3RpdmUgfSBmcm9tICcuL3BvLW1lbnUtaGVhZGVyLXRlbXBsYXRlL3BvLW1lbnUtaGVhZGVyLXRlbXBsYXRlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBQb01lbnVJdGVtIH0gZnJvbSAnLi9wby1tZW51LWl0ZW0uaW50ZXJmYWNlJztcbmltcG9ydCB7IFBvTWVudUl0ZW1GaWx0ZXJlZCB9IGZyb20gJy4vcG8tbWVudS1pdGVtL3BvLW1lbnUtaXRlbS1maWx0ZXJlZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9NZW51SXRlbXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LWl0ZW1zLnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9NZW51R2xvYmFsU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcG8tbWVudS1nbG9iYWwuc2VydmljZSc7XG5pbXBvcnQgeyBQb01lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LnNlcnZpY2UnO1xuaW1wb3J0IHsgUG9MYW5ndWFnZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9wby1sYW5ndWFnZS9wby1sYW5ndWFnZS5zZXJ2aWNlJztcblxuY29uc3QgcG9NZW51RGVib3VuY2VUaW1lID0gNDAwO1xuY29uc3QgcG9NZW51TWluTGVuZ3RoID0gMztcbmNvbnN0IHBvTWVudVJvb3RMZXZlbCA9IDE7XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvTWVudUJhc2VDb21wb25lbnRcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBBcGFyZWNlIGNvbXBsZXRvIGVtIHRlbGFzIGNvbSBsYXJndXJhIG1haW9yIHF1ZSAxMjAwcHgsIGNhc28gY29udHLDoXJpbyBvIG1lbnUgw6kgZXNjb25kaWRvIGUgY2hhbWFkbyBwb3IgbWVpbyBkZSB1bSBib3TDo28uXG4gKlxuICogTyBtZW51IHRhbWLDqW0gcG9kZSBzZXIgY29sYXBzYWRvLiBFc3NhIG9ww6fDo28gw6kgaGFiaWxpdGFkYSBxdWFuZG8gdG9kb3Mgb3MgaXRlbnMgZGUgcHJpbWVpcm8gbsOtdmVsIHBvc3N1w61yZW0gw61jb25lcyBlIHRleHRvcyBjdXJ0b3MuXG4gKiBTZSBjb2xhcHNhZG8sIHNvbWVudGUgb3MgaXRlbnMgZGUgcHJpbWVpcm8gbsOtdmVsIHNlcsOjbyBleGliaWRvcyBlLCBjYXNvIG8gaXRlbSBzZWxlY2lvbmFkbyBwb3NzdWEgc3ViLW7DrXZlaXMsXG4gKiBlbnTDo28gbyBtZW51IGFsdGVybmFyw6Egbm92YW1lbnRlIHBhcmEgbyBlc3RhZG8gYWJlcnRvLlxuICpcbiAqIEV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgY3VzdG9taXphciBhIGxvZ29tYXJjYSwgcXVlIMOpIGV4aWJpZGEgbmEgcGFydGUgc3VwZXJpb3IgZG8gY29tcG9uZW50ZS5cbiAqXG4gKiBFIHBhcmEgYWRpY2lvbmFyIHVtIGNvbnRlw7pkbyBwZXJzb25hbGl6YWRvIGVudHJlIGEgbG9nb21hcmNhIGUgbyBjYW1wbyBkZSBmaWx0cm8sXG4gKiBiYXN0YSBhZGljaW9uYXIgZXN0ZSBjb250ZcO6ZG8gY29tIGEgZGlyZXRpdmEgWyoqcC1tZW51LWhlYWRlci10ZW1wbGF0ZSoqXSgvZG9jdW1lbnRhdGlvbi9wby1tZW51LWhlYWRlci10ZW1wbGF0ZSkuXG4gKlxuICogQ2FzbyB1dGlsaXphciBvIGZpbHRybyBkZSBtZW51cywgw6kgcG9zc8OtdmVsIHJlYWxpemFyIGJ1c2NhcyBlbSBzZXJ2acOnbywgYXBlbmFzIGluZm9ybWFuZG8gYSBVUkwgZG8gc2VydmnDp28gb3UgYSBpbnN0w6JuY2lhIGRlXG4gKiB1bSBzZXJ2acOnbyBjdXN0b21pemFkbyBpbXBsZW1lbnRhbmRvIGEgaW50ZXJmYWNlIGBQb01lbnVGaWx0ZXJgLlxuICpcbiAqIFBhcmEgbyBtZW51IGZ1bmNpb25hciBjb3JyZXRhbWVudGUgw6kgbmVjZXNzw6FyaW8gaW1wb3J0YXIgbyBgUm91dGVyTW9kdWxlYCBlIGBSb3V0ZXNgIGRvIG3Ds2R1bG8gcHJpbmNpcGFsIGRlXG4gKiAgc3VhIGFwbGljYcOnw6NvOlxuICpcbiAqIGBgYGBcbiAqIGltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbiAqXG4gKiAuLi5cbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbXG4gKiAgICAgUm91dGVyTW9kdWxlLFxuICogICAgIFJvdXRlcyxcbiAqICAgICAuLi5cbiAqICAgICBQb01vZHVsZSxcbiAqICAgICAuLi5cbiAqICAgXSxcbiAqICAgZGVjbGFyYXRpb25zOiBbXG4gKiAgICAgQXBwQ29tcG9uZW50XG4gKiAgIF0sXG4gKiAgIHByb3ZpZGVyczogW10sXG4gKiAgIGJvb3RzdHJhcDogW0FwcENvbXBvbmVudF1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxuICogYGBgXG4gKlxuICogQWzDqW0gZGlzc28gw6kgbmVjZXNzw6FyaW8gY3JpYXIgdW0gbcOzZHVsbyBjb25maWd1cmFuZG8gYXMgcm90YXMgZGEgYXBsaWNhw6fDo28uXG4gKlxuICogYGBgXG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuICpcbiAqIGltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbiAqXG4gKiBpbXBvcnQgeyBIZWxsb1dvcmxkQ29tcG9uZW50IH0gZnJvbSAnLi9oZWxsby13b3JsZC9oZWxsby13b3JsZC5jb21wb25lbnQnO1xuICpcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xuICogICB7cGF0aDogJ2hlbGxvLXdvcmxkJywgY29tcG9uZW50OiBIZWxsb1dvcmxkQ29tcG9uZW50fVxuICogXTtcbiAqXG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbUm91dGVyTW9kdWxlLmZvclJvb3Qocm91dGVzLCB7dXNlSGFzaDogdHJ1ZX0pXSxcbiAqICAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cbiAqIH0pXG4gKiBleHBvcnQgY2xhc3MgQXBwUm91dGluZ01vZHVsZSB7fVxuICogYGBgXG4gKlxuICogQGV4YW1wbGVcbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbWVudS1iYXNpY1wiIHRpdGxlPVwiUE8gTWVudSBCYXNpY1wiPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtYmFzaWMvc2FtcGxlLXBvLW1lbnUtYmFzaWMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtYmFzaWMvc2FtcGxlLXBvLW1lbnUtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbWVudS1sYWJzXCIgdGl0bGU9XCJQTyBNZW51IExhYnNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWxhYnMvc2FtcGxlLXBvLW1lbnUtbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1sYWJzL3NhbXBsZS1wby1tZW51LWxhYnMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbWVudS1odW1hbi1yZXNvdXJjZXNcIiB0aXRsZT1cIlBPIE1lbnUgLSBIdW1hbiBSZXNvdXJjZXNcIj5cbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy5jb21wb25lbnQudHNcIj4gPC9maWxlPlxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzL3NhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy5zZXJ2aWNlLnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9wby1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbUG9NZW51SXRlbXNTZXJ2aWNlLCBQb01lbnVTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBQb01lbnVDb21wb25lbnQgZXh0ZW5kcyBQb01lbnVCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95LCBPbkluaXQsIERvQ2hlY2sge1xuICBAQ29udGVudENoaWxkKFBvTWVudUhlYWRlclRlbXBsYXRlRGlyZWN0aXZlLCB7IHN0YXRpYzogdHJ1ZSB9KSBtZW51SGVhZGVyVGVtcGxhdGU6IFBvTWVudUhlYWRlclRlbXBsYXRlRGlyZWN0aXZlO1xuXG4gIGFjdGl2ZU1lbnVJdGVtOiBQb01lbnVJdGVtO1xuICBjb2xsYXBzZWRNb2JpbGU6IGJvb2xlYW47XG4gIGZpbHRlckxvYWRpbmcgPSBmYWxzZTtcbiAgZ3JvdXBlZE1lbnVJdGVtOiBQb01lbnVJdGVtO1xuICBpZCA9IHV1aWQoKTtcbiAgbGlua0FjdGl2ZTogc3RyaW5nO1xuICBtb2JpbGVPcGVuZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XG4gIHRpbWVvdXRGaWx0ZXI6IGFueTtcblxuICBwcml2YXRlIGZpbHRlcmluZ0l0ZW1zOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgbWVudUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgbWVudVByZXZpb3VzID0gbnVsbDtcbiAgcHJpdmF0ZSByZXNpemVMaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBwcml2YXRlIGl0ZW1TdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSByb3V0ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgbWVudUl0ZW1zU2VydmljZTogUG9NZW51SXRlbXNTZXJ2aWNlLFxuICAgIG1lbnVHbG9iYWxTZXJ2aWNlOiBQb01lbnVHbG9iYWxTZXJ2aWNlLFxuICAgIG1lbnVTZXJ2aWNlOiBQb01lbnVTZXJ2aWNlLFxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIobWVudUdsb2JhbFNlcnZpY2UsIG1lbnVTZXJ2aWNlLCBsYW5ndWFnZVNlcnZpY2UpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNBY3RpdmVJdGVtTWVudVN1Yk1lbnUoKSB7XG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPiB0aGlzLmdyb3VwZWRNZW51SXRlbVsnbGV2ZWwnXTtcbiAgfVxuXG4gIGdldCBlbmFibGVDb2xsYXBzZSgpIHtcbiAgICByZXR1cm4gdGhpcy5pc0NvbGxhcHNlZCAmJiAhdGhpcy5jb2xsYXBzZWRNb2JpbGU7XG4gIH1cblxuICBnZXQgZW5hYmxlQ29sbGFwc2VCdXR0b24oKSB7XG4gICAgcmV0dXJuIHRoaXMuYWxsb3dDb2xsYXBzZU1lbnUgJiYgIXRoaXMuY29sbGFwc2VkICYmICF0aGlzLm1vYmlsZU9wZW5lZDtcbiAgfVxuXG4gIGdldCBoYXNGb290ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlQ29sbGFwc2VCdXR0b24gfHwgdGhpcy5lbmFibGVDb2xsYXBzZTtcbiAgfVxuXG4gIGdldCBpc0NvbGxhcHNlZCgpIHtcbiAgICByZXR1cm4gdGhpcy5hbGxvd0NvbGxhcHNlTWVudSAmJiB0aGlzLmNvbGxhcHNlZDtcbiAgfVxuXG4gIG5nRG9DaGVjaygpIHtcbiAgICBpZiAodGhpcy5maWx0ZXJpbmdJdGVtcyAmJiB0aGlzLmZpbHRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IG1lbnVDdXJyZW50ID0gdGhpcy5zdHJpbmdpZnkodGhpcy5tZW51cyk7XG5cbiAgICBpZiAodGhpcy5tZW51UHJldmlvdXMgIT09IG1lbnVDdXJyZW50IHx8ICF0aGlzLm1lbnVJbml0aWFsaXplZCkge1xuICAgICAgdGhpcy51cGRhdGVNZW51KCk7XG4gICAgICB0aGlzLnZhbGlkYXRlQ29sbGFwc2VDbGFzcygpO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaXRlbVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMucm91dGVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcblxuICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XG4gICAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgfVxuXG4gICAgdGhpcy5tZW51R2xvYmFsU2VydmljZS5zZW5kUmVtb3ZlZEFwcGxpY2F0aW9uTWVudSh0aGlzLmlkKTtcbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc3Vic2NyaWJlVG9NZW51SXRlbSgpO1xuICAgIHRoaXMuc3Vic2NyaWJlVG9Sb3V0ZSgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMubWVudUdsb2JhbFNlcnZpY2Uuc2VuZEFwcGxpY2F0aW9uTWVudSh0aGlzKTtcbiAgfVxuXG4gIGFjdGl2YXRlTWVudUJ5VXJsKHVybFBhdGg6IHN0cmluZywgbWVudXM6IEFycmF5PFBvTWVudUl0ZW0+KSB7XG4gICAgaWYgKG1lbnVzKSB7XG4gICAgICBjb25zdCB1cmxQYXRoV2l0aG91dExhc3RGcmFnbWVudCA9IHVybFBhdGguc3Vic3RyKDAsIHVybFBhdGgubGFzdEluZGV4T2YoJy8nKSk7XG4gICAgICByZXR1cm4gbWVudXMuc29tZShtZW51ID0+IHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVkTWVudUxpbmsgPSBnZXRGb3JtYXR0ZWRMaW5rKG1lbnUubGluayk7XG4gICAgICAgIGNvbnN0IG1lbnVMaW5rUGF0aCA9IGAke3VybFBhdGhXaXRob3V0TGFzdEZyYWdtZW50fSR7Zm9ybWF0dGVkTWVudUxpbmsuc3Vic3RyKFxuICAgICAgICAgIGZvcm1hdHRlZE1lbnVMaW5rLmxhc3RJbmRleE9mKCcvJylcbiAgICAgICAgKX1gO1xuXG4gICAgICAgIGlmIChtZW51TGlua1BhdGggPT09IHVybFBhdGgpIHtcbiAgICAgICAgICB0aGlzLmxpbmtBY3RpdmUgPSBmb3JtYXR0ZWRNZW51TGluaztcbiAgICAgICAgICB0aGlzLmFjdGl2YXRlTWVudUl0ZW0obWVudSk7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuIHRoaXMuYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aCwgbWVudS5zdWJJdGVtcyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNoZWNrQWN0aXZlTWVudUJ5VXJsKHVybFBhdGg6IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5saW5rQWN0aXZlIHx8IHRoaXMubGlua0FjdGl2ZSAhPT0gdXJsUGF0aCkge1xuICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVCeVVybCh1cmxQYXRoLCB0aGlzLm1lbnVzKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogPGEgaWQ9XCJjb2xhcHNlTWV0aG9kXCI+PC9hPlxuICAgKlxuICAgKiAqTcOpdG9kbyBwYXJhIGNvbGFwc2FyIChyZXRyYWlyKSBvIG1lbnUuXG4gICAqL1xuICBjb2xsYXBzZSgpIHtcbiAgICB0aGlzLnZhbGlkYXRlVG9nZ2xlTWVudSh0cnVlKTtcbiAgfVxuXG4gIGRlYm91bmNlRmlsdGVyKGZpbHRlcjogc3RyaW5nKSB7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dEZpbHRlcik7XG5cbiAgICB0aGlzLnRpbWVvdXRGaWx0ZXIgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyUHJvY2VzcyhmaWx0ZXIpO1xuICAgIH0sIHBvTWVudURlYm91bmNlVGltZSk7XG4gIH1cblxuICAvKipcbiAgICogPGEgaWQ9XCJleHBhbmRNZXRob2RcIj48L2E+XG4gICAqXG4gICAqICpNw6l0b2RvIHBhcmEgZXhwYW5kaXIgKGF1bWVudGFyKSBvIG1lbnUuXG4gICAqL1xuICBleHBhbmQoKSB7XG4gICAgdGhpcy52YWxpZGF0ZVRvZ2dsZU1lbnUoZmFsc2UpO1xuICB9XG5cbiAgc3Vic2NyaWJlVG9NZW51SXRlbSgpIHtcbiAgICB0aGlzLml0ZW1TdWJzY3JpcHRpb24gPSB0aGlzLm1lbnVJdGVtc1NlcnZpY2UucmVjZWl2ZUZyb21DaGlsZE1lbnVDbGlja2VkKCkuc3Vic2NyaWJlKChtZW51OiBQb01lbnVJdGVtKSA9PiB7XG4gICAgICB0aGlzLmNsaWNrTWVudUl0ZW0obWVudSk7XG4gICAgfSk7XG4gIH1cblxuICBzdWJzY3JpYmVUb1JvdXRlKCkge1xuICAgIHRoaXMucm91dGVTdWJzY3JpcHRpb24gPSB0aGlzLnJvdXRlci5ldmVudHMuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICBpZiAodmFsIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCB8fCB2YWwgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uQ2FuY2VsKSB7XG4gICAgICAgIGNvbnN0IHVybFJvdXRlciA9IHRoaXMuY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpO1xuICAgICAgICB0aGlzLmNoZWNrQWN0aXZlTWVudUJ5VXJsKHVybFJvdXRlcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogPGEgaWQ9XCJ0b2dnbGVNZXRob2RcIj48L2E+XG4gICAqICpNw6l0b2RvIHF1ZSBjb2xhcHNhIGUgZXhwYW5kZSBvIG1lbnUgYWx0ZXJuYWRhbWVudGUuXG4gICAqXG4gICAqID4gKk9zIG3DqXRvZG9zIGFwZW5hcyB2w6NvIGNvbGFwc2FyL2V4cGFuZGlyIG8gbWVudSBzZTpcbiAgICogIC0gVG9kb3Mgb3MgaXRlbnMgZGUgbWVudSB0aXZlcmVtIHZhbG9yIG5hcyBwcm9wcmllZGFkZXMgYGljb25gIGUgYHNob3J0TGFiZWxgLlxuICAgKi9cbiAgdG9nZ2xlKCkge1xuICAgIHRoaXMudmFsaWRhdGVUb2dnbGVNZW51KCF0aGlzLmNvbGxhcHNlZCk7XG4gIH1cblxuICB0b2dnbGVNZW51TW9iaWxlKCk6IHZvaWQge1xuICAgIHRoaXMubW9iaWxlT3BlbmVkID0gIXRoaXMubW9iaWxlT3BlbmVkO1xuICAgIHRoaXMuY29sbGFwc2VkTW9iaWxlID0gdGhpcy5jb2xsYXBzZWQgJiYgdGhpcy5tb2JpbGVPcGVuZWQ7XG5cbiAgICB0aGlzLnZhbGlkYXRlQ29sbGFwc2VDbGFzcyh0aGlzLmNvbGxhcHNlZE1vYmlsZSk7XG5cbiAgICBpZiAoaXNNb2JpbGUoKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm1vYmlsZU9wZW5lZCkge1xuICAgICAgdGhpcy5jcmVhdGVSZXNpemVMaXN0ZW5lcigpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBjaGVja2luZ1JvdXRlckNoaWxkcmVuRnJhZ21lbnRzKCkge1xuICAgIGNvbnN0IGNoaWxkcmVuUHJpbWFyeSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCkucm9vdC5jaGlsZHJlblsncHJpbWFyeSddO1xuXG4gICAgcmV0dXJuIGNoaWxkcmVuUHJpbWFyeSA/IGAvJHtjaGlsZHJlblByaW1hcnkuc2VnbWVudHMubWFwKGl0ID0+IGl0LnBhdGgpLmpvaW4oJy8nKX1gIDogJyc7XG4gIH1cblxuICBwcm90ZWN0ZWQgdmFsaWRhdGVDb2xsYXBzZUNsYXNzKGNvbGxhcHNlZE1vYmlsZTogYm9vbGVhbiA9IGZhbHNlKSB7XG4gICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XG4gICAgdGhpcy5yZW5kZXJlclt0aGlzLmlzQ29sbGFwc2VkICYmICFjb2xsYXBzZWRNb2JpbGUgPyAnYWRkQ2xhc3MnIDogJ3JlbW92ZUNsYXNzJ10od3JhcHBlciwgJ3BvLWNvbGxhcHNlZC1tZW51Jyk7XG4gIH1cblxuICBwcml2YXRlIGFjdGl2YXRlQ29sbGFwc2VTdWJNZW51SXRlbSgpIHtcbiAgICB0aGlzLmNsZWFyR3JvdXBNZW51SWZGaXJzdExldmVsKHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuXG4gICAgaWYgKCF0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLmFjdGl2ZU1lbnVJdGVtWydsZXZlbCddID4gcG9NZW51Um9vdExldmVsICYmIHRoaXMuaXNBY3RpdmVJdGVtTWVudVN1Yk1lbnUpIHtcbiAgICAgIHRoaXMub3BlblBhcmVudE1lbnUodGhpcy5hY3RpdmVNZW51SXRlbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhY3RpdmF0ZU1lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLmFjdGl2ZU1lbnVJdGVtID0gbWVudTtcbiAgICB0aGlzLmxpbmtBY3RpdmUgPSBtZW51Lmxpbms7XG4gICAgaWYgKHRoaXMuYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPiBwb01lbnVSb290TGV2ZWwpIHtcbiAgICAgIHRoaXMub3BlblBhcmVudE1lbnUodGhpcy5hY3RpdmVNZW51SXRlbSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gbnVsbDtcbiAgICB9XG4gICAgdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnNlbmRUb0NoaWxkTWVudUNsaWNrZWQoe1xuICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLFxuICAgICAgZ3JvdXBlZDogdGhpcy5ncm91cGVkTWVudUl0ZW0sXG4gICAgICBhY3RpdmF0ZWRCeVJvdXRlOiB0cnVlXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGFyZVN1Yk1lbnVzKG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPikge1xuICAgIHJldHVybiBtZW51cy5ldmVyeShtZW51ID0+IG1lbnVbJ2xldmVsJ10gPiBwb01lbnVSb290TGV2ZWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbGVhckdyb3VwTWVudUlmRmlyc3RMZXZlbChhY3RpdmVNZW51SXRlbTogUG9NZW51SXRlbSkge1xuICAgIGlmIChhY3RpdmVNZW51SXRlbVsnbGV2ZWwnXSA9PT0gcG9NZW51Um9vdExldmVsKSB7XG4gICAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9IHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNsaWNrTWVudUl0ZW0obWVudTogUG9NZW51SXRlbSkge1xuICAgIGlmIChtZW51LmFjdGlvbikge1xuICAgICAgdGhpcy5leGVjdXRlTWVudUFjdGlvbihtZW51KTtcbiAgICB9XG5cbiAgICBpZiAobWVudVsndHlwZSddID09PSAnZXh0ZXJuYWxMaW5rJykge1xuICAgICAgb3BlbkV4dGVybmFsTGluayhtZW51LmxpbmspO1xuICAgIH0gZWxzZSBpZiAobWVudVsndHlwZSddID09PSAnaW50ZXJuYWxMaW5rJykge1xuICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVJdGVtKG1lbnUpO1xuICAgIH0gZWxzZSBpZiAobWVudVsndHlwZSddID09PSAnc3ViSXRlbXMnKSB7XG4gICAgICBpZiAodGhpcy5maWx0ZXJpbmdJdGVtcykge1xuICAgICAgICB0aGlzLmZpbHRlcmluZ0l0ZW1zID0gZmFsc2U7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZ3JvdXBNZW51SXRlbShtZW51KTtcbiAgICB9XG5cbiAgICBpZiAobWVudVsndHlwZSddICE9PSAnc3ViSXRlbXMnKSB7XG4gICAgICB0aGlzLm1vYmlsZU9wZW5lZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29udmVydFRvTWVudUl0ZW1GaWx0ZXJlZChtZW51SXRlbTogYW55ID0geyBsYWJlbDogJycsIGxpbms6ICcnIH0pOiBQb01lbnVJdGVtRmlsdGVyZWQge1xuICAgIGNvbnN0IHsgbGFiZWwsIGxpbmsgfSA9IG1lbnVJdGVtO1xuXG4gICAgY29uc3QgbWVudUl0ZW1GaWx0ZXJlZDogUG9NZW51SXRlbUZpbHRlcmVkID0geyBsYWJlbCwgbGluayB9O1xuXG4gICAgdGhpcy5zZXRNZW51SXRlbVByb3BlcnRpZXMobWVudUl0ZW1GaWx0ZXJlZCk7XG5cbiAgICByZXR1cm4gbWVudUl0ZW1GaWx0ZXJlZDtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaXplTGlzdGVuZXIoKSB7XG4gICAgdGhpcy5yZXNpemVMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKCkgPT4ge1xuICAgICAgdGhpcy50b2dnbGVSZXNpemUoKTtcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZXhlY3V0ZU1lbnVBY3Rpb24obWVudTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIG1lbnUuYWN0aW9uKG1lbnUpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaWx0ZXJJdGVtcyhmaWx0ZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHRyaW1GaWx0ZXIgPSBmaWx0ZXIgJiYgZmlsdGVyLnRyaW0oKTtcblxuICAgIGlmICh0cmltRmlsdGVyKSB7XG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IHRoaXMuZmlsdGVyU2VydmljZVxuICAgICAgICA/IGF3YWl0IHRoaXMuZmlsdGVyT25TZXJ2aWNlKHRyaW1GaWx0ZXIpXG4gICAgICAgIDogdGhpcy5maWx0ZXJMb2NhbEl0ZW1zKHRyaW1GaWx0ZXIpO1xuICAgICAgdGhpcy5maWx0ZXJpbmdJdGVtcyA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLm1lbnVzXTtcbiAgICAgIHRoaXMuZmlsdGVyaW5nSXRlbXMgPSBmYWxzZTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpbHRlckxvY2FsSXRlbXMoZmlsdGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gW107XG5cbiAgICB0aGlzLmZpbmRJdGVtcyh0aGlzLm1lbnVzLCBmaWx0ZXIudG9Mb3dlckNhc2UoKSwgZmlsdGVyZWRJdGVtcyk7XG5cbiAgICByZXR1cm4gZmlsdGVyZWRJdGVtcztcbiAgfVxuXG4gIHByaXZhdGUgZmlsdGVyUHJvY2VzcyhmaWx0ZXI6IHN0cmluZykge1xuICAgIHRoaXMuZmlsdGVyTG9hZGluZyA9IHRydWU7XG5cbiAgICB0aGlzLmZpbHRlckl0ZW1zKGZpbHRlcilcbiAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJMb2FkaW5nID0gZmFsc2U7XG5cbiAgICAgICAgdGhpcy5zaG93Tm9EYXRhKCk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB0aGlzLm1lbnVJdGVtc1NlcnZpY2Uuc2VuZFRvQ2hpbGRNZW51Q2xpY2tlZCh7IGFjdGl2ZTogdGhpcy5hY3RpdmVNZW51SXRlbSwgZ3JvdXBlZDogdGhpcy5ncm91cGVkTWVudUl0ZW0gfSk7XG4gICAgICB9KVxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcbiAgICAgICAgdGhpcy5maWx0ZXJMb2FkaW5nID0gZmFsc2U7XG4gICAgICAgIFByb21pc2UucmVqZWN0KGVycm9yKTtcbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBmaWx0ZXJPblNlcnZpY2Uoc2VhcmNoOiBzdHJpbmcgPSAnJykge1xuICAgIGlmIChzZWFyY2gubGVuZ3RoID49IHBvTWVudU1pbkxlbmd0aCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmlsdGVyU2VydmljZVxuICAgICAgICAuZ2V0RmlsdGVyZWREYXRhKHNlYXJjaCwgdGhpcy5wYXJhbXMpXG4gICAgICAgIC5waXBlKG1hcChtZW51SXRlbXNGaWx0ZXJlZCA9PiBtZW51SXRlbXNGaWx0ZXJlZC5tYXAobWVudUl0ZW0gPT4gdGhpcy5jb252ZXJ0VG9NZW51SXRlbUZpbHRlcmVkKG1lbnVJdGVtKSkpKVxuICAgICAgICAudG9Qcm9taXNlKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlcmVkSXRlbXM7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaW5kSXRlbXMobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBmaWx0ZXI6IHN0cmluZywgZmlsdGVyZWRJdGVtczogQXJyYXk8YW55Pikge1xuICAgIG1lbnVzLmZvckVhY2gobWVudSA9PiB7XG4gICAgICBjb25zdCBoYXNBY3Rpb24gPSBtZW51LmFjdGlvbiB8fCBtZW51Lmxpbms7XG4gICAgICBjb25zdCBsYWJlbEhhc0ZpbHRlciA9IG1lbnUubGFiZWwudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhmaWx0ZXIpO1xuXG4gICAgICBpZiAobGFiZWxIYXNGaWx0ZXIgJiYgaGFzQWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IG5ld01lbnUgPSB7IC4uLm1lbnUgfTtcblxuICAgICAgICBpZiAobmV3TWVudS5zdWJJdGVtcz8ubGVuZ3RoKSB7XG4gICAgICAgICAgZGVsZXRlIG5ld01lbnUuc3ViSXRlbXM7XG4gICAgICAgICAgbmV3TWVudVsndHlwZSddID0gdGhpcy5zZXRNZW51VHlwZShuZXdNZW51KTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZpbHRlcmVkSXRlbXMucHVzaChuZXdNZW51KTtcbiAgICAgIH1cblxuICAgICAgaWYgKG1lbnUuc3ViSXRlbXMpIHtcbiAgICAgICAgdGhpcy5maW5kSXRlbXMobWVudS5zdWJJdGVtcywgZmlsdGVyLCBmaWx0ZXJlZEl0ZW1zKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZFBhcmVudChtZW51czogQXJyYXk8UG9NZW51SXRlbT4sIG1lbnVJdGVtOiBQb01lbnVJdGVtKTogUG9NZW51SXRlbSB7XG4gICAgY29uc3QgZ2V0UGFyZW50ID0gZnVuY3Rpb24gKG1lbnVJdGVtczogQXJyYXk8UG9NZW51SXRlbT4sIGlkKSB7XG4gICAgICBpZiAobWVudUl0ZW1zKSB7XG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZW51SXRlbXMubGVuZ3RoOyBpbmRleCsrKSB7XG4gICAgICAgICAgY29uc3QgbWVudSA9IG1lbnVJdGVtc1tpbmRleF07XG4gICAgICAgICAgaWYgKG1lbnUuc3ViSXRlbXMgJiYgbWVudS5zdWJJdGVtcy5maW5kKHN1Ykl0ZW0gPT4gc3ViSXRlbVsnaWQnXSA9PT0gaWQpKSB7XG4gICAgICAgICAgICByZXR1cm4gbWVudTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZm91bmQgPSBnZXRQYXJlbnQobWVudS5zdWJJdGVtcywgaWQpO1xuICAgICAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICAgICAgcmV0dXJuIGZvdW5kO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgcmV0dXJuIGdldFBhcmVudChtZW51cywgbWVudUl0ZW1bJ2lkJ10pO1xuICB9XG5cbiAgcHJpdmF0ZSBmaW5kUm9vdFBhcmVudChtZW51czogQXJyYXk8UG9NZW51SXRlbT4sIG1lbnU6IFBvTWVudUl0ZW0pOiBQb01lbnVJdGVtIHtcbiAgICBjb25zdCBmaW5kUGFyZW50ID0gdGhpcy5maW5kUGFyZW50O1xuXG4gICAgY29uc3QgZ2V0Um9vdFBhcmVudCA9IGZ1bmN0aW9uIChtZW51SXRlbXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51SXRlbSk6IFBvTWVudUl0ZW0ge1xuICAgICAgbGV0IHBhcmVudCA9IGZpbmRQYXJlbnQobWVudUl0ZW1zLCBtZW51SXRlbSk7XG5cbiAgICAgIGlmIChwYXJlbnRbJ2xldmVsJ10gIT09IHBvTWVudVJvb3RMZXZlbCkge1xuICAgICAgICBwYXJlbnQgPSBnZXRSb290UGFyZW50KG1lbnVJdGVtcywgcGFyZW50KTtcbiAgICAgIH1cbiAgICAgIHJldHVybiBwYXJlbnQ7XG4gICAgfTtcbiAgICByZXR1cm4gZ2V0Um9vdFBhcmVudChtZW51cywgbWVudSk7XG4gIH1cblxuICBwcml2YXRlIGdldEFjdGl2ZU1lbnVQYXJlbnQobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LCBhY3RpdmVNZW51SXRlbTogUG9NZW51SXRlbSwgZ3JvdXBlZE1lbnVJdGVtOiBQb01lbnVJdGVtKSB7XG4gICAgaWYgKHRoaXMuYXJlU3ViTWVudXMoW2dyb3VwZWRNZW51SXRlbSwgYWN0aXZlTWVudUl0ZW1dKSkge1xuICAgICAgcmV0dXJuIHRoaXMuZmluZFJvb3RQYXJlbnQobWVudXMsIGFjdGl2ZU1lbnVJdGVtKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGdyb3VwTWVudUl0ZW0obWVudTogUG9NZW51SXRlbSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkge1xuICAgICAgdGhpcy50b2dnbGVNZW51Q29sbGFwc2UoKTtcbiAgICB9XG5cbiAgICBtZW51Wydpc09wZW5lZCddID0gIW1lbnVbJ2lzT3BlbmVkJ107XG4gICAgdGhpcy5ncm91cGVkTWVudUl0ZW0gPSBtZW51O1xuXG4gICAgaWYgKFxuICAgICAgdGhpcy5hY3RpdmVNZW51SXRlbSAmJlxuICAgICAgbWVudVsnaXNPcGVuZWQnXSAmJlxuICAgICAgdGhpcy5pc0FjdGl2ZUl0ZW1NZW51U3ViTWVudSAmJlxuICAgICAgdGhpcy5pc1Jvb3RNZW51RXF1YWxHcm91cGVkTWVudSh0aGlzLm1lbnVzLCB0aGlzLmFjdGl2ZU1lbnVJdGVtLCBtZW51KVxuICAgICkge1xuICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVJdGVtKHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHsgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLCBncm91cGVkOiB0aGlzLmdyb3VwZWRNZW51SXRlbSB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNSb290TWVudUVxdWFsR3JvdXBlZE1lbnUoXG4gICAgbWVudXM6IEFycmF5PFBvTWVudUl0ZW0+LFxuICAgIGFjdGl2ZU1lbnVJdGVtOiBQb01lbnVJdGVtLFxuICAgIGdyb3VwZWRNZW51SXRlbTogUG9NZW51SXRlbVxuICApIHtcbiAgICBjb25zdCBhY3RpdmVNZW51Um9vdFBhcmVudCA9IHRoaXMuZmluZFJvb3RQYXJlbnQobWVudXMsIGFjdGl2ZU1lbnVJdGVtKTtcbiAgICByZXR1cm4gYWN0aXZlTWVudVJvb3RQYXJlbnRbJ2lkJ10gPT09IGdyb3VwZWRNZW51SXRlbVsnaWQnXTtcbiAgfVxuXG4gIHByaXZhdGUgb3BlblBhcmVudE1lbnUoY2hpbGRNZW51OiBQb01lbnVJdGVtKTogdm9pZCB7XG4gICAgY29uc3QgcGFyZW50ID0gdGhpcy5maW5kUGFyZW50KHRoaXMubWVudXMsIGNoaWxkTWVudSk7XG4gICAgcGFyZW50Wydpc09wZW5lZCddID0gdHJ1ZTtcbiAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9IHBhcmVudDtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd05vRGF0YSgpIHtcbiAgICB0aGlzLm5vRGF0YSA9IHRoaXMuZmlsdGVyZWRJdGVtcy5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIHN0cmluZ2lmeShtZW51czogQXJyYXk8UG9NZW51SXRlbT4pOiBzdHJpbmcge1xuICAgIC8vIG7Do28gZmF6IG8gc3RyaW5naWZ5IGRhIHByb3ByaWVkYWRlIGljb24sIHBvaXMgcG9kZSBjb250ZXIgb2JqZXRvIGNvbXBsZXhvIGUgZGlzcGFyYXIgdW0gZXJyby5cbiAgICByZXR1cm4gSlNPTi5zdHJpbmdpZnkodGhpcy5tZW51cywgKGtleSwgdmFsdWUpID0+IHtcbiAgICAgIGlmIChrZXkgIT09ICdpY29uJykge1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHRvZ2dsZUdyb3VwZWRNZW51SXRlbSgpIHtcbiAgICB0aGlzLmdyb3VwZWRNZW51SXRlbVsnaXNPcGVuZWQnXSA9ICF0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLmFsbG93Q29sbGFwc2VNZW51O1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVNZW51Q29sbGFwc2UoY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICB0aGlzLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcblxuICAgIGlmICh0aGlzLmdyb3VwZWRNZW51SXRlbSAmJiB0aGlzLmFjdGl2ZU1lbnVJdGVtKSB7XG4gICAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9XG4gICAgICAgIHRoaXMuZ2V0QWN0aXZlTWVudVBhcmVudCh0aGlzLm1lbnVzLCB0aGlzLmFjdGl2ZU1lbnVJdGVtLCB0aGlzLmdyb3VwZWRNZW51SXRlbSkgfHwgdGhpcy5ncm91cGVkTWVudUl0ZW07XG4gICAgICB0aGlzLnRvZ2dsZUdyb3VwZWRNZW51SXRlbSgpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmFjdGl2ZU1lbnVJdGVtKSB7XG4gICAgICB0aGlzLmFjdGl2YXRlQ29sbGFwc2VTdWJNZW51SXRlbSgpO1xuICAgICAgdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnNlbmRUb0NoaWxkTWVudUNsaWNrZWQoe1xuICAgICAgICBhY3RpdmU6IHRoaXMuYWN0aXZlTWVudUl0ZW0sXG4gICAgICAgIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtLFxuICAgICAgICBhY3RpdmF0ZWRCeVJvdXRlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlUmVzaXplKCkge1xuICAgIGlmICh0aGlzLm1vYmlsZU9wZW5lZCkge1xuICAgICAgdGhpcy5tb2JpbGVPcGVuZWQgPSBmYWxzZTtcbiAgICAgIHRoaXMuY29sbGFwc2VkTW9iaWxlID0gZmFsc2U7XG4gICAgICB0aGlzLnZhbGlkYXRlQ29sbGFwc2VDbGFzcyh0aGlzLmNvbGxhcHNlZE1vYmlsZSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB2YWxpZGF0ZVRvZ2dsZU1lbnUoY29sbGFwc2VkOiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmFsbG93Q29sbGFwc2VNZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy50b2dnbGVNZW51Q29sbGFwc2UoY29sbGFwc2VkKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlTWVudSgpIHtcbiAgICB0aGlzLm1lbnVJbml0aWFsaXplZCA9IHRydWU7XG4gICAgdGhpcy5zZXRNZW51RXh0cmFQcm9wZXJ0aWVzKCk7XG4gICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gWy4uLnRoaXMubWVudXNdO1xuICAgIHRoaXMubWVudVByZXZpb3VzID0gdGhpcy5zdHJpbmdpZnkodGhpcy5tZW51cyk7XG4gICAgdGhpcy52YWxpZGF0ZU1lbnVzKHRoaXMubWVudXMpO1xuICB9XG59XG4iXX0=
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { ChangeDetectorRef, Component, ContentChild, ElementRef, Renderer2 } from '@angular/core';
|
|
3
|
+
import { NavigationCancel, NavigationEnd, Router } from '@angular/router';
|
|
4
|
+
import { map } from 'rxjs/operators';
|
|
5
|
+
import { getFormattedLink, isMobile, openExternalLink, uuid } from '../../utils/util';
|
|
6
|
+
import { PoMenuBaseComponent } from './po-menu-base.component';
|
|
7
|
+
import { PoMenuHeaderTemplateDirective } from './po-menu-header-template/po-menu-header-template.directive';
|
|
8
|
+
import { PoMenuItemsService } from './services/po-menu-items.service';
|
|
9
|
+
import { PoMenuGlobalService } from './services/po-menu-global.service';
|
|
10
|
+
import { PoMenuService } from './services/po-menu.service';
|
|
11
|
+
import { PoLanguageService } from '../../services/po-language/po-language.service';
|
|
12
|
+
const poMenuDebounceTime = 400;
|
|
13
|
+
const poMenuMinLength = 3;
|
|
14
|
+
const poMenuRootLevel = 1;
|
|
15
|
+
/**
|
|
16
|
+
* @docsExtends PoMenuBaseComponent
|
|
17
|
+
*
|
|
18
|
+
* @description
|
|
19
|
+
*
|
|
20
|
+
* Aparece completo em telas com largura maior que 1200px, caso contrário o menu é escondido e chamado por meio de um botão.
|
|
21
|
+
*
|
|
22
|
+
* O menu também pode ser colapsado. Essa opção é habilitada quando todos os itens de primeiro nível possuírem ícones e textos curtos.
|
|
23
|
+
* Se colapsado, somente os itens de primeiro nível serão exibidos e, caso o item selecionado possua sub-níveis,
|
|
24
|
+
* então o menu alternará novamente para o estado aberto.
|
|
25
|
+
*
|
|
26
|
+
* Existe a possibilidade de customizar a logomarca, que é exibida na parte superior do componente.
|
|
27
|
+
*
|
|
28
|
+
* E para adicionar um conteúdo personalizado entre a logomarca e o campo de filtro,
|
|
29
|
+
* basta adicionar este conteúdo com a diretiva [**p-menu-header-template**](/documentation/po-menu-header-template).
|
|
30
|
+
*
|
|
31
|
+
* Caso utilizar o filtro de menus, é possível realizar buscas em serviço, apenas informando a URL do serviço ou a instância de
|
|
32
|
+
* um serviço customizado implementando a interface `PoMenuFilter`.
|
|
33
|
+
*
|
|
34
|
+
* Para o menu funcionar corretamente é necessário importar o `RouterModule` e `Routes` do módulo principal de
|
|
35
|
+
* sua aplicação:
|
|
36
|
+
*
|
|
37
|
+
* ````
|
|
38
|
+
* import { RouterModule, Routes } from '@angular/router';
|
|
39
|
+
*
|
|
40
|
+
* ...
|
|
41
|
+
*
|
|
42
|
+
* @NgModule({
|
|
43
|
+
* imports: [
|
|
44
|
+
* RouterModule,
|
|
45
|
+
* Routes,
|
|
46
|
+
* ...
|
|
47
|
+
* PoModule,
|
|
48
|
+
* ...
|
|
49
|
+
* ],
|
|
50
|
+
* declarations: [
|
|
51
|
+
* AppComponent
|
|
52
|
+
* ],
|
|
53
|
+
* providers: [],
|
|
54
|
+
* bootstrap: [AppComponent]
|
|
55
|
+
* })
|
|
56
|
+
* export class AppModule { }
|
|
57
|
+
* ```
|
|
58
|
+
*
|
|
59
|
+
* Além disso é necessário criar um módulo configurando as rotas da aplicação.
|
|
60
|
+
*
|
|
61
|
+
* ```
|
|
62
|
+
* import { NgModule } from '@angular/core';
|
|
63
|
+
*
|
|
64
|
+
* import { RouterModule, Routes } from '@angular/router';
|
|
65
|
+
*
|
|
66
|
+
* import { HelloWorldComponent } from './hello-world/hello-world.component';
|
|
67
|
+
*
|
|
68
|
+
* const routes: Routes = [
|
|
69
|
+
* {path: 'hello-world', component: HelloWorldComponent}
|
|
70
|
+
* ];
|
|
71
|
+
*
|
|
72
|
+
* @NgModule({
|
|
73
|
+
* imports: [RouterModule.forRoot(routes, {useHash: true})],
|
|
74
|
+
* exports: [RouterModule]
|
|
75
|
+
* })
|
|
76
|
+
* export class AppRoutingModule {}
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @example
|
|
80
|
+
*
|
|
81
|
+
* <example name="po-menu-basic" title="PO Menu Basic">
|
|
82
|
+
* <file name="sample-po-menu-basic/sample-po-menu-basic.component.html"> </file>
|
|
83
|
+
* <file name="sample-po-menu-basic/sample-po-menu-basic.component.ts"> </file>
|
|
84
|
+
* </example>
|
|
85
|
+
*
|
|
86
|
+
* <example name="po-menu-labs" title="PO Menu Labs">
|
|
87
|
+
* <file name="sample-po-menu-labs/sample-po-menu-labs.component.html"> </file>
|
|
88
|
+
* <file name="sample-po-menu-labs/sample-po-menu-labs.component.ts"> </file>
|
|
89
|
+
* </example>
|
|
90
|
+
*
|
|
91
|
+
* <example name="po-menu-human-resources" title="PO Menu - Human Resources">
|
|
92
|
+
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.component.html"> </file>
|
|
93
|
+
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.component.ts"> </file>
|
|
94
|
+
* <file name="sample-po-menu-human-resources/sample-po-menu-human-resources.service.ts"> </file>
|
|
95
|
+
* </example>
|
|
96
|
+
*/
|
|
97
|
+
export class PoMenuComponent extends PoMenuBaseComponent {
|
|
98
|
+
constructor(changeDetector, element, renderer, router, menuItemsService, menuGlobalService, menuService, languageService) {
|
|
99
|
+
super(menuGlobalService, menuService, languageService);
|
|
100
|
+
this.changeDetector = changeDetector;
|
|
101
|
+
this.element = element;
|
|
102
|
+
this.renderer = renderer;
|
|
103
|
+
this.router = router;
|
|
104
|
+
this.menuItemsService = menuItemsService;
|
|
105
|
+
this.filterLoading = false;
|
|
106
|
+
this.id = uuid();
|
|
107
|
+
this.mobileOpened = false;
|
|
108
|
+
this.noData = false;
|
|
109
|
+
this.filteringItems = false;
|
|
110
|
+
this.menuInitialized = false;
|
|
111
|
+
this.menuPrevious = null;
|
|
112
|
+
}
|
|
113
|
+
get isActiveItemMenuSubMenu() {
|
|
114
|
+
return this.activeMenuItem['level'] > this.groupedMenuItem['level'];
|
|
115
|
+
}
|
|
116
|
+
get enableCollapse() {
|
|
117
|
+
return this.isCollapsed && !this.collapsedMobile;
|
|
118
|
+
}
|
|
119
|
+
get enableCollapseButton() {
|
|
120
|
+
return this.allowCollapseMenu && !this.collapsed && !this.mobileOpened;
|
|
121
|
+
}
|
|
122
|
+
get hasFooter() {
|
|
123
|
+
return this.enableCollapseButton || this.enableCollapse;
|
|
124
|
+
}
|
|
125
|
+
get isCollapsed() {
|
|
126
|
+
return this.allowCollapseMenu && this.collapsed;
|
|
127
|
+
}
|
|
128
|
+
ngDoCheck() {
|
|
129
|
+
if (this.filteringItems && this.filter) {
|
|
130
|
+
return;
|
|
131
|
+
}
|
|
132
|
+
const menuCurrent = this.stringify(this.menus);
|
|
133
|
+
if (this.menuPrevious !== menuCurrent || !this.menuInitialized) {
|
|
134
|
+
this.updateMenu();
|
|
135
|
+
this.validateCollapseClass();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
ngOnDestroy() {
|
|
139
|
+
this.itemSubscription.unsubscribe();
|
|
140
|
+
this.routeSubscription.unsubscribe();
|
|
141
|
+
if (this.resizeListener) {
|
|
142
|
+
this.resizeListener();
|
|
143
|
+
}
|
|
144
|
+
this.menuGlobalService.sendRemovedApplicationMenu(this.id);
|
|
145
|
+
}
|
|
146
|
+
ngOnInit() {
|
|
147
|
+
this.subscribeToMenuItem();
|
|
148
|
+
this.subscribeToRoute();
|
|
149
|
+
}
|
|
150
|
+
ngAfterViewInit() {
|
|
151
|
+
this.menuGlobalService.sendApplicationMenu(this);
|
|
152
|
+
}
|
|
153
|
+
activateMenuByUrl(urlPath, menus) {
|
|
154
|
+
if (menus) {
|
|
155
|
+
const urlPathWithoutLastFragment = urlPath.substr(0, urlPath.lastIndexOf('/'));
|
|
156
|
+
return menus.some(menu => {
|
|
157
|
+
const formattedMenuLink = getFormattedLink(menu.link);
|
|
158
|
+
const menuLinkPath = `${urlPathWithoutLastFragment}${formattedMenuLink.substr(formattedMenuLink.lastIndexOf('/'))}`;
|
|
159
|
+
if (menuLinkPath === urlPath && menuLinkPath === formattedMenuLink) {
|
|
160
|
+
this.linkActive = formattedMenuLink;
|
|
161
|
+
this.activateMenuItem(menu);
|
|
162
|
+
return true;
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return this.activateMenuByUrl(urlPath, menu.subItems);
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
checkActiveMenuByUrl(urlPath) {
|
|
171
|
+
if (!this.linkActive || this.linkActive !== urlPath) {
|
|
172
|
+
this.activateMenuByUrl(urlPath, this.menus);
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* <a id="colapseMethod"></a>
|
|
177
|
+
*
|
|
178
|
+
* *Método para colapsar (retrair) o menu.
|
|
179
|
+
*/
|
|
180
|
+
collapse() {
|
|
181
|
+
this.validateToggleMenu(true);
|
|
182
|
+
}
|
|
183
|
+
debounceFilter(filter) {
|
|
184
|
+
clearTimeout(this.timeoutFilter);
|
|
185
|
+
this.timeoutFilter = setTimeout(() => {
|
|
186
|
+
this.filterProcess(filter);
|
|
187
|
+
}, poMenuDebounceTime);
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* <a id="expandMethod"></a>
|
|
191
|
+
*
|
|
192
|
+
* *Método para expandir (aumentar) o menu.
|
|
193
|
+
*/
|
|
194
|
+
expand() {
|
|
195
|
+
this.validateToggleMenu(false);
|
|
196
|
+
}
|
|
197
|
+
subscribeToMenuItem() {
|
|
198
|
+
this.itemSubscription = this.menuItemsService.receiveFromChildMenuClicked().subscribe((menu) => {
|
|
199
|
+
this.clickMenuItem(menu);
|
|
200
|
+
});
|
|
201
|
+
}
|
|
202
|
+
subscribeToRoute() {
|
|
203
|
+
this.routeSubscription = this.router.events.subscribe(val => {
|
|
204
|
+
if (val instanceof NavigationEnd || val instanceof NavigationCancel) {
|
|
205
|
+
const urlRouter = this.checkingRouterChildrenFragments();
|
|
206
|
+
this.checkActiveMenuByUrl(urlRouter);
|
|
207
|
+
}
|
|
208
|
+
});
|
|
209
|
+
}
|
|
210
|
+
/**
|
|
211
|
+
* <a id="toggleMethod"></a>
|
|
212
|
+
* *Método que colapsa e expande o menu alternadamente.
|
|
213
|
+
*
|
|
214
|
+
* > *Os métodos apenas vão colapsar/expandir o menu se:
|
|
215
|
+
* - Todos os itens de menu tiverem valor nas propriedades `icon` e `shortLabel`.
|
|
216
|
+
*/
|
|
217
|
+
toggle() {
|
|
218
|
+
this.validateToggleMenu(!this.collapsed);
|
|
219
|
+
}
|
|
220
|
+
toggleMenuMobile() {
|
|
221
|
+
this.mobileOpened = !this.mobileOpened;
|
|
222
|
+
this.collapsedMobile = this.collapsed && this.mobileOpened;
|
|
223
|
+
this.validateCollapseClass(this.collapsedMobile);
|
|
224
|
+
if (isMobile()) {
|
|
225
|
+
return;
|
|
226
|
+
}
|
|
227
|
+
if (this.mobileOpened) {
|
|
228
|
+
this.createResizeListener();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
checkingRouterChildrenFragments() {
|
|
232
|
+
const childrenPrimary = this.router.parseUrl(this.router.url).root.children['primary'];
|
|
233
|
+
return childrenPrimary ? `/${childrenPrimary.segments.map(it => it.path).join('/')}` : '';
|
|
234
|
+
}
|
|
235
|
+
validateCollapseClass(collapsedMobile = false) {
|
|
236
|
+
const wrapper = this.element.nativeElement.parentNode;
|
|
237
|
+
this.renderer[this.isCollapsed && !collapsedMobile ? 'addClass' : 'removeClass'](wrapper, 'po-collapsed-menu');
|
|
238
|
+
}
|
|
239
|
+
activateCollapseSubMenuItem() {
|
|
240
|
+
this.clearGroupMenuIfFirstLevel(this.activeMenuItem);
|
|
241
|
+
if (!this.collapsed && this.activeMenuItem['level'] > poMenuRootLevel && this.isActiveItemMenuSubMenu) {
|
|
242
|
+
this.openParentMenu(this.activeMenuItem);
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
activateMenuItem(menu) {
|
|
246
|
+
this.activeMenuItem = menu;
|
|
247
|
+
this.linkActive = menu.link;
|
|
248
|
+
if (this.activeMenuItem['level'] > poMenuRootLevel) {
|
|
249
|
+
this.openParentMenu(this.activeMenuItem);
|
|
250
|
+
}
|
|
251
|
+
else {
|
|
252
|
+
this.groupedMenuItem = null;
|
|
253
|
+
}
|
|
254
|
+
this.menuItemsService.sendToChildMenuClicked({
|
|
255
|
+
active: this.activeMenuItem,
|
|
256
|
+
grouped: this.groupedMenuItem,
|
|
257
|
+
activatedByRoute: true
|
|
258
|
+
});
|
|
259
|
+
}
|
|
260
|
+
areSubMenus(menus) {
|
|
261
|
+
return menus.every(menu => menu['level'] > poMenuRootLevel);
|
|
262
|
+
}
|
|
263
|
+
clearGroupMenuIfFirstLevel(activeMenuItem) {
|
|
264
|
+
if (activeMenuItem['level'] === poMenuRootLevel) {
|
|
265
|
+
this.groupedMenuItem = undefined;
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
clickMenuItem(menu) {
|
|
269
|
+
if (menu.action) {
|
|
270
|
+
this.executeMenuAction(menu);
|
|
271
|
+
}
|
|
272
|
+
if (menu['type'] === 'externalLink') {
|
|
273
|
+
openExternalLink(menu.link);
|
|
274
|
+
}
|
|
275
|
+
else if (menu['type'] === 'internalLink') {
|
|
276
|
+
this.activateMenuItem(menu);
|
|
277
|
+
}
|
|
278
|
+
else if (menu['type'] === 'subItems') {
|
|
279
|
+
if (this.filteringItems) {
|
|
280
|
+
this.filteringItems = false;
|
|
281
|
+
}
|
|
282
|
+
this.groupMenuItem(menu);
|
|
283
|
+
}
|
|
284
|
+
if (menu['type'] !== 'subItems') {
|
|
285
|
+
this.mobileOpened = false;
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
convertToMenuItemFiltered(menuItem = { label: '', link: '' }) {
|
|
289
|
+
const { label, link } = menuItem;
|
|
290
|
+
const menuItemFiltered = { label, link };
|
|
291
|
+
this.setMenuItemProperties(menuItemFiltered);
|
|
292
|
+
return menuItemFiltered;
|
|
293
|
+
}
|
|
294
|
+
createResizeListener() {
|
|
295
|
+
this.resizeListener = this.renderer.listen('window', 'resize', () => {
|
|
296
|
+
this.toggleResize();
|
|
297
|
+
this.resizeListener();
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
executeMenuAction(menu) {
|
|
301
|
+
menu.action(menu);
|
|
302
|
+
}
|
|
303
|
+
filterItems(filter) {
|
|
304
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
305
|
+
const trimFilter = filter && filter.trim();
|
|
306
|
+
if (trimFilter) {
|
|
307
|
+
this.filteredItems = [];
|
|
308
|
+
this.filteredItems = this.filterService
|
|
309
|
+
? yield this.filterOnService(trimFilter)
|
|
310
|
+
: this.filterLocalItems(trimFilter);
|
|
311
|
+
this.filteringItems = true;
|
|
312
|
+
}
|
|
313
|
+
else {
|
|
314
|
+
this.filteredItems = [...this.menus];
|
|
315
|
+
this.filteringItems = false;
|
|
316
|
+
}
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
filterLocalItems(filter) {
|
|
320
|
+
const filteredItems = [];
|
|
321
|
+
this.findItems(this.menus, filter.toLowerCase(), filteredItems);
|
|
322
|
+
return filteredItems;
|
|
323
|
+
}
|
|
324
|
+
filterProcess(filter) {
|
|
325
|
+
this.filterLoading = true;
|
|
326
|
+
this.filterItems(filter)
|
|
327
|
+
.then(() => {
|
|
328
|
+
this.filterLoading = false;
|
|
329
|
+
this.showNoData();
|
|
330
|
+
this.changeDetector.detectChanges();
|
|
331
|
+
this.menuItemsService.sendToChildMenuClicked({ active: this.activeMenuItem, grouped: this.groupedMenuItem });
|
|
332
|
+
})
|
|
333
|
+
.catch(error => {
|
|
334
|
+
this.filterLoading = false;
|
|
335
|
+
Promise.reject(error);
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
filterOnService(search = '') {
|
|
339
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
340
|
+
if (search.length >= poMenuMinLength) {
|
|
341
|
+
return yield this.filterService
|
|
342
|
+
.getFilteredData(search, this.params)
|
|
343
|
+
.pipe(map(menuItemsFiltered => menuItemsFiltered.map(menuItem => this.convertToMenuItemFiltered(menuItem))))
|
|
344
|
+
.toPromise();
|
|
345
|
+
}
|
|
346
|
+
else {
|
|
347
|
+
return this.filteredItems;
|
|
348
|
+
}
|
|
349
|
+
});
|
|
350
|
+
}
|
|
351
|
+
findItems(menus, filter, filteredItems) {
|
|
352
|
+
menus.forEach(menu => {
|
|
353
|
+
var _a;
|
|
354
|
+
const hasAction = menu.action || menu.link;
|
|
355
|
+
const labelHasFilter = menu.label.toLowerCase().includes(filter);
|
|
356
|
+
if (labelHasFilter && hasAction) {
|
|
357
|
+
const newMenu = Object.assign({}, menu);
|
|
358
|
+
if ((_a = newMenu.subItems) === null || _a === void 0 ? void 0 : _a.length) {
|
|
359
|
+
delete newMenu.subItems;
|
|
360
|
+
newMenu['type'] = this.setMenuType(newMenu);
|
|
361
|
+
}
|
|
362
|
+
filteredItems.push(newMenu);
|
|
363
|
+
}
|
|
364
|
+
if (menu.subItems) {
|
|
365
|
+
this.findItems(menu.subItems, filter, filteredItems);
|
|
366
|
+
}
|
|
367
|
+
});
|
|
368
|
+
}
|
|
369
|
+
findParent(menus, menuItem) {
|
|
370
|
+
const getParent = function (menuItems, id) {
|
|
371
|
+
if (menuItems) {
|
|
372
|
+
for (let index = 0; index < menuItems.length; index++) {
|
|
373
|
+
const menu = menuItems[index];
|
|
374
|
+
if (menu.subItems && menu.subItems.find(subItem => subItem['id'] === id)) {
|
|
375
|
+
return menu;
|
|
376
|
+
}
|
|
377
|
+
const found = getParent(menu.subItems, id);
|
|
378
|
+
if (found) {
|
|
379
|
+
return found;
|
|
380
|
+
}
|
|
381
|
+
}
|
|
382
|
+
}
|
|
383
|
+
};
|
|
384
|
+
return getParent(menus, menuItem['id']);
|
|
385
|
+
}
|
|
386
|
+
findRootParent(menus, menu) {
|
|
387
|
+
const findParent = this.findParent;
|
|
388
|
+
const getRootParent = function (menuItems, menuItem) {
|
|
389
|
+
let parent = findParent(menuItems, menuItem);
|
|
390
|
+
if (parent['level'] !== poMenuRootLevel) {
|
|
391
|
+
parent = getRootParent(menuItems, parent);
|
|
392
|
+
}
|
|
393
|
+
return parent;
|
|
394
|
+
};
|
|
395
|
+
return getRootParent(menus, menu);
|
|
396
|
+
}
|
|
397
|
+
getActiveMenuParent(menus, activeMenuItem, groupedMenuItem) {
|
|
398
|
+
if (this.areSubMenus([groupedMenuItem, activeMenuItem])) {
|
|
399
|
+
return this.findRootParent(menus, activeMenuItem);
|
|
400
|
+
}
|
|
401
|
+
}
|
|
402
|
+
groupMenuItem(menu) {
|
|
403
|
+
if (this.collapsed) {
|
|
404
|
+
this.toggleMenuCollapse();
|
|
405
|
+
}
|
|
406
|
+
menu['isOpened'] = !menu['isOpened'];
|
|
407
|
+
this.groupedMenuItem = menu;
|
|
408
|
+
if (this.activeMenuItem &&
|
|
409
|
+
menu['isOpened'] &&
|
|
410
|
+
this.isActiveItemMenuSubMenu &&
|
|
411
|
+
this.isRootMenuEqualGroupedMenu(this.menus, this.activeMenuItem, menu)) {
|
|
412
|
+
this.activateMenuItem(this.activeMenuItem);
|
|
413
|
+
}
|
|
414
|
+
this.menuItemsService.sendToChildMenuClicked({ active: this.activeMenuItem, grouped: this.groupedMenuItem });
|
|
415
|
+
}
|
|
416
|
+
isRootMenuEqualGroupedMenu(menus, activeMenuItem, groupedMenuItem) {
|
|
417
|
+
const activeMenuRootParent = this.findRootParent(menus, activeMenuItem);
|
|
418
|
+
return activeMenuRootParent['id'] === groupedMenuItem['id'];
|
|
419
|
+
}
|
|
420
|
+
openParentMenu(childMenu) {
|
|
421
|
+
const parent = this.findParent(this.menus, childMenu);
|
|
422
|
+
parent['isOpened'] = true;
|
|
423
|
+
this.groupedMenuItem = parent;
|
|
424
|
+
}
|
|
425
|
+
showNoData() {
|
|
426
|
+
this.noData = this.filteredItems.length === 0;
|
|
427
|
+
}
|
|
428
|
+
stringify(menus) {
|
|
429
|
+
// não faz o stringify da propriedade icon, pois pode conter objeto complexo e disparar um erro.
|
|
430
|
+
return JSON.stringify(this.menus, (key, value) => {
|
|
431
|
+
if (key !== 'icon') {
|
|
432
|
+
return value;
|
|
433
|
+
}
|
|
434
|
+
});
|
|
435
|
+
}
|
|
436
|
+
toggleGroupedMenuItem() {
|
|
437
|
+
this.groupedMenuItem['isOpened'] = !this.collapsed && this.allowCollapseMenu;
|
|
438
|
+
}
|
|
439
|
+
toggleMenuCollapse(collapsed = false) {
|
|
440
|
+
this.collapsed = collapsed;
|
|
441
|
+
if (this.groupedMenuItem && this.activeMenuItem) {
|
|
442
|
+
this.groupedMenuItem =
|
|
443
|
+
this.getActiveMenuParent(this.menus, this.activeMenuItem, this.groupedMenuItem) || this.groupedMenuItem;
|
|
444
|
+
this.toggleGroupedMenuItem();
|
|
445
|
+
}
|
|
446
|
+
if (this.activeMenuItem) {
|
|
447
|
+
this.activateCollapseSubMenuItem();
|
|
448
|
+
this.menuItemsService.sendToChildMenuClicked({
|
|
449
|
+
active: this.activeMenuItem,
|
|
450
|
+
grouped: this.groupedMenuItem,
|
|
451
|
+
activatedByRoute: true
|
|
452
|
+
});
|
|
453
|
+
}
|
|
454
|
+
this.updateMenu();
|
|
455
|
+
}
|
|
456
|
+
toggleResize() {
|
|
457
|
+
if (this.mobileOpened) {
|
|
458
|
+
this.mobileOpened = false;
|
|
459
|
+
this.collapsedMobile = false;
|
|
460
|
+
this.validateCollapseClass(this.collapsedMobile);
|
|
461
|
+
}
|
|
462
|
+
}
|
|
463
|
+
validateToggleMenu(collapsed) {
|
|
464
|
+
if (!this.allowCollapseMenu) {
|
|
465
|
+
return;
|
|
466
|
+
}
|
|
467
|
+
this.toggleMenuCollapse(collapsed);
|
|
468
|
+
}
|
|
469
|
+
updateMenu() {
|
|
470
|
+
this.menuInitialized = true;
|
|
471
|
+
this.setMenuExtraProperties();
|
|
472
|
+
this.filteredItems = [...this.menus];
|
|
473
|
+
this.menuPrevious = this.stringify(this.menus);
|
|
474
|
+
this.validateMenus(this.menus);
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
PoMenuComponent.decorators = [
|
|
478
|
+
{ type: Component, args: [{
|
|
479
|
+
selector: 'po-menu',
|
|
480
|
+
template: "<div *ngIf=\"mobileOpened\" class=\"po-menu-overlay\" (click)=\"toggleMenuMobile()\"></div>\r\n<div class=\"po-menu-mobile po-clickable\" (click)=\"toggleMenuMobile()\">\r\n <span class=\"po-icon po-icon-menu\"></span>\r\n</div>\r\n\r\n<div class=\"po-menu\" [ngClass]=\"{ 'po-menu-animation': mobileOpened }\">\r\n <div class=\"po-menu-header\">\r\n <div *ngIf=\"logo || (shortLogo && enableCollapse)\" class=\"po-menu-header-container-logo\">\r\n <a href=\"./\">\r\n <img\r\n [ngClass]=\"enableCollapse ? 'po-menu-short-logo' : 'po-menu-logo'\"\r\n [src]=\"enableCollapse ? shortLogo || logo : logo\"\r\n />\r\n </a>\r\n </div>\r\n\r\n <div *ngIf=\"!enableCollapse && menuHeaderTemplate\" class=\"po-menu-header-template\">\r\n <ng-container *ngTemplateOutlet=\"menuHeaderTemplate.templateRef\"></ng-container>\r\n </div>\r\n\r\n <po-menu-filter *ngIf=\"filter && !enableCollapse\" [p-loading]=\"filterLoading\" (p-filter)=\"debounceFilter($event)\">\r\n </po-menu-filter>\r\n </div>\r\n\r\n <nav class=\"po-menu-body\">\r\n <!-- Inner e outer para esconder scroll -->\r\n <div class=\"po-menu-outer\">\r\n <div class=\"po-menu-inner\">\r\n <div *ngIf=\"noData\" class=\"po-menu-item-wrapper\">\r\n <div class=\"po-menu-item-first\">\r\n <div class=\"po-menu-icon-container po-menu-item-no-data\">\r\n <po-icon class=\"po-icon po-icon-info po-menu-icon-item po-lg-2\"></po-icon>\r\n <div class=\"po-lg-10 po-menu-icon-label\">{{ literals.itemNotFound }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngFor=\"let menu of filteredItems; let menuIndex = index\" class=\"po-menu-item-wrapper\">\r\n <po-menu-item\r\n [class.po-menu-item-first]=\"menuIndex === 0\"\r\n [p-action]=\"menu.action\"\r\n [p-badge-alert]=\"menu.badgeAlert\"\r\n [p-badge-color]=\"menu.badge ? menu.badge.color : undefined\"\r\n [p-badge-value]=\"menu.badge ? menu.badge.value : undefined\"\r\n [p-collapsed-menu]=\"enableCollapse\"\r\n [p-icon]=\"allowIcons ? menu.icon : null\"\r\n [p-id]=\"menu.id\"\r\n [p-label]=\"menu.label\"\r\n [p-level]=\"menu.level\"\r\n [p-link]=\"menu.link\"\r\n [p-short-label]=\"menu.shortLabel\"\r\n [p-sub-items]=\"menu.subItems\"\r\n [p-type]=\"menu.type\"\r\n >\r\n </po-menu-item>\r\n </div>\r\n </div>\r\n </div>\r\n </nav>\r\n\r\n <div *ngIf=\"hasFooter\" class=\"po-menu-footer\">\r\n <a class=\"po-menu-collapse-button-icon po-clickable\" (click)=\"toggle()\">\r\n <span\r\n class=\"po-icon\"\r\n [class.po-icon-menu-close]=\"enableCollapseButton\"\r\n [class.po-icon-menu-open]=\"enableCollapse\"\r\n >\r\n </span>\r\n </a>\r\n </div>\r\n</div>\r\n",
|
|
481
|
+
providers: [PoMenuItemsService, PoMenuService]
|
|
482
|
+
},] }
|
|
483
|
+
];
|
|
484
|
+
PoMenuComponent.ctorParameters = () => [
|
|
485
|
+
{ type: ChangeDetectorRef },
|
|
486
|
+
{ type: ElementRef },
|
|
487
|
+
{ type: Renderer2 },
|
|
488
|
+
{ type: Router },
|
|
489
|
+
{ type: PoMenuItemsService },
|
|
490
|
+
{ type: PoMenuGlobalService },
|
|
491
|
+
{ type: PoMenuService },
|
|
492
|
+
{ type: PoLanguageService }
|
|
493
|
+
];
|
|
494
|
+
PoMenuComponent.propDecorators = {
|
|
495
|
+
menuHeaderTemplate: [{ type: ContentChild, args: [PoMenuHeaderTemplateDirective, { static: true },] }]
|
|
496
|
+
};
|
|
497
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS9zcmMvbGliL2NvbXBvbmVudHMvcG8tbWVudS9wby1tZW51LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsWUFBWSxFQUVaLFVBQVUsRUFHVixTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHckMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUV0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUc1RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFbkYsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLENBQUM7QUFDL0IsTUFBTSxlQUFlLEdBQUcsQ0FBQyxDQUFDO0FBQzFCLE1BQU0sZUFBZSxHQUFHLENBQUMsQ0FBQztBQUUxQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUZHO0FB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R0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNqQyxDQUFDOzs7WUE5ZEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxTQUFTO2dCQUNuQiw4NkZBQXVDO2dCQUN2QyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsRUFBRSxhQUFhLENBQUM7YUFDL0M7OztZQXBIQyxpQkFBaUI7WUFJakIsVUFBVTtZQUdWLFNBQVM7WUFHK0IsTUFBTTtZQVd2QyxrQkFBa0I7WUFDbEIsbUJBQW1CO1lBQ25CLGFBQWE7WUFDYixpQkFBaUI7OztpQ0E4RnZCLFlBQVksU0FBQyw2QkFBNkIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEFmdGVyVmlld0luaXQsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIENvbnRlbnRDaGlsZCxcclxuICBEb0NoZWNrLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25EZXN0cm95LFxyXG4gIE9uSW5pdCxcclxuICBSZW5kZXJlcjJcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IE5hdmlnYXRpb25DYW5jZWwsIE5hdmlnYXRpb25FbmQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcblxyXG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0Rm9ybWF0dGVkTGluaywgaXNNb2JpbGUsIG9wZW5FeHRlcm5hbExpbmssIHV1aWQgfSBmcm9tICcuLi8uLi91dGlscy91dGlsJztcclxuXHJcbmltcG9ydCB7IFBvTWVudUJhc2VDb21wb25lbnQgfSBmcm9tICcuL3BvLW1lbnUtYmFzZS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb01lbnVIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSB9IGZyb20gJy4vcG8tbWVudS1oZWFkZXItdGVtcGxhdGUvcG8tbWVudS1oZWFkZXItdGVtcGxhdGUuZGlyZWN0aXZlJztcclxuaW1wb3J0IHsgUG9NZW51SXRlbSB9IGZyb20gJy4vcG8tbWVudS1pdGVtLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvTWVudUl0ZW1GaWx0ZXJlZCB9IGZyb20gJy4vcG8tbWVudS1pdGVtL3BvLW1lbnUtaXRlbS1maWx0ZXJlZC5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb01lbnVJdGVtc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUtaXRlbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IFBvTWVudUdsb2JhbFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3BvLW1lbnUtZ2xvYmFsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb01lbnVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9wby1tZW51LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQb0xhbmd1YWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3BvLWxhbmd1YWdlL3BvLWxhbmd1YWdlLnNlcnZpY2UnO1xyXG5cclxuY29uc3QgcG9NZW51RGVib3VuY2VUaW1lID0gNDAwO1xyXG5jb25zdCBwb01lbnVNaW5MZW5ndGggPSAzO1xyXG5jb25zdCBwb01lbnVSb290TGV2ZWwgPSAxO1xyXG5cclxuLyoqXHJcbiAqIEBkb2NzRXh0ZW5kcyBQb01lbnVCYXNlQ29tcG9uZW50XHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBBcGFyZWNlIGNvbXBsZXRvIGVtIHRlbGFzIGNvbSBsYXJndXJhIG1haW9yIHF1ZSAxMjAwcHgsIGNhc28gY29udHLDoXJpbyBvIG1lbnUgw6kgZXNjb25kaWRvIGUgY2hhbWFkbyBwb3IgbWVpbyBkZSB1bSBib3TDo28uXHJcbiAqXHJcbiAqIE8gbWVudSB0YW1iw6ltIHBvZGUgc2VyIGNvbGFwc2Fkby4gRXNzYSBvcMOnw6NvIMOpIGhhYmlsaXRhZGEgcXVhbmRvIHRvZG9zIG9zIGl0ZW5zIGRlIHByaW1laXJvIG7DrXZlbCBwb3NzdcOtcmVtIMOtY29uZXMgZSB0ZXh0b3MgY3VydG9zLlxyXG4gKiBTZSBjb2xhcHNhZG8sIHNvbWVudGUgb3MgaXRlbnMgZGUgcHJpbWVpcm8gbsOtdmVsIHNlcsOjbyBleGliaWRvcyBlLCBjYXNvIG8gaXRlbSBzZWxlY2lvbmFkbyBwb3NzdWEgc3ViLW7DrXZlaXMsXHJcbiAqIGVudMOjbyBvIG1lbnUgYWx0ZXJuYXLDoSBub3ZhbWVudGUgcGFyYSBvIGVzdGFkbyBhYmVydG8uXHJcbiAqXHJcbiAqIEV4aXN0ZSBhIHBvc3NpYmlsaWRhZGUgZGUgY3VzdG9taXphciBhIGxvZ29tYXJjYSwgcXVlIMOpIGV4aWJpZGEgbmEgcGFydGUgc3VwZXJpb3IgZG8gY29tcG9uZW50ZS5cclxuICpcclxuICogRSBwYXJhIGFkaWNpb25hciB1bSBjb250ZcO6ZG8gcGVyc29uYWxpemFkbyBlbnRyZSBhIGxvZ29tYXJjYSBlIG8gY2FtcG8gZGUgZmlsdHJvLFxyXG4gKiBiYXN0YSBhZGljaW9uYXIgZXN0ZSBjb250ZcO6ZG8gY29tIGEgZGlyZXRpdmEgWyoqcC1tZW51LWhlYWRlci10ZW1wbGF0ZSoqXSgvZG9jdW1lbnRhdGlvbi9wby1tZW51LWhlYWRlci10ZW1wbGF0ZSkuXHJcbiAqXHJcbiAqIENhc28gdXRpbGl6YXIgbyBmaWx0cm8gZGUgbWVudXMsIMOpIHBvc3PDrXZlbCByZWFsaXphciBidXNjYXMgZW0gc2VydmnDp28sIGFwZW5hcyBpbmZvcm1hbmRvIGEgVVJMIGRvIHNlcnZpw6dvIG91IGEgaW5zdMOibmNpYSBkZVxyXG4gKiB1bSBzZXJ2acOnbyBjdXN0b21pemFkbyBpbXBsZW1lbnRhbmRvIGEgaW50ZXJmYWNlIGBQb01lbnVGaWx0ZXJgLlxyXG4gKlxyXG4gKiBQYXJhIG8gbWVudSBmdW5jaW9uYXIgY29ycmV0YW1lbnRlIMOpIG5lY2Vzc8OhcmlvIGltcG9ydGFyIG8gYFJvdXRlck1vZHVsZWAgZSBgUm91dGVzYCBkbyBtw7NkdWxvIHByaW5jaXBhbCBkZVxyXG4gKiAgc3VhIGFwbGljYcOnw6NvOlxyXG4gKlxyXG4gKiBgYGBgXHJcbiAqIGltcG9ydCB7IFJvdXRlck1vZHVsZSwgUm91dGVzIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuICpcclxuICogLi4uXHJcbiAqXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgICAgUm91dGVyTW9kdWxlLFxyXG4gKiAgICAgUm91dGVzLFxyXG4gKiAgICAgLi4uXHJcbiAqICAgICBQb01vZHVsZSxcclxuICogICAgIC4uLlxyXG4gKiAgIF0sXHJcbiAqICAgZGVjbGFyYXRpb25zOiBbXHJcbiAqICAgICBBcHBDb21wb25lbnRcclxuICogICBdLFxyXG4gKiAgIHByb3ZpZGVyczogW10sXHJcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XVxyXG4gKiB9KVxyXG4gKiBleHBvcnQgY2xhc3MgQXBwTW9kdWxlIHsgfVxyXG4gKiBgYGBcclxuICpcclxuICogQWzDqW0gZGlzc28gw6kgbmVjZXNzw6FyaW8gY3JpYXIgdW0gbcOzZHVsbyBjb25maWd1cmFuZG8gYXMgcm90YXMgZGEgYXBsaWNhw6fDo28uXHJcbiAqXHJcbiAqIGBgYFxyXG4gKiBpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG4gKlxyXG4gKiBpbXBvcnQgeyBSb3V0ZXJNb2R1bGUsIFJvdXRlcyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbiAqXHJcbiAqIGltcG9ydCB7IEhlbGxvV29ybGRDb21wb25lbnQgfSBmcm9tICcuL2hlbGxvLXdvcmxkL2hlbGxvLXdvcmxkLmNvbXBvbmVudCc7XHJcbiAqXHJcbiAqIGNvbnN0IHJvdXRlczogUm91dGVzID0gW1xyXG4gKiAgIHtwYXRoOiAnaGVsbG8td29ybGQnLCBjb21wb25lbnQ6IEhlbGxvV29ybGRDb21wb25lbnR9XHJcbiAqIF07XHJcbiAqXHJcbiAqIEBOZ01vZHVsZSh7XHJcbiAqICAgaW1wb3J0czogW1JvdXRlck1vZHVsZS5mb3JSb290KHJvdXRlcywge3VzZUhhc2g6IHRydWV9KV0sXHJcbiAqICAgZXhwb3J0czogW1JvdXRlck1vZHVsZV1cclxuICogfSlcclxuICogZXhwb3J0IGNsYXNzIEFwcFJvdXRpbmdNb2R1bGUge31cclxuICogYGBgXHJcbiAqXHJcbiAqIEBleGFtcGxlXHJcbiAqXHJcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1tZW51LWJhc2ljXCIgdGl0bGU9XCJQTyBNZW51IEJhc2ljXCI+XHJcbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWJhc2ljL3NhbXBsZS1wby1tZW51LWJhc2ljLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cclxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtYmFzaWMvc2FtcGxlLXBvLW1lbnUtYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cclxuICogPC9leGFtcGxlPlxyXG4gKlxyXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tbWVudS1sYWJzXCIgdGl0bGU9XCJQTyBNZW51IExhYnNcIj5cclxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtbGFicy9zYW1wbGUtcG8tbWVudS1sYWJzLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cclxuICogICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLW1lbnUtbGFicy9zYW1wbGUtcG8tbWVudS1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XHJcbiAqIDwvZXhhbXBsZT5cclxuICpcclxuICogPGV4YW1wbGUgbmFtZT1cInBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzXCIgdGl0bGU9XCJQTyBNZW51IC0gSHVtYW4gUmVzb3VyY2VzXCI+XHJcbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWxcIj4gPC9maWxlPlxyXG4gKiAgIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMvc2FtcGxlLXBvLW1lbnUtaHVtYW4tcmVzb3VyY2VzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XHJcbiAqICAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1tZW51LWh1bWFuLXJlc291cmNlcy9zYW1wbGUtcG8tbWVudS1odW1hbi1yZXNvdXJjZXMuc2VydmljZS50c1wiPiA8L2ZpbGU+XHJcbiAqIDwvZXhhbXBsZT5cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAncG8tbWVudScsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3BvLW1lbnUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHByb3ZpZGVyczogW1BvTWVudUl0ZW1zU2VydmljZSwgUG9NZW51U2VydmljZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFBvTWVudUNvbXBvbmVudCBleHRlbmRzIFBvTWVudUJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCwgRG9DaGVjayB7XHJcbiAgQENvbnRlbnRDaGlsZChQb01lbnVIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZSwgeyBzdGF0aWM6IHRydWUgfSkgbWVudUhlYWRlclRlbXBsYXRlOiBQb01lbnVIZWFkZXJUZW1wbGF0ZURpcmVjdGl2ZTtcclxuXHJcbiAgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW07XHJcbiAgY29sbGFwc2VkTW9iaWxlOiBib29sZWFuO1xyXG4gIGZpbHRlckxvYWRpbmcgPSBmYWxzZTtcclxuICBncm91cGVkTWVudUl0ZW06IFBvTWVudUl0ZW07XHJcbiAgaWQgPSB1dWlkKCk7XHJcbiAgbGlua0FjdGl2ZTogc3RyaW5nO1xyXG4gIG1vYmlsZU9wZW5lZDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIG5vRGF0YTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHRpbWVvdXRGaWx0ZXI6IGFueTtcclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJpbmdJdGVtczogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgbWVudUluaXRpYWxpemVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBtZW51UHJldmlvdXMgPSBudWxsO1xyXG4gIHByaXZhdGUgcmVzaXplTGlzdGVuZXI6ICgpID0+IHZvaWQ7XHJcblxyXG4gIHByaXZhdGUgaXRlbVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xyXG4gIHByaXZhdGUgcm91dGVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgY2hhbmdlRGV0ZWN0b3I6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxyXG4gICAgcHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcclxuICAgIHByaXZhdGUgbWVudUl0ZW1zU2VydmljZTogUG9NZW51SXRlbXNTZXJ2aWNlLFxyXG4gICAgbWVudUdsb2JhbFNlcnZpY2U6IFBvTWVudUdsb2JhbFNlcnZpY2UsXHJcbiAgICBtZW51U2VydmljZTogUG9NZW51U2VydmljZSxcclxuICAgIGxhbmd1YWdlU2VydmljZTogUG9MYW5ndWFnZVNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKG1lbnVHbG9iYWxTZXJ2aWNlLCBtZW51U2VydmljZSwgbGFuZ3VhZ2VTZXJ2aWNlKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0IGlzQWN0aXZlSXRlbU1lbnVTdWJNZW51KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPiB0aGlzLmdyb3VwZWRNZW51SXRlbVsnbGV2ZWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmFibGVDb2xsYXBzZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmlzQ29sbGFwc2VkICYmICF0aGlzLmNvbGxhcHNlZE1vYmlsZTtcclxuICB9XHJcblxyXG4gIGdldCBlbmFibGVDb2xsYXBzZUJ1dHRvbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFsbG93Q29sbGFwc2VNZW51ICYmICF0aGlzLmNvbGxhcHNlZCAmJiAhdGhpcy5tb2JpbGVPcGVuZWQ7XHJcbiAgfVxyXG5cclxuICBnZXQgaGFzRm9vdGVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZW5hYmxlQ29sbGFwc2VCdXR0b24gfHwgdGhpcy5lbmFibGVDb2xsYXBzZTtcclxuICB9XHJcblxyXG4gIGdldCBpc0NvbGxhcHNlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFsbG93Q29sbGFwc2VNZW51ICYmIHRoaXMuY29sbGFwc2VkO1xyXG4gIH1cclxuXHJcbiAgbmdEb0NoZWNrKCkge1xyXG4gICAgaWYgKHRoaXMuZmlsdGVyaW5nSXRlbXMgJiYgdGhpcy5maWx0ZXIpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IG1lbnVDdXJyZW50ID0gdGhpcy5zdHJpbmdpZnkodGhpcy5tZW51cyk7XHJcblxyXG4gICAgaWYgKHRoaXMubWVudVByZXZpb3VzICE9PSBtZW51Q3VycmVudCB8fCAhdGhpcy5tZW51SW5pdGlhbGl6ZWQpIHtcclxuICAgICAgdGhpcy51cGRhdGVNZW51KCk7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVDb2xsYXBzZUNsYXNzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuaXRlbVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgdGhpcy5yb3V0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG5cclxuICAgIGlmICh0aGlzLnJlc2l6ZUxpc3RlbmVyKSB7XHJcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLm1lbnVHbG9iYWxTZXJ2aWNlLnNlbmRSZW1vdmVkQXBwbGljYXRpb25NZW51KHRoaXMuaWQpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnN1YnNjcmliZVRvTWVudUl0ZW0oKTtcclxuICAgIHRoaXMuc3Vic2NyaWJlVG9Sb3V0ZSgpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5tZW51R2xvYmFsU2VydmljZS5zZW5kQXBwbGljYXRpb25NZW51KHRoaXMpO1xyXG4gIH1cclxuXHJcbiAgYWN0aXZhdGVNZW51QnlVcmwodXJsUGF0aDogc3RyaW5nLCBtZW51czogQXJyYXk8UG9NZW51SXRlbT4pIHtcclxuICAgIGlmIChtZW51cykge1xyXG4gICAgICBjb25zdCB1cmxQYXRoV2l0aG91dExhc3RGcmFnbWVudCA9IHVybFBhdGguc3Vic3RyKDAsIHVybFBhdGgubGFzdEluZGV4T2YoJy8nKSk7XHJcbiAgICAgIHJldHVybiBtZW51cy5zb21lKG1lbnUgPT4ge1xyXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZE1lbnVMaW5rID0gZ2V0Rm9ybWF0dGVkTGluayhtZW51LmxpbmspO1xyXG4gICAgICAgIGNvbnN0IG1lbnVMaW5rUGF0aCA9IGAke3VybFBhdGhXaXRob3V0TGFzdEZyYWdtZW50fSR7Zm9ybWF0dGVkTWVudUxpbmsuc3Vic3RyKFxyXG4gICAgICAgICAgZm9ybWF0dGVkTWVudUxpbmsubGFzdEluZGV4T2YoJy8nKVxyXG4gICAgICAgICl9YDtcclxuXHJcbiAgICAgICAgaWYgKG1lbnVMaW5rUGF0aCA9PT0gdXJsUGF0aCAmJiBtZW51TGlua1BhdGggPT09IGZvcm1hdHRlZE1lbnVMaW5rKSB7XHJcbiAgICAgICAgICB0aGlzLmxpbmtBY3RpdmUgPSBmb3JtYXR0ZWRNZW51TGluaztcclxuICAgICAgICAgIHRoaXMuYWN0aXZhdGVNZW51SXRlbShtZW51KTtcclxuICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByZXR1cm4gdGhpcy5hY3RpdmF0ZU1lbnVCeVVybCh1cmxQYXRoLCBtZW51LnN1Ykl0ZW1zKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2hlY2tBY3RpdmVNZW51QnlVcmwodXJsUGF0aDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAoIXRoaXMubGlua0FjdGl2ZSB8fCB0aGlzLmxpbmtBY3RpdmUgIT09IHVybFBhdGgpIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVCeVVybCh1cmxQYXRoLCB0aGlzLm1lbnVzKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIDxhIGlkPVwiY29sYXBzZU1ldGhvZFwiPjwvYT5cclxuICAgKlxyXG4gICAqICpNw6l0b2RvIHBhcmEgY29sYXBzYXIgKHJldHJhaXIpIG8gbWVudS5cclxuICAgKi9cclxuICBjb2xsYXBzZSgpIHtcclxuICAgIHRoaXMudmFsaWRhdGVUb2dnbGVNZW51KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZGVib3VuY2VGaWx0ZXIoZmlsdGVyOiBzdHJpbmcpIHtcclxuICAgIGNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRGaWx0ZXIpO1xyXG5cclxuICAgIHRoaXMudGltZW91dEZpbHRlciA9IHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmZpbHRlclByb2Nlc3MoZmlsdGVyKTtcclxuICAgIH0sIHBvTWVudURlYm91bmNlVGltZSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiA8YSBpZD1cImV4cGFuZE1ldGhvZFwiPjwvYT5cclxuICAgKlxyXG4gICAqICpNw6l0b2RvIHBhcmEgZXhwYW5kaXIgKGF1bWVudGFyKSBvIG1lbnUuXHJcbiAgICovXHJcbiAgZXhwYW5kKCkge1xyXG4gICAgdGhpcy52YWxpZGF0ZVRvZ2dsZU1lbnUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgc3Vic2NyaWJlVG9NZW51SXRlbSgpIHtcclxuICAgIHRoaXMuaXRlbVN1YnNjcmlwdGlvbiA9IHRoaXMubWVudUl0ZW1zU2VydmljZS5yZWNlaXZlRnJvbUNoaWxkTWVudUNsaWNrZWQoKS5zdWJzY3JpYmUoKG1lbnU6IFBvTWVudUl0ZW0pID0+IHtcclxuICAgICAgdGhpcy5jbGlja01lbnVJdGVtKG1lbnUpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzdWJzY3JpYmVUb1JvdXRlKCkge1xyXG4gICAgdGhpcy5yb3V0ZVN1YnNjcmlwdGlvbiA9IHRoaXMucm91dGVyLmV2ZW50cy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgaWYgKHZhbCBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQgfHwgdmFsIGluc3RhbmNlb2YgTmF2aWdhdGlvbkNhbmNlbCkge1xyXG4gICAgICAgIGNvbnN0IHVybFJvdXRlciA9IHRoaXMuY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpO1xyXG4gICAgICAgIHRoaXMuY2hlY2tBY3RpdmVNZW51QnlVcmwodXJsUm91dGVyKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiA8YSBpZD1cInRvZ2dsZU1ldGhvZFwiPjwvYT5cclxuICAgKiAqTcOpdG9kbyBxdWUgY29sYXBzYSBlIGV4cGFuZGUgbyBtZW51IGFsdGVybmFkYW1lbnRlLlxyXG4gICAqXHJcbiAgICogPiAqT3MgbcOpdG9kb3MgYXBlbmFzIHbDo28gY29sYXBzYXIvZXhwYW5kaXIgbyBtZW51IHNlOlxyXG4gICAqICAtIFRvZG9zIG9zIGl0ZW5zIGRlIG1lbnUgdGl2ZXJlbSB2YWxvciBuYXMgcHJvcHJpZWRhZGVzIGBpY29uYCBlIGBzaG9ydExhYmVsYC5cclxuICAgKi9cclxuICB0b2dnbGUoKSB7XHJcbiAgICB0aGlzLnZhbGlkYXRlVG9nZ2xlTWVudSghdGhpcy5jb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgdG9nZ2xlTWVudU1vYmlsZSgpOiB2b2lkIHtcclxuICAgIHRoaXMubW9iaWxlT3BlbmVkID0gIXRoaXMubW9iaWxlT3BlbmVkO1xyXG4gICAgdGhpcy5jb2xsYXBzZWRNb2JpbGUgPSB0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLm1vYmlsZU9wZW5lZDtcclxuXHJcbiAgICB0aGlzLnZhbGlkYXRlQ29sbGFwc2VDbGFzcyh0aGlzLmNvbGxhcHNlZE1vYmlsZSk7XHJcblxyXG4gICAgaWYgKGlzTW9iaWxlKCkpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLm1vYmlsZU9wZW5lZCkge1xyXG4gICAgICB0aGlzLmNyZWF0ZVJlc2l6ZUxpc3RlbmVyKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgY2hlY2tpbmdSb3V0ZXJDaGlsZHJlbkZyYWdtZW50cygpIHtcclxuICAgIGNvbnN0IGNoaWxkcmVuUHJpbWFyeSA9IHRoaXMucm91dGVyLnBhcnNlVXJsKHRoaXMucm91dGVyLnVybCkucm9vdC5jaGlsZHJlblsncHJpbWFyeSddO1xyXG5cclxuICAgIHJldHVybiBjaGlsZHJlblByaW1hcnkgPyBgLyR7Y2hpbGRyZW5QcmltYXJ5LnNlZ21lbnRzLm1hcChpdCA9PiBpdC5wYXRoKS5qb2luKCcvJyl9YCA6ICcnO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIHZhbGlkYXRlQ29sbGFwc2VDbGFzcyhjb2xsYXBzZWRNb2JpbGU6IGJvb2xlYW4gPSBmYWxzZSkge1xyXG4gICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnBhcmVudE5vZGU7XHJcbiAgICB0aGlzLnJlbmRlcmVyW3RoaXMuaXNDb2xsYXBzZWQgJiYgIWNvbGxhcHNlZE1vYmlsZSA/ICdhZGRDbGFzcycgOiAncmVtb3ZlQ2xhc3MnXSh3cmFwcGVyLCAncG8tY29sbGFwc2VkLW1lbnUnKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWN0aXZhdGVDb2xsYXBzZVN1Yk1lbnVJdGVtKCkge1xyXG4gICAgdGhpcy5jbGVhckdyb3VwTWVudUlmRmlyc3RMZXZlbCh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcclxuXHJcbiAgICBpZiAoIXRoaXMuY29sbGFwc2VkICYmIHRoaXMuYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPiBwb01lbnVSb290TGV2ZWwgJiYgdGhpcy5pc0FjdGl2ZUl0ZW1NZW51U3ViTWVudSkge1xyXG4gICAgICB0aGlzLm9wZW5QYXJlbnRNZW51KHRoaXMuYWN0aXZlTWVudUl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhY3RpdmF0ZU1lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlTWVudUl0ZW0gPSBtZW51O1xyXG4gICAgdGhpcy5saW5rQWN0aXZlID0gbWVudS5saW5rO1xyXG4gICAgaWYgKHRoaXMuYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPiBwb01lbnVSb290TGV2ZWwpIHtcclxuICAgICAgdGhpcy5vcGVuUGFyZW50TWVudSh0aGlzLmFjdGl2ZU1lbnVJdGVtKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gbnVsbDtcclxuICAgIH1cclxuICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcclxuICAgICAgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLFxyXG4gICAgICBncm91cGVkOiB0aGlzLmdyb3VwZWRNZW51SXRlbSxcclxuICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFyZVN1Yk1lbnVzKG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPikge1xyXG4gICAgcmV0dXJuIG1lbnVzLmV2ZXJ5KG1lbnUgPT4gbWVudVsnbGV2ZWwnXSA+IHBvTWVudVJvb3RMZXZlbCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNsZWFyR3JvdXBNZW51SWZGaXJzdExldmVsKGFjdGl2ZU1lbnVJdGVtOiBQb01lbnVJdGVtKSB7XHJcbiAgICBpZiAoYWN0aXZlTWVudUl0ZW1bJ2xldmVsJ10gPT09IHBvTWVudVJvb3RMZXZlbCkge1xyXG4gICAgICB0aGlzLmdyb3VwZWRNZW51SXRlbSA9IHVuZGVmaW5lZDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2xpY2tNZW51SXRlbShtZW51OiBQb01lbnVJdGVtKSB7XHJcbiAgICBpZiAobWVudS5hY3Rpb24pIHtcclxuICAgICAgdGhpcy5leGVjdXRlTWVudUFjdGlvbihtZW51KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobWVudVsndHlwZSddID09PSAnZXh0ZXJuYWxMaW5rJykge1xyXG4gICAgICBvcGVuRXh0ZXJuYWxMaW5rKG1lbnUubGluayk7XHJcbiAgICB9IGVsc2UgaWYgKG1lbnVbJ3R5cGUnXSA9PT0gJ2ludGVybmFsTGluaycpIHtcclxuICAgICAgdGhpcy5hY3RpdmF0ZU1lbnVJdGVtKG1lbnUpO1xyXG4gICAgfSBlbHNlIGlmIChtZW51Wyd0eXBlJ10gPT09ICdzdWJJdGVtcycpIHtcclxuICAgICAgaWYgKHRoaXMuZmlsdGVyaW5nSXRlbXMpIHtcclxuICAgICAgICB0aGlzLmZpbHRlcmluZ0l0ZW1zID0gZmFsc2U7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuZ3JvdXBNZW51SXRlbShtZW51KTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobWVudVsndHlwZSddICE9PSAnc3ViSXRlbXMnKSB7XHJcbiAgICAgIHRoaXMubW9iaWxlT3BlbmVkID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNvbnZlcnRUb01lbnVJdGVtRmlsdGVyZWQobWVudUl0ZW06IGFueSA9IHsgbGFiZWw6ICcnLCBsaW5rOiAnJyB9KTogUG9NZW51SXRlbUZpbHRlcmVkIHtcclxuICAgIGNvbnN0IHsgbGFiZWwsIGxpbmsgfSA9IG1lbnVJdGVtO1xyXG5cclxuICAgIGNvbnN0IG1lbnVJdGVtRmlsdGVyZWQ6IFBvTWVudUl0ZW1GaWx0ZXJlZCA9IHsgbGFiZWwsIGxpbmsgfTtcclxuXHJcbiAgICB0aGlzLnNldE1lbnVJdGVtUHJvcGVydGllcyhtZW51SXRlbUZpbHRlcmVkKTtcclxuXHJcbiAgICByZXR1cm4gbWVudUl0ZW1GaWx0ZXJlZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlUmVzaXplTGlzdGVuZXIoKSB7XHJcbiAgICB0aGlzLnJlc2l6ZUxpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ3dpbmRvdycsICdyZXNpemUnLCAoKSA9PiB7XHJcbiAgICAgIHRoaXMudG9nZ2xlUmVzaXplKCk7XHJcbiAgICAgIHRoaXMucmVzaXplTGlzdGVuZXIoKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBleGVjdXRlTWVudUFjdGlvbihtZW51OiBQb01lbnVJdGVtKTogdm9pZCB7XHJcbiAgICBtZW51LmFjdGlvbihtZW51KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgZmlsdGVySXRlbXMoZmlsdGVyOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IHRyaW1GaWx0ZXIgPSBmaWx0ZXIgJiYgZmlsdGVyLnRyaW0oKTtcclxuXHJcbiAgICBpZiAodHJpbUZpbHRlcikge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbXTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5maWx0ZXJTZXJ2aWNlXHJcbiAgICAgICAgPyBhd2FpdCB0aGlzLmZpbHRlck9uU2VydmljZSh0cmltRmlsdGVyKVxyXG4gICAgICAgIDogdGhpcy5maWx0ZXJMb2NhbEl0ZW1zKHRyaW1GaWx0ZXIpO1xyXG4gICAgICB0aGlzLmZpbHRlcmluZ0l0ZW1zID0gdHJ1ZTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRJdGVtcyA9IFsuLi50aGlzLm1lbnVzXTtcclxuICAgICAgdGhpcy5maWx0ZXJpbmdJdGVtcyA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJMb2NhbEl0ZW1zKGZpbHRlcjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBmaWx0ZXJlZEl0ZW1zID0gW107XHJcblxyXG4gICAgdGhpcy5maW5kSXRlbXModGhpcy5tZW51cywgZmlsdGVyLnRvTG93ZXJDYXNlKCksIGZpbHRlcmVkSXRlbXMpO1xyXG5cclxuICAgIHJldHVybiBmaWx0ZXJlZEl0ZW1zO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaWx0ZXJQcm9jZXNzKGZpbHRlcjogc3RyaW5nKSB7XHJcbiAgICB0aGlzLmZpbHRlckxvYWRpbmcgPSB0cnVlO1xyXG5cclxuICAgIHRoaXMuZmlsdGVySXRlbXMoZmlsdGVyKVxyXG4gICAgICAudGhlbigoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMuc2hvd05vRGF0YSgpO1xyXG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0b3IuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHsgYWN0aXZlOiB0aGlzLmFjdGl2ZU1lbnVJdGVtLCBncm91cGVkOiB0aGlzLmdyb3VwZWRNZW51SXRlbSB9KTtcclxuICAgICAgfSlcclxuICAgICAgLmNhdGNoKGVycm9yID0+IHtcclxuICAgICAgICB0aGlzLmZpbHRlckxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICBQcm9taXNlLnJlamVjdChlcnJvcik7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBhc3luYyBmaWx0ZXJPblNlcnZpY2Uoc2VhcmNoOiBzdHJpbmcgPSAnJykge1xyXG4gICAgaWYgKHNlYXJjaC5sZW5ndGggPj0gcG9NZW51TWluTGVuZ3RoKSB7XHJcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbHRlclNlcnZpY2VcclxuICAgICAgICAuZ2V0RmlsdGVyZWREYXRhKHNlYXJjaCwgdGhpcy5wYXJhbXMpXHJcbiAgICAgICAgLnBpcGUobWFwKG1lbnVJdGVtc0ZpbHRlcmVkID0+IG1lbnVJdGVtc0ZpbHRlcmVkLm1hcChtZW51SXRlbSA9PiB0aGlzLmNvbnZlcnRUb01lbnVJdGVtRmlsdGVyZWQobWVudUl0ZW0pKSkpXHJcbiAgICAgICAgLnRvUHJvbWlzZSgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyZWRJdGVtcztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZEl0ZW1zKG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgZmlsdGVyOiBzdHJpbmcsIGZpbHRlcmVkSXRlbXM6IEFycmF5PGFueT4pIHtcclxuICAgIG1lbnVzLmZvckVhY2gobWVudSA9PiB7XHJcbiAgICAgIGNvbnN0IGhhc0FjdGlvbiA9IG1lbnUuYWN0aW9uIHx8IG1lbnUubGluaztcclxuICAgICAgY29uc3QgbGFiZWxIYXNGaWx0ZXIgPSBtZW51LmxhYmVsLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoZmlsdGVyKTtcclxuXHJcbiAgICAgIGlmIChsYWJlbEhhc0ZpbHRlciAmJiBoYXNBY3Rpb24pIHtcclxuICAgICAgICBjb25zdCBuZXdNZW51ID0geyAuLi5tZW51IH07XHJcblxyXG4gICAgICAgIGlmIChuZXdNZW51LnN1Ykl0ZW1zPy5sZW5ndGgpIHtcclxuICAgICAgICAgIGRlbGV0ZSBuZXdNZW51LnN1Ykl0ZW1zO1xyXG4gICAgICAgICAgbmV3TWVudVsndHlwZSddID0gdGhpcy5zZXRNZW51VHlwZShuZXdNZW51KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGZpbHRlcmVkSXRlbXMucHVzaChuZXdNZW51KTtcclxuICAgICAgfVxyXG5cclxuICAgICAgaWYgKG1lbnUuc3ViSXRlbXMpIHtcclxuICAgICAgICB0aGlzLmZpbmRJdGVtcyhtZW51LnN1Ykl0ZW1zLCBmaWx0ZXIsIGZpbHRlcmVkSXRlbXMpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZmluZFBhcmVudChtZW51czogQXJyYXk8UG9NZW51SXRlbT4sIG1lbnVJdGVtOiBQb01lbnVJdGVtKTogUG9NZW51SXRlbSB7XHJcbiAgICBjb25zdCBnZXRQYXJlbnQgPSBmdW5jdGlvbiAobWVudUl0ZW1zOiBBcnJheTxQb01lbnVJdGVtPiwgaWQpIHtcclxuICAgICAgaWYgKG1lbnVJdGVtcykge1xyXG4gICAgICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBtZW51SXRlbXMubGVuZ3RoOyBpbmRleCsrKSB7XHJcbiAgICAgICAgICBjb25zdCBtZW51ID0gbWVudUl0ZW1zW2luZGV4XTtcclxuICAgICAgICAgIGlmIChtZW51LnN1Ykl0ZW1zICYmIG1lbnUuc3ViSXRlbXMuZmluZChzdWJJdGVtID0+IHN1Ykl0ZW1bJ2lkJ10gPT09IGlkKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gbWVudTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGZvdW5kID0gZ2V0UGFyZW50KG1lbnUuc3ViSXRlbXMsIGlkKTtcclxuICAgICAgICAgIGlmIChmb3VuZCkge1xyXG4gICAgICAgICAgICByZXR1cm4gZm91bmQ7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGdldFBhcmVudChtZW51cywgbWVudUl0ZW1bJ2lkJ10pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmaW5kUm9vdFBhcmVudChtZW51czogQXJyYXk8UG9NZW51SXRlbT4sIG1lbnU6IFBvTWVudUl0ZW0pOiBQb01lbnVJdGVtIHtcclxuICAgIGNvbnN0IGZpbmRQYXJlbnQgPSB0aGlzLmZpbmRQYXJlbnQ7XHJcblxyXG4gICAgY29uc3QgZ2V0Um9vdFBhcmVudCA9IGZ1bmN0aW9uIChtZW51SXRlbXM6IEFycmF5PFBvTWVudUl0ZW0+LCBtZW51SXRlbSk6IFBvTWVudUl0ZW0ge1xyXG4gICAgICBsZXQgcGFyZW50ID0gZmluZFBhcmVudChtZW51SXRlbXMsIG1lbnVJdGVtKTtcclxuXHJcbiAgICAgIGlmIChwYXJlbnRbJ2xldmVsJ10gIT09IHBvTWVudVJvb3RMZXZlbCkge1xyXG4gICAgICAgIHBhcmVudCA9IGdldFJvb3RQYXJlbnQobWVudUl0ZW1zLCBwYXJlbnQpO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBwYXJlbnQ7XHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGdldFJvb3RQYXJlbnQobWVudXMsIG1lbnUpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRBY3RpdmVNZW51UGFyZW50KG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPiwgYWN0aXZlTWVudUl0ZW06IFBvTWVudUl0ZW0sIGdyb3VwZWRNZW51SXRlbTogUG9NZW51SXRlbSkge1xyXG4gICAgaWYgKHRoaXMuYXJlU3ViTWVudXMoW2dyb3VwZWRNZW51SXRlbSwgYWN0aXZlTWVudUl0ZW1dKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5maW5kUm9vdFBhcmVudChtZW51cywgYWN0aXZlTWVudUl0ZW0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBncm91cE1lbnVJdGVtKG1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLmNvbGxhcHNlZCkge1xyXG4gICAgICB0aGlzLnRvZ2dsZU1lbnVDb2xsYXBzZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIG1lbnVbJ2lzT3BlbmVkJ10gPSAhbWVudVsnaXNPcGVuZWQnXTtcclxuICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gbWVudTtcclxuXHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMuYWN0aXZlTWVudUl0ZW0gJiZcclxuICAgICAgbWVudVsnaXNPcGVuZWQnXSAmJlxyXG4gICAgICB0aGlzLmlzQWN0aXZlSXRlbU1lbnVTdWJNZW51ICYmXHJcbiAgICAgIHRoaXMuaXNSb290TWVudUVxdWFsR3JvdXBlZE1lbnUodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgbWVudSlcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFjdGl2YXRlTWVudUl0ZW0odGhpcy5hY3RpdmVNZW51SXRlbSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5tZW51SXRlbXNTZXJ2aWNlLnNlbmRUb0NoaWxkTWVudUNsaWNrZWQoeyBhY3RpdmU6IHRoaXMuYWN0aXZlTWVudUl0ZW0sIGdyb3VwZWQ6IHRoaXMuZ3JvdXBlZE1lbnVJdGVtIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc1Jvb3RNZW51RXF1YWxHcm91cGVkTWVudShcclxuICAgIG1lbnVzOiBBcnJheTxQb01lbnVJdGVtPixcclxuICAgIGFjdGl2ZU1lbnVJdGVtOiBQb01lbnVJdGVtLFxyXG4gICAgZ3JvdXBlZE1lbnVJdGVtOiBQb01lbnVJdGVtXHJcbiAgKSB7XHJcbiAgICBjb25zdCBhY3RpdmVNZW51Um9vdFBhcmVudCA9IHRoaXMuZmluZFJvb3RQYXJlbnQobWVudXMsIGFjdGl2ZU1lbnVJdGVtKTtcclxuICAgIHJldHVybiBhY3RpdmVNZW51Um9vdFBhcmVudFsnaWQnXSA9PT0gZ3JvdXBlZE1lbnVJdGVtWydpZCddO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvcGVuUGFyZW50TWVudShjaGlsZE1lbnU6IFBvTWVudUl0ZW0pOiB2b2lkIHtcclxuICAgIGNvbnN0IHBhcmVudCA9IHRoaXMuZmluZFBhcmVudCh0aGlzLm1lbnVzLCBjaGlsZE1lbnUpO1xyXG4gICAgcGFyZW50Wydpc09wZW5lZCddID0gdHJ1ZTtcclxuICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID0gcGFyZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzaG93Tm9EYXRhKCkge1xyXG4gICAgdGhpcy5ub0RhdGEgPSB0aGlzLmZpbHRlcmVkSXRlbXMubGVuZ3RoID09PSAwO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdHJpbmdpZnkobWVudXM6IEFycmF5PFBvTWVudUl0ZW0+KTogc3RyaW5nIHtcclxuICAgIC8vIG7Do28gZmF6IG8gc3RyaW5naWZ5IGRhIHByb3ByaWVkYWRlIGljb24sIHBvaXMgcG9kZSBjb250ZXIgb2JqZXRvIGNvbXBsZXhvIGUgZGlzcGFyYXIgdW0gZXJyby5cclxuICAgIHJldHVybiBKU09OLnN0cmluZ2lmeSh0aGlzLm1lbnVzLCAoa2V5LCB2YWx1ZSkgPT4ge1xyXG4gICAgICBpZiAoa2V5ICE9PSAnaWNvbicpIHtcclxuICAgICAgICByZXR1cm4gdmFsdWU7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVHcm91cGVkTWVudUl0ZW0oKSB7XHJcbiAgICB0aGlzLmdyb3VwZWRNZW51SXRlbVsnaXNPcGVuZWQnXSA9ICF0aGlzLmNvbGxhcHNlZCAmJiB0aGlzLmFsbG93Q29sbGFwc2VNZW51O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB0b2dnbGVNZW51Q29sbGFwc2UoY29sbGFwc2VkOiBib29sZWFuID0gZmFsc2UpIHtcclxuICAgIHRoaXMuY29sbGFwc2VkID0gY29sbGFwc2VkO1xyXG5cclxuICAgIGlmICh0aGlzLmdyb3VwZWRNZW51SXRlbSAmJiB0aGlzLmFjdGl2ZU1lbnVJdGVtKSB7XHJcbiAgICAgIHRoaXMuZ3JvdXBlZE1lbnVJdGVtID1cclxuICAgICAgICB0aGlzLmdldEFjdGl2ZU1lbnVQYXJlbnQodGhpcy5tZW51cywgdGhpcy5hY3RpdmVNZW51SXRlbSwgdGhpcy5ncm91cGVkTWVudUl0ZW0pIHx8IHRoaXMuZ3JvdXBlZE1lbnVJdGVtO1xyXG4gICAgICB0aGlzLnRvZ2dsZUdyb3VwZWRNZW51SXRlbSgpO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmFjdGl2ZU1lbnVJdGVtKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZhdGVDb2xsYXBzZVN1Yk1lbnVJdGVtKCk7XHJcbiAgICAgIHRoaXMubWVudUl0ZW1zU2VydmljZS5zZW5kVG9DaGlsZE1lbnVDbGlja2VkKHtcclxuICAgICAgICBhY3RpdmU6IHRoaXMuYWN0aXZlTWVudUl0ZW0sXHJcbiAgICAgICAgZ3JvdXBlZDogdGhpcy5ncm91cGVkTWVudUl0ZW0sXHJcbiAgICAgICAgYWN0aXZhdGVkQnlSb3V0ZTogdHJ1ZVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnVwZGF0ZU1lbnUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgdG9nZ2xlUmVzaXplKCkge1xyXG4gICAgaWYgKHRoaXMubW9iaWxlT3BlbmVkKSB7XHJcbiAgICAgIHRoaXMubW9iaWxlT3BlbmVkID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VkTW9iaWxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMudmFsaWRhdGVDb2xsYXBzZUNsYXNzKHRoaXMuY29sbGFwc2VkTW9iaWxlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgdmFsaWRhdGVUb2dnbGVNZW51KGNvbGxhcHNlZDogYm9vbGVhbikge1xyXG4gICAgaWYgKCF0aGlzLmFsbG93Q29sbGFwc2VNZW51KSB7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnRvZ2dsZU1lbnVDb2xsYXBzZShjb2xsYXBzZWQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSB1cGRhdGVNZW51KCkge1xyXG4gICAgdGhpcy5tZW51SW5pdGlhbGl6ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5zZXRNZW51RXh0cmFQcm9wZXJ0aWVzKCk7XHJcbiAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSBbLi4udGhpcy5tZW51c107XHJcbiAgICB0aGlzLm1lbnVQcmV2aW91cyA9IHRoaXMuc3RyaW5naWZ5KHRoaXMubWVudXMpO1xyXG4gICAgdGhpcy52YWxpZGF0ZU1lbnVzKHRoaXMubWVudXMpO1xyXG4gIH1cclxufVxyXG4iXX0=
|