@ni/nimble-angular 28.10.0 → 29.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/esm2022/card/nimble-card.directive.mjs +3 -3
- package/esm2022/card/nimble-card.module.mjs +4 -4
- package/esm2022/directives/anchor/nimble-anchor-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor/nimble-anchor-router-link.directive.mjs +3 -3
- package/esm2022/directives/anchor/nimble-anchor.directive.mjs +3 -3
- package/esm2022/directives/anchor/nimble-anchor.module.mjs +4 -4
- package/esm2022/directives/anchor-base/disableable-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor-base/nimble-anchor-base.directive.mjs +3 -3
- package/esm2022/directives/anchor-button/nimble-anchor-button-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor-button/nimble-anchor-button-router-link.directive.mjs +3 -3
- package/esm2022/directives/anchor-button/nimble-anchor-button.directive.mjs +3 -3
- package/esm2022/directives/anchor-button/nimble-anchor-button.module.mjs +4 -4
- package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item-router-link.directive.mjs +3 -3
- package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item.directive.mjs +3 -3
- package/esm2022/directives/anchor-menu-item/nimble-anchor-menu-item.module.mjs +4 -4
- package/esm2022/directives/anchor-tab/nimble-anchor-tab-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor-tab/nimble-anchor-tab-router-link.directive.mjs +3 -3
- package/esm2022/directives/anchor-tab/nimble-anchor-tab.directive.mjs +3 -3
- package/esm2022/directives/anchor-tab/nimble-anchor-tab.module.mjs +4 -4
- package/esm2022/directives/anchor-tabs/nimble-anchor-tabs.directive.mjs +3 -3
- package/esm2022/directives/anchor-tabs/nimble-anchor-tabs.module.mjs +4 -4
- package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item-router-link.directive.mjs +3 -3
- package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item.directive.mjs +3 -3
- package/esm2022/directives/anchor-tree-item/nimble-anchor-tree-item.module.mjs +4 -4
- package/esm2022/directives/banner/nimble-banner.directive.mjs +3 -3
- package/esm2022/directives/banner/nimble-banner.module.mjs +4 -4
- package/esm2022/directives/breadcrumb/nimble-breadcrumb.directive.mjs +3 -3
- package/esm2022/directives/breadcrumb/nimble-breadcrumb.module.mjs +4 -4
- package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item-router-link-with-href.directive.mjs +3 -3
- package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item-router-link.directive.mjs +3 -3
- package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item.directive.mjs +3 -3
- package/esm2022/directives/breadcrumb-item/nimble-breadcrumb-item.module.mjs +4 -4
- package/esm2022/directives/button/nimble-button.directive.mjs +3 -3
- package/esm2022/directives/button/nimble-button.module.mjs +4 -4
- package/esm2022/directives/card-button/nimble-card-button.directive.mjs +3 -3
- package/esm2022/directives/card-button/nimble-card-button.module.mjs +4 -4
- package/esm2022/directives/checkbox/nimble-checkbox-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/checkbox/nimble-checkbox.directive.mjs +3 -3
- package/esm2022/directives/checkbox/nimble-checkbox.module.mjs +4 -4
- package/esm2022/directives/combobox/nimble-combobox-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/combobox/nimble-combobox.directive.mjs +3 -3
- package/esm2022/directives/combobox/nimble-combobox.module.mjs +4 -4
- package/esm2022/directives/dialog/nimble-dialog.directive.mjs +3 -3
- package/esm2022/directives/dialog/nimble-dialog.module.mjs +4 -4
- package/esm2022/directives/drawer/nimble-drawer.directive.mjs +3 -3
- package/esm2022/directives/drawer/nimble-drawer.module.mjs +4 -4
- package/esm2022/directives/icon-base/nimble-icon-base.directive.mjs +3 -3
- package/esm2022/directives/icons/add/nimble-icon-add.directive.mjs +3 -3
- package/esm2022/directives/icons/add/nimble-icon-add.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-down/nimble-icon-arrow-down.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-down/nimble-icon-arrow-down.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-down-left-and-arrow-up-right/nimble-icon-arrow-down-left-and-arrow-up-right.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-down-left-and-arrow-up-right/nimble-icon-arrow-down-left-and-arrow-up-right.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-down-rectangle/nimble-icon-arrow-down-rectangle.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-down-rectangle/nimble-icon-arrow-down-rectangle.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-down-right-and-arrow-up-left/nimble-icon-arrow-down-right-and-arrow-up-left.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-down-right-and-arrow-up-left/nimble-icon-arrow-down-right-and-arrow-up-left.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-expander-down/nimble-icon-arrow-expander-down.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-expander-down/nimble-icon-arrow-expander-down.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-expander-left/nimble-icon-arrow-expander-left.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-expander-left/nimble-icon-arrow-expander-left.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-expander-right/nimble-icon-arrow-expander-right.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-expander-right/nimble-icon-arrow-expander-right.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-expander-up/nimble-icon-arrow-expander-up.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-expander-up/nimble-icon-arrow-expander-up.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-in-circle/nimble-icon-arrow-in-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-in-circle/nimble-icon-arrow-in-circle.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-left-from-line/nimble-icon-arrow-left-from-line.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-left-from-line/nimble-icon-arrow-left-from-line.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-out-circle/nimble-icon-arrow-out-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-out-circle/nimble-icon-arrow-out-circle.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-partial-rotate-left/nimble-icon-arrow-partial-rotate-left.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-partial-rotate-left/nimble-icon-arrow-partial-rotate-left.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-right-thin/nimble-icon-arrow-right-thin.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-right-thin/nimble-icon-arrow-right-thin.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-right-to-line/nimble-icon-arrow-right-to-line.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-right-to-line/nimble-icon-arrow-right-to-line.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-rotate-right/nimble-icon-arrow-rotate-right.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-rotate-right/nimble-icon-arrow-rotate-right.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-u-left/nimble-icon-arrow-u-left.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-u-left/nimble-icon-arrow-u-left.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-u-right/nimble-icon-arrow-u-right.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-u-right/nimble-icon-arrow-u-right.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-u-up/nimble-icon-arrow-u-up.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-u-up/nimble-icon-arrow-u-up.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-up/nimble-icon-arrow-up.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-up/nimble-icon-arrow-up.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-up-left-and-arrow-down-right/nimble-icon-arrow-up-left-and-arrow-down-right.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-up-left-and-arrow-down-right/nimble-icon-arrow-up-left-and-arrow-down-right.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-up-rectangle/nimble-icon-arrow-up-rectangle.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-up-rectangle/nimble-icon-arrow-up-rectangle.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-up-right-and-arrow-down-left/nimble-icon-arrow-up-right-and-arrow-down-left.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-up-right-and-arrow-down-left/nimble-icon-arrow-up-right-and-arrow-down-left.module.mjs +4 -4
- package/esm2022/directives/icons/arrow-up-right-from-square/nimble-icon-arrow-up-right-from-square.directive.mjs +3 -3
- package/esm2022/directives/icons/arrow-up-right-from-square/nimble-icon-arrow-up-right-from-square.module.mjs +4 -4
- package/esm2022/directives/icons/arrows-maximize/nimble-icon-arrows-maximize.directive.mjs +3 -3
- package/esm2022/directives/icons/arrows-maximize/nimble-icon-arrows-maximize.module.mjs +4 -4
- package/esm2022/directives/icons/arrows-repeat/nimble-icon-arrows-repeat.directive.mjs +3 -3
- package/esm2022/directives/icons/arrows-repeat/nimble-icon-arrows-repeat.module.mjs +4 -4
- package/esm2022/directives/icons/asterisk/nimble-icon-asterisk.directive.mjs +3 -3
- package/esm2022/directives/icons/asterisk/nimble-icon-asterisk.module.mjs +4 -4
- package/esm2022/directives/icons/at/nimble-icon-at.directive.mjs +3 -3
- package/esm2022/directives/icons/at/nimble-icon-at.module.mjs +4 -4
- package/esm2022/directives/icons/bars/nimble-icon-bars.directive.mjs +3 -3
- package/esm2022/directives/icons/bars/nimble-icon-bars.module.mjs +4 -4
- package/esm2022/directives/icons/bell/nimble-icon-bell.directive.mjs +3 -3
- package/esm2022/directives/icons/bell/nimble-icon-bell.module.mjs +4 -4
- package/esm2022/directives/icons/bell-and-comment/nimble-icon-bell-and-comment.directive.mjs +3 -3
- package/esm2022/directives/icons/bell-and-comment/nimble-icon-bell-and-comment.module.mjs +4 -4
- package/esm2022/directives/icons/bell-check/nimble-icon-bell-check.directive.mjs +3 -3
- package/esm2022/directives/icons/bell-check/nimble-icon-bell-check.module.mjs +4 -4
- package/esm2022/directives/icons/bell-circle/nimble-icon-bell-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/bell-circle/nimble-icon-bell-circle.module.mjs +4 -4
- package/esm2022/directives/icons/bell-on/nimble-icon-bell-on.directive.mjs +3 -3
- package/esm2022/directives/icons/bell-on/nimble-icon-bell-on.module.mjs +4 -4
- package/esm2022/directives/icons/bell-solid-circle/nimble-icon-bell-solid-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/bell-solid-circle/nimble-icon-bell-solid-circle.module.mjs +4 -4
- package/esm2022/directives/icons/block-with-ribbon/nimble-icon-block-with-ribbon.directive.mjs +3 -3
- package/esm2022/directives/icons/block-with-ribbon/nimble-icon-block-with-ribbon.module.mjs +4 -4
- package/esm2022/directives/icons/bold-b/nimble-icon-bold-b.directive.mjs +3 -3
- package/esm2022/directives/icons/bold-b/nimble-icon-bold-b.module.mjs +4 -4
- package/esm2022/directives/icons/book-magnifying-glass/nimble-icon-book-magnifying-glass.directive.mjs +3 -3
- package/esm2022/directives/icons/book-magnifying-glass/nimble-icon-book-magnifying-glass.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-check-lines/nimble-icon-calendar-check-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-check-lines/nimble-icon-calendar-check-lines.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-clock/nimble-icon-calendar-clock.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-clock/nimble-icon-calendar-clock.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-day/nimble-icon-calendar-day.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-day/nimble-icon-calendar-day.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-day-outline/nimble-icon-calendar-day-outline.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-day-outline/nimble-icon-calendar-day-outline.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-days/nimble-icon-calendar-days.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-days/nimble-icon-calendar-days.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-lines/nimble-icon-calendar-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-lines/nimble-icon-calendar-lines.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-rectangle/nimble-icon-calendar-rectangle.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-rectangle/nimble-icon-calendar-rectangle.module.mjs +4 -4
- package/esm2022/directives/icons/calendar-week/nimble-icon-calendar-week.directive.mjs +3 -3
- package/esm2022/directives/icons/calendar-week/nimble-icon-calendar-week.module.mjs +4 -4
- package/esm2022/directives/icons/chart-diagram/nimble-icon-chart-diagram.directive.mjs +3 -3
- package/esm2022/directives/icons/chart-diagram/nimble-icon-chart-diagram.module.mjs +4 -4
- package/esm2022/directives/icons/chart-diagram-child-focus/nimble-icon-chart-diagram-child-focus.directive.mjs +3 -3
- package/esm2022/directives/icons/chart-diagram-child-focus/nimble-icon-chart-diagram-child-focus.module.mjs +4 -4
- package/esm2022/directives/icons/chart-diagram-parent-focus/nimble-icon-chart-diagram-parent-focus.directive.mjs +3 -3
- package/esm2022/directives/icons/chart-diagram-parent-focus/nimble-icon-chart-diagram-parent-focus.module.mjs +4 -4
- package/esm2022/directives/icons/chart-diagram-parent-focus-two-child/nimble-icon-chart-diagram-parent-focus-two-child.directive.mjs +3 -3
- package/esm2022/directives/icons/chart-diagram-parent-focus-two-child/nimble-icon-chart-diagram-parent-focus-two-child.module.mjs +4 -4
- package/esm2022/directives/icons/check/nimble-icon-check.directive.mjs +3 -3
- package/esm2022/directives/icons/check/nimble-icon-check.module.mjs +4 -4
- package/esm2022/directives/icons/check-dot/nimble-icon-check-dot.directive.mjs +3 -3
- package/esm2022/directives/icons/check-dot/nimble-icon-check-dot.module.mjs +4 -4
- package/esm2022/directives/icons/circle/nimble-icon-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/circle/nimble-icon-circle.module.mjs +4 -4
- package/esm2022/directives/icons/circle-broken/nimble-icon-circle-broken.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-broken/nimble-icon-circle-broken.module.mjs +4 -4
- package/esm2022/directives/icons/circle-check/nimble-icon-circle-check.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-check/nimble-icon-circle-check.module.mjs +4 -4
- package/esm2022/directives/icons/circle-filled/nimble-icon-circle-filled.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-filled/nimble-icon-circle-filled.module.mjs +4 -4
- package/esm2022/directives/icons/circle-partial-broken/nimble-icon-circle-partial-broken.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-partial-broken/nimble-icon-circle-partial-broken.module.mjs +4 -4
- package/esm2022/directives/icons/circle-slash/nimble-icon-circle-slash.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-slash/nimble-icon-circle-slash.module.mjs +4 -4
- package/esm2022/directives/icons/circle-x/nimble-icon-circle-x.directive.mjs +3 -3
- package/esm2022/directives/icons/circle-x/nimble-icon-circle-x.module.mjs +4 -4
- package/esm2022/directives/icons/clipboard/nimble-icon-clipboard.directive.mjs +3 -3
- package/esm2022/directives/icons/clipboard/nimble-icon-clipboard.module.mjs +4 -4
- package/esm2022/directives/icons/clock/nimble-icon-clock.directive.mjs +3 -3
- package/esm2022/directives/icons/clock/nimble-icon-clock.module.mjs +4 -4
- package/esm2022/directives/icons/clock-cog/nimble-icon-clock-cog.directive.mjs +3 -3
- package/esm2022/directives/icons/clock-cog/nimble-icon-clock-cog.module.mjs +4 -4
- package/esm2022/directives/icons/clock-exclamation/nimble-icon-clock-exclamation.directive.mjs +3 -3
- package/esm2022/directives/icons/clock-exclamation/nimble-icon-clock-exclamation.module.mjs +4 -4
- package/esm2022/directives/icons/clock-triangle/nimble-icon-clock-triangle.directive.mjs +3 -3
- package/esm2022/directives/icons/clock-triangle/nimble-icon-clock-triangle.module.mjs +4 -4
- package/esm2022/directives/icons/clone/nimble-icon-clone.directive.mjs +3 -3
- package/esm2022/directives/icons/clone/nimble-icon-clone.module.mjs +4 -4
- package/esm2022/directives/icons/cloud/nimble-icon-cloud.directive.mjs +3 -3
- package/esm2022/directives/icons/cloud/nimble-icon-cloud.module.mjs +4 -4
- package/esm2022/directives/icons/cloud-upload/nimble-icon-cloud-upload.directive.mjs +3 -3
- package/esm2022/directives/icons/cloud-upload/nimble-icon-cloud-upload.module.mjs +4 -4
- package/esm2022/directives/icons/cloud-with-arrow/nimble-icon-cloud-with-arrow.directive.mjs +3 -3
- package/esm2022/directives/icons/cloud-with-arrow/nimble-icon-cloud-with-arrow.module.mjs +4 -4
- package/esm2022/directives/icons/cog/nimble-icon-cog.directive.mjs +3 -3
- package/esm2022/directives/icons/cog/nimble-icon-cog.module.mjs +4 -4
- package/esm2022/directives/icons/cog-database/nimble-icon-cog-database.directive.mjs +3 -3
- package/esm2022/directives/icons/cog-database/nimble-icon-cog-database.module.mjs +4 -4
- package/esm2022/directives/icons/cog-database-inset/nimble-icon-cog-database-inset.directive.mjs +3 -3
- package/esm2022/directives/icons/cog-database-inset/nimble-icon-cog-database-inset.module.mjs +4 -4
- package/esm2022/directives/icons/cog-small-cog/nimble-icon-cog-small-cog.directive.mjs +3 -3
- package/esm2022/directives/icons/cog-small-cog/nimble-icon-cog-small-cog.module.mjs +4 -4
- package/esm2022/directives/icons/cog-zoomed/nimble-icon-cog-zoomed.directive.mjs +3 -3
- package/esm2022/directives/icons/cog-zoomed/nimble-icon-cog-zoomed.module.mjs +4 -4
- package/esm2022/directives/icons/comment/nimble-icon-comment.directive.mjs +3 -3
- package/esm2022/directives/icons/comment/nimble-icon-comment.module.mjs +4 -4
- package/esm2022/directives/icons/computer-and-monitor/nimble-icon-computer-and-monitor.directive.mjs +3 -3
- package/esm2022/directives/icons/computer-and-monitor/nimble-icon-computer-and-monitor.module.mjs +4 -4
- package/esm2022/directives/icons/copy/nimble-icon-copy.directive.mjs +3 -3
- package/esm2022/directives/icons/copy/nimble-icon-copy.module.mjs +4 -4
- package/esm2022/directives/icons/copy-text/nimble-icon-copy-text.directive.mjs +3 -3
- package/esm2022/directives/icons/copy-text/nimble-icon-copy-text.module.mjs +4 -4
- package/esm2022/directives/icons/dashboard-builder/nimble-icon-dashboard-builder.directive.mjs +3 -3
- package/esm2022/directives/icons/dashboard-builder/nimble-icon-dashboard-builder.module.mjs +4 -4
- package/esm2022/directives/icons/dashboard-builder-legend/nimble-icon-dashboard-builder-legend.directive.mjs +3 -3
- package/esm2022/directives/icons/dashboard-builder-legend/nimble-icon-dashboard-builder-legend.module.mjs +4 -4
- package/esm2022/directives/icons/dashboard-builder-templates/nimble-icon-dashboard-builder-templates.directive.mjs +3 -3
- package/esm2022/directives/icons/dashboard-builder-templates/nimble-icon-dashboard-builder-templates.module.mjs +4 -4
- package/esm2022/directives/icons/dashboard-builder-tile/nimble-icon-dashboard-builder-tile.directive.mjs +3 -3
- package/esm2022/directives/icons/dashboard-builder-tile/nimble-icon-dashboard-builder-tile.module.mjs +4 -4
- package/esm2022/directives/icons/database/nimble-icon-database.directive.mjs +3 -3
- package/esm2022/directives/icons/database/nimble-icon-database.module.mjs +4 -4
- package/esm2022/directives/icons/database-check/nimble-icon-database-check.directive.mjs +3 -3
- package/esm2022/directives/icons/database-check/nimble-icon-database-check.module.mjs +4 -4
- package/esm2022/directives/icons/debug/nimble-icon-debug.directive.mjs +3 -3
- package/esm2022/directives/icons/debug/nimble-icon-debug.module.mjs +4 -4
- package/esm2022/directives/icons/desktop/nimble-icon-desktop.directive.mjs +3 -3
- package/esm2022/directives/icons/desktop/nimble-icon-desktop.module.mjs +4 -4
- package/esm2022/directives/icons/donut-chart/nimble-icon-donut-chart.directive.mjs +3 -3
- package/esm2022/directives/icons/donut-chart/nimble-icon-donut-chart.module.mjs +4 -4
- package/esm2022/directives/icons/dot-solid-dot-stroke/nimble-icon-dot-solid-dot-stroke.directive.mjs +3 -3
- package/esm2022/directives/icons/dot-solid-dot-stroke/nimble-icon-dot-solid-dot-stroke.module.mjs +4 -4
- package/esm2022/directives/icons/dot-solid-dot-stroke-measurement/nimble-icon-dot-solid-dot-stroke-measurement.directive.mjs +3 -3
- package/esm2022/directives/icons/dot-solid-dot-stroke-measurement/nimble-icon-dot-solid-dot-stroke-measurement.module.mjs +4 -4
- package/esm2022/directives/icons/down-right-from-square/nimble-icon-down-right-from-square.directive.mjs +3 -3
- package/esm2022/directives/icons/down-right-from-square/nimble-icon-down-right-from-square.module.mjs +4 -4
- package/esm2022/directives/icons/download/nimble-icon-download.directive.mjs +3 -3
- package/esm2022/directives/icons/download/nimble-icon-download.module.mjs +4 -4
- package/esm2022/directives/icons/electronic-chip-zoomed/nimble-icon-electronic-chip-zoomed.directive.mjs +3 -3
- package/esm2022/directives/icons/electronic-chip-zoomed/nimble-icon-electronic-chip-zoomed.module.mjs +4 -4
- package/esm2022/directives/icons/exclamation-mark/nimble-icon-exclamation-mark.directive.mjs +3 -3
- package/esm2022/directives/icons/exclamation-mark/nimble-icon-exclamation-mark.module.mjs +4 -4
- package/esm2022/directives/icons/eye/nimble-icon-eye.directive.mjs +3 -3
- package/esm2022/directives/icons/eye/nimble-icon-eye.module.mjs +4 -4
- package/esm2022/directives/icons/eye-dash/nimble-icon-eye-dash.directive.mjs +3 -3
- package/esm2022/directives/icons/eye-dash/nimble-icon-eye-dash.module.mjs +4 -4
- package/esm2022/directives/icons/fancy-a/nimble-icon-fancy-a.directive.mjs +3 -3
- package/esm2022/directives/icons/fancy-a/nimble-icon-fancy-a.module.mjs +4 -4
- package/esm2022/directives/icons/file/nimble-icon-file.directive.mjs +3 -3
- package/esm2022/directives/icons/file/nimble-icon-file.module.mjs +4 -4
- package/esm2022/directives/icons/file-arrow-curved-right/nimble-icon-file-arrow-curved-right.directive.mjs +3 -3
- package/esm2022/directives/icons/file-arrow-curved-right/nimble-icon-file-arrow-curved-right.module.mjs +4 -4
- package/esm2022/directives/icons/file-drawer/nimble-icon-file-drawer.directive.mjs +3 -3
- package/esm2022/directives/icons/file-drawer/nimble-icon-file-drawer.module.mjs +4 -4
- package/esm2022/directives/icons/file-search/nimble-icon-file-search.directive.mjs +3 -3
- package/esm2022/directives/icons/file-search/nimble-icon-file-search.module.mjs +4 -4
- package/esm2022/directives/icons/filter/nimble-icon-filter.directive.mjs +3 -3
- package/esm2022/directives/icons/filter/nimble-icon-filter.module.mjs +4 -4
- package/esm2022/directives/icons/floppy-disk/nimble-icon-floppy-disk.directive.mjs +3 -3
- package/esm2022/directives/icons/floppy-disk/nimble-icon-floppy-disk.module.mjs +4 -4
- package/esm2022/directives/icons/floppy-disk-checkmark/nimble-icon-floppy-disk-checkmark.directive.mjs +3 -3
- package/esm2022/directives/icons/floppy-disk-checkmark/nimble-icon-floppy-disk-checkmark.module.mjs +4 -4
- package/esm2022/directives/icons/floppy-disk-pen/nimble-icon-floppy-disk-pen.directive.mjs +3 -3
- package/esm2022/directives/icons/floppy-disk-pen/nimble-icon-floppy-disk-pen.module.mjs +4 -4
- package/esm2022/directives/icons/floppy-disk-star-arrow-right/nimble-icon-floppy-disk-star-arrow-right.directive.mjs +3 -3
- package/esm2022/directives/icons/floppy-disk-star-arrow-right/nimble-icon-floppy-disk-star-arrow-right.module.mjs +4 -4
- package/esm2022/directives/icons/floppy-disk-three-dots/nimble-icon-floppy-disk-three-dots.directive.mjs +3 -3
- package/esm2022/directives/icons/floppy-disk-three-dots/nimble-icon-floppy-disk-three-dots.module.mjs +4 -4
- package/esm2022/directives/icons/folder/nimble-icon-folder.directive.mjs +3 -3
- package/esm2022/directives/icons/folder/nimble-icon-folder.module.mjs +4 -4
- package/esm2022/directives/icons/folder-open/nimble-icon-folder-open.directive.mjs +3 -3
- package/esm2022/directives/icons/folder-open/nimble-icon-folder-open.module.mjs +4 -4
- package/esm2022/directives/icons/forward-slash/nimble-icon-forward-slash.directive.mjs +3 -3
- package/esm2022/directives/icons/forward-slash/nimble-icon-forward-slash.module.mjs +4 -4
- package/esm2022/directives/icons/four-dots-square/nimble-icon-four-dots-square.directive.mjs +3 -3
- package/esm2022/directives/icons/four-dots-square/nimble-icon-four-dots-square.module.mjs +4 -4
- package/esm2022/directives/icons/function/nimble-icon-function.directive.mjs +3 -3
- package/esm2022/directives/icons/function/nimble-icon-function.module.mjs +4 -4
- package/esm2022/directives/icons/gauge-simple/nimble-icon-gauge-simple.directive.mjs +3 -3
- package/esm2022/directives/icons/gauge-simple/nimble-icon-gauge-simple.module.mjs +4 -4
- package/esm2022/directives/icons/grid-three-by-three/nimble-icon-grid-three-by-three.directive.mjs +3 -3
- package/esm2022/directives/icons/grid-three-by-three/nimble-icon-grid-three-by-three.module.mjs +4 -4
- package/esm2022/directives/icons/grid-two-by-two/nimble-icon-grid-two-by-two.directive.mjs +3 -3
- package/esm2022/directives/icons/grid-two-by-two/nimble-icon-grid-two-by-two.module.mjs +4 -4
- package/esm2022/directives/icons/hammer/nimble-icon-hammer.directive.mjs +3 -3
- package/esm2022/directives/icons/hammer/nimble-icon-hammer.module.mjs +4 -4
- package/esm2022/directives/icons/hashtag/nimble-icon-hashtag.directive.mjs +3 -3
- package/esm2022/directives/icons/hashtag/nimble-icon-hashtag.module.mjs +4 -4
- package/esm2022/directives/icons/home/nimble-icon-home.directive.mjs +3 -3
- package/esm2022/directives/icons/home/nimble-icon-home.module.mjs +4 -4
- package/esm2022/directives/icons/horizontal-triangle-outline/nimble-icon-horizontal-triangle-outline.directive.mjs +3 -3
- package/esm2022/directives/icons/horizontal-triangle-outline/nimble-icon-horizontal-triangle-outline.module.mjs +4 -4
- package/esm2022/directives/icons/hourglass/nimble-icon-hourglass.directive.mjs +3 -3
- package/esm2022/directives/icons/hourglass/nimble-icon-hourglass.module.mjs +4 -4
- package/esm2022/directives/icons/indent/nimble-icon-indent.directive.mjs +3 -3
- package/esm2022/directives/icons/indent/nimble-icon-indent.module.mjs +4 -4
- package/esm2022/directives/icons/indeterminant-checkbox/nimble-icon-indeterminant-checkbox.directive.mjs +3 -3
- package/esm2022/directives/icons/indeterminant-checkbox/nimble-icon-indeterminant-checkbox.module.mjs +4 -4
- package/esm2022/directives/icons/info/nimble-icon-info.directive.mjs +3 -3
- package/esm2022/directives/icons/info/nimble-icon-info.module.mjs +4 -4
- package/esm2022/directives/icons/info-circle/nimble-icon-info-circle.directive.mjs +3 -3
- package/esm2022/directives/icons/info-circle/nimble-icon-info-circle.module.mjs +4 -4
- package/esm2022/directives/icons/inward-squares-three/nimble-icon-inward-squares-three.directive.mjs +3 -3
- package/esm2022/directives/icons/inward-squares-three/nimble-icon-inward-squares-three.module.mjs +4 -4
- package/esm2022/directives/icons/italic-i/nimble-icon-italic-i.directive.mjs +3 -3
- package/esm2022/directives/icons/italic-i/nimble-icon-italic-i.module.mjs +4 -4
- package/esm2022/directives/icons/key/nimble-icon-key.directive.mjs +3 -3
- package/esm2022/directives/icons/key/nimble-icon-key.module.mjs +4 -4
- package/esm2022/directives/icons/laptop/nimble-icon-laptop.directive.mjs +3 -3
- package/esm2022/directives/icons/laptop/nimble-icon-laptop.module.mjs +4 -4
- package/esm2022/directives/icons/layer-group/nimble-icon-layer-group.directive.mjs +3 -3
- package/esm2022/directives/icons/layer-group/nimble-icon-layer-group.module.mjs +4 -4
- package/esm2022/directives/icons/lightbulb/nimble-icon-lightbulb.directive.mjs +3 -3
- package/esm2022/directives/icons/lightbulb/nimble-icon-lightbulb.module.mjs +4 -4
- package/esm2022/directives/icons/lightning-bolt/nimble-icon-lightning-bolt.directive.mjs +3 -3
- package/esm2022/directives/icons/lightning-bolt/nimble-icon-lightning-bolt.module.mjs +4 -4
- package/esm2022/directives/icons/link/nimble-icon-link.directive.mjs +3 -3
- package/esm2022/directives/icons/link/nimble-icon-link.module.mjs +4 -4
- package/esm2022/directives/icons/link-cancel/nimble-icon-link-cancel.directive.mjs +3 -3
- package/esm2022/directives/icons/link-cancel/nimble-icon-link-cancel.module.mjs +4 -4
- package/esm2022/directives/icons/list/nimble-icon-list.directive.mjs +3 -3
- package/esm2022/directives/icons/list/nimble-icon-list.module.mjs +4 -4
- package/esm2022/directives/icons/list-tree/nimble-icon-list-tree.directive.mjs +3 -3
- package/esm2022/directives/icons/list-tree/nimble-icon-list-tree.module.mjs +4 -4
- package/esm2022/directives/icons/list-tree-database/nimble-icon-list-tree-database.directive.mjs +3 -3
- package/esm2022/directives/icons/list-tree-database/nimble-icon-list-tree-database.module.mjs +4 -4
- package/esm2022/directives/icons/lock/nimble-icon-lock.directive.mjs +3 -3
- package/esm2022/directives/icons/lock/nimble-icon-lock.module.mjs +4 -4
- package/esm2022/directives/icons/magnifying-glass/nimble-icon-magnifying-glass.directive.mjs +3 -3
- package/esm2022/directives/icons/magnifying-glass/nimble-icon-magnifying-glass.module.mjs +4 -4
- package/esm2022/directives/icons/markdown/nimble-icon-markdown.directive.mjs +3 -3
- package/esm2022/directives/icons/markdown/nimble-icon-markdown.module.mjs +4 -4
- package/esm2022/directives/icons/message-bot/nimble-icon-message-bot.directive.mjs +3 -3
- package/esm2022/directives/icons/message-bot/nimble-icon-message-bot.module.mjs +4 -4
- package/esm2022/directives/icons/microphone/nimble-icon-microphone.directive.mjs +3 -3
- package/esm2022/directives/icons/microphone/nimble-icon-microphone.module.mjs +4 -4
- package/esm2022/directives/icons/minus/nimble-icon-minus.directive.mjs +3 -3
- package/esm2022/directives/icons/minus/nimble-icon-minus.module.mjs +4 -4
- package/esm2022/directives/icons/minus-wide/nimble-icon-minus-wide.directive.mjs +3 -3
- package/esm2022/directives/icons/minus-wide/nimble-icon-minus-wide.module.mjs +4 -4
- package/esm2022/directives/icons/mobile/nimble-icon-mobile.directive.mjs +3 -3
- package/esm2022/directives/icons/mobile/nimble-icon-mobile.module.mjs +4 -4
- package/esm2022/directives/icons/mountain-sun/nimble-icon-mountain-sun.directive.mjs +3 -3
- package/esm2022/directives/icons/mountain-sun/nimble-icon-mountain-sun.module.mjs +4 -4
- package/esm2022/directives/icons/ni/nimble-icon-ni.directive.mjs +3 -3
- package/esm2022/directives/icons/ni/nimble-icon-ni.module.mjs +4 -4
- package/esm2022/directives/icons/notebook/nimble-icon-notebook.directive.mjs +3 -3
- package/esm2022/directives/icons/notebook/nimble-icon-notebook.module.mjs +4 -4
- package/esm2022/directives/icons/number-list/nimble-icon-number-list.directive.mjs +3 -3
- package/esm2022/directives/icons/number-list/nimble-icon-number-list.module.mjs +4 -4
- package/esm2022/directives/icons/outdent/nimble-icon-outdent.directive.mjs +3 -3
- package/esm2022/directives/icons/outdent/nimble-icon-outdent.module.mjs +4 -4
- package/esm2022/directives/icons/outward-squares-three/nimble-icon-outward-squares-three.directive.mjs +3 -3
- package/esm2022/directives/icons/outward-squares-three/nimble-icon-outward-squares-three.module.mjs +4 -4
- package/esm2022/directives/icons/paper-plane/nimble-icon-paper-plane.directive.mjs +3 -3
- package/esm2022/directives/icons/paper-plane/nimble-icon-paper-plane.module.mjs +4 -4
- package/esm2022/directives/icons/paperclip/nimble-icon-paperclip.directive.mjs +3 -3
- package/esm2022/directives/icons/paperclip/nimble-icon-paperclip.module.mjs +4 -4
- package/esm2022/directives/icons/paste/nimble-icon-paste.directive.mjs +3 -3
- package/esm2022/directives/icons/paste/nimble-icon-paste.module.mjs +4 -4
- package/esm2022/directives/icons/pause/nimble-icon-pause.directive.mjs +3 -3
- package/esm2022/directives/icons/pause/nimble-icon-pause.module.mjs +4 -4
- package/esm2022/directives/icons/pencil/nimble-icon-pencil.directive.mjs +3 -3
- package/esm2022/directives/icons/pencil/nimble-icon-pencil.module.mjs +4 -4
- package/esm2022/directives/icons/play/nimble-icon-play.directive.mjs +3 -3
- package/esm2022/directives/icons/play/nimble-icon-play.module.mjs +4 -4
- package/esm2022/directives/icons/pot-with-lid/nimble-icon-pot-with-lid.directive.mjs +3 -3
- package/esm2022/directives/icons/pot-with-lid/nimble-icon-pot-with-lid.module.mjs +4 -4
- package/esm2022/directives/icons/question/nimble-icon-question.directive.mjs +3 -3
- package/esm2022/directives/icons/question/nimble-icon-question.module.mjs +4 -4
- package/esm2022/directives/icons/rectangle-check-lines/nimble-icon-rectangle-check-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/rectangle-check-lines/nimble-icon-rectangle-check-lines.module.mjs +4 -4
- package/esm2022/directives/icons/rectangle-lines/nimble-icon-rectangle-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/rectangle-lines/nimble-icon-rectangle-lines.module.mjs +4 -4
- package/esm2022/directives/icons/running-arrow/nimble-icon-running-arrow.directive.mjs +3 -3
- package/esm2022/directives/icons/running-arrow/nimble-icon-running-arrow.module.mjs +4 -4
- package/esm2022/directives/icons/screen-check-lines/nimble-icon-screen-check-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/screen-check-lines/nimble-icon-screen-check-lines.module.mjs +4 -4
- package/esm2022/directives/icons/screen-check-lines-calendar/nimble-icon-screen-check-lines-calendar.directive.mjs +3 -3
- package/esm2022/directives/icons/screen-check-lines-calendar/nimble-icon-screen-check-lines-calendar.module.mjs +4 -4
- package/esm2022/directives/icons/server/nimble-icon-server.directive.mjs +3 -3
- package/esm2022/directives/icons/server/nimble-icon-server.module.mjs +4 -4
- package/esm2022/directives/icons/share-nodes/nimble-icon-share-nodes.directive.mjs +3 -3
- package/esm2022/directives/icons/share-nodes/nimble-icon-share-nodes.module.mjs +4 -4
- package/esm2022/directives/icons/shield-check/nimble-icon-shield-check.directive.mjs +3 -3
- package/esm2022/directives/icons/shield-check/nimble-icon-shield-check.module.mjs +4 -4
- package/esm2022/directives/icons/shield-xmark/nimble-icon-shield-xmark.directive.mjs +3 -3
- package/esm2022/directives/icons/shield-xmark/nimble-icon-shield-xmark.module.mjs +4 -4
- package/esm2022/directives/icons/signal-bars/nimble-icon-signal-bars.directive.mjs +3 -3
- package/esm2022/directives/icons/signal-bars/nimble-icon-signal-bars.module.mjs +4 -4
- package/esm2022/directives/icons/sine-graph/nimble-icon-sine-graph.directive.mjs +3 -3
- package/esm2022/directives/icons/sine-graph/nimble-icon-sine-graph.module.mjs +4 -4
- package/esm2022/directives/icons/skip-arrow/nimble-icon-skip-arrow.directive.mjs +3 -3
- package/esm2022/directives/icons/skip-arrow/nimble-icon-skip-arrow.module.mjs +4 -4
- package/esm2022/directives/icons/sparkle-swirls/nimble-icon-sparkle-swirls.directive.mjs +3 -3
- package/esm2022/directives/icons/sparkle-swirls/nimble-icon-sparkle-swirls.module.mjs +4 -4
- package/esm2022/directives/icons/sparkles/nimble-icon-sparkles.directive.mjs +3 -3
- package/esm2022/directives/icons/sparkles/nimble-icon-sparkles.module.mjs +4 -4
- package/esm2022/directives/icons/spinner/nimble-icon-spinner.directive.mjs +3 -3
- package/esm2022/directives/icons/spinner/nimble-icon-spinner.module.mjs +4 -4
- package/esm2022/directives/icons/square-check/nimble-icon-square-check.directive.mjs +3 -3
- package/esm2022/directives/icons/square-check/nimble-icon-square-check.module.mjs +4 -4
- package/esm2022/directives/icons/square-t/nimble-icon-square-t.directive.mjs +3 -3
- package/esm2022/directives/icons/square-t/nimble-icon-square-t.module.mjs +4 -4
- package/esm2022/directives/icons/square-x/nimble-icon-square-x.directive.mjs +3 -3
- package/esm2022/directives/icons/square-x/nimble-icon-square-x.module.mjs +4 -4
- package/esm2022/directives/icons/star-8-point/nimble-icon-star-8-point.directive.mjs +3 -3
- package/esm2022/directives/icons/star-8-point/nimble-icon-star-8-point.module.mjs +4 -4
- package/esm2022/directives/icons/stop-square/nimble-icon-stop-square.directive.mjs +3 -3
- package/esm2022/directives/icons/stop-square/nimble-icon-stop-square.module.mjs +4 -4
- package/esm2022/directives/icons/systemlink/nimble-icon-systemlink.directive.mjs +3 -3
- package/esm2022/directives/icons/systemlink/nimble-icon-systemlink.module.mjs +4 -4
- package/esm2022/directives/icons/t/nimble-icon-t.directive.mjs +3 -3
- package/esm2022/directives/icons/t/nimble-icon-t.module.mjs +4 -4
- package/esm2022/directives/icons/tablet/nimble-icon-tablet.directive.mjs +3 -3
- package/esm2022/directives/icons/tablet/nimble-icon-tablet.module.mjs +4 -4
- package/esm2022/directives/icons/tag/nimble-icon-tag.directive.mjs +3 -3
- package/esm2022/directives/icons/tag/nimble-icon-tag.module.mjs +4 -4
- package/esm2022/directives/icons/tags/nimble-icon-tags.directive.mjs +3 -3
- package/esm2022/directives/icons/tags/nimble-icon-tags.module.mjs +4 -4
- package/esm2022/directives/icons/target-crosshairs/nimble-icon-target-crosshairs.directive.mjs +3 -3
- package/esm2022/directives/icons/target-crosshairs/nimble-icon-target-crosshairs.module.mjs +4 -4
- package/esm2022/directives/icons/target-crosshairs-progress/nimble-icon-target-crosshairs-progress.directive.mjs +3 -3
- package/esm2022/directives/icons/target-crosshairs-progress/nimble-icon-target-crosshairs-progress.module.mjs +4 -4
- package/esm2022/directives/icons/three-circles-ascending-container/nimble-icon-three-circles-ascending-container.directive.mjs +3 -3
- package/esm2022/directives/icons/three-circles-ascending-container/nimble-icon-three-circles-ascending-container.module.mjs +4 -4
- package/esm2022/directives/icons/three-dots-line/nimble-icon-three-dots-line.directive.mjs +3 -3
- package/esm2022/directives/icons/three-dots-line/nimble-icon-three-dots-line.module.mjs +4 -4
- package/esm2022/directives/icons/three-vertical-lines/nimble-icon-three-vertical-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/three-vertical-lines/nimble-icon-three-vertical-lines.module.mjs +4 -4
- package/esm2022/directives/icons/thumb-down/nimble-icon-thumb-down.directive.mjs +3 -3
- package/esm2022/directives/icons/thumb-down/nimble-icon-thumb-down.module.mjs +4 -4
- package/esm2022/directives/icons/thumb-up/nimble-icon-thumb-up.directive.mjs +3 -3
- package/esm2022/directives/icons/thumb-up/nimble-icon-thumb-up.module.mjs +4 -4
- package/esm2022/directives/icons/thumbtack/nimble-icon-thumbtack.directive.mjs +3 -3
- package/esm2022/directives/icons/thumbtack/nimble-icon-thumbtack.module.mjs +4 -4
- package/esm2022/directives/icons/tile-size/nimble-icon-tile-size.directive.mjs +3 -3
- package/esm2022/directives/icons/tile-size/nimble-icon-tile-size.module.mjs +4 -4
- package/esm2022/directives/icons/times/nimble-icon-times.directive.mjs +3 -3
- package/esm2022/directives/icons/times/nimble-icon-times.module.mjs +4 -4
- package/esm2022/directives/icons/trash/nimble-icon-trash.directive.mjs +3 -3
- package/esm2022/directives/icons/trash/nimble-icon-trash.module.mjs +4 -4
- package/esm2022/directives/icons/triangle/nimble-icon-triangle.directive.mjs +3 -3
- package/esm2022/directives/icons/triangle/nimble-icon-triangle.module.mjs +4 -4
- package/esm2022/directives/icons/triangle-filled/nimble-icon-triangle-filled.directive.mjs +3 -3
- package/esm2022/directives/icons/triangle-filled/nimble-icon-triangle-filled.module.mjs +4 -4
- package/esm2022/directives/icons/triangle-two-lines-horizontal/nimble-icon-triangle-two-lines-horizontal.directive.mjs +3 -3
- package/esm2022/directives/icons/triangle-two-lines-horizontal/nimble-icon-triangle-two-lines-horizontal.module.mjs +4 -4
- package/esm2022/directives/icons/true-false-rectangle/nimble-icon-true-false-rectangle.directive.mjs +3 -3
- package/esm2022/directives/icons/true-false-rectangle/nimble-icon-true-false-rectangle.module.mjs +4 -4
- package/esm2022/directives/icons/two-squares-in-brackets/nimble-icon-two-squares-in-brackets.directive.mjs +3 -3
- package/esm2022/directives/icons/two-squares-in-brackets/nimble-icon-two-squares-in-brackets.module.mjs +4 -4
- package/esm2022/directives/icons/two-triangles-between-lines/nimble-icon-two-triangles-between-lines.directive.mjs +3 -3
- package/esm2022/directives/icons/two-triangles-between-lines/nimble-icon-two-triangles-between-lines.module.mjs +4 -4
- package/esm2022/directives/icons/unlink/nimble-icon-unlink.directive.mjs +3 -3
- package/esm2022/directives/icons/unlink/nimble-icon-unlink.module.mjs +4 -4
- package/esm2022/directives/icons/unlock/nimble-icon-unlock.directive.mjs +3 -3
- package/esm2022/directives/icons/unlock/nimble-icon-unlock.module.mjs +4 -4
- package/esm2022/directives/icons/up-right-from-square/nimble-icon-up-right-from-square.directive.mjs +3 -3
- package/esm2022/directives/icons/up-right-from-square/nimble-icon-up-right-from-square.module.mjs +4 -4
- package/esm2022/directives/icons/upload/nimble-icon-upload.directive.mjs +3 -3
- package/esm2022/directives/icons/upload/nimble-icon-upload.module.mjs +4 -4
- package/esm2022/directives/icons/user/nimble-icon-user.directive.mjs +3 -3
- package/esm2022/directives/icons/user/nimble-icon-user.module.mjs +4 -4
- package/esm2022/directives/icons/watch/nimble-icon-watch.directive.mjs +3 -3
- package/esm2022/directives/icons/watch/nimble-icon-watch.module.mjs +4 -4
- package/esm2022/directives/icons/waveform/nimble-icon-waveform.directive.mjs +3 -3
- package/esm2022/directives/icons/waveform/nimble-icon-waveform.module.mjs +4 -4
- package/esm2022/directives/icons/webvi-custom/nimble-icon-webvi-custom.directive.mjs +3 -3
- package/esm2022/directives/icons/webvi-custom/nimble-icon-webvi-custom.module.mjs +4 -4
- package/esm2022/directives/icons/webvi-host/nimble-icon-webvi-host.directive.mjs +3 -3
- package/esm2022/directives/icons/webvi-host/nimble-icon-webvi-host.module.mjs +4 -4
- package/esm2022/directives/icons/window-code/nimble-icon-window-code.directive.mjs +3 -3
- package/esm2022/directives/icons/window-code/nimble-icon-window-code.module.mjs +4 -4
- package/esm2022/directives/icons/window-text/nimble-icon-window-text.directive.mjs +3 -3
- package/esm2022/directives/icons/window-text/nimble-icon-window-text.module.mjs +4 -4
- package/esm2022/directives/icons/wrench-hammer/nimble-icon-wrench-hammer.directive.mjs +3 -3
- package/esm2022/directives/icons/wrench-hammer/nimble-icon-wrench-hammer.module.mjs +4 -4
- package/esm2022/directives/icons/xmark/nimble-icon-xmark.directive.mjs +3 -3
- package/esm2022/directives/icons/xmark/nimble-icon-xmark.module.mjs +4 -4
- package/esm2022/directives/icons/xmark-check/nimble-icon-xmark-check.directive.mjs +3 -3
- package/esm2022/directives/icons/xmark-check/nimble-icon-xmark-check.module.mjs +4 -4
- package/esm2022/directives/list-option/nimble-combobox-list-option.directive.mjs +3 -3
- package/esm2022/directives/list-option/nimble-list-option.directive.mjs +3 -3
- package/esm2022/directives/list-option/nimble-list-option.module.mjs +4 -4
- package/esm2022/directives/list-option/nimble-select-list-option.directive.mjs +3 -3
- package/esm2022/directives/list-option-group/nimble-list-option-group.directive.mjs +3 -3
- package/esm2022/directives/list-option-group/nimble-list-option-group.module.mjs +4 -4
- package/esm2022/directives/menu/nimble-menu.directive.mjs +3 -3
- package/esm2022/directives/menu/nimble-menu.module.mjs +4 -4
- package/esm2022/directives/menu-button/nimble-menu-button.directive.mjs +3 -3
- package/esm2022/directives/menu-button/nimble-menu-button.module.mjs +4 -4
- package/esm2022/directives/menu-item/nimble-menu-item.directive.mjs +3 -3
- package/esm2022/directives/menu-item/nimble-menu-item.module.mjs +4 -4
- package/esm2022/directives/number-field/nimble-number-field-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/number-field/nimble-number-field.directive.mjs +3 -3
- package/esm2022/directives/number-field/nimble-number-field.module.mjs +4 -4
- package/esm2022/directives/radio/nimble-radio-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/radio/nimble-radio.directive.mjs +3 -3
- package/esm2022/directives/radio/nimble-radio.module.mjs +4 -4
- package/esm2022/directives/radio-group/nimble-radio-group.directive.mjs +3 -3
- package/esm2022/directives/radio-group/nimble-radio-group.module.mjs +4 -4
- package/esm2022/directives/select/nimble-select-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/select/nimble-select.directive.mjs +3 -3
- package/esm2022/directives/select/nimble-select.module.mjs +4 -4
- package/esm2022/directives/spinner/nimble-spinner.directive.mjs +3 -3
- package/esm2022/directives/spinner/nimble-spinner.module.mjs +4 -4
- package/esm2022/directives/switch/nimble-switch-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/switch/nimble-switch.directive.mjs +3 -3
- package/esm2022/directives/switch/nimble-switch.module.mjs +4 -4
- package/esm2022/directives/tab/nimble-tab.directive.mjs +3 -3
- package/esm2022/directives/tab/nimble-tab.module.mjs +4 -4
- package/esm2022/directives/tab-panel/nimble-tab-panel.directive.mjs +3 -3
- package/esm2022/directives/tab-panel/nimble-tab-panel.module.mjs +4 -4
- package/esm2022/directives/tabs/nimble-tabs.directive.mjs +3 -3
- package/esm2022/directives/tabs/nimble-tabs.module.mjs +4 -4
- package/esm2022/directives/tabs-toolbar/nimble-tabs-toolbar.directive.mjs +3 -3
- package/esm2022/directives/tabs-toolbar/nimble-tabs-toolbar.module.mjs +4 -4
- package/esm2022/directives/text-area/nimble-text-area-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/text-area/nimble-text-area.directive.mjs +3 -3
- package/esm2022/directives/text-area/nimble-text-area.module.mjs +4 -4
- package/esm2022/directives/text-field/nimble-text-field-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/text-field/nimble-text-field.directive.mjs +3 -3
- package/esm2022/directives/text-field/nimble-text-field.module.mjs +4 -4
- package/esm2022/directives/theme-provider/nimble-theme-provider.directive.mjs +3 -3
- package/esm2022/directives/theme-provider/nimble-theme-provider.module.mjs +4 -4
- package/esm2022/directives/toggle-button/nimble-toggle-button-control-value-accessor.directive.mjs +3 -3
- package/esm2022/directives/toggle-button/nimble-toggle-button.directive.mjs +3 -3
- package/esm2022/directives/toggle-button/nimble-toggle-button.module.mjs +4 -4
- package/esm2022/directives/toolbar/nimble-toolbar.directive.mjs +3 -3
- package/esm2022/directives/toolbar/nimble-toolbar.module.mjs +4 -4
- package/esm2022/directives/tooltip/nimble-tooltip.directive.mjs +3 -3
- package/esm2022/directives/tooltip/nimble-tooltip.module.mjs +4 -4
- package/esm2022/directives/tree-item/nimble-tree-item.directive.mjs +3 -3
- package/esm2022/directives/tree-item/nimble-tree-item.module.mjs +4 -4
- package/esm2022/directives/tree-view/nimble-tree-view.directive.mjs +3 -3
- package/esm2022/directives/tree-view/nimble-tree-view.module.mjs +4 -4
- package/esm2022/label-provider/core/nimble-label-provider-core-with-defaults.directive.mjs +3 -3
- package/esm2022/label-provider/core/nimble-label-provider-core.directive.mjs +3 -3
- package/esm2022/label-provider/core/nimble-label-provider-core.module.mjs +4 -4
- package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text-with-defaults.directive.mjs +3 -3
- package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text.directive.mjs +3 -3
- package/esm2022/label-provider/rich-text/nimble-label-provider-rich-text.module.mjs +4 -4
- package/esm2022/label-provider/table/nimble-label-provider-table-with-defaults.directive.mjs +3 -3
- package/esm2022/label-provider/table/nimble-label-provider-table.directive.mjs +3 -3
- package/esm2022/label-provider/table/nimble-label-provider-table.module.mjs +4 -4
- package/esm2022/mapping/base/nimble-mapping-base.directive.mjs +3 -3
- package/esm2022/mapping/empty/nimble-mapping-empty.directive.mjs +3 -3
- package/esm2022/mapping/empty/nimble-mapping-empty.module.mjs +4 -4
- package/esm2022/mapping/icon/nimble-mapping-icon.directive.mjs +3 -3
- package/esm2022/mapping/icon/nimble-mapping-icon.module.mjs +4 -4
- package/esm2022/mapping/spinner/nimble-mapping-spinner.directive.mjs +3 -3
- package/esm2022/mapping/spinner/nimble-mapping-spinner.module.mjs +4 -4
- package/esm2022/mapping/text/nimble-mapping-text.directive.mjs +3 -3
- package/esm2022/mapping/text/nimble-mapping-text.module.mjs +4 -4
- package/esm2022/mapping/user/nimble-mapping-user.directive.mjs +3 -3
- package/esm2022/mapping/user/nimble-mapping-user.module.mjs +4 -4
- package/esm2022/pipes/diacritic-insensitive.pipe.mjs +3 -3
- package/esm2022/pipes/duration.pipe.mjs +3 -3
- package/esm2022/pipes/number-text.pipe.mjs +3 -3
- package/esm2022/rich-text/editor/nimble-rich-text-editor.directive.mjs +3 -3
- package/esm2022/rich-text/editor/nimble-rich-text-editor.module.mjs +4 -4
- package/esm2022/rich-text/viewer/nimble-rich-text-viewer.directive.mjs +3 -3
- package/esm2022/rich-text/viewer/nimble-rich-text-viewer.module.mjs +4 -4
- package/esm2022/rich-text-mention/nimble-rich-text-mention-base.directive.mjs +3 -3
- package/esm2022/rich-text-mention/users/nimble-rich-text-mention-users.directive.mjs +3 -3
- package/esm2022/rich-text-mention/users/nimble-rich-text-mention-users.module.mjs +4 -4
- package/esm2022/table/nimble-table.directive.mjs +3 -3
- package/esm2022/table/nimble-table.module.mjs +4 -4
- package/esm2022/table-column/anchor/nimble-table-column-anchor-navigation-guard.directive.mjs +3 -3
- package/esm2022/table-column/anchor/nimble-table-column-anchor.directive.mjs +3 -3
- package/esm2022/table-column/anchor/nimble-table-column-anchor.module.mjs +4 -4
- package/esm2022/table-column/date-text/nimble-table-column-date-text.directive.mjs +3 -3
- package/esm2022/table-column/date-text/nimble-table-column-date-text.module.mjs +4 -4
- package/esm2022/table-column/duration-text/nimble-table-column-duration-text.directive.mjs +3 -3
- package/esm2022/table-column/duration-text/nimble-table-column-duration-text.module.mjs +4 -4
- package/esm2022/table-column/mapping/nimble-table-column-mapping.directive.mjs +3 -3
- package/esm2022/table-column/mapping/nimble-table-column-mapping.module.mjs +4 -4
- package/esm2022/table-column/menu-button/nimble-table-column-menu-button.directive.mjs +3 -3
- package/esm2022/table-column/menu-button/nimble-table-column-menu-button.module.mjs +4 -4
- package/esm2022/table-column/nimble-table-column-base.directive.mjs +3 -3
- package/esm2022/table-column/number-text/nimble-table-column-number-text.directive.mjs +3 -3
- package/esm2022/table-column/number-text/nimble-table-column-number-text.module.mjs +4 -4
- package/esm2022/table-column/text/nimble-table-column-text.directive.mjs +3 -3
- package/esm2022/table-column/text/nimble-table-column-text.module.mjs +4 -4
- package/esm2022/thirdparty/directives/checkbox_value_accessor.mjs +9 -9
- package/esm2022/thirdparty/directives/control_value_accessor.mjs +9 -9
- package/esm2022/thirdparty/directives/default_value_accessor.mjs +17 -15
- package/esm2022/thirdparty/directives/number_value_accessor.mjs +13 -10
- package/esm2022/thirdparty/directives/radio_control_value_accessor.mjs +28 -19
- package/esm2022/thirdparty/directives/router_link.mjs +76 -35
- package/esm2022/thirdparty/directives/select_control_value_accessor.mjs +20 -16
- package/esm2022/unit/byte/nimble-unit-byte.directive.mjs +3 -3
- package/esm2022/unit/byte/nimble-unit-byte.module.mjs +4 -4
- package/esm2022/unit/celsius/nimble-unit-celsius.directive.mjs +3 -3
- package/esm2022/unit/celsius/nimble-unit-celsius.module.mjs +4 -4
- package/esm2022/unit/fahrenheit/nimble-unit-fahrenheit.directive.mjs +3 -3
- package/esm2022/unit/fahrenheit/nimble-unit-fahrenheit.module.mjs +4 -4
- package/esm2022/unit/volt/nimble-unit-volt.directive.mjs +3 -3
- package/esm2022/unit/volt/nimble-unit-volt.module.mjs +4 -4
- package/fesm2022/ni-nimble-angular-card.mjs +7 -7
- package/fesm2022/ni-nimble-angular-label-provider-core.mjs +10 -10
- package/fesm2022/ni-nimble-angular-label-provider-rich-text.mjs +10 -10
- package/fesm2022/ni-nimble-angular-label-provider-table.mjs +10 -10
- package/fesm2022/ni-nimble-angular-mapping-base.mjs +3 -3
- package/fesm2022/ni-nimble-angular-mapping-empty.mjs +7 -7
- package/fesm2022/ni-nimble-angular-mapping-icon.mjs +7 -7
- package/fesm2022/ni-nimble-angular-mapping-spinner.mjs +7 -7
- package/fesm2022/ni-nimble-angular-mapping-text.mjs +7 -7
- package/fesm2022/ni-nimble-angular-mapping-user.mjs +7 -7
- package/fesm2022/ni-nimble-angular-pipes.mjs +9 -9
- package/fesm2022/ni-nimble-angular-rich-text-editor.mjs +7 -7
- package/fesm2022/ni-nimble-angular-rich-text-mention-users.mjs +7 -7
- package/fesm2022/ni-nimble-angular-rich-text-mention.mjs +3 -3
- package/fesm2022/ni-nimble-angular-rich-text-viewer.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-anchor.mjs +10 -10
- package/fesm2022/ni-nimble-angular-table-column-date-text.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-duration-text.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-mapping.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-menu-button.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-number-text.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column-text.mjs +7 -7
- package/fesm2022/ni-nimble-angular-table-column.mjs +3 -3
- package/fesm2022/ni-nimble-angular-table.mjs +7 -7
- package/fesm2022/ni-nimble-angular-unit-byte.mjs +7 -7
- package/fesm2022/ni-nimble-angular-unit-celsius.mjs +7 -7
- package/fesm2022/ni-nimble-angular-unit-fahrenheit.mjs +7 -7
- package/fesm2022/ni-nimble-angular-unit-volt.mjs +7 -7
- package/fesm2022/ni-nimble-angular.mjs +1969 -1925
- package/fesm2022/ni-nimble-angular.mjs.map +1 -1
- package/package.json +7 -7
- package/thirdparty/directives/checkbox_value_accessor.d.ts +1 -1
- package/thirdparty/directives/control_value_accessor.d.ts +2 -2
- package/thirdparty/directives/default_value_accessor.d.ts +1 -2
- package/thirdparty/directives/radio_control_value_accessor.d.ts +2 -2
- package/thirdparty/directives/router_link.d.ts +17 -7
- package/thirdparty/directives/select_control_value_accessor.d.ts +2 -2
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* [Nimble]
|
|
3
|
-
* Copied from https://github.com/angular/angular/blob/
|
|
3
|
+
* Copied from https://github.com/angular/angular/blob/18.2.13/packages/forms/src/directives/radio_control_value_accessor.ts
|
|
4
4
|
* with the following modifications:
|
|
5
5
|
* - Changed throwNameError() to throw Error instead of RuntimeError. This makes the file compile with Angular version 12.
|
|
6
6
|
* - Removed now-unused import for RuntimeErrorCode and RuntimeError
|
|
@@ -13,17 +13,23 @@
|
|
|
13
13
|
* Copyright Google LLC All Rights Reserved.
|
|
14
14
|
*
|
|
15
15
|
* Use of this source code is governed by an MIT-style license that can be
|
|
16
|
-
* found in the LICENSE file at https://angular.
|
|
16
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
17
17
|
*/
|
|
18
|
-
import { Directive, ElementRef, forwardRef, inject, Injectable, Injector, Input, Renderer2, ɵRuntimeError as RuntimeError } from '@angular/core';
|
|
19
|
-
import {
|
|
18
|
+
import { Directive, ElementRef, forwardRef, inject, Injectable, Injector, Input, Renderer2, ɵRuntimeError as RuntimeError, } from '@angular/core';
|
|
19
|
+
// import {RuntimeErrorCode} from '../errors';
|
|
20
|
+
import { BuiltInControlValueAccessor,
|
|
21
|
+
// ControlValueAccessor,
|
|
22
|
+
// NG_VALUE_ACCESSOR,
|
|
23
|
+
} from './control_value_accessor';
|
|
20
24
|
import { NgControl } from '@angular/forms';
|
|
21
25
|
import * as i0 from "@angular/core";
|
|
26
|
+
// import {NgControl} from './ng_control';
|
|
27
|
+
// import {CALL_SET_DISABLED_STATE, setDisabledStateDefault} from './shared';
|
|
22
28
|
/* [Nimble] Do not register as a value accessor provider
|
|
23
29
|
const RADIO_VALUE_ACCESSOR: Provider = {
|
|
24
30
|
provide: NG_VALUE_ACCESSOR,
|
|
25
31
|
useExisting: forwardRef(() => RadioControlValueAccessor),
|
|
26
|
-
multi: true
|
|
32
|
+
multi: true,
|
|
27
33
|
};
|
|
28
34
|
*/
|
|
29
35
|
function throwNameError() {
|
|
@@ -76,14 +82,14 @@ export class RadioControlRegistry {
|
|
|
76
82
|
_isSameGroup(controlPair, accessor) {
|
|
77
83
|
if (!controlPair[0].control)
|
|
78
84
|
return false;
|
|
85
|
+
return (
|
|
79
86
|
// @ts-expect-error: [Nimble] Use of internal NgControl member _parent
|
|
80
|
-
|
|
81
|
-
controlPair[1].name === accessor.name;
|
|
87
|
+
controlPair[0]._parent === accessor._control._parent && controlPair[1].name === accessor.name);
|
|
82
88
|
}
|
|
83
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
84
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
89
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioControlRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
90
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioControlRegistry, providedIn: 'root' }); }
|
|
85
91
|
}
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
92
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioControlRegistry, decorators: [{
|
|
87
93
|
type: Injectable,
|
|
88
94
|
args: [{ providedIn: 'root' }]
|
|
89
95
|
}] });
|
|
@@ -110,13 +116,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
110
116
|
/* [Nimble] Remove all configuration from @Directive decorator
|
|
111
117
|
@Directive({
|
|
112
118
|
selector:
|
|
113
|
-
|
|
119
|
+
'input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]',
|
|
114
120
|
host: {'(change)': 'onChange()', '(blur)': 'onTouched()'},
|
|
115
|
-
providers: [RADIO_VALUE_ACCESSOR]
|
|
121
|
+
providers: [RADIO_VALUE_ACCESSOR],
|
|
116
122
|
})
|
|
117
123
|
*/
|
|
118
124
|
export class RadioControlValueAccessor extends BuiltInControlValueAccessor {
|
|
119
|
-
//inject(CALL_SET_DISABLED_STATE, {optional: true}) ?? setDisabledStateDefault;
|
|
125
|
+
// inject(CALL_SET_DISABLED_STATE, {optional: true}) ?? setDisabledStateDefault;
|
|
120
126
|
constructor(renderer, elementRef, _registry, _injector) {
|
|
121
127
|
super(renderer, elementRef);
|
|
122
128
|
this._registry = _registry;
|
|
@@ -182,7 +188,8 @@ export class RadioControlValueAccessor extends BuiltInControlValueAccessor {
|
|
|
182
188
|
* continues to work. Specifically, we drop the first call to `setDisabledState` if `disabled`
|
|
183
189
|
* is `false`, and we are not in legacy mode.
|
|
184
190
|
*/
|
|
185
|
-
if (this.setDisabledStateFired ||
|
|
191
|
+
if (this.setDisabledStateFired ||
|
|
192
|
+
isDisabled ||
|
|
186
193
|
this.callSetDisabledState === 'whenDisabledForLegacyCode') {
|
|
187
194
|
this.setProperty('disabled', isDisabled);
|
|
188
195
|
}
|
|
@@ -197,7 +204,9 @@ export class RadioControlValueAccessor extends BuiltInControlValueAccessor {
|
|
|
197
204
|
this.writeValue(value);
|
|
198
205
|
}
|
|
199
206
|
_checkName() {
|
|
200
|
-
if (this.name &&
|
|
207
|
+
if (this.name &&
|
|
208
|
+
this.formControlName &&
|
|
209
|
+
this.name !== this.formControlName &&
|
|
201
210
|
// @ts-expect-error: [Nimble] ngDevMode is not defined
|
|
202
211
|
(typeof ngDevMode === 'undefined' || ngDevMode)) {
|
|
203
212
|
throwNameError();
|
|
@@ -205,10 +214,10 @@ export class RadioControlValueAccessor extends BuiltInControlValueAccessor {
|
|
|
205
214
|
if (!this.name && this.formControlName)
|
|
206
215
|
this.name = this.formControlName;
|
|
207
216
|
}
|
|
208
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
209
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
217
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioControlValueAccessor, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: RadioControlRegistry }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
218
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: RadioControlValueAccessor, inputs: { name: "name", formControlName: "formControlName", value: "value" }, usesInheritance: true, ngImport: i0 }); }
|
|
210
219
|
}
|
|
211
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
220
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RadioControlValueAccessor, decorators: [{
|
|
212
221
|
type: Directive
|
|
213
222
|
}], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: RadioControlRegistry }, { type: i0.Injector }], propDecorators: { name: [{
|
|
214
223
|
type: Input
|
|
@@ -217,4 +226,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
217
226
|
}], value: [{
|
|
218
227
|
type: Input
|
|
219
228
|
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL25pbWJsZS1hbmd1bGFyL3NyYy90aGlyZHBhcnR5L2RpcmVjdGl2ZXMvcmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSDs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUE4QyxTQUFTLEVBQUUsYUFBYSxJQUFJLFlBQVksRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUUzTCxPQUFPLEVBQUMsMkJBQTJCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRSxPQUFPLEVBQTRCLFNBQVMsRUFBOEIsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFFakc7Ozs7OztFQU1FO0FBRUYsU0FBUyxjQUFjO0lBQ3JCOztNQUVFO0lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FBQzs7O0tBR2IsQ0FBQyxDQUFDO0FBQ1AsQ0FBQztBQUVEOzs7R0FHRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxlQUFVLEdBQVUsRUFBRSxDQUFDO0tBMkNoQztJQXpDQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsT0FBa0IsRUFBRSxRQUFtQztRQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBbUM7UUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDO1lBQ3JELElBQUksSUFBSSxD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QUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM5QixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQsYUFBYTtJQUNKLGdCQUFnQixDQUFDLFVBQW1CO1FBQzNDOzs7Ozs7Ozs7Ozs7Ozs7OztXQWlCRztRQUNILElBQUksSUFBSSxDQUFDLHFCQUFxQixJQUFJLFVBQVU7WUFDeEMsSUFBSSxDQUFDLG9CQUFvQixLQUFLLDJCQUEyQixFQUFFLENBQUM7WUFDOUQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQztRQUNELElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFTyxVQUFVO1FBQ2hCLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsZUFBZSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLGVBQWU7WUFDdkUsc0RBQXNEO1lBQ3RELENBQUMsT0FBTyxTQUFTLEtBQUssV0FBVyxJQUFJLFNBQVMsQ0FBQyxFQUFFLENBQUM7WUFDcEQsY0FBYyxFQUFFLENBQUM7UUFDbkIsQ0FBQztRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxlQUFlO1lBQUUsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzNFLENBQUM7K0dBbElVLHlCQUF5QjttR0FBekIseUJBQXlCOzs0RkFBekIseUJBQXlCO2tCQURyQyxTQUFTOzhKQTZCQyxJQUFJO3NCQUFaLEtBQUs7Z0JBUUcsZUFBZTtzQkFBdkIsS0FBSztnQkFNRyxLQUFLO3NCQUFiLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtOaW1ibGVdXG4gKiBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTcuMy4xMS9wYWNrYWdlcy9mb3Jtcy9zcmMvZGlyZWN0aXZlcy9yYWRpb19jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gQ2hhbmdlZCB0aHJvd05hbWVFcnJvcigpIHRvIHRocm93IEVycm9yIGluc3RlYWQgb2YgUnVudGltZUVycm9yLiBUaGlzIG1ha2VzIHRoZSBmaWxlIGNvbXBpbGUgd2l0aCBBbmd1bGFyIHZlcnNpb24gMTIuXG4gKiAtIFJlbW92ZWQgbm93LXVudXNlZCBpbXBvcnQgZm9yIFJ1bnRpbWVFcnJvckNvZGUgYW5kIFJ1bnRpbWVFcnJvclxuICogLSBVcGRhdGVkIGltcG9ydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBhbmQgTkdfVkFMVUVfQUNDRVNTT1IgdG8gcHVsbCBmcm9tIHBhY2thZ2UgZXhwb3J0XG4gKiAtIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IncyBgQERpcmVjdGl2ZWAgZGVjb3JhdG9yXG4gKiAtIFJlbW92ZSB1c2Ugb2YgaW50ZXJuYWwgQ0FMTF9TRVRfRElTQUJMRURfU1RBVEUgaW5qZWN0aW9uIHRva2VuLCBhbmQgaW5saW5lIGRlZmF1bHQgdmFsdWVcbiAqL1xuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGZvcndhcmRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IsIElucHV0LCB0eXBlIE9uRGVzdHJveSwgdHlwZSBPbkluaXQsIHR5cGUgUHJvdmlkZXIsIFJlbmRlcmVyMiwgybVSdW50aW1lRXJyb3IgYXMgUnVudGltZUVycm9yfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHtCdWlsdEluQ29udHJvbFZhbHVlQWNjZXNzb3J9IGZyb20gJy4vY29udHJvbF92YWx1ZV9hY2Nlc3Nvcic7XG5pbXBvcnQge3R5cGUgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5nQ29udHJvbCwgdHlwZSBTZXREaXNhYmxlZFN0YXRlT3B0aW9ufSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbi8qIFtOaW1ibGVdIERvIG5vdCByZWdpc3RlciBhcyBhIHZhbHVlIGFjY2Vzc29yIHByb3ZpZGVyXG5jb25zdCBSQURJT19WQUxVRV9BQ0NFU1NPUjogUHJvdmlkZXIgPSB7XG4gIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yKSxcbiAgbXVsdGk6IHRydWVcbn07XG4qL1xuXG5mdW5jdGlvbiB0aHJvd05hbWVFcnJvcigpIHtcbiAgLyogW05pbWJsZV0gUnVudGltZUVycm9yQ29kZSBpcyBub3QgZXhwb3J0ZWQgZnJvbSBAYW5ndWxhci9mb3JtcyBpbiB2ZXJzaW9uIDEyOyBmYWxsaW5nIGJhY2sgdG8gdmVyc2lvbiAxMiBiZWhhdmlvclxuICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFJ1bnRpbWVFcnJvckNvZGUuTkFNRV9BTkRfRk9STV9DT05UUk9MX05BTUVfTVVTVF9NQVRDSCwgYFxuICAqL1xuICB0aHJvdyBuZXcgRXJyb3IoYFxuICAgICAgSWYgeW91IGRlZmluZSBib3RoIGEgbmFtZSBhbmQgYSBmb3JtQ29udHJvbE5hbWUgYXR0cmlidXRlIG9uIHlvdXIgcmFkaW8gYnV0dG9uLCB0aGVpciB2YWx1ZXNcbiAgICAgIG11c3QgbWF0Y2guIEV4OiA8aW5wdXQgdHlwZT1cInJhZGlvXCIgZm9ybUNvbnRyb2xOYW1lPVwiZm9vZFwiIG5hbWU9XCJmb29kXCI+XG4gICAgYCk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDbGFzcyB1c2VkIGJ5IEFuZ3VsYXIgdG8gdHJhY2sgcmFkaW8gYnV0dG9ucy4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbnRyb2xSZWdpc3RyeSB7XG4gIHByaXZhdGUgX2FjY2Vzc29yczogYW55W10gPSBbXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYSBjb250cm9sIHRvIHRoZSBpbnRlcm5hbCByZWdpc3RyeS4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICAgKi9cbiAgYWRkKGNvbnRyb2w6IE5nQ29udHJvbCwgYWNjZXNzb3I6IFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IpIHtcbiAgICB0aGlzLl9hY2Nlc3NvcnMucHVzaChbY29udHJvbCwgYWNjZXNzb3JdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlcyBhIGNvbnRyb2wgZnJvbSB0aGUgaW50ZXJuYWwgcmVnaXN0cnkuIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHJlbW92ZShhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLl9hY2Nlc3NvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgIGlmICh0aGlzLl9hY2Nlc3NvcnNbaV1bMV0gPT09IGFjY2Vzc29yKSB7XG4gICAgICAgIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdHMgYSByYWRpbyBidXR0b24uIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHNlbGVjdChhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIHRoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNTYW1lR3JvdXAoYywgYWNjZXNzb3IpICYmIGNbMV0gIT09IGFjY2Vzc29yKSB7XG4gICAgICAgIGNbMV0uZmlyZVVuY2hlY2soYWNjZXNzb3IudmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNTYW1lR3JvdXAoXG4gICAgICBjb250cm9sUGFpcjogW05nQ29udHJvbCwgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcl0sXG4gICAgICBhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcik6IGJvb2xlYW4ge1xuICAgIGlmICghY29udHJvbFBhaXJbMF0uY29udHJvbCkgcmV0dXJuIGZhbHNlO1xuICAgIC8vIEB0cy1leHBlY3QtZXJyb3I6IFtOaW1ibGVdIFVzZSBvZiBpbnRlcm5hbCBOZ0NvbnRyb2wgbWVtYmVyIF9wYXJlbnRcbiAgICByZXR1cm4gY29udHJvbFBhaXJbMF0uX3BhcmVudCA9PT0gYWNjZXNzb3IuX2NvbnRyb2wuX3BhcmVudCAmJlxuICAgICAgICBjb250cm9sUGFpclsxXS5uYW1lID09PSBhY2Nlc3Nvci5uYW1lO1xuICB9XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBUaGUgYENvbnRyb2xWYWx1ZUFjY2Vzc29yYCBmb3Igd3JpdGluZyByYWRpbyBjb250cm9sIHZhbHVlcyBhbmQgbGlzdGVuaW5nIHRvIHJhZGlvIGNvbnRyb2xcbiAqIGNoYW5nZXMuIFRoZSB2YWx1ZSBhY2Nlc3NvciBpcyB1c2VkIGJ5IHRoZSBgRm9ybUNvbnRyb2xEaXJlY3RpdmVgLCBgRm9ybUNvbnRyb2xOYW1lYCwgYW5kXG4gKiBgTmdNb2RlbGAgZGlyZWN0aXZlcy5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqICMjIyBVc2luZyByYWRpbyBidXR0b25zIHdpdGggcmVhY3RpdmUgZm9ybSBkaXJlY3RpdmVzXG4gKlxuICogVGhlIGZvbGxvdyBleGFtcGxlIHNob3dzIGhvdyB0byB1c2UgcmFkaW8gYnV0dG9ucyBpbiBhIHJlYWN0aXZlIGZvcm0uIFdoZW4gdXNpbmcgcmFkaW8gYnV0dG9ucyBpblxuICogYSByZWFjdGl2ZSBmb3JtLCByYWRpbyBidXR0b25zIGluIHRoZSBzYW1lIGdyb3VwIHNob3VsZCBoYXZlIHRoZSBzYW1lIGBmb3JtQ29udHJvbE5hbWVgLlxuICogUHJvdmlkaW5nIGEgYG5hbWVgIGF0dHJpYnV0ZSBpcyBvcHRpb25hbC5cbiAqXG4gKiB7QGV4YW1wbGUgZm9ybXMvdHMvcmVhY3RpdmVSYWRpb0J1dHRvbnMvcmVhY3RpdmVfcmFkaW9fYnV0dG9uX2V4YW1wbGUudHMgcmVnaW9uPSdSZWFjdGl2ZSd9XG4gKlxuICogQG5nTW9kdWxlIFJlYWN0aXZlRm9ybXNNb2R1bGVcbiAqIEBuZ01vZHVsZSBGb3Jtc01vZHVsZVxuICogQHB1YmxpY0FwaVxuICovXG4vKiBbTmltYmxlXSBSZW1vdmUgYWxsIGNvbmZpZ3VyYXRpb24gZnJvbSBARGlyZWN0aXZlIGRlY29yYXRvclxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOlxuICAgICAgJ2lucHV0W3R5cGU9cmFkaW9dW2Zvcm1Db250cm9sTmFtZV0saW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xdLGlucHV0W3R5cGU9cmFkaW9dW25nTW9kZWxdJyxcbiAgaG9zdDogeycoY2hhbmdlKSc6ICdvbkNoYW5nZSgpJywgJyhibHVyKSc6ICdvblRvdWNoZWQoKSd9LFxuICBwcm92aWRlcnM6IFtSQURJT19WQUxVRV9BQ0NFU1NPUl1cbn0pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciBleHRlbmRzIEJ1aWx0SW5Db250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRzXG4gICAgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE9uRGVzdHJveSwgT25Jbml0IHtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgX3N0YXRlITogYm9vbGVhbjtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgX2NvbnRyb2whOiBOZ0NvbnRyb2w7XG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgLy8gVE9ETyhpc3N1ZS8yNDU3MSk6IHJlbW92ZSAnIScuXG4gIF9mbiE6IEZ1bmN0aW9uO1xuXG4gIHByaXZhdGUgc2V0RGlzYWJsZWRTdGF0ZUZpcmVkID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSByZWdpc3RlcmVkIGNhbGxiYWNrIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIGEgY2hhbmdlIGV2ZW50IG9jY3VycyBvbiB0aGUgaW5wdXQgZWxlbWVudC5cbiAgICogTm90ZTogd2UgZGVjbGFyZSBgb25DaGFuZ2VgIGhlcmUgKGFsc28gdXNlZCBhcyBob3N0IGxpc3RlbmVyKSBhcyBhIGZ1bmN0aW9uIHdpdGggbm8gYXJndW1lbnRzXG4gICAqIHRvIG92ZXJyaWRlIHRoZSBgb25DaGFuZ2VgIGZ1bmN0aW9uICh3aGljaCBleHBlY3RzIDEgYXJndW1lbnQpIGluIHRoZSBwYXJlbnRcbiAgICogYEJhc2VDb250cm9sVmFsdWVBY2Nlc3NvcmAgY2xhc3MuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgb3ZlcnJpZGUgb25DaGFuZ2UgPSAoKSA9PiB7fTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFRyYWNrcyB0aGUgbmFtZSBvZiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudC5cbiAgICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBASW5wdXQoKSBuYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSBuYW1lIG9mIHRoZSBgRm9ybUNvbnRyb2xgIGJvdW5kIHRvIHRoZSBkaXJlY3RpdmUuIFRoZSBuYW1lIGNvcnJlc3BvbmRzXG4gICAqIHRvIGEga2V5IGluIHRoZSBwYXJlbnQgYEZvcm1Hcm91cGAgb3IgYEZvcm1BcnJheWAuXG4gICAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgQElucHV0KCkgZm9ybUNvbnRyb2xOYW1lITogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSB2YWx1ZSBvZiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudFxuICAgKi9cbiAgQElucHV0KCkgdmFsdWU6IGFueTtcblxuICAvLyBbTmltYmxlXTogQ2FuJ3Qgb3ZlcnJpZGUgZGVmYXVsdCBiZWhhdmlvciBieSBpbmplY3Rpb24gdG9rZW4sIGJlY2F1c2UgaXQgaXMgbm90IGV4cG9ydGVkLiBJbmxpbmluZyB2YWx1ZSBvZiBzZXREaXNhYmxlZFN0YXRlRGVmYXVsdC5cbiAgcHJpdmF0ZSBjYWxsU2V0RGlzYWJsZWRTdGF0ZTogU2V0RGlzYWJsZWRTdGF0ZU9wdGlvbiA9ICdhbHdheXMnO1xuICAgICAgLy9pbmplY3QoQ0FMTF9TRVRfRElTQUJMRURfU1RBVEUsIHtvcHRpb25hbDogdHJ1ZX0pID8/IHNldERpc2FibGVkU3RhdGVEZWZhdWx0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcmVuZGVyZXI6IFJlbmRlcmVyMiwgZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBfcmVnaXN0cnk6IFJhZGlvQ29udHJvbFJlZ2lzdHJ5LFxuICAgICAgcHJpdmF0ZSBfaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIocmVuZGVyZXIsIGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgdGhpcy5fY2hlY2tOYW1lKCk7XG4gICAgdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsIHRoaXMpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgXCJjaGVja2VkXCIgcHJvcGVydHkgdmFsdWUgb24gdGhlIHJhZGlvIGlucHV0IGVsZW1lbnQuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSB2YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNldFByb3BlcnR5KCdjaGVja2VkJywgdGhpcy5fc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLl9mbiA9IGZuO1xuICAgIHRoaXMub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBmbih0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBgc2V0RGlzYWJsZWRTdGF0ZWAgaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiBhIGNvbnRyb2wgY2hhbmdlcyxcbiAgICAgKiBpbmNsdWRpbmcgdXBvbiBjb250cm9sIGNyZWF0aW9uLiBIb3dldmVyLCBhIGxvbmdzdGFuZGluZyBidWcgY2F1c2VkIHRoZSBtZXRob2QgdG8gbm90IGZpcmVcbiAgICAgKiB3aGVuIGFuICplbmFibGVkKiBjb250cm9sIHdhcyBhdHRhY2hlZC4gVGhpcyBidWcgd2FzIGZpeGVkIGluIHYxNSBpbiAjNDc1NzYuXG4gICAgICpcbiAgICAgKiBUaGlzIGhhZCBhIHNpZGUgZWZmZWN0OiBwcmV2aW91c2x5LCBpdCB3YXMgcG9zc2libGUgdG8gaW5zdGFudGlhdGUgYSByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICAgKiB3aXRoIGBbYXR0ci5kaXNhYmxlZF09dHJ1ZWAsIGV2ZW4gdGhvdWdoIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wgd2FzIGVuYWJsZWQgaW4gdGhlXG4gICAgICogbW9kZWwuIFRoaXMgcmVzdWx0ZWQgaW4gYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBtb2RlbCBhbmQgdGhlIERPTS4gTm93LCBiZWNhdXNlXG4gICAgICogYHNldERpc2FibGVkU3RhdGVgIGlzIGFsd2F5cyBjYWxsZWQsIHRoZSB2YWx1ZSBpbiB0aGUgRE9NIHdpbGwgYmUgaW1tZWRpYXRlbHkgb3ZlcndyaXR0ZW5cbiAgICAgKiB3aXRoIHRoZSBcImNvcnJlY3RcIiBlbmFibGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogSG93ZXZlciwgdGhlIGZpeCBhbHNvIGNyZWF0ZWQgYW4gZXhjZXB0aW9uYWwgY2FzZTogcmFkaW8gYnV0dG9ucy4gQmVjYXVzZSBSZWFjdGl2ZSBGb3Jtc1xuICAgICAqIG1vZGVscyB0aGUgZW50aXJlIGdyb3VwIG9mIHJhZGlvIGJ1dHRvbnMgYXMgYSBzaW5nbGUgYEZvcm1Db250cm9sYCwgdGhlcmUgaXMgbm8gd2F5IHRvXG4gICAgICogY29udHJvbCB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIGluZGl2aWR1YWwgcmFkaW9zLCBzbyB0aGV5IGNhbiBubyBsb25nZXIgYmUgY29uZmlndXJlZCBhc1xuICAgICAqIGRpc2FibGVkLiBUaHVzLCB3ZSBrZWVwIHRoZSBvbGQgYmVoYXZpb3IgZm9yIHJhZGlvIGJ1dHRvbnMsIHNvIHRoYXQgYFthdHRyLmRpc2FibGVkXWBcbiAgICAgKiBjb250aW51ZXMgdG8gd29yay4gU3BlY2lmaWNhbGx5LCB3ZSBkcm9wIHRoZSBmaXJzdCBjYWxsIHRvIGBzZXREaXNhYmxlZFN0YXRlYCBpZiBgZGlzYWJsZWRgXG4gICAgICogaXMgYGZhbHNlYCwgYW5kIHdlIGFyZSBub3QgaW4gbGVnYWN5IG1vZGUuXG4gICAgICovXG4gICAgaWYgKHRoaXMuc2V0RGlzYWJsZWRTdGF0ZUZpcmVkIHx8IGlzRGlzYWJsZWQgfHxcbiAgICAgICAgdGhpcy5jYWxsU2V0RGlzYWJsZWRTdGF0ZSA9PT0gJ3doZW5EaXNhYmxlZEZvckxlZ2FjeUNvZGUnKSB7XG4gICAgICB0aGlzLnNldFByb3BlcnR5KCdkaXNhYmxlZCcsIGlzRGlzYWJsZWQpO1xuICAgIH1cbiAgICB0aGlzLnNldERpc2FibGVkU3RhdGVGaXJlZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgXCJ2YWx1ZVwiIG9uIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50IGFuZCB1bmNoZWNrcyBpdC5cbiAgICpcbiAgICogQHBhcmFtIHZhbHVlXG4gICAqL1xuICBmaXJlVW5jaGVjayh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy53cml0ZVZhbHVlKHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX2NoZWNrTmFtZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5uYW1lICYmIHRoaXMuZm9ybUNvbnRyb2xOYW1lICYmIHRoaXMubmFtZSAhPT0gdGhpcy5mb3JtQ29udHJvbE5hbWUgJiZcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogW05pbWJsZV0gbmdEZXZNb2RlIGlzIG5vdCBkZWZpbmVkXG4gICAgICAgICh0eXBlb2YgbmdEZXZNb2RlID09PSAndW5kZWZpbmVkJyB8fCBuZ0Rldk1vZGUpKSB7XG4gICAgICB0aHJvd05hbWVFcnJvcigpO1xuICAgIH1cbiAgICBpZiAoIXRoaXMubmFtZSAmJiB0aGlzLmZvcm1Db250cm9sTmFtZSkgdGhpcy5uYW1lID0gdGhpcy5mb3JtQ29udHJvbE5hbWU7XG4gIH1cbn0iXX0=
|
|
229
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL25pbWJsZS1hbmd1bGFyL3NyYy90aGlyZHBhcnR5L2RpcmVjdGl2ZXMvcmFkaW9fY29udHJvbF92YWx1ZV9hY2Nlc3Nvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7O0dBU0c7QUFFSDs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixRQUFRLEVBQ1IsS0FBSyxFQUlMLFNBQVMsRUFDVCxhQUFhLElBQUksWUFBWSxHQUM5QixNQUFNLGVBQWUsQ0FBQztBQUV2Qiw4Q0FBOEM7QUFFOUMsT0FBTyxFQUNMLDJCQUEyQjtBQUMzQix3QkFBd0I7QUFDeEIscUJBQXFCO0VBQ3RCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUE0QixTQUFTLEVBQThCLE1BQU0sZ0JBQWdCLENBQUM7O0FBQ2pHLDBDQUEwQztBQUMxQyw2RUFBNkU7QUFFN0U7Ozs7OztFQU1FO0FBRUYsU0FBUyxjQUFjO0lBQ3JCOztNQUVFO0lBQ0YsTUFBTSxJQUFJLEtBQUssQ0FDYjs7O0tBR0MsQ0FDRixDQUFDO0FBQ0osQ0FBQztBQUVEOzs7R0FHRztBQUVILE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFVSxlQUFVLEdBQVUsRUFBRSxDQUFDO0tBNkNoQztJQTNDQzs7O09BR0c7SUFDSCxHQUFHLENBQUMsT0FBa0IsRUFBRSxRQUFtQztRQUN6RCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxNQUFNLENBQUMsUUFBbUM7UUFDeEMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxD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Y2VzQ29udGVudCI6WyIvKipcbiAqIFtOaW1ibGVdXG4gKiBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTguMi4xMy9wYWNrYWdlcy9mb3Jtcy9zcmMvZGlyZWN0aXZlcy9yYWRpb19jb250cm9sX3ZhbHVlX2FjY2Vzc29yLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gQ2hhbmdlZCB0aHJvd05hbWVFcnJvcigpIHRvIHRocm93IEVycm9yIGluc3RlYWQgb2YgUnVudGltZUVycm9yLiBUaGlzIG1ha2VzIHRoZSBmaWxlIGNvbXBpbGUgd2l0aCBBbmd1bGFyIHZlcnNpb24gMTIuXG4gKiAtIFJlbW92ZWQgbm93LXVudXNlZCBpbXBvcnQgZm9yIFJ1bnRpbWVFcnJvckNvZGUgYW5kIFJ1bnRpbWVFcnJvclxuICogLSBVcGRhdGVkIGltcG9ydCBvZiBDb250cm9sVmFsdWVBY2Nlc3NvciwgTmdDb250cm9sLCBhbmQgTkdfVkFMVUVfQUNDRVNTT1IgdG8gcHVsbCBmcm9tIHBhY2thZ2UgZXhwb3J0XG4gKiAtIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IncyBgQERpcmVjdGl2ZWAgZGVjb3JhdG9yXG4gKiAtIFJlbW92ZSB1c2Ugb2YgaW50ZXJuYWwgQ0FMTF9TRVRfRElTQUJMRURfU1RBVEUgaW5qZWN0aW9uIHRva2VuLCBhbmQgaW5saW5lIGRlZmF1bHQgdmFsdWVcbiAqL1xuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBJbmplY3RhYmxlLFxuICBJbmplY3RvcixcbiAgSW5wdXQsXG4gIHR5cGUgT25EZXN0cm95LFxuICB0eXBlIE9uSW5pdCxcbiAgdHlwZSBQcm92aWRlcixcbiAgUmVuZGVyZXIyLFxuICDJtVJ1bnRpbWVFcnJvciBhcyBSdW50aW1lRXJyb3IsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vLyBpbXBvcnQge1J1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5cbmltcG9ydCB7XG4gIEJ1aWx0SW5Db250cm9sVmFsdWVBY2Nlc3NvcixcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IsXG4gIC8vIE5HX1ZBTFVFX0FDQ0VTU09SLFxufSBmcm9tICcuL2NvbnRyb2xfdmFsdWVfYWNjZXNzb3InO1xuaW1wb3J0IHt0eXBlIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOZ0NvbnRyb2wsIHR5cGUgU2V0RGlzYWJsZWRTdGF0ZU9wdGlvbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuLy8gaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJy4vbmdfY29udHJvbCc7XG4vLyBpbXBvcnQge0NBTExfU0VUX0RJU0FCTEVEX1NUQVRFLCBzZXREaXNhYmxlZFN0YXRlRGVmYXVsdH0gZnJvbSAnLi9zaGFyZWQnO1xuXG4vKiBbTmltYmxlXSBEbyBub3QgcmVnaXN0ZXIgYXMgYSB2YWx1ZSBhY2Nlc3NvciBwcm92aWRlclxuY29uc3QgUkFESU9fVkFMVUVfQUNDRVNTT1I6IFByb3ZpZGVyID0ge1xuICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvciksXG4gIG11bHRpOiB0cnVlLFxufTtcbiovXG5cbmZ1bmN0aW9uIHRocm93TmFtZUVycm9yKCkge1xuICAvKiBbTmltYmxlXSBSdW50aW1lRXJyb3JDb2RlIGlzIG5vdCBleHBvcnRlZCBmcm9tIEBhbmd1bGFyL2Zvcm1zIGluIHZlcnNpb24gMTI7IGZhbGxpbmcgYmFjayB0byB2ZXJzaW9uIDEyIGJlaGF2aW9yXG4gIHRocm93IG5ldyBSdW50aW1lRXJyb3IoUnVudGltZUVycm9yQ29kZS5OQU1FX0FORF9GT1JNX0NPTlRST0xfTkFNRV9NVVNUX01BVENILCBgXG4gICovXG4gIHRocm93IG5ldyBFcnJvcihcbiAgICBgXG4gICAgICBJZiB5b3UgZGVmaW5lIGJvdGggYSBuYW1lIGFuZCBhIGZvcm1Db250cm9sTmFtZSBhdHRyaWJ1dGUgb24geW91ciByYWRpbyBidXR0b24sIHRoZWlyIHZhbHVlc1xuICAgICAgbXVzdCBtYXRjaC4gRXg6IDxpbnB1dCB0eXBlPVwicmFkaW9cIiBmb3JtQ29udHJvbE5hbWU9XCJmb29kXCIgbmFtZT1cImZvb2RcIj5cbiAgICBgXG4gICk7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKiBDbGFzcyB1c2VkIGJ5IEFuZ3VsYXIgdG8gdHJhY2sgcmFkaW8gYnV0dG9ucy4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICovXG5ASW5qZWN0YWJsZSh7cHJvdmlkZWRJbjogJ3Jvb3QnfSlcbmV4cG9ydCBjbGFzcyBSYWRpb0NvbnRyb2xSZWdpc3RyeSB7XG4gIHByaXZhdGUgX2FjY2Vzc29yczogYW55W10gPSBbXTtcblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIEFkZHMgYSBjb250cm9sIHRvIHRoZSBpbnRlcm5hbCByZWdpc3RyeS4gRm9yIGludGVybmFsIHVzZSBvbmx5LlxuICAgKi9cbiAgYWRkKGNvbnRyb2w6IE5nQ29udHJvbCwgYWNjZXNzb3I6IFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3IpIHtcbiAgICB0aGlzLl9hY2Nlc3NvcnMucHVzaChbY29udHJvbCwgYWNjZXNzb3JdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogUmVtb3ZlcyBhIGNvbnRyb2wgZnJvbSB0aGUgaW50ZXJuYWwgcmVnaXN0cnkuIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHJlbW92ZShhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIGZvciAobGV0IGkgPSB0aGlzLl9hY2Nlc3NvcnMubGVuZ3RoIC0gMTsgaSA+PSAwOyAtLWkpIHtcbiAgICAgIGlmICh0aGlzLl9hY2Nlc3NvcnNbaV1bMV0gPT09IGFjY2Vzc29yKSB7XG4gICAgICAgIHRoaXMuX2FjY2Vzc29ycy5zcGxpY2UoaSwgMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqIFNlbGVjdHMgYSByYWRpbyBidXR0b24uIEZvciBpbnRlcm5hbCB1c2Ugb25seS5cbiAgICovXG4gIHNlbGVjdChhY2Nlc3NvcjogUmFkaW9Db250cm9sVmFsdWVBY2Nlc3Nvcikge1xuICAgIHRoaXMuX2FjY2Vzc29ycy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAodGhpcy5faXNTYW1lR3JvdXAoYywgYWNjZXNzb3IpICYmIGNbMV0gIT09IGFjY2Vzc29yKSB7XG4gICAgICAgIGNbMV0uZmlyZVVuY2hlY2soYWNjZXNzb3IudmFsdWUpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNTYW1lR3JvdXAoXG4gICAgY29udHJvbFBhaXI6IFtOZ0NvbnRyb2wsIFJhZGlvQ29udHJvbFZhbHVlQWNjZXNzb3JdLFxuICAgIGFjY2Vzc29yOiBSYWRpb0NvbnRyb2xWYWx1ZUFjY2Vzc29yLFxuICApOiBib29sZWFuIHtcbiAgICBpZiAoIWNvbnRyb2xQYWlyWzBdLmNvbnRyb2wpIHJldHVybiBmYWxzZTtcbiAgICByZXR1cm4gKFxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogW05pbWJsZV0gVXNlIG9mIGludGVybmFsIE5nQ29udHJvbCBtZW1iZXIgX3BhcmVudFxuICAgICAgY29udHJvbFBhaXJbMF0uX3BhcmVudCA9PT0gYWNjZXNzb3IuX2NvbnRyb2wuX3BhcmVudCAmJiBjb250cm9sUGFpclsxXS5uYW1lID09PSBhY2Nlc3Nvci5uYW1lXG4gICAgKTtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICogVGhlIGBDb250cm9sVmFsdWVBY2Nlc3NvcmAgZm9yIHdyaXRpbmcgcmFkaW8gY29udHJvbCB2YWx1ZXMgYW5kIGxpc3RlbmluZyB0byByYWRpbyBjb250cm9sXG4gKiBjaGFuZ2VzLiBUaGUgdmFsdWUgYWNjZXNzb3IgaXMgdXNlZCBieSB0aGUgYEZvcm1Db250cm9sRGlyZWN0aXZlYCwgYEZvcm1Db250cm9sTmFtZWAsIGFuZFxuICogYE5nTW9kZWxgIGRpcmVjdGl2ZXMuXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiAjIyMgVXNpbmcgcmFkaW8gYnV0dG9ucyB3aXRoIHJlYWN0aXZlIGZvcm0gZGlyZWN0aXZlc1xuICpcbiAqIFRoZSBmb2xsb3cgZXhhbXBsZSBzaG93cyBob3cgdG8gdXNlIHJhZGlvIGJ1dHRvbnMgaW4gYSByZWFjdGl2ZSBmb3JtLiBXaGVuIHVzaW5nIHJhZGlvIGJ1dHRvbnMgaW5cbiAqIGEgcmVhY3RpdmUgZm9ybSwgcmFkaW8gYnV0dG9ucyBpbiB0aGUgc2FtZSBncm91cCBzaG91bGQgaGF2ZSB0aGUgc2FtZSBgZm9ybUNvbnRyb2xOYW1lYC5cbiAqIFByb3ZpZGluZyBhIGBuYW1lYCBhdHRyaWJ1dGUgaXMgb3B0aW9uYWwuXG4gKlxuICoge0BleGFtcGxlIGZvcm1zL3RzL3JlYWN0aXZlUmFkaW9CdXR0b25zL3JlYWN0aXZlX3JhZGlvX2J1dHRvbl9leGFtcGxlLnRzIHJlZ2lvbj0nUmVhY3RpdmUnfVxuICpcbiAqIEBuZ01vZHVsZSBSZWFjdGl2ZUZvcm1zTW9kdWxlXG4gKiBAbmdNb2R1bGUgRm9ybXNNb2R1bGVcbiAqIEBwdWJsaWNBcGlcbiAqL1xuLyogW05pbWJsZV0gUmVtb3ZlIGFsbCBjb25maWd1cmF0aW9uIGZyb20gQERpcmVjdGl2ZSBkZWNvcmF0b3JcbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjpcbiAgICAnaW5wdXRbdHlwZT1yYWRpb11bZm9ybUNvbnRyb2xOYW1lXSxpbnB1dFt0eXBlPXJhZGlvXVtmb3JtQ29udHJvbF0saW5wdXRbdHlwZT1yYWRpb11bbmdNb2RlbF0nLFxuICBob3N0OiB7JyhjaGFuZ2UpJzogJ29uQ2hhbmdlKCknLCAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJ30sXG4gIHByb3ZpZGVyczogW1JBRElPX1ZBTFVFX0FDQ0VTU09SXSxcbn0pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUmFkaW9Db250cm9sVmFsdWVBY2Nlc3NvclxuICBleHRlbmRzIEJ1aWx0SW5Db250cm9sVmFsdWVBY2Nlc3NvclxuICBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3ksIE9uSW5pdFxue1xuICAvKiogQGludGVybmFsICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBfc3RhdGUhOiBib29sZWFuO1xuICAvKiogQGludGVybmFsICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBfY29udHJvbCE6IE5nQ29udHJvbDtcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICAvLyBUT0RPKGlzc3VlLzI0NTcxKTogcmVtb3ZlICchJy5cbiAgX2ZuITogRnVuY3Rpb247XG5cbiAgcHJpdmF0ZSBzZXREaXNhYmxlZFN0YXRlRmlyZWQgPSBmYWxzZTtcblxuICAvKipcbiAgICogVGhlIHJlZ2lzdGVyZWQgY2FsbGJhY2sgZnVuY3Rpb24gY2FsbGVkIHdoZW4gYSBjaGFuZ2UgZXZlbnQgb2NjdXJzIG9uIHRoZSBpbnB1dCBlbGVtZW50LlxuICAgKiBOb3RlOiB3ZSBkZWNsYXJlIGBvbkNoYW5nZWAgaGVyZSAoYWxzbyB1c2VkIGFzIGhvc3QgbGlzdGVuZXIpIGFzIGEgZnVuY3Rpb24gd2l0aCBubyBhcmd1bWVudHNcbiAgICogdG8gb3ZlcnJpZGUgdGhlIGBvbkNoYW5nZWAgZnVuY3Rpb24gKHdoaWNoIGV4cGVjdHMgMSBhcmd1bWVudCkgaW4gdGhlIHBhcmVudFxuICAgKiBgQmFzZUNvbnRyb2xWYWx1ZUFjY2Vzc29yYCBjbGFzcy5cbiAgICogQG5vZG9jXG4gICAqL1xuICBvdmVycmlkZSBvbkNoYW5nZSA9ICgpID0+IHt9O1xuXG4gIC8qKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICogVHJhY2tzIHRoZSBuYW1lIG9mIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50LlxuICAgKi9cbiAgLy8gVE9ETyhpc3N1ZS8yNDU3MSk6IHJlbW92ZSAnIScuXG4gIEBJbnB1dCgpIG5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUcmFja3MgdGhlIG5hbWUgb2YgdGhlIGBGb3JtQ29udHJvbGAgYm91bmQgdG8gdGhlIGRpcmVjdGl2ZS4gVGhlIG5hbWUgY29ycmVzcG9uZHNcbiAgICogdG8gYSBrZXkgaW4gdGhlIHBhcmVudCBgRm9ybUdyb3VwYCBvciBgRm9ybUFycmF5YC5cbiAgICovXG4gIC8vIFRPRE8oaXNzdWUvMjQ1NzEpOiByZW1vdmUgJyEnLlxuICBASW5wdXQoKSBmb3JtQ29udHJvbE5hbWUhOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBUcmFja3MgdGhlIHZhbHVlIG9mIHRoZSByYWRpbyBpbnB1dCBlbGVtZW50XG4gICAqL1xuICBASW5wdXQoKSB2YWx1ZTogYW55O1xuXG4gIC8vIFtOaW1ibGVdOiBDYW4ndCBvdmVycmlkZSBkZWZhdWx0IGJlaGF2aW9yIGJ5IGluamVjdGlvbiB0b2tlbiwgYmVjYXVzZSBpdCBpcyBub3QgZXhwb3J0ZWQuIElubGluaW5nIHZhbHVlIG9mIHNldERpc2FibGVkU3RhdGVEZWZhdWx0LlxuICBwcml2YXRlIGNhbGxTZXREaXNhYmxlZFN0YXRlID0gJ2Fsd2F5cyc7XG4gICAgLy8gaW5qZWN0KENBTExfU0VUX0RJU0FCTEVEX1NUQVRFLCB7b3B0aW9uYWw6IHRydWV9KSA/PyBzZXREaXNhYmxlZFN0YXRlRGVmYXVsdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBfcmVnaXN0cnk6IFJhZGlvQ29udHJvbFJlZ2lzdHJ5LFxuICAgIHByaXZhdGUgX2luamVjdG9yOiBJbmplY3RvcixcbiAgKSB7XG4gICAgc3VwZXIocmVuZGVyZXIsIGVsZW1lbnRSZWYpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLl9jb250cm9sID0gdGhpcy5faW5qZWN0b3IuZ2V0KE5nQ29udHJvbCk7XG4gICAgdGhpcy5fY2hlY2tOYW1lKCk7XG4gICAgdGhpcy5fcmVnaXN0cnkuYWRkKHRoaXMuX2NvbnRyb2wsIHRoaXMpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9yZWdpc3RyeS5yZW1vdmUodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgXCJjaGVja2VkXCIgcHJvcGVydHkgdmFsdWUgb24gdGhlIHJhZGlvIGlucHV0IGVsZW1lbnQuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5fc3RhdGUgPSB2YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICB0aGlzLnNldFByb3BlcnR5KCdjaGVja2VkJywgdGhpcy5fc3RhdGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZ2lzdGVycyBhIGZ1bmN0aW9uIGNhbGxlZCB3aGVuIHRoZSBjb250cm9sIHZhbHVlIGNoYW5nZXMuXG4gICAqIEBub2RvY1xuICAgKi9cbiAgb3ZlcnJpZGUgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IGFueSkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLl9mbiA9IGZuO1xuICAgIHRoaXMub25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBmbih0aGlzLnZhbHVlKTtcbiAgICAgIHRoaXMuX3JlZ2lzdHJ5LnNlbGVjdCh0aGlzKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBvdmVycmlkZSBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAvKipcbiAgICAgKiBgc2V0RGlzYWJsZWRTdGF0ZWAgaXMgc3VwcG9zZWQgdG8gYmUgY2FsbGVkIHdoZW5ldmVyIHRoZSBkaXNhYmxlZCBzdGF0ZSBvZiBhIGNvbnRyb2wgY2hhbmdlcyxcbiAgICAgKiBpbmNsdWRpbmcgdXBvbiBjb250cm9sIGNyZWF0aW9uLiBIb3dldmVyLCBhIGxvbmdzdGFuZGluZyBidWcgY2F1c2VkIHRoZSBtZXRob2QgdG8gbm90IGZpcmVcbiAgICAgKiB3aGVuIGFuICplbmFibGVkKiBjb250cm9sIHdhcyBhdHRhY2hlZC4gVGhpcyBidWcgd2FzIGZpeGVkIGluIHYxNSBpbiAjNDc1NzYuXG4gICAgICpcbiAgICAgKiBUaGlzIGhhZCBhIHNpZGUgZWZmZWN0OiBwcmV2aW91c2x5LCBpdCB3YXMgcG9zc2libGUgdG8gaW5zdGFudGlhdGUgYSByZWFjdGl2ZSBmb3JtIGNvbnRyb2xcbiAgICAgKiB3aXRoIGBbYXR0ci5kaXNhYmxlZF09dHJ1ZWAsIGV2ZW4gdGhvdWdoIHRoZSBjb3JyZXNwb25kaW5nIGNvbnRyb2wgd2FzIGVuYWJsZWQgaW4gdGhlXG4gICAgICogbW9kZWwuIFRoaXMgcmVzdWx0ZWQgaW4gYSBtaXNtYXRjaCBiZXR3ZWVuIHRoZSBtb2RlbCBhbmQgdGhlIERPTS4gTm93LCBiZWNhdXNlXG4gICAgICogYHNldERpc2FibGVkU3RhdGVgIGlzIGFsd2F5cyBjYWxsZWQsIHRoZSB2YWx1ZSBpbiB0aGUgRE9NIHdpbGwgYmUgaW1tZWRpYXRlbHkgb3ZlcndyaXR0ZW5cbiAgICAgKiB3aXRoIHRoZSBcImNvcnJlY3RcIiBlbmFibGVkIHZhbHVlLlxuICAgICAqXG4gICAgICogSG93ZXZlciwgdGhlIGZpeCBhbHNvIGNyZWF0ZWQgYW4gZXhjZXB0aW9uYWwgY2FzZTogcmFkaW8gYnV0dG9ucy4gQmVjYXVzZSBSZWFjdGl2ZSBGb3Jtc1xuICAgICAqIG1vZGVscyB0aGUgZW50aXJlIGdyb3VwIG9mIHJhZGlvIGJ1dHRvbnMgYXMgYSBzaW5nbGUgYEZvcm1Db250cm9sYCwgdGhlcmUgaXMgbm8gd2F5IHRvXG4gICAgICogY29udHJvbCB0aGUgZGlzYWJsZWQgc3RhdGUgZm9yIGluZGl2aWR1YWwgcmFkaW9zLCBzbyB0aGV5IGNhbiBubyBsb25nZXIgYmUgY29uZmlndXJlZCBhc1xuICAgICAqIGRpc2FibGVkLiBUaHVzLCB3ZSBrZWVwIHRoZSBvbGQgYmVoYXZpb3IgZm9yIHJhZGlvIGJ1dHRvbnMsIHNvIHRoYXQgYFthdHRyLmRpc2FibGVkXWBcbiAgICAgKiBjb250aW51ZXMgdG8gd29yay4gU3BlY2lmaWNhbGx5LCB3ZSBkcm9wIHRoZSBmaXJzdCBjYWxsIHRvIGBzZXREaXNhYmxlZFN0YXRlYCBpZiBgZGlzYWJsZWRgXG4gICAgICogaXMgYGZhbHNlYCwgYW5kIHdlIGFyZSBub3QgaW4gbGVnYWN5IG1vZGUuXG4gICAgICovXG4gICAgaWYgKFxuICAgICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQgfHxcbiAgICAgIGlzRGlzYWJsZWQgfHxcbiAgICAgIHRoaXMuY2FsbFNldERpc2FibGVkU3RhdGUgPT09ICd3aGVuRGlzYWJsZWRGb3JMZWdhY3lDb2RlJ1xuICAgICkge1xuICAgICAgdGhpcy5zZXRQcm9wZXJ0eSgnZGlzYWJsZWQnLCBpc0Rpc2FibGVkKTtcbiAgICB9XG4gICAgdGhpcy5zZXREaXNhYmxlZFN0YXRlRmlyZWQgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIFwidmFsdWVcIiBvbiB0aGUgcmFkaW8gaW5wdXQgZWxlbWVudCBhbmQgdW5jaGVja3MgaXQuXG4gICAqXG4gICAqIEBwYXJhbSB2YWx1ZVxuICAgKi9cbiAgZmlyZVVuY2hlY2sodmFsdWU6IGFueSk6IHZvaWQge1xuICAgIHRoaXMud3JpdGVWYWx1ZSh2YWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja05hbWUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgdGhpcy5uYW1lICYmXG4gICAgICB0aGlzLmZvcm1Db250cm9sTmFtZSAmJlxuICAgICAgdGhpcy5uYW1lICE9PSB0aGlzLmZvcm1Db250cm9sTmFtZSAmJlxuICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvcjogW05pbWJsZV0gbmdEZXZNb2RlIGlzIG5vdCBkZWZpbmVkXG4gICAgICAodHlwZW9mIG5nRGV2TW9kZSA9PT0gJ3VuZGVmaW5lZCcgfHwgbmdEZXZNb2RlKVxuICAgICkge1xuICAgICAgdGhyb3dOYW1lRXJyb3IoKTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLm5hbWUgJiYgdGhpcy5mb3JtQ29udHJvbE5hbWUpIHRoaXMubmFtZSA9IHRoaXMuZm9ybUNvbnRyb2xOYW1lO1xuICB9XG59Il19
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* [Nimble]
|
|
3
|
-
* Copied from https://github.com/angular/angular/blob/
|
|
3
|
+
* Copied from https://github.com/angular/angular/blob/18.2.13/packages/router/src/directives/router_link.ts
|
|
4
4
|
* with the following modifications:
|
|
5
|
+
* - Copy `isUrlTree` function from url_tree.ts into this file instead of importing
|
|
5
6
|
* - Hardcode `isAnchorElement` to `true` so that the directive will correctly set the `href` on elements within nimble that represent anchors
|
|
6
7
|
* - Make `href` a `@HostBindinding` to avoid using Angular's private sanitization APIs because `href` bindings automatically are sanitized by
|
|
7
8
|
* Angular (see https://angular.io/guide/security#sanitization-and-security-contexts). Implementations leveraging RouterLink should have a test
|
|
@@ -13,15 +14,23 @@
|
|
|
13
14
|
* Copyright Google LLC All Rights Reserved.
|
|
14
15
|
*
|
|
15
16
|
* Use of this source code is governed by an MIT-style license that can be
|
|
16
|
-
* found in the LICENSE file at https://angular.
|
|
17
|
+
* found in the LICENSE file at https://angular.dev/license
|
|
17
18
|
*/
|
|
18
19
|
import { LocationStrategy } from '@angular/common';
|
|
19
|
-
import { Attribute, booleanAttribute, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2, ɵɵsanitizeUrlOrResourceUrl, } from '@angular/core';
|
|
20
|
+
import { Attribute, booleanAttribute, Directive, ElementRef, HostBinding, HostListener, Inject, Input, Renderer2, ɵRuntimeError as RuntimeError, ɵɵsanitizeUrlOrResourceUrl, } from '@angular/core';
|
|
20
21
|
import { Subject, Subscription } from 'rxjs';
|
|
21
|
-
import {
|
|
22
|
+
import { NavigationEnd } from '@angular/router';
|
|
23
|
+
import { Router } from '@angular/router';
|
|
24
|
+
import { ActivatedRoute } from '@angular/router';
|
|
25
|
+
import { UrlTree } from '@angular/router';
|
|
22
26
|
import * as i0 from "@angular/core";
|
|
23
27
|
import * as i1 from "@angular/router";
|
|
24
28
|
import * as i2 from "@angular/common";
|
|
29
|
+
// import {RuntimeErrorCode} from '../errors';
|
|
30
|
+
// [Nimble] Copied from https://github.com/angular/angular/blob/18.2.13/packages/router/src/url_tree.ts
|
|
31
|
+
function isUrlTree(v) {
|
|
32
|
+
return v instanceof UrlTree;
|
|
33
|
+
}
|
|
25
34
|
/**
|
|
26
35
|
* @description
|
|
27
36
|
*
|
|
@@ -89,6 +98,9 @@ import * as i2 from "@angular/common";
|
|
|
89
98
|
* </a>
|
|
90
99
|
* ```
|
|
91
100
|
*
|
|
101
|
+
* `queryParams`, `fragment`, `queryParamsHandling`, `preserveFragment`, and `relativeTo`
|
|
102
|
+
* cannot be used when the `routerLink` input is a `UrlTree`.
|
|
103
|
+
*
|
|
92
104
|
* See {@link UrlCreationOptions#queryParamsHandling}.
|
|
93
105
|
*
|
|
94
106
|
* ### Preserving navigation history
|
|
@@ -142,7 +154,6 @@ export class RouterLink {
|
|
|
142
154
|
// [Nimble] Make `href` a `@HostBinding`
|
|
143
155
|
// href: string | null = null;
|
|
144
156
|
this.href = null;
|
|
145
|
-
this.commands = null;
|
|
146
157
|
/** @internal */
|
|
147
158
|
this.onChanges = new Subject();
|
|
148
159
|
/**
|
|
@@ -166,6 +177,7 @@ export class RouterLink {
|
|
|
166
177
|
* @see {@link Router#navigateByUrl}
|
|
167
178
|
*/
|
|
168
179
|
this.replaceUrl = false;
|
|
180
|
+
this.routerLinkInput = null;
|
|
169
181
|
// [Nimble] Hard-coding `isAnchorElement` to `true`
|
|
170
182
|
// const tagName = el.nativeElement.tagName?.toLowerCase();
|
|
171
183
|
// this.isAnchorElement = tagName === 'a' || tagName === 'area';
|
|
@@ -192,7 +204,24 @@ export class RouterLink {
|
|
|
192
204
|
this.applyAttributeValue('tabindex', newTabIndex);
|
|
193
205
|
}
|
|
194
206
|
/** @nodoc */
|
|
207
|
+
// TODO(atscott): Remove changes parameter in major version as a breaking change.
|
|
195
208
|
ngOnChanges(changes) {
|
|
209
|
+
/* [Nimble] Comment out extra error handling that uses ngDevMode and RuntimeErrorCode
|
|
210
|
+
if (
|
|
211
|
+
ngDevMode &&
|
|
212
|
+
isUrlTree(this.routerLinkInput) &&
|
|
213
|
+
(this.fragment !== undefined ||
|
|
214
|
+
this.queryParams ||
|
|
215
|
+
this.queryParamsHandling ||
|
|
216
|
+
this.preserveFragment ||
|
|
217
|
+
this.relativeTo)
|
|
218
|
+
) {
|
|
219
|
+
throw new RuntimeError(
|
|
220
|
+
RuntimeErrorCode.INVALID_ROUTER_LINK_INPUTS,
|
|
221
|
+
'Cannot configure queryParams or fragment when using a UrlTree as the routerLink input value.',
|
|
222
|
+
);
|
|
223
|
+
}
|
|
224
|
+
*/
|
|
196
225
|
if (this.isAnchorElement) {
|
|
197
226
|
this.updateHref();
|
|
198
227
|
}
|
|
@@ -201,20 +230,29 @@ export class RouterLink {
|
|
|
201
230
|
this.onChanges.next(this);
|
|
202
231
|
}
|
|
203
232
|
/**
|
|
204
|
-
* Commands to pass to {@link Router#createUrlTree}
|
|
233
|
+
* Commands to pass to {@link Router#createUrlTree} or a `UrlTree`.
|
|
205
234
|
* - **array**: commands to pass to {@link Router#createUrlTree}.
|
|
206
235
|
* - **string**: shorthand for array of commands with just the string, i.e. `['/route']`
|
|
236
|
+
* - **UrlTree**: a `UrlTree` for this link rather than creating one from the commands
|
|
237
|
+
* and other inputs that correspond to properties of `UrlCreationOptions`.
|
|
207
238
|
* - **null|undefined**: effectively disables the `routerLink`
|
|
208
239
|
* @see {@link Router#createUrlTree}
|
|
209
240
|
*/
|
|
210
|
-
set routerLink(
|
|
211
|
-
if (
|
|
212
|
-
this.
|
|
213
|
-
this.setTabIndexIfNotOnNativeEl(
|
|
241
|
+
set routerLink(commandsOrUrlTree) {
|
|
242
|
+
if (commandsOrUrlTree == null) {
|
|
243
|
+
this.routerLinkInput = null;
|
|
244
|
+
this.setTabIndexIfNotOnNativeEl(null);
|
|
214
245
|
}
|
|
215
246
|
else {
|
|
216
|
-
|
|
217
|
-
|
|
247
|
+
if (isUrlTree(commandsOrUrlTree)) {
|
|
248
|
+
this.routerLinkInput = commandsOrUrlTree;
|
|
249
|
+
}
|
|
250
|
+
else {
|
|
251
|
+
this.routerLinkInput = Array.isArray(commandsOrUrlTree)
|
|
252
|
+
? commandsOrUrlTree
|
|
253
|
+
: [commandsOrUrlTree];
|
|
254
|
+
}
|
|
255
|
+
this.setTabIndexIfNotOnNativeEl('0');
|
|
218
256
|
}
|
|
219
257
|
}
|
|
220
258
|
/** @nodoc */
|
|
@@ -258,23 +296,23 @@ export class RouterLink {
|
|
|
258
296
|
* to be a `@HostBinding`. This avoids the need of calling into private Angular sanitization code.
|
|
259
297
|
*/
|
|
260
298
|
// const sanitizedValue =
|
|
261
|
-
//
|
|
262
|
-
//
|
|
263
|
-
//
|
|
264
|
-
//
|
|
265
|
-
//
|
|
266
|
-
//
|
|
267
|
-
//
|
|
268
|
-
//
|
|
269
|
-
//
|
|
270
|
-
//
|
|
271
|
-
//
|
|
272
|
-
//
|
|
273
|
-
//
|
|
274
|
-
//
|
|
275
|
-
//
|
|
276
|
-
//
|
|
277
|
-
//
|
|
299
|
+
// this.href === null
|
|
300
|
+
// ? null
|
|
301
|
+
// : // This class represents a directive that can be added to both `<a>` elements,
|
|
302
|
+
// // as well as other elements. As a result, we can't define security context at
|
|
303
|
+
// // compile time. So the security context is deferred to runtime.
|
|
304
|
+
// // The `ɵɵsanitizeUrlOrResourceUrl` selects the necessary sanitizer function
|
|
305
|
+
// // based on the tag and property names. The logic mimics the one from
|
|
306
|
+
// // `packages/compiler/src/schema/dom_security_schema.ts`, which is used at compile time.
|
|
307
|
+
// //
|
|
308
|
+
// // Note: we should investigate whether we can switch to using `@HostBinding('attr.href')`
|
|
309
|
+
// // instead of applying a value via a renderer, after a final merge of the
|
|
310
|
+
// // `RouterLinkWithHref` directive.
|
|
311
|
+
// ɵɵsanitizeUrlOrResourceUrl(
|
|
312
|
+
// this.href,
|
|
313
|
+
// this.el.nativeElement.tagName.toLowerCase(),
|
|
314
|
+
// 'href',
|
|
315
|
+
// );
|
|
278
316
|
// this.applyAttributeValue('href', sanitizedValue);
|
|
279
317
|
}
|
|
280
318
|
applyAttributeValue(attrName, attrValue) {
|
|
@@ -288,10 +326,13 @@ export class RouterLink {
|
|
|
288
326
|
}
|
|
289
327
|
}
|
|
290
328
|
get urlTree() {
|
|
291
|
-
if (this.
|
|
329
|
+
if (this.routerLinkInput === null) {
|
|
292
330
|
return null;
|
|
293
331
|
}
|
|
294
|
-
|
|
332
|
+
else if (isUrlTree(this.routerLinkInput)) {
|
|
333
|
+
return this.routerLinkInput;
|
|
334
|
+
}
|
|
335
|
+
return this.router.createUrlTree(this.routerLinkInput, {
|
|
295
336
|
// If the `relativeTo` input is not defined, we want to use `this.route` by default.
|
|
296
337
|
// Otherwise, we should use the value provided by the user in the input.
|
|
297
338
|
relativeTo: this.relativeTo !== undefined ? this.relativeTo : this.route,
|
|
@@ -301,10 +342,10 @@ export class RouterLink {
|
|
|
301
342
|
preserveFragment: this.preserveFragment,
|
|
302
343
|
});
|
|
303
344
|
}
|
|
304
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
305
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "
|
|
345
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterLink, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: 'tabindex', attribute: true }, { token: i0.Renderer2 }, { token: i0.ElementRef }, { token: LocationStrategy }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
346
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.13", type: RouterLink, inputs: { target: "target", queryParams: "queryParams", fragment: "fragment", queryParamsHandling: "queryParamsHandling", state: "state", info: "info", relativeTo: "relativeTo", preserveFragment: ["preserveFragment", "preserveFragment", booleanAttribute], skipLocationChange: ["skipLocationChange", "skipLocationChange", booleanAttribute], replaceUrl: ["replaceUrl", "replaceUrl", booleanAttribute], routerLink: "routerLink" }, host: { listeners: { "click": "onClick($event.button,$event.ctrlKey,$event.shiftKey,$event.altKey,$event.metaKey)" }, properties: { "attr.href": "this.href", "attr.target": "this.target" } }, usesOnChanges: true, ngImport: i0 }); }
|
|
306
347
|
}
|
|
307
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
348
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RouterLink, decorators: [{
|
|
308
349
|
type: Directive
|
|
309
350
|
}], ctorParameters: () => [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: undefined, decorators: [{
|
|
310
351
|
type: Attribute,
|
|
@@ -353,4 +394,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
353
394
|
'$event.metaKey',
|
|
354
395
|
]]
|
|
355
396
|
}] } });
|
|
356
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyX2xpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7R0FTRztBQUdIOzs7Ozs7R0FNRztBQUVILE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ2pELE9BQU8sRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUdMLFNBQVMsRUFFVCwwQkFBMEIsR0FDM0IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLE9BQU8sRUFBRSxZQUFZLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFFM0MsT0FBTyxFQUFxRCxjQUFjLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUdwSTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBZ0dHO0FBQ0g7Ozs7O0VBS0U7QUFFRixNQUFNLE9BQU8sVUFBVTtJQXVFckIsWUFDVSxNQUFjLEVBQ2QsS0FBcUIsRUFDVyxpQkFBNEMsRUFDbkUsUUFBbUIsRUFDbkIsRUFBYztJQUMvQixpQ0FBaUM7SUFDQyxnQkFBbUM7UUFON0QsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ1csc0JBQWlCLEdBQWpCLGlCQUFpQixDQUEyQjtRQUNuRSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLE9BQUUsR0FBRixFQUFFLENBQVk7UUFFRyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBN0V2RTs7O1dBR0c7UUFDSCx3Q0FBd0M7UUFDeEMsOEJBQThCO1FBQ0osU0FBSSxHQUFnQixJQUFJLENBQUM7UUFzRDNDLGFBQVEsR0FBaUIsSUFBSSxDQUFDO1FBT3RDLGdCQUFnQjtRQUNoQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQWMsQ0FBQztRQTJCdEM7Ozs7O1dBS0c7UUFDbUMscUJBQWdCLEdBQVksS0FBSyxDQUFDO1FBRXhFOzs7OztXQUtHO1FBQ21DLHVCQUFrQixHQUFZLEtBQUssQ0FBQztRQUUxRTs7Ozs7V0FLRztRQUNtQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBdENoRSxtREFBbUQ7UUFDbkQsMkRBQTJEO1FBQzNELGdFQUFnRTtRQUNoRSxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBUSxFQUFFLEVBQUU7Z0JBQ3ZELElBQUksQ0FBQyxZQUFZLGFBQWEsRUFBRSxDQUFDO29CQUMvQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7Z0JBQ3BCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBMEJEOzs7T0FHRztJQUNLLDBCQUEwQixDQUFDLFdBQTBCO1FBQzNELElBQUksSUFBSSxDQUFDLGlCQUFpQixJQUFJLElBQUksQ0FBQyxpQ0FBaUMsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDN0YsT0FBTztRQUNULENBQUM7UUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixDQUFDO1FBQ0QsZ0dBQWdHO1FBQ2hHLG9DQUFvQztRQUNwQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFDSSxVQUFVLENBQUMsUUFBMkM7UUFDeEQsSUFBSSxRQUFRLElBQUksSUFBSSxFQUFFLENBQUM7WUFDckIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDaEUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDSCxDQUFDO0lBRUQsYUFBYTtJQVFiLE9BQU8sQ0FDTCxNQUFjLEVBQ2QsT0FBZ0IsRUFDaEIsUUFBaUIsRUFDakIsTUFBZSxFQUNmLE9BQWdCO1FBRWhCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFN0IsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDckIsT0FBTyxJQUFJLENBQUM7UUFDZCxDQUFDO1FBRUQsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsSUFBSSxNQUFNLEtBQUssQ0FBQyxJQUFJLE9BQU8sSUFBSSxRQUFRLElBQUksTUFBTSxJQUFJLE9BQU8sRUFBRSxDQUFDO2dCQUM3RCxPQUFPLElBQUksQ0FBQztZQUNkLENBQUM7WUFFRCxJQUFJLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxRQUFRLElBQUksSUFBSSxDQUFDLE1BQU0sSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDOUQsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sTUFBTSxHQUFHO1lBQ2Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVU7WUFDM0IsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSTtTQUNoQixDQUFDO1FBQ0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRTNDLDhEQUE4RDtRQUM5RCxrRUFBa0U7UUFDbEUsaUJBQWlCO1FBQ2pCLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQy9CLENBQUM7SUFFRCxhQUFhO0lBQ2IsV0FBVztRQUNULElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVPLFVBQVU7UUFDaEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsSUFBSTtZQUNQLE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLGdCQUFnQjtnQkFDdkMsQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUUsQ0FBQyxDQUFDLElBQUksQ0FBQztRQUVYOzs7V0FHRztRQUNILHlCQUF5QjtRQUN6QixxQkFBcUI7UUFDckIsWUFBWTtRQUNaLHNGQUFzRjtRQUN0RixzRkFBc0Y7UUFDdEYsd0VBQXdFO1FBQ3hFLG9GQUFvRjtRQUNwRiw2RUFBNkU7UUFDN0UsZ0dBQWdHO1FBQ2hHLFVBQVU7UUFDVixpR0FBaUc7UUFDakcsaUZBQWlGO1FBQ2pGLDBDQUEwQztRQUMxQyxtQ0FBbUM7UUFDbkMsb0JBQW9CO1FBQ3BCLHNEQUFzRDtRQUN0RCxpQkFBaUI7UUFDakIsVUFBVTtRQUNWLG9EQUFvRDtJQUN0RCxDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBZ0IsRUFBRSxTQUF3QjtRQUNwRSxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBQzVDLElBQUksU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ3ZCLFFBQVEsQ0FBQyxZQUFZLENBQUMsYUFBYSxFQUFFLFFBQVEsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUM1RCxDQUFDO2FBQU0sQ0FBQztZQUNOLFFBQVEsQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsSUFBSSxJQUFJLENBQUMsUUFBUSxLQUFLLElBQUksRUFBRSxDQUFDO1lBQzNCLE9BQU8sSUFBSSxDQUFDO1FBQ2QsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUM5QyxvRkFBb0Y7WUFDcEYsd0VBQXdFO1lBQ3hFLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUs7WUFDeEUsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUTtZQUN2QixtQkFBbUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CO1lBQzdDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7U0FDeEMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F4UVUsVUFBVSxzRUEwRVIsVUFBVSxpRkFJYixnQkFBZ0I7bUdBOUVmLFVBQVUsK09Bc0dGLGdCQUFnQixvRUFRaEIsZ0JBQWdCLDRDQVFoQixnQkFBZ0I7OzRGQXRIeEIsVUFBVTtrQkFEdEIsU0FBUzs7MEJBMkVMLFNBQVM7MkJBQUMsVUFBVTs7MEJBSXBCLE1BQU07MkJBQUMsZ0JBQWdCO3lDQXZFQSxJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBTWEsTUFBTTtzQkFBMUMsV0FBVzt1QkFBQyxhQUFhOztzQkFBRyxLQUFLO2dCQVF6QixXQUFXO3NCQUFuQixLQUFLO2dCQU9HLFFBQVE7c0JBQWhCLEtBQUs7Z0JBT0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQU9HLEtBQUs7c0JBQWIsS0FBSztnQkFPRyxJQUFJO3NCQUFaLEtBQUs7Z0JBVUcsVUFBVTtzQkFBbEIsS0FBSztnQkEyQ2dDLGdCQUFnQjtzQkFBckQsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkFRRSxrQkFBa0I7c0JBQXZELEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7Z0JBUUUsVUFBVTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFDLFNBQVMsRUFBRSxnQkFBZ0IsRUFBQztnQkErQmhDLFVBQVU7c0JBRGIsS0FBSztnQkFtQk4sT0FBTztzQkFQTixZQUFZO3VCQUFDLE9BQU8sRUFBRTt3QkFDckIsZUFBZTt3QkFDZixnQkFBZ0I7d0JBQ2hCLGlCQUFpQjt3QkFDakIsZUFBZTt3QkFDZixnQkFBZ0I7cUJBQ2pCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBbTmltYmxlXVxuICogQ29waWVkIGZyb20gaHR0cHM6Ly9naXRodWIuY29tL2FuZ3VsYXIvYW5ndWxhci9ibG9iLzE3LjMuMTEvcGFja2FnZXMvcm91dGVyL3NyYy9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzXG4gKiB3aXRoIHRoZSBmb2xsb3dpbmcgbW9kaWZpY2F0aW9uczpcbiAqIC0gSGFyZGNvZGUgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgIHNvIHRoYXQgdGhlIGRpcmVjdGl2ZSB3aWxsIGNvcnJlY3RseSBzZXQgdGhlIGBocmVmYCBvbiBlbGVtZW50cyB3aXRoaW4gbmltYmxlIHRoYXQgcmVwcmVzZW50IGFuY2hvcnNcbiAqIC0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5kaW5nYCB0byBhdm9pZCB1c2luZyBBbmd1bGFyJ3MgcHJpdmF0ZSBzYW5pdGl6YXRpb24gQVBJcyBiZWNhdXNlIGBocmVmYCBiaW5kaW5ncyBhdXRvbWF0aWNhbGx5IGFyZSBzYW5pdGl6ZWQgYnlcbiAqICAgQW5ndWxhciAoc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zZWN1cml0eSNzYW5pdGl6YXRpb24tYW5kLXNlY3VyaXR5LWNvbnRleHRzKS4gSW1wbGVtZW50YXRpb25zIGxldmVyYWdpbmcgUm91dGVyTGluayBzaG91bGQgaGF2ZSBhIHRlc3RcbiAqICAgZW5zdXJpbmcgc2FuaXRpemF0aW9uIGlzIGNhbGxlZC5cbiAqIC0gQ29tbWVudCBvdXQgdW5lY2Nlc3NhcnkgZXhwb3J0IG9mIHRoZSBkZXByZWNhdGVkIGBSb3V0ZXJMaW5rV2l0aEhyZWZgXG4gKi9cblxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtMb2NhdGlvblN0cmF0ZWd5fSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQXR0cmlidXRlLFxuICBib29sZWFuQXR0cmlidXRlLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIHR5cGUgT25DaGFuZ2VzLFxuICB0eXBlIE9uRGVzdHJveSxcbiAgUmVuZGVyZXIyLFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyB0eXBlIEV2ZW50LCB0eXBlIFBhcmFtcywgdHlwZSBRdWVyeVBhcmFtc0hhbmRsaW5nLCBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyLCBOYXZpZ2F0aW9uRW5kLCBVcmxUcmVlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuXG4vKipcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIFdoZW4gYXBwbGllZCB0byBhbiBlbGVtZW50IGluIGEgdGVtcGxhdGUsIG1ha2VzIHRoYXQgZWxlbWVudCBhIGxpbmtcbiAqIHRoYXQgaW5pdGlhdGVzIG5hdmlnYXRpb24gdG8gYSByb3V0ZS4gTmF2aWdhdGlvbiBvcGVucyBvbmUgb3IgbW9yZSByb3V0ZWQgY29tcG9uZW50c1xuICogaW4gb25lIG9yIG1vcmUgYDxyb3V0ZXItb3V0bGV0PmAgbG9jYXRpb25zIG9uIHRoZSBwYWdlLlxuICpcbiAqIEdpdmVuIGEgcm91dGUgY29uZmlndXJhdGlvbiBgW3sgcGF0aDogJ3VzZXIvOm5hbWUnLCBjb21wb25lbnQ6IFVzZXJDbXAgfV1gLFxuICogdGhlIGZvbGxvd2luZyBjcmVhdGVzIGEgc3RhdGljIGxpbmsgdG8gdGhlIHJvdXRlOlxuICogYDxhIHJvdXRlckxpbms9XCIvdXNlci9ib2JcIj5saW5rIHRvIHVzZXIgY29tcG9uZW50PC9hPmBcbiAqXG4gKiBZb3UgY2FuIHVzZSBkeW5hbWljIHZhbHVlcyB0byBnZW5lcmF0ZSB0aGUgbGluay5cbiAqIEZvciBhIGR5bmFtaWMgbGluaywgcGFzcyBhbiBhcnJheSBvZiBwYXRoIHNlZ21lbnRzLFxuICogZm9sbG93ZWQgYnkgdGhlIHBhcmFtcyBmb3IgZWFjaCBzZWdtZW50LlxuICogRm9yIGV4YW1wbGUsIGBbJy90ZWFtJywgdGVhbUlkLCAndXNlcicsIHVzZXJOYW1lLCB7ZGV0YWlsczogdHJ1ZX1dYFxuICogZ2VuZXJhdGVzIGEgbGluayB0byBgL3RlYW0vMTEvdXNlci9ib2I7ZGV0YWlscz10cnVlYC5cbiAqXG4gKiBNdWx0aXBsZSBzdGF0aWMgc2VnbWVudHMgY2FuIGJlIG1lcmdlZCBpbnRvIG9uZSB0ZXJtIGFuZCBjb21iaW5lZCB3aXRoIGR5bmFtaWMgc2VnbWVudHMuXG4gKiBGb3IgZXhhbXBsZSwgYFsnL3RlYW0vMTEvdXNlcicsIHVzZXJOYW1lLCB7ZGV0YWlsczogdHJ1ZX1dYFxuICpcbiAqIFRoZSBpbnB1dCB0aGF0IHlvdSBwcm92aWRlIHRvIHRoZSBsaW5rIGlzIHRyZWF0ZWQgYXMgYSBkZWx0YSB0byB0aGUgY3VycmVudCBVUkwuXG4gKiBGb3IgaW5zdGFuY2UsIHN1cHBvc2UgdGhlIGN1cnJlbnQgVVJMIGlzIGAvdXNlci8oYm94Ly9hdXg6dGVhbSlgLlxuICogVGhlIGxpbmsgYDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvamltJ11cIj5KaW08L2E+YCBjcmVhdGVzIHRoZSBVUkxcbiAqIGAvdXNlci8oamltLy9hdXg6dGVhbSlgLlxuICogU2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gZm9yIG1vcmUgaW5mb3JtYXRpb24uXG4gKlxuICogQHVzYWdlTm90ZXNcbiAqXG4gKiBZb3UgY2FuIHVzZSBhYnNvbHV0ZSBvciByZWxhdGl2ZSBwYXRocyBpbiBhIGxpbmssIHNldCBxdWVyeSBwYXJhbWV0ZXJzLFxuICogY29udHJvbCBob3cgcGFyYW1ldGVycyBhcmUgaGFuZGxlZCwgYW5kIGtlZXAgYSBoaXN0b3J5IG9mIG5hdmlnYXRpb24gc3RhdGVzLlxuICpcbiAqICMjIyBSZWxhdGl2ZSBsaW5rIHBhdGhzXG4gKlxuICogVGhlIGZpcnN0IHNlZ21lbnQgbmFtZSBjYW4gYmUgcHJlcGVuZGVkIHdpdGggYC9gLCBgLi9gLCBvciBgLi4vYC5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC9gLCB0aGUgcm91dGVyIGxvb2tzIHVwIHRoZSByb3V0ZSBmcm9tIHRoZSByb290IG9mIHRoZVxuICogICBhcHAuXG4gKiAqIElmIHRoZSBmaXJzdCBzZWdtZW50IGJlZ2lucyB3aXRoIGAuL2AsIG9yIGRvZXNuJ3QgYmVnaW4gd2l0aCBhIHNsYXNoLCB0aGUgcm91dGVyXG4gKiAgIGxvb2tzIGluIHRoZSBjaGlsZHJlbiBvZiB0aGUgY3VycmVudCBhY3RpdmF0ZWQgcm91dGUuXG4gKiAqIElmIHRoZSBmaXJzdCBzZWdtZW50IGJlZ2lucyB3aXRoIGAuLi9gLCB0aGUgcm91dGVyIGdvZXMgdXAgb25lIGxldmVsIGluIHRoZSByb3V0ZSB0cmVlLlxuICpcbiAqICMjIyBTZXR0aW5nIGFuZCBoYW5kbGluZyBxdWVyeSBwYXJhbXMgYW5kIGZyYWdtZW50c1xuICpcbiAqIFRoZSBmb2xsb3dpbmcgbGluayBhZGRzIGEgcXVlcnkgcGFyYW1ldGVyIGFuZCBhIGZyYWdtZW50IHRvIHRoZSBnZW5lcmF0ZWQgVVJMOlxuICpcbiAqIGBgYFxuICogPGEgW3JvdXRlckxpbmtdPVwiWycvdXNlci9ib2InXVwiIFtxdWVyeVBhcmFtc109XCJ7ZGVidWc6IHRydWV9XCIgZnJhZ21lbnQ9XCJlZHVjYXRpb25cIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKiBCeSBkZWZhdWx0LCB0aGUgZGlyZWN0aXZlIGNvbnN0cnVjdHMgdGhlIG5ldyBVUkwgdXNpbmcgdGhlIGdpdmVuIHF1ZXJ5IHBhcmFtZXRlcnMuXG4gKiBUaGUgZXhhbXBsZSBnZW5lcmF0ZXMgdGhlIGxpbms6IGAvdXNlci9ib2I/ZGVidWc9dHJ1ZSNlZHVjYXRpb25gLlxuICpcbiAqIFlvdSBjYW4gaW5zdHJ1Y3QgdGhlIGRpcmVjdGl2ZSB0byBoYW5kbGUgcXVlcnkgcGFyYW1ldGVycyBkaWZmZXJlbnRseVxuICogYnkgc3BlY2lmeWluZyB0aGUgYHF1ZXJ5UGFyYW1zSGFuZGxpbmdgIG9wdGlvbiBpbiB0aGUgbGluay5cbiAqIEFsbG93ZWQgdmFsdWVzIGFyZTpcbiAqXG4gKiAgLSBgJ21lcmdlJ2A6IE1lcmdlIHRoZSBnaXZlbiBgcXVlcnlQYXJhbXNgIGludG8gdGhlIGN1cnJlbnQgcXVlcnkgcGFyYW1zLlxuICogIC0gYCdwcmVzZXJ2ZSdgOiBQcmVzZXJ2ZSB0aGUgY3VycmVudCBxdWVyeSBwYXJhbXMuXG4gKlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3F1ZXJ5UGFyYW1zXT1cIntkZWJ1ZzogdHJ1ZX1cIiBxdWVyeVBhcmFtc0hhbmRsaW5nPVwibWVyZ2VcIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKlxuICogU2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXNIYW5kbGluZ30uXG4gKlxuICogIyMjIFByZXNlcnZpbmcgbmF2aWdhdGlvbiBoaXN0b3J5XG4gKlxuICogWW91IGNhbiBwcm92aWRlIGEgYHN0YXRlYCB2YWx1ZSB0byBiZSBwZXJzaXN0ZWQgdG8gdGhlIGJyb3dzZXInc1xuICogW2BIaXN0b3J5LnN0YXRlYCBwcm9wZXJ0eV0oaHR0cHM6Ly9kZXZlbG9wZXIubW96aWxsYS5vcmcvZW4tVVMvZG9jcy9XZWIvQVBJL0hpc3RvcnkjUHJvcGVydGllcykuXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvYm9iJ11cIiBbc3RhdGVdPVwie3RyYWNpbmdJZDogMTIzfVwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqXG4gKiBVc2Uge0BsaW5rIFJvdXRlciNnZXRDdXJyZW50TmF2aWdhdGlvbn0gdG8gcmV0cmlldmUgYSBzYXZlZFxuICogbmF2aWdhdGlvbi1zdGF0ZSB2YWx1ZS4gRm9yIGV4YW1wbGUsIHRvIGNhcHR1cmUgdGhlIGB0cmFjaW5nSWRgIGR1cmluZyB0aGUgYE5hdmlnYXRpb25TdGFydGBcbiAqIGV2ZW50OlxuICpcbiAqIGBgYFxuICogLy8gR2V0IE5hdmlnYXRpb25TdGFydCBldmVudHNcbiAqIHJvdXRlci5ldmVudHMucGlwZShmaWx0ZXIoZSA9PiBlIGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSkuc3Vic2NyaWJlKGUgPT4ge1xuICogICBjb25zdCBuYXZpZ2F0aW9uID0gcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gKiAgIHRyYWNpbmdTZXJ2aWNlLnRyYWNlKHtpZDogbmF2aWdhdGlvbi5leHRyYXMuc3RhdGUudHJhY2luZ0lkfSk7XG4gKiB9KTtcbiAqIGBgYFxuICpcbiAqIEBuZ01vZHVsZSBSb3V0ZXJNb2R1bGVcbiAqXG4gKiBAcHVibGljQXBpXG4gKi9cbi8qIFtOaW1ibGVdIFJlbW92ZSBhbGwgY29uZmlndXJhdGlvbiBmcm9tIEBEaXJlY3RpdmUgZGVjb3JhdG9yXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbcm91dGVyTGlua10nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbiovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBjbGFzcyBSb3V0ZXJMaW5rIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogUmVwcmVzZW50cyBhbiBgaHJlZmAgYXR0cmlidXRlIHZhbHVlIGFwcGxpZWQgdG8gYSBob3N0IGVsZW1lbnQsXG4gICAqIHdoZW4gYSBob3N0IGVsZW1lbnQgaXMgYDxhPmAuIEZvciBvdGhlciB0YWdzLCB0aGUgdmFsdWUgaXMgYG51bGxgLlxuICAgKi9cbiAgLy8gW05pbWJsZV0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5nYFxuICAvLyBocmVmOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmhyZWYnKSBocmVmOiBzdHJpbmd8bnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgdGhlIGB0YXJnZXRgIGF0dHJpYnV0ZSBvbiBhIGhvc3QgZWxlbWVudC5cbiAgICogVGhpcyBpcyBvbmx5IHVzZWQgd2hlbiB0aGUgaG9zdCBlbGVtZW50IGlzIGFuIGA8YT5gIHRhZy5cbiAgICovXG4gIEBIb3N0QmluZGluZygnYXR0ci50YXJnZXQnKSBASW5wdXQoKSB0YXJnZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXN9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcXVlcnlQYXJhbXM/OiBQYXJhbXMgfCBudWxsO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gYXMgcGFydCBvZiB0aGVcbiAgICogYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNmcmFnbWVudH1cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKSBmcmFnbWVudD86IHN0cmluZztcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjcXVlcnlQYXJhbXNIYW5kbGluZ31cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKSBxdWVyeVBhcmFtc0hhbmRsaW5nPzogUXVlcnlQYXJhbXNIYW5kbGluZyB8IG51bGw7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjc3RhdGV9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KCkgc3RhdGU/OiB7W2s6IHN0cmluZ106IGFueX07XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjaW5mb31cbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9XG4gICAqL1xuICBASW5wdXQoKSBpbmZvPzogdW5rbm93bjtcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBTcGVjaWZ5IGEgdmFsdWUgaGVyZSB3aGVuIHlvdSBkbyBub3Qgd2FudCB0byB1c2UgdGhlIGRlZmF1bHQgdmFsdWVcbiAgICogZm9yIGByb3V0ZXJMaW5rYCwgd2hpY2ggaXMgdGhlIGN1cnJlbnQgYWN0aXZhdGVkIHJvdXRlLlxuICAgKiBOb3RlIHRoYXQgYSB2YWx1ZSBvZiBgdW5kZWZpbmVkYCBoZXJlIHdpbGwgdXNlIHRoZSBgcm91dGVyTGlua2AgZGVmYXVsdC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3JlbGF0aXZlVG99XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcmVsYXRpdmVUbz86IEFjdGl2YXRlZFJvdXRlIHwgbnVsbDtcblxuICBwcml2YXRlIGNvbW1hbmRzOiBhbnlbXSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBXaGV0aGVyIGEgaG9zdCBlbGVtZW50IGlzIGFuIGA8YT5gIHRhZy4gKi9cbiAgcHJpdmF0ZSBpc0FuY2hvckVsZW1lbnQ6IGJvb2xlYW47XG5cbiAgcHJpdmF0ZSBzdWJzY3JpcHRpb24/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBvbkNoYW5nZXMgPSBuZXcgU3ViamVjdDxSb3V0ZXJMaW5rPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSByb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgQEF0dHJpYnV0ZSgndGFiaW5kZXgnKSBwcml2YXRlIHJlYWRvbmx5IHRhYkluZGV4QXR0cmlidXRlOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVuZGVyZXI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsOiBFbGVtZW50UmVmLFxuICAgIC8vIFtOaW1ibGVdIE5lZWQgSW5qZWN0IGRlY29yYXRvclxuICAgIEBJbmplY3QoTG9jYXRpb25TdHJhdGVneSkgcHJpdmF0ZSBsb2NhdGlvblN0cmF0ZWd5PzogTG9jYXRpb25TdHJhdGVneSxcbiAgKSB7XG4gICAgLy8gW05pbWJsZV0gSGFyZC1jb2RpbmcgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgXG4gICAgLy8gY29uc3QgdGFnTmFtZSA9IGVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZT8udG9Mb3dlckNhc2UoKTtcbiAgICAvLyB0aGlzLmlzQW5jaG9yRWxlbWVudCA9IHRhZ05hbWUgPT09ICdhJyB8fCB0YWdOYW1lID09PSAnYXJlYSc7XG4gICAgdGhpcy5pc0FuY2hvckVsZW1lbnQgPSB0cnVlO1xuXG4gICAgaWYgKHRoaXMuaXNBbmNob3JFbGVtZW50KSB7XG4gICAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKChzOiBFdmVudCkgPT4ge1xuICAgICAgICBpZiAocyBpbnN0YW5jZW9mIE5hdmlnYXRpb25FbmQpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZUhyZWYoKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwoJzAnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gYXMgcGFydCBvZiB0aGVcbiAgICogYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNwcmVzZXJ2ZUZyYWdtZW50fVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgcHJlc2VydmVGcmFnbWVudDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9uc2AuXG4gICAqIEBzZWUge0BsaW5rIE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnMjc2tpcExvY2F0aW9uQ2hhbmdlfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgc2tpcExvY2F0aW9uQ2hhbmdlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyNyZXBsYWNlVXJsfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSkgcmVwbGFjZVVybDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBNb2RpZmllcyB0aGUgdGFiIGluZGV4IGlmIHRoZXJlIHdhcyBub3QgYSB0YWJpbmRleCBhdHRyaWJ1dGUgb24gdGhlIGVsZW1lbnQgZHVyaW5nXG4gICAqIGluc3RhbnRpYXRpb24uXG4gICAqL1xuICBwcml2YXRlIHNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG5ld1RhYkluZGV4OiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKHRoaXMudGFiSW5kZXhBdHRyaWJ1dGUgIT0gbnVsbCAvKiBib3RoIGBudWxsYCBhbmQgYHVuZGVmaW5lZGAgKi8gfHwgdGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5hcHBseUF0dHJpYnV0ZVZhbHVlKCd0YWJpbmRleCcsIG5ld1RhYkluZGV4KTtcbiAgfVxuXG4gIC8qKiBAbm9kb2MgKi9cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmICh0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgdGhpcy51cGRhdGVIcmVmKCk7XG4gICAgfVxuICAgIC8vIFRoaXMgaXMgc3Vic2NyaWJlZCB0byBieSBgUm91dGVyTGlua0FjdGl2ZWAgc28gdGhhdCBpdCBrbm93cyB0byB1cGRhdGUgd2hlbiB0aGVyZSBhcmUgY2hhbmdlc1xuICAgIC8vIHRvIHRoZSBSb3V0ZXJMaW5rcyBpdCdzIHRyYWNraW5nLlxuICAgIHRoaXMub25DaGFuZ2VzLm5leHQodGhpcyk7XG4gIH1cblxuICAvKipcbiAgICogQ29tbWFuZHMgdG8gcGFzcyB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9LlxuICAgKiAgIC0gKiphcnJheSoqOiBjb21tYW5kcyB0byBwYXNzIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0uXG4gICAqICAgLSAqKnN0cmluZyoqOiBzaG9ydGhhbmQgZm9yIGFycmF5IG9mIGNvbW1hbmRzIHdpdGgganVzdCB0aGUgc3RyaW5nLCBpLmUuIGBbJy9yb3V0ZSddYFxuICAgKiAgIC0gKipudWxsfHVuZGVmaW5lZCoqOiBlZmZlY3RpdmVseSBkaXNhYmxlcyB0aGUgYHJvdXRlckxpbmtgXG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IHJvdXRlckxpbmsoY29tbWFuZHM6IGFueVtdIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjb21tYW5kcyAhPSBudWxsKSB7XG4gICAgICB0aGlzLmNvbW1hbmRzID0gQXJyYXkuaXNBcnJheShjb21tYW5kcykgPyBjb21tYW5kcyA6IFtjb21tYW5kc107XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCcwJyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29tbWFuZHMgPSBudWxsO1xuICAgICAgdGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbChudWxsKTtcbiAgICB9XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgW1xuICAgICckZXZlbnQuYnV0dG9uJyxcbiAgICAnJGV2ZW50LmN0cmxLZXknLFxuICAgICckZXZlbnQuc2hpZnRLZXknLFxuICAgICckZXZlbnQuYWx0S2V5JyxcbiAgICAnJGV2ZW50Lm1ldGFLZXknLFxuICBdKVxuICBvbkNsaWNrKFxuICAgIGJ1dHRvbjogbnVtYmVyLFxuICAgIGN0cmxLZXk6IGJvb2xlYW4sXG4gICAgc2hpZnRLZXk6IGJvb2xlYW4sXG4gICAgYWx0S2V5OiBib29sZWFuLFxuICAgIG1ldGFLZXk6IGJvb2xlYW4sXG4gICk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFRyZWU7XG5cbiAgICBpZiAodXJsVHJlZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBbmNob3JFbGVtZW50KSB7XG4gICAgICBpZiAoYnV0dG9uICE9PSAwIHx8IGN0cmxLZXkgfHwgc2hpZnRLZXkgfHwgYWx0S2V5IHx8IG1ldGFLZXkpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG5cbiAgICAgIGlmICh0eXBlb2YgdGhpcy50YXJnZXQgPT09ICdzdHJpbmcnICYmIHRoaXMudGFyZ2V0ICE9ICdfc2VsZicpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZXh0cmFzID0ge1xuICAgICAgc2tpcExvY2F0aW9uQ2hhbmdlOiB0aGlzLnNraXBMb2NhdGlvbkNoYW5nZSxcbiAgICAgIHJlcGxhY2VVcmw6IHRoaXMucmVwbGFjZVVybCxcbiAgICAgIHN0YXRlOiB0aGlzLnN0YXRlLFxuICAgICAgaW5mbzogdGhpcy5pbmZvLFxuICAgIH07XG4gICAgdGhpcy5yb3V0ZXIubmF2aWdhdGVCeVVybCh1cmxUcmVlLCBleHRyYXMpO1xuXG4gICAgLy8gUmV0dXJuIGBmYWxzZWAgZm9yIGA8YT5gIGVsZW1lbnRzIHRvIHByZXZlbnQgZGVmYXVsdCBhY3Rpb25cbiAgICAvLyBhbmQgY2FuY2VsIHRoZSBuYXRpdmUgYmVoYXZpb3IsIHNpbmNlIHRoZSBuYXZpZ2F0aW9uIGlzIGhhbmRsZWRcbiAgICAvLyBieSB0aGUgUm91dGVyLlxuICAgIHJldHVybiAhdGhpcy5pc0FuY2hvckVsZW1lbnQ7XG4gIH1cblxuICAvKiogQG5vZG9jICovXG4gIG5nT25EZXN0cm95KCk6IGFueSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZUhyZWYoKTogdm9pZCB7XG4gICAgY29uc3QgdXJsVHJlZSA9IHRoaXMudXJsVHJlZTtcbiAgICB0aGlzLmhyZWYgPVxuICAgICAgdXJsVHJlZSAhPT0gbnVsbCAmJiB0aGlzLmxvY2F0aW9uU3RyYXRlZ3lcbiAgICAgICAgPyB0aGlzLmxvY2F0aW9uU3RyYXRlZ3k/LnByZXBhcmVFeHRlcm5hbFVybCh0aGlzLnJvdXRlci5zZXJpYWxpemVVcmwodXJsVHJlZSkpXG4gICAgICAgIDogbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFtOaW1ibGVdIFJlbW92ZSBzYW5pdGl6YXRpb24gY29kZSBhbmQgYXBwbHlpbmcgdGhlIGBocmVmYCBhdHRyaWJ1dGUgaW4gZmF2b3Igb2YgY2hhbmdpbmcgYGhyZWZgXG4gICAgICogdG8gYmUgYSBgQEhvc3RCaW5kaW5nYC4gVGhpcyBhdm9pZHMgdGhlIG5lZWQgb2YgY2FsbGluZyBpbnRvIHByaXZhdGUgQW5ndWxhciBzYW5pdGl6YXRpb24gY29kZS5cbiAgICAgKi9cbiAgICAvLyBjb25zdCBzYW5pdGl6ZWRWYWx1ZSA9XG4gICAgLy8gdGhpcy5ocmVmID09PSBudWxsXG4gICAgLy8gICAgPyBudWxsXG4gICAgLy8gICAgOiAvLyBUaGlzIGNsYXNzIHJlcHJlc2VudHMgYSBkaXJlY3RpdmUgdGhhdCBjYW4gYmUgYWRkZWQgdG8gYm90aCBgPGE+YCBlbGVtZW50cyxcbiAgICAvLyAgICAgIC8vIGFzIHdlbGwgYXMgb3RoZXIgZWxlbWVudHMuIEFzIGEgcmVzdWx0LCB3ZSBjYW4ndCBkZWZpbmUgc2VjdXJpdHkgY29udGV4dCBhdFxuICAgIC8vICAgICAgLy8gY29tcGlsZSB0aW1lLiBTbyB0aGUgc2VjdXJpdHkgY29udGV4dCBpcyBkZWZlcnJlZCB0byBydW50aW1lLlxuICAgIC8vICAgICAgLy8gVGhlIGDJtcm1c2FuaXRpemVVcmxPclJlc291cmNlVXJsYCBzZWxlY3RzIHRoZSBuZWNlc3Nhcnkgc2FuaXRpemVyIGZ1bmN0aW9uXG4gICAgLy8gICAgICAvLyBiYXNlZCBvbiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSBuYW1lcy4gVGhlIGxvZ2ljIG1pbWljcyB0aGUgb25lIGZyb21cbiAgICAvLyAgICAgIC8vIGBwYWNrYWdlcy9jb21waWxlci9zcmMvc2NoZW1hL2RvbV9zZWN1cml0eV9zY2hlbWEudHNgLCB3aGljaCBpcyB1c2VkIGF0IGNvbXBpbGUgdGltZS5cbiAgICAvLyAgICAgIC8vXG4gICAgLy8gICAgICAvLyBOb3RlOiB3ZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gc3dpdGNoIHRvIHVzaW5nIGBASG9zdEJpbmRpbmcoJ2F0dHIuaHJlZicpYFxuICAgIC8vICAgICAgLy8gaW5zdGVhZCBvZiBhcHBseWluZyBhIHZhbHVlIHZpYSBhIHJlbmRlcmVyLCBhZnRlciBhIGZpbmFsIG1lcmdlIG9mIHRoZVxuICAgIC8vICAgICAgLy8gYFJvdXRlckxpbmtXaXRoSHJlZmAgZGlyZWN0aXZlLlxuICAgIC8vICAgICAgybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybChcbiAgICAvLyAgICAgICAgdGhpcy5ocmVmLFxuICAgIC8vICAgICAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudGFnTmFtZS50b0xvd2VyQ2FzZSgpLFxuICAgIC8vICAgICAgICAnaHJlZicsXG4gICAgLy8gICAgICApO1xuICAgIC8vIHRoaXMuYXBwbHlBdHRyaWJ1dGVWYWx1ZSgnaHJlZicsIHNhbml0aXplZFZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgYXBwbHlBdHRyaWJ1dGVWYWx1ZShhdHRyTmFtZTogc3RyaW5nLCBhdHRyVmFsdWU6IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCByZW5kZXJlciA9IHRoaXMucmVuZGVyZXI7XG4gICAgY29uc3QgbmF0aXZlRWxlbWVudCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgICBpZiAoYXR0clZhbHVlICE9PSBudWxsKSB7XG4gICAgICByZW5kZXJlci5zZXRBdHRyaWJ1dGUobmF0aXZlRWxlbWVudCwgYXR0ck5hbWUsIGF0dHJWYWx1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJlbmRlcmVyLnJlbW92ZUF0dHJpYnV0ZShuYXRpdmVFbGVtZW50LCBhdHRyTmFtZSk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHVybFRyZWUoKTogVXJsVHJlZSB8IG51bGwge1xuICAgIGlmICh0aGlzLmNvbW1hbmRzID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMucm91dGVyLmNyZWF0ZVVybFRyZWUodGhpcy5jb21tYW5kcywge1xuICAgICAgLy8gSWYgdGhlIGByZWxhdGl2ZVRvYCBpbnB1dCBpcyBub3QgZGVmaW5lZCwgd2Ugd2FudCB0byB1c2UgYHRoaXMucm91dGVgIGJ5IGRlZmF1bHQuXG4gICAgICAvLyBPdGhlcndpc2UsIHdlIHNob3VsZCB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBpbnB1dC5cbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucmVsYXRpdmVUbyAhPT0gdW5kZWZpbmVkID8gdGhpcy5yZWxhdGl2ZVRvIDogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgZnJhZ21lbnQ6IHRoaXMuZnJhZ21lbnQsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcsXG4gICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0aGlzLnByZXNlcnZlRnJhZ21lbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuLy8gW05pbWJsZV0gUmVtb3ZlIGV4dHJhIGV4cG9ydCBmb3IgZGVwcmVjYXRlZCBBbmd1bGFyIEFQSVxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb25cbi8vICAqIEFuIGFsaWFzIGZvciB0aGUgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZS5cbi8vICAqIERlcHJlY2F0ZWQgc2luY2UgdjE1LCB1c2UgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZSBpbnN0ZWFkLlxuLy8gICpcbi8vICAqIEBkZXByZWNhdGVkIHVzZSBgUm91dGVyTGlua2AgZGlyZWN0aXZlIGluc3RlYWQuXG4vLyAgKiBAcHVibGljQXBpXG4vLyAgKi9cbi8vIGV4cG9ydCB7Um91dGVyTGluayBhcyBSb3V0ZXJMaW5rV2l0aEhyZWZ9O1xuIl19
|
|
397
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGVyX2xpbmsuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9uaW1ibGUtYW5ndWxhci9zcmMvdGhpcmRwYXJ0eS9kaXJlY3RpdmVzL3JvdXRlcl9saW5rLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7O0dBVUc7QUFHSDs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUNqRCxPQUFPLEVBQ0wsU0FBUyxFQUNULGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFHTCxTQUFTLEVBQ1QsYUFBYSxJQUFJLFlBQVksRUFFN0IsMEJBQTBCLEdBQzNCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBYSxhQUFhLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUMsTUFBTSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRS9DLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQzs7OztBQUN4Qyw4Q0FBOEM7QUFFOUMsdUdBQXVHO0FBQ3ZHLFNBQVMsU0FBUyxDQUFDLENBQU07SUFDdkIsT0FBTyxDQUFDLFlBQVksT0FBTyxDQUFDO0FBQzlCLENBQUM7QUFFRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBbUdHO0FBQ0g7Ozs7O0VBS0U7QUFFRixNQUFNLE9BQU8sVUFBVTtJQXFFckIsWUFDVSxNQUFjLEVBQ2QsS0FBcUIsRUFDVyxpQkFBNEMs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aEMsVUFBVTtzQkFEYixLQUFLO2dCQXlCTixPQUFPO3NCQVBOLFlBQVk7dUJBQUMsT0FBTyxFQUFFO3dCQUNyQixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsaUJBQWlCO3dCQUNqQixlQUFlO3dCQUNmLGdCQUFnQjtxQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFtOaW1ibGVdXG4gKiBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2Jsb2IvMTguMi4xMy9wYWNrYWdlcy9yb3V0ZXIvc3JjL2RpcmVjdGl2ZXMvcm91dGVyX2xpbmsudHNcbiAqIHdpdGggdGhlIGZvbGxvd2luZyBtb2RpZmljYXRpb25zOlxuICogLSBDb3B5IGBpc1VybFRyZWVgIGZ1bmN0aW9uIGZyb20gdXJsX3RyZWUudHMgaW50byB0aGlzIGZpbGUgaW5zdGVhZCBvZiBpbXBvcnRpbmdcbiAqIC0gSGFyZGNvZGUgYGlzQW5jaG9yRWxlbWVudGAgdG8gYHRydWVgIHNvIHRoYXQgdGhlIGRpcmVjdGl2ZSB3aWxsIGNvcnJlY3RseSBzZXQgdGhlIGBocmVmYCBvbiBlbGVtZW50cyB3aXRoaW4gbmltYmxlIHRoYXQgcmVwcmVzZW50IGFuY2hvcnNcbiAqIC0gTWFrZSBgaHJlZmAgYSBgQEhvc3RCaW5kaW5kaW5nYCB0byBhdm9pZCB1c2luZyBBbmd1bGFyJ3MgcHJpdmF0ZSBzYW5pdGl6YXRpb24gQVBJcyBiZWNhdXNlIGBocmVmYCBiaW5kaW5ncyBhdXRvbWF0aWNhbGx5IGFyZSBzYW5pdGl6ZWQgYnlcbiAqICAgQW5ndWxhciAoc2VlIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9zZWN1cml0eSNzYW5pdGl6YXRpb24tYW5kLXNlY3VyaXR5LWNvbnRleHRzKS4gSW1wbGVtZW50YXRpb25zIGxldmVyYWdpbmcgUm91dGVyTGluayBzaG91bGQgaGF2ZSBhIHRlc3RcbiAqICAgZW5zdXJpbmcgc2FuaXRpemF0aW9uIGlzIGNhbGxlZC5cbiAqIC0gQ29tbWVudCBvdXQgdW5lY2Nlc3NhcnkgZXhwb3J0IG9mIHRoZSBkZXByZWNhdGVkIGBSb3V0ZXJMaW5rV2l0aEhyZWZgXG4gKi9cblxuXG4vKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5kZXYvbGljZW5zZVxuICovXG5cbmltcG9ydCB7TG9jYXRpb25TdHJhdGVneX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEF0dHJpYnV0ZSxcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgRGlyZWN0aXZlLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbmplY3QsXG4gIElucHV0LFxuICB0eXBlIE9uQ2hhbmdlcyxcbiAgdHlwZSBPbkRlc3Ryb3ksXG4gIFJlbmRlcmVyMixcbiAgybVSdW50aW1lRXJyb3IgYXMgUnVudGltZUVycm9yLFxuICB0eXBlIFNpbXBsZUNoYW5nZXMsXG4gIMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtTdWJqZWN0LCBTdWJzY3JpcHRpb259IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQge3R5cGUgRXZlbnQsIE5hdmlnYXRpb25FbmR9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgdHlwZSB7UXVlcnlQYXJhbXNIYW5kbGluZ30gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7Um91dGVyfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHtBY3RpdmF0ZWRSb3V0ZX0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB0eXBlIHtQYXJhbXN9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQge1VybFRyZWV9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG4vLyBpbXBvcnQge1J1bnRpbWVFcnJvckNvZGV9IGZyb20gJy4uL2Vycm9ycyc7XG5cbi8vIFtOaW1ibGVdIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvYmxvYi8xOC4yLjEzL3BhY2thZ2VzL3JvdXRlci9zcmMvdXJsX3RyZWUudHNcbmZ1bmN0aW9uIGlzVXJsVHJlZSh2OiBhbnkpOiB2IGlzIFVybFRyZWUge1xuICByZXR1cm4gdiBpbnN0YW5jZW9mIFVybFRyZWU7XG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogV2hlbiBhcHBsaWVkIHRvIGFuIGVsZW1lbnQgaW4gYSB0ZW1wbGF0ZSwgbWFrZXMgdGhhdCBlbGVtZW50IGEgbGlua1xuICogdGhhdCBpbml0aWF0ZXMgbmF2aWdhdGlvbiB0byBhIHJvdXRlLiBOYXZpZ2F0aW9uIG9wZW5zIG9uZSBvciBtb3JlIHJvdXRlZCBjb21wb25lbnRzXG4gKiBpbiBvbmUgb3IgbW9yZSBgPHJvdXRlci1vdXRsZXQ+YCBsb2NhdGlvbnMgb24gdGhlIHBhZ2UuXG4gKlxuICogR2l2ZW4gYSByb3V0ZSBjb25maWd1cmF0aW9uIGBbeyBwYXRoOiAndXNlci86bmFtZScsIGNvbXBvbmVudDogVXNlckNtcCB9XWAsXG4gKiB0aGUgZm9sbG93aW5nIGNyZWF0ZXMgYSBzdGF0aWMgbGluayB0byB0aGUgcm91dGU6XG4gKiBgPGEgcm91dGVyTGluaz1cIi91c2VyL2JvYlwiPmxpbmsgdG8gdXNlciBjb21wb25lbnQ8L2E+YFxuICpcbiAqIFlvdSBjYW4gdXNlIGR5bmFtaWMgdmFsdWVzIHRvIGdlbmVyYXRlIHRoZSBsaW5rLlxuICogRm9yIGEgZHluYW1pYyBsaW5rLCBwYXNzIGFuIGFycmF5IG9mIHBhdGggc2VnbWVudHMsXG4gKiBmb2xsb3dlZCBieSB0aGUgcGFyYW1zIGZvciBlYWNoIHNlZ21lbnQuXG4gKiBGb3IgZXhhbXBsZSwgYFsnL3RlYW0nLCB0ZWFtSWQsICd1c2VyJywgdXNlck5hbWUsIHtkZXRhaWxzOiB0cnVlfV1gXG4gKiBnZW5lcmF0ZXMgYSBsaW5rIHRvIGAvdGVhbS8xMS91c2VyL2JvYjtkZXRhaWxzPXRydWVgLlxuICpcbiAqIE11bHRpcGxlIHN0YXRpYyBzZWdtZW50cyBjYW4gYmUgbWVyZ2VkIGludG8gb25lIHRlcm0gYW5kIGNvbWJpbmVkIHdpdGggZHluYW1pYyBzZWdtZW50cy5cbiAqIEZvciBleGFtcGxlLCBgWycvdGVhbS8xMS91c2VyJywgdXNlck5hbWUsIHtkZXRhaWxzOiB0cnVlfV1gXG4gKlxuICogVGhlIGlucHV0IHRoYXQgeW91IHByb3ZpZGUgdG8gdGhlIGxpbmsgaXMgdHJlYXRlZCBhcyBhIGRlbHRhIHRvIHRoZSBjdXJyZW50IFVSTC5cbiAqIEZvciBpbnN0YW5jZSwgc3VwcG9zZSB0aGUgY3VycmVudCBVUkwgaXMgYC91c2VyLyhib3gvL2F1eDp0ZWFtKWAuXG4gKiBUaGUgbGluayBgPGEgW3JvdXRlckxpbmtdPVwiWycvdXNlci9qaW0nXVwiPkppbTwvYT5gIGNyZWF0ZXMgdGhlIFVSTFxuICogYC91c2VyLyhqaW0vL2F1eDp0ZWFtKWAuXG4gKiBTZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBmb3IgbW9yZSBpbmZvcm1hdGlvbi5cbiAqXG4gKiBAdXNhZ2VOb3Rlc1xuICpcbiAqIFlvdSBjYW4gdXNlIGFic29sdXRlIG9yIHJlbGF0aXZlIHBhdGhzIGluIGEgbGluaywgc2V0IHF1ZXJ5IHBhcmFtZXRlcnMsXG4gKiBjb250cm9sIGhvdyBwYXJhbWV0ZXJzIGFyZSBoYW5kbGVkLCBhbmQga2VlcCBhIGhpc3Rvcnkgb2YgbmF2aWdhdGlvbiBzdGF0ZXMuXG4gKlxuICogIyMjIFJlbGF0aXZlIGxpbmsgcGF0aHNcbiAqXG4gKiBUaGUgZmlyc3Qgc2VnbWVudCBuYW1lIGNhbiBiZSBwcmVwZW5kZWQgd2l0aCBgL2AsIGAuL2AsIG9yIGAuLi9gLlxuICogKiBJZiB0aGUgZmlyc3Qgc2VnbWVudCBiZWdpbnMgd2l0aCBgL2AsIHRoZSByb3V0ZXIgbG9va3MgdXAgdGhlIHJvdXRlIGZyb20gdGhlIHJvb3Qgb2YgdGhlXG4gKiAgIGFwcC5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC4vYCwgb3IgZG9lc24ndCBiZWdpbiB3aXRoIGEgc2xhc2gsIHRoZSByb3V0ZXJcbiAqICAgbG9va3MgaW4gdGhlIGNoaWxkcmVuIG9mIHRoZSBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZS5cbiAqICogSWYgdGhlIGZpcnN0IHNlZ21lbnQgYmVnaW5zIHdpdGggYC4uL2AsIHRoZSByb3V0ZXIgZ29lcyB1cCBvbmUgbGV2ZWwgaW4gdGhlIHJvdXRlIHRyZWUuXG4gKlxuICogIyMjIFNldHRpbmcgYW5kIGhhbmRsaW5nIHF1ZXJ5IHBhcmFtcyBhbmQgZnJhZ21lbnRzXG4gKlxuICogVGhlIGZvbGxvd2luZyBsaW5rIGFkZHMgYSBxdWVyeSBwYXJhbWV0ZXIgYW5kIGEgZnJhZ21lbnQgdG8gdGhlIGdlbmVyYXRlZCBVUkw6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3F1ZXJ5UGFyYW1zXT1cIntkZWJ1ZzogdHJ1ZX1cIiBmcmFnbWVudD1cImVkdWNhdGlvblwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqIEJ5IGRlZmF1bHQsIHRoZSBkaXJlY3RpdmUgY29uc3RydWN0cyB0aGUgbmV3IFVSTCB1c2luZyB0aGUgZ2l2ZW4gcXVlcnkgcGFyYW1ldGVycy5cbiAqIFRoZSBleGFtcGxlIGdlbmVyYXRlcyB0aGUgbGluazogYC91c2VyL2JvYj9kZWJ1Zz10cnVlI2VkdWNhdGlvbmAuXG4gKlxuICogWW91IGNhbiBpbnN0cnVjdCB0aGUgZGlyZWN0aXZlIHRvIGhhbmRsZSBxdWVyeSBwYXJhbWV0ZXJzIGRpZmZlcmVudGx5XG4gKiBieSBzcGVjaWZ5aW5nIHRoZSBgcXVlcnlQYXJhbXNIYW5kbGluZ2Agb3B0aW9uIGluIHRoZSBsaW5rLlxuICogQWxsb3dlZCB2YWx1ZXMgYXJlOlxuICpcbiAqICAtIGAnbWVyZ2UnYDogTWVyZ2UgdGhlIGdpdmVuIGBxdWVyeVBhcmFtc2AgaW50byB0aGUgY3VycmVudCBxdWVyeSBwYXJhbXMuXG4gKiAgLSBgJ3ByZXNlcnZlJ2A6IFByZXNlcnZlIHRoZSBjdXJyZW50IHF1ZXJ5IHBhcmFtcy5cbiAqXG4gKiBGb3IgZXhhbXBsZTpcbiAqXG4gKiBgYGBcbiAqIDxhIFtyb3V0ZXJMaW5rXT1cIlsnL3VzZXIvYm9iJ11cIiBbcXVlcnlQYXJhbXNdPVwie2RlYnVnOiB0cnVlfVwiIHF1ZXJ5UGFyYW1zSGFuZGxpbmc9XCJtZXJnZVwiPlxuICogICBsaW5rIHRvIHVzZXIgY29tcG9uZW50XG4gKiA8L2E+XG4gKiBgYGBcbiAqXG4gKiBgcXVlcnlQYXJhbXNgLCBgZnJhZ21lbnRgLCBgcXVlcnlQYXJhbXNIYW5kbGluZ2AsIGBwcmVzZXJ2ZUZyYWdtZW50YCwgYW5kIGByZWxhdGl2ZVRvYFxuICogY2Fubm90IGJlIHVzZWQgd2hlbiB0aGUgYHJvdXRlckxpbmtgIGlucHV0IGlzIGEgYFVybFRyZWVgLlxuICpcbiAqIFNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zSGFuZGxpbmd9LlxuICpcbiAqICMjIyBQcmVzZXJ2aW5nIG5hdmlnYXRpb24gaGlzdG9yeVxuICpcbiAqIFlvdSBjYW4gcHJvdmlkZSBhIGBzdGF0ZWAgdmFsdWUgdG8gYmUgcGVyc2lzdGVkIHRvIHRoZSBicm93c2VyJ3NcbiAqIFtgSGlzdG9yeS5zdGF0ZWAgcHJvcGVydHldKGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2VuLVVTL2RvY3MvV2ViL0FQSS9IaXN0b3J5I1Byb3BlcnRpZXMpLlxuICogRm9yIGV4YW1wbGU6XG4gKlxuICogYGBgXG4gKiA8YSBbcm91dGVyTGlua109XCJbJy91c2VyL2JvYiddXCIgW3N0YXRlXT1cInt0cmFjaW5nSWQ6IDEyM31cIj5cbiAqICAgbGluayB0byB1c2VyIGNvbXBvbmVudFxuICogPC9hPlxuICogYGBgXG4gKlxuICogVXNlIHtAbGluayBSb3V0ZXIjZ2V0Q3VycmVudE5hdmlnYXRpb259IHRvIHJldHJpZXZlIGEgc2F2ZWRcbiAqIG5hdmlnYXRpb24tc3RhdGUgdmFsdWUuIEZvciBleGFtcGxlLCB0byBjYXB0dXJlIHRoZSBgdHJhY2luZ0lkYCBkdXJpbmcgdGhlIGBOYXZpZ2F0aW9uU3RhcnRgXG4gKiBldmVudDpcbiAqXG4gKiBgYGBcbiAqIC8vIEdldCBOYXZpZ2F0aW9uU3RhcnQgZXZlbnRzXG4gKiByb3V0ZXIuZXZlbnRzLnBpcGUoZmlsdGVyKGUgPT4gZSBpbnN0YW5jZW9mIE5hdmlnYXRpb25TdGFydCkpLnN1YnNjcmliZShlID0+IHtcbiAqICAgY29uc3QgbmF2aWdhdGlvbiA9IHJvdXRlci5nZXRDdXJyZW50TmF2aWdhdGlvbigpO1xuICogICB0cmFjaW5nU2VydmljZS50cmFjZSh7aWQ6IG5hdmlnYXRpb24uZXh0cmFzLnN0YXRlLnRyYWNpbmdJZH0pO1xuICogfSk7XG4gKiBgYGBcbiAqXG4gKiBAbmdNb2R1bGUgUm91dGVyTW9kdWxlXG4gKlxuICogQHB1YmxpY0FwaVxuICovXG4vKiBbTmltYmxlXSBSZW1vdmUgYWxsIGNvbmZpZ3VyYXRpb24gZnJvbSBARGlyZWN0aXZlIGRlY29yYXRvclxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3JvdXRlckxpbmtdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG4qL1xuQERpcmVjdGl2ZSgpXG5leHBvcnQgY2xhc3MgUm91dGVyTGluayBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcbiAgLyoqXG4gICAqIFJlcHJlc2VudHMgYW4gYGhyZWZgIGF0dHJpYnV0ZSB2YWx1ZSBhcHBsaWVkIHRvIGEgaG9zdCBlbGVtZW50LFxuICAgKiB3aGVuIGEgaG9zdCBlbGVtZW50IGlzIGA8YT5gLiBGb3Igb3RoZXIgdGFncywgdGhlIHZhbHVlIGlzIGBudWxsYC5cbiAgICovXG4gIC8vIFtOaW1ibGVdIE1ha2UgYGhyZWZgIGEgYEBIb3N0QmluZGluZ2BcbiAgLy8gaHJlZjogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG4gIEBIb3N0QmluZGluZygnYXR0ci5ocmVmJykgaHJlZjogc3RyaW5nfG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBSZXByZXNlbnRzIHRoZSBgdGFyZ2V0YCBhdHRyaWJ1dGUgb24gYSBob3N0IGVsZW1lbnQuXG4gICAqIFRoaXMgaXMgb25seSB1c2VkIHdoZW4gdGhlIGhvc3QgZWxlbWVudCBpcyBhbiBgPGE+YCB0YWcuXG4gICAqL1xuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFyZ2V0JykgQElucHV0KCkgdGFyZ2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCgpIHF1ZXJ5UGFyYW1zPzogUGFyYW1zIHwgbnVsbDtcbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBVcmxDcmVhdGlvbk9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBVcmxDcmVhdGlvbk9wdGlvbnMjZnJhZ21lbnR9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgZnJhZ21lbnQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3F1ZXJ5UGFyYW1zSGFuZGxpbmd9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KCkgcXVlcnlQYXJhbXNIYW5kbGluZz86IFF1ZXJ5UGFyYW1zSGFuZGxpbmcgfCBudWxsO1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI3N0YXRlfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH1cbiAgICovXG4gIEBJbnB1dCgpIHN0YXRlPzoge1trOiBzdHJpbmddOiBhbnl9O1xuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI2luZm99XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KCkgaW5mbz86IHVua25vd247XG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogU3BlY2lmeSBhIHZhbHVlIGhlcmUgd2hlbiB5b3UgZG8gbm90IHdhbnQgdG8gdXNlIHRoZSBkZWZhdWx0IHZhbHVlXG4gICAqIGZvciBgcm91dGVyTGlua2AsIHdoaWNoIGlzIHRoZSBjdXJyZW50IGFjdGl2YXRlZCByb3V0ZS5cbiAgICogTm90ZSB0aGF0IGEgdmFsdWUgb2YgYHVuZGVmaW5lZGAgaGVyZSB3aWxsIHVzZSB0aGUgYHJvdXRlckxpbmtgIGRlZmF1bHQuXG4gICAqIEBzZWUge0BsaW5rIFVybENyZWF0aW9uT3B0aW9ucyNyZWxhdGl2ZVRvfVxuICAgKiBAc2VlIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX1cbiAgICovXG4gIEBJbnB1dCgpIHJlbGF0aXZlVG8/OiBBY3RpdmF0ZWRSb3V0ZSB8IG51bGw7XG5cbiAgLyoqIFdoZXRoZXIgYSBob3N0IGVsZW1lbnQgaXMgYW4gYDxhPmAgdGFnLiAqL1xuICBwcml2YXRlIGlzQW5jaG9yRWxlbWVudDogYm9vbGVhbjtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAvKiogQGludGVybmFsICovXG4gIG9uQ2hhbmdlcyA9IG5ldyBTdWJqZWN0PFJvdXRlckxpbms+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBAQXR0cmlidXRlKCd0YWJpbmRleCcpIHByaXZhdGUgcmVhZG9ubHkgdGFiSW5kZXhBdHRyaWJ1dGU6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQsXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlcjogUmVuZGVyZXIyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWw6IEVsZW1lbnRSZWYsXG4gICAgLy8gW05pbWJsZV0gTmVlZCBJbmplY3QgZGVjb3JhdG9yXG4gICAgQEluamVjdChMb2NhdGlvblN0cmF0ZWd5KSBwcml2YXRlIGxvY2F0aW9uU3RyYXRlZ3k/OiBMb2NhdGlvblN0cmF0ZWd5LFxuICApIHtcbiAgICAvLyBbTmltYmxlXSBIYXJkLWNvZGluZyBgaXNBbmNob3JFbGVtZW50YCB0byBgdHJ1ZWBcbiAgICAvLyBjb25zdCB0YWdOYW1lID0gZWwubmF0aXZlRWxlbWVudC50YWdOYW1lPy50b0xvd2VyQ2FzZSgpO1xuICAgIC8vIHRoaXMuaXNBbmNob3JFbGVtZW50ID0gdGFnTmFtZSA9PT0gJ2EnIHx8IHRhZ05hbWUgPT09ICdhcmVhJztcbiAgICB0aGlzLmlzQW5jaG9yRWxlbWVudCA9IHRydWU7XG5cbiAgICBpZiAodGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gcm91dGVyLmV2ZW50cy5zdWJzY3JpYmUoKHM6IEV2ZW50KSA9PiB7XG4gICAgICAgIGlmIChzIGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZCkge1xuICAgICAgICAgIHRoaXMudXBkYXRlSHJlZigpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRUYWJJbmRleElmTm90T25OYXRpdmVFbCgnMCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBQYXNzZWQgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfSBhcyBwYXJ0IG9mIHRoZVxuICAgKiBgVXJsQ3JlYXRpb25PcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgVXJsQ3JlYXRpb25PcHRpb25zI3ByZXNlcnZlRnJhZ21lbnR9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBwcmVzZXJ2ZUZyYWdtZW50OiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFBhc3NlZCB0byB7QGxpbmsgUm91dGVyI25hdmlnYXRlQnlVcmx9IGFzIHBhcnQgb2YgdGhlXG4gICAqIGBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zYC5cbiAgICogQHNlZSB7QGxpbmsgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyNza2lwTG9jYXRpb25DaGFuZ2V9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSBza2lwTG9jYXRpb25DaGFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogUGFzc2VkIHRvIHtAbGluayBSb3V0ZXIjbmF2aWdhdGVCeVVybH0gYXMgcGFydCBvZiB0aGVcbiAgICogYE5hdmlnYXRpb25CZWhhdmlvck9wdGlvbnNgLlxuICAgKiBAc2VlIHtAbGluayBOYXZpZ2F0aW9uQmVoYXZpb3JPcHRpb25zI3JlcGxhY2VVcmx9XG4gICAqIEBzZWUge0BsaW5rIFJvdXRlciNuYXZpZ2F0ZUJ5VXJsfVxuICAgKi9cbiAgQElucHV0KHt0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGV9KSByZXBsYWNlVXJsOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIE1vZGlmaWVzIHRoZSB0YWIgaW5kZXggaWYgdGhlcmUgd2FzIG5vdCBhIHRhYmluZGV4IGF0dHJpYnV0ZSBvbiB0aGUgZWxlbWVudCBkdXJpbmdcbiAgICogaW5zdGFudGlhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgc2V0VGFiSW5kZXhJZk5vdE9uTmF0aXZlRWwobmV3VGFiSW5kZXg6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAodGhpcy50YWJJbmRleEF0dHJpYnV0ZSAhPSBudWxsIC8qIGJvdGggYG51bGxgIGFuZCBgdW5kZWZpbmVkYCAqLyB8fCB0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoJ3RhYmluZGV4JywgbmV3VGFiSW5kZXgpO1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICAvLyBUT0RPKGF0c2NvdHQpOiBSZW1vdmUgY2hhbmdlcyBwYXJhbWV0ZXIgaW4gbWFqb3IgdmVyc2lvbiBhcyBhIGJyZWFraW5nIGNoYW5nZS5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlcz86IFNpbXBsZUNoYW5nZXMpIHtcbiAgICAvKiBbTmltYmxlXSBDb21tZW50IG91dCBleHRyYSBlcnJvciBoYW5kbGluZyB0aGF0IHVzZXMgbmdEZXZNb2RlIGFuZCBSdW50aW1lRXJyb3JDb2RlXG4gICAgaWYgKFxuICAgICAgbmdEZXZNb2RlICYmXG4gICAgICBpc1VybFRyZWUodGhpcy5yb3V0ZXJMaW5rSW5wdXQpICYmXG4gICAgICAodGhpcy5mcmFnbWVudCAhPT0gdW5kZWZpbmVkIHx8XG4gICAgICAgIHRoaXMucXVlcnlQYXJhbXMgfHxcbiAgICAgICAgdGhpcy5xdWVyeVBhcmFtc0hhbmRsaW5nIHx8XG4gICAgICAgIHRoaXMucHJlc2VydmVGcmFnbWVudCB8fFxuICAgICAgICB0aGlzLnJlbGF0aXZlVG8pXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgUnVudGltZUVycm9yKFxuICAgICAgICBSdW50aW1lRXJyb3JDb2RlLklOVkFMSURfUk9VVEVSX0xJTktfSU5QVVRTLFxuICAgICAgICAnQ2Fubm90IGNvbmZpZ3VyZSBxdWVyeVBhcmFtcyBvciBmcmFnbWVudCB3aGVuIHVzaW5nIGEgVXJsVHJlZSBhcyB0aGUgcm91dGVyTGluayBpbnB1dCB2YWx1ZS4nLFxuICAgICAgKTtcbiAgICB9XG4gICAgKi9cbiAgICBpZiAodGhpcy5pc0FuY2hvckVsZW1lbnQpIHtcbiAgICAgIHRoaXMudXBkYXRlSHJlZigpO1xuICAgIH1cbiAgICAvLyBUaGlzIGlzIHN1YnNjcmliZWQgdG8gYnkgYFJvdXRlckxpbmtBY3RpdmVgIHNvIHRoYXQgaXQga25vd3MgdG8gdXBkYXRlIHdoZW4gdGhlcmUgYXJlIGNoYW5nZXNcbiAgICAvLyB0byB0aGUgUm91dGVyTGlua3MgaXQncyB0cmFja2luZy5cbiAgICB0aGlzLm9uQ2hhbmdlcy5uZXh0KHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSByb3V0ZXJMaW5rSW5wdXQ6IGFueVtdIHwgVXJsVHJlZSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBDb21tYW5kcyB0byBwYXNzIHRvIHtAbGluayBSb3V0ZXIjY3JlYXRlVXJsVHJlZX0gb3IgYSBgVXJsVHJlZWAuXG4gICAqICAgLSAqKmFycmF5Kio6IGNvbW1hbmRzIHRvIHBhc3MgdG8ge0BsaW5rIFJvdXRlciNjcmVhdGVVcmxUcmVlfS5cbiAgICogICAtICoqc3RyaW5nKio6IHNob3J0aGFuZCBmb3IgYXJyYXkgb2YgY29tbWFuZHMgd2l0aCBqdXN0IHRoZSBzdHJpbmcsIGkuZS4gYFsnL3JvdXRlJ11gXG4gICAqICAgLSAqKlVybFRyZWUqKjogYSBgVXJsVHJlZWAgZm9yIHRoaXMgbGluayByYXRoZXIgdGhhbiBjcmVhdGluZyBvbmUgZnJvbSB0aGUgY29tbWFuZHNcbiAgICogICAgIGFuZCBvdGhlciBpbnB1dHMgdGhhdCBjb3JyZXNwb25kIHRvIHByb3BlcnRpZXMgb2YgYFVybENyZWF0aW9uT3B0aW9uc2AuXG4gICAqICAgLSAqKm51bGx8dW5kZWZpbmVkKio6IGVmZmVjdGl2ZWx5IGRpc2FibGVzIHRoZSBgcm91dGVyTGlua2BcbiAgICogQHNlZSB7QGxpbmsgUm91dGVyI2NyZWF0ZVVybFRyZWV9XG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcm91dGVyTGluayhjb21tYW5kc09yVXJsVHJlZTogYW55W10gfCBzdHJpbmcgfCBVcmxUcmVlIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIGlmIChjb21tYW5kc09yVXJsVHJlZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnJvdXRlckxpbmtJbnB1dCA9IG51bGw7XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKG51bGwpO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAoaXNVcmxUcmVlKGNvbW1hbmRzT3JVcmxUcmVlKSkge1xuICAgICAgICB0aGlzLnJvdXRlckxpbmtJbnB1dCA9IGNvbW1hbmRzT3JVcmxUcmVlO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5yb3V0ZXJMaW5rSW5wdXQgPSBBcnJheS5pc0FycmF5KGNvbW1hbmRzT3JVcmxUcmVlKVxuICAgICAgICAgID8gY29tbWFuZHNPclVybFRyZWVcbiAgICAgICAgICA6IFtjb21tYW5kc09yVXJsVHJlZV07XG4gICAgICB9XG4gICAgICB0aGlzLnNldFRhYkluZGV4SWZOb3RPbk5hdGl2ZUVsKCcwJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFtcbiAgICAnJGV2ZW50LmJ1dHRvbicsXG4gICAgJyRldmVudC5jdHJsS2V5JyxcbiAgICAnJGV2ZW50LnNoaWZ0S2V5JyxcbiAgICAnJGV2ZW50LmFsdEtleScsXG4gICAgJyRldmVudC5tZXRhS2V5JyxcbiAgXSlcbiAgb25DbGljayhcbiAgICBidXR0b246IG51bWJlcixcbiAgICBjdHJsS2V5OiBib29sZWFuLFxuICAgIHNoaWZ0S2V5OiBib29sZWFuLFxuICAgIGFsdEtleTogYm9vbGVhbixcbiAgICBtZXRhS2V5OiBib29sZWFuLFxuICApOiBib29sZWFuIHtcbiAgICBjb25zdCB1cmxUcmVlID0gdGhpcy51cmxUcmVlO1xuXG4gICAgaWYgKHVybFRyZWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzQW5jaG9yRWxlbWVudCkge1xuICAgICAgaWYgKGJ1dHRvbiAhPT0gMCB8fCBjdHJsS2V5IHx8IHNoaWZ0S2V5IHx8IGFsdEtleSB8fCBtZXRhS2V5KSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIHRoaXMudGFyZ2V0ID09PSAnc3RyaW5nJyAmJiB0aGlzLnRhcmdldCAhPSAnX3NlbGYnKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGV4dHJhcyA9IHtcbiAgICAgIHNraXBMb2NhdGlvbkNoYW5nZTogdGhpcy5za2lwTG9jYXRpb25DaGFuZ2UsXG4gICAgICByZXBsYWNlVXJsOiB0aGlzLnJlcGxhY2VVcmwsXG4gICAgICBzdGF0ZTogdGhpcy5zdGF0ZSxcbiAgICAgIGluZm86IHRoaXMuaW5mbyxcbiAgICB9O1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsVHJlZSwgZXh0cmFzKTtcblxuICAgIC8vIFJldHVybiBgZmFsc2VgIGZvciBgPGE+YCBlbGVtZW50cyB0byBwcmV2ZW50IGRlZmF1bHQgYWN0aW9uXG4gICAgLy8gYW5kIGNhbmNlbCB0aGUgbmF0aXZlIGJlaGF2aW9yLCBzaW5jZSB0aGUgbmF2aWdhdGlvbiBpcyBoYW5kbGVkXG4gICAgLy8gYnkgdGhlIFJvdXRlci5cbiAgICByZXR1cm4gIXRoaXMuaXNBbmNob3JFbGVtZW50O1xuICB9XG5cbiAgLyoqIEBub2RvYyAqL1xuICBuZ09uRGVzdHJveSgpOiBhbnkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVIcmVmKCk6IHZvaWQge1xuICAgIGNvbnN0IHVybFRyZWUgPSB0aGlzLnVybFRyZWU7XG4gICAgdGhpcy5ocmVmID1cbiAgICAgIHVybFRyZWUgIT09IG51bGwgJiYgdGhpcy5sb2NhdGlvblN0cmF0ZWd5XG4gICAgICAgID8gdGhpcy5sb2NhdGlvblN0cmF0ZWd5Py5wcmVwYXJlRXh0ZXJuYWxVcmwodGhpcy5yb3V0ZXIuc2VyaWFsaXplVXJsKHVybFRyZWUpKVxuICAgICAgICA6IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBbTmltYmxlXSBSZW1vdmUgc2FuaXRpemF0aW9uIGNvZGUgYW5kIGFwcGx5aW5nIHRoZSBgaHJlZmAgYXR0cmlidXRlIGluIGZhdm9yIG9mIGNoYW5naW5nIGBocmVmYFxuICAgICAqIHRvIGJlIGEgYEBIb3N0QmluZGluZ2AuIFRoaXMgYXZvaWRzIHRoZSBuZWVkIG9mIGNhbGxpbmcgaW50byBwcml2YXRlIEFuZ3VsYXIgc2FuaXRpemF0aW9uIGNvZGUuXG4gICAgICovXG4gICAgLy8gY29uc3Qgc2FuaXRpemVkVmFsdWUgPVxuICAgIC8vICAgdGhpcy5ocmVmID09PSBudWxsXG4gICAgLy8gICAgID8gbnVsbFxuICAgIC8vICAgICA6IC8vIFRoaXMgY2xhc3MgcmVwcmVzZW50cyBhIGRpcmVjdGl2ZSB0aGF0IGNhbiBiZSBhZGRlZCB0byBib3RoIGA8YT5gIGVsZW1lbnRzLFxuICAgIC8vICAgICAgIC8vIGFzIHdlbGwgYXMgb3RoZXIgZWxlbWVudHMuIEFzIGEgcmVzdWx0LCB3ZSBjYW4ndCBkZWZpbmUgc2VjdXJpdHkgY29udGV4dCBhdFxuICAgIC8vICAgICAgIC8vIGNvbXBpbGUgdGltZS4gU28gdGhlIHNlY3VyaXR5IGNvbnRleHQgaXMgZGVmZXJyZWQgdG8gcnVudGltZS5cbiAgICAvLyAgICAgICAvLyBUaGUgYMm1ybVzYW5pdGl6ZVVybE9yUmVzb3VyY2VVcmxgIHNlbGVjdHMgdGhlIG5lY2Vzc2FyeSBzYW5pdGl6ZXIgZnVuY3Rpb25cbiAgICAvLyAgICAgICAvLyBiYXNlZCBvbiB0aGUgdGFnIGFuZCBwcm9wZXJ0eSBuYW1lcy4gVGhlIGxvZ2ljIG1pbWljcyB0aGUgb25lIGZyb21cbiAgICAvLyAgICAgICAvLyBgcGFja2FnZXMvY29tcGlsZXIvc3JjL3NjaGVtYS9kb21fc2VjdXJpdHlfc2NoZW1hLnRzYCwgd2hpY2ggaXMgdXNlZCBhdCBjb21waWxlIHRpbWUuXG4gICAgLy8gICAgICAgLy9cbiAgICAvLyAgICAgICAvLyBOb3RlOiB3ZSBzaG91bGQgaW52ZXN0aWdhdGUgd2hldGhlciB3ZSBjYW4gc3dpdGNoIHRvIHVzaW5nIGBASG9zdEJpbmRpbmcoJ2F0dHIuaHJlZicpYFxuICAgIC8vICAgICAgIC8vIGluc3RlYWQgb2YgYXBwbHlpbmcgYSB2YWx1ZSB2aWEgYSByZW5kZXJlciwgYWZ0ZXIgYSBmaW5hbCBtZXJnZSBvZiB0aGVcbiAgICAvLyAgICAgICAvLyBgUm91dGVyTGlua1dpdGhIcmVmYCBkaXJlY3RpdmUuXG4gICAgLy8gICAgICAgybXJtXNhbml0aXplVXJsT3JSZXNvdXJjZVVybChcbiAgICAvLyAgICAgICAgIHRoaXMuaHJlZixcbiAgICAvLyAgICAgICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC50YWdOYW1lLnRvTG93ZXJDYXNlKCksXG4gICAgLy8gICAgICAgICAnaHJlZicsXG4gICAgLy8gICAgICAgKTtcbiAgICAvLyB0aGlzLmFwcGx5QXR0cmlidXRlVmFsdWUoJ2hyZWYnLCBzYW5pdGl6ZWRWYWx1ZSk7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5QXR0cmlidXRlVmFsdWUoYXR0ck5hbWU6IHN0cmluZywgYXR0clZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgcmVuZGVyZXIgPSB0aGlzLnJlbmRlcmVyO1xuICAgIGNvbnN0IG5hdGl2ZUVsZW1lbnQgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG4gICAgaWYgKGF0dHJWYWx1ZSAhPT0gbnVsbCkge1xuICAgICAgcmVuZGVyZXIuc2V0QXR0cmlidXRlKG5hdGl2ZUVsZW1lbnQsIGF0dHJOYW1lLCBhdHRyVmFsdWUpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZW5kZXJlci5yZW1vdmVBdHRyaWJ1dGUobmF0aXZlRWxlbWVudCwgYXR0ck5hbWUpO1xuICAgIH1cbiAgfVxuXG4gIGdldCB1cmxUcmVlKCk6IFVybFRyZWUgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yb3V0ZXJMaW5rSW5wdXQgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH0gZWxzZSBpZiAoaXNVcmxUcmVlKHRoaXMucm91dGVyTGlua0lucHV0KSkge1xuICAgICAgcmV0dXJuIHRoaXMucm91dGVyTGlua0lucHV0O1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5yb3V0ZXIuY3JlYXRlVXJsVHJlZSh0aGlzLnJvdXRlckxpbmtJbnB1dCwge1xuICAgICAgLy8gSWYgdGhlIGByZWxhdGl2ZVRvYCBpbnB1dCBpcyBub3QgZGVmaW5lZCwgd2Ugd2FudCB0byB1c2UgYHRoaXMucm91dGVgIGJ5IGRlZmF1bHQuXG4gICAgICAvLyBPdGhlcndpc2UsIHdlIHNob3VsZCB1c2UgdGhlIHZhbHVlIHByb3ZpZGVkIGJ5IHRoZSB1c2VyIGluIHRoZSBpbnB1dC5cbiAgICAgIHJlbGF0aXZlVG86IHRoaXMucmVsYXRpdmVUbyAhPT0gdW5kZWZpbmVkID8gdGhpcy5yZWxhdGl2ZVRvIDogdGhpcy5yb3V0ZSxcbiAgICAgIHF1ZXJ5UGFyYW1zOiB0aGlzLnF1ZXJ5UGFyYW1zLFxuICAgICAgZnJhZ21lbnQ6IHRoaXMuZnJhZ21lbnQsXG4gICAgICBxdWVyeVBhcmFtc0hhbmRsaW5nOiB0aGlzLnF1ZXJ5UGFyYW1zSGFuZGxpbmcsXG4gICAgICBwcmVzZXJ2ZUZyYWdtZW50OiB0aGlzLnByZXNlcnZlRnJhZ21lbnQsXG4gICAgfSk7XG4gIH1cbn1cblxuLy8gW05pbWJsZV0gUmVtb3ZlIGV4dHJhIGV4cG9ydCBmb3IgZGVwcmVjYXRlZCBBbmd1bGFyIEFQSVxuLy8gLyoqXG4vLyAgKiBAZGVzY3JpcHRpb25cbi8vICAqIEFuIGFsaWFzIGZvciB0aGUgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZS5cbi8vICAqIERlcHJlY2F0ZWQgc2luY2UgdjE1LCB1c2UgYFJvdXRlckxpbmtgIGRpcmVjdGl2ZSBpbnN0ZWFkLlxuLy8gICpcbi8vICAqIEBkZXByZWNhdGVkIHVzZSBgUm91dGVyTGlua2AgZGlyZWN0aXZlIGluc3RlYWQuXG4vLyAgKiBAcHVibGljQXBpXG4vLyAgKi9cbi8vIGV4cG9ydCB7Um91dGVyTGluayBhcyBSb3V0ZXJMaW5rV2l0aEhyZWZ9OyJdfQ==
|