@hermes-ui/angular 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -0
- package/accordion/_accordion.clarity.scss +81 -0
- package/accordion/_properties.accordion.scss +45 -0
- package/accordion/_variables.accordion.scss +91 -0
- package/addons/a11y/README.md +157 -0
- package/addons/a11y/forms/required-field-legend.component.scss +17 -0
- package/addons/card-container/card/appfx-card.component.scss +137 -0
- package/addons/card-container/container/appfx-card-container.component.scss +17 -0
- package/addons/card-container/settings/appfx-card-container-settings.component.scss +62 -0
- package/addons/certificate-viewer/certificate-viewer/certificate-viewer.component.scss +69 -0
- package/addons/certificate-viewer/certificate-viewer-details/certificate-viewer-details.component.scss +49 -0
- package/addons/certificate-viewer/certificate-viewer-general/certificate-viewer-general.component.scss +38 -0
- package/addons/datagrid/README.md +289 -0
- package/addons/datagrid/addons/action-bar/datagrid-action-bar.component.scss +81 -0
- package/addons/datagrid/addons/column-toggle/datagrid-column-toggle.component.scss +99 -0
- package/addons/datagrid/addons/export/export-datagrid.component.scss +9 -0
- package/addons/datagrid/datagrid.component.scss +339 -0
- package/addons/datagrid-filters/README.md +223 -0
- package/addons/datagrid-filters/advanced-filters/date-time-filter.component.scss +10 -0
- package/addons/datagrid-filters/advanced-filters/enum-filter.component.scss +40 -0
- package/addons/datagrid-filters/advanced-filters/users-filter.component.scss +11 -0
- package/addons/datagrid-filters/common-styles.scss +98 -0
- package/addons/datagrid-filters/composite-filters.component.scss +26 -0
- package/addons/datagrid-filters/datagrid-filters.component.scss +22 -0
- package/addons/datagrid-filters/manage-filters/manage-filter.component.scss +42 -0
- package/addons/dialog/README.md +112 -0
- package/addons/dialog/multi-page-dialog.a11y.scss +203 -0
- package/addons/dialog/multi-page-dialog.component.scss +102 -0
- package/addons/dialog/toggle-component/toggle.component.scss +15 -0
- package/addons/drag-and-drop/README.md +48 -0
- package/addons/menu/menu.component.scss +120 -0
- package/addons/property-view/components/property-view-category.component.scss +38 -0
- package/addons/property-view/components/property-view-message.component.scss +48 -0
- package/addons/property-view/components/property-view-property.component.scss +122 -0
- package/addons/property-view/components/property-view-section.component.scss +59 -0
- package/addons/property-view/components/property-view.component.scss +23 -0
- package/addons/stepper/stepper.component.scss +53 -0
- package/addons/tabs/tab-links/tab-links.component.scss +61 -0
- package/addons/tabs/tabs.a11y.scss +26 -0
- package/addons/tabs/tabs.component.scss +95 -0
- package/addons/theme-builder/README.md +70 -0
- package/addons/theme-builder/theme-builder.component.scss +194 -0
- package/addons/translate/README.md +124 -0
- package/addons/var/debug/workflow-model-monitor.component.scss +50 -0
- package/addons/var/error/error.component.scss +38 -0
- package/addons/var/spinner/spinner.component.scss +33 -0
- package/addons/wizard/summary/summary.component.scss +22 -0
- package/addons/wizard/wizard.component.scss +251 -0
- package/button/_buttons.clarity.scss +388 -0
- package/button/_mixins.buttons.scss +241 -0
- package/button/_properties.buttons.scss +387 -0
- package/button/_properties.toggles.scss +35 -0
- package/button/_variables.buttons.scss +905 -0
- package/button/_variables.toggles.scss +41 -0
- package/button/button-group/_button-group.clarity.scss +202 -0
- package/collapsible-panel/_mixins.collapsible-panel.scss +189 -0
- package/collapsible-panel/_properties.collapsible-panel.scss +42 -0
- package/collapsible-panel/_variables.collapsible-panel.scss +40 -0
- package/data/_mixins.tables.scss +114 -0
- package/data/_properties.tables.scss +77 -0
- package/data/_tables.clarity.scss +120 -0
- package/data/_variables.tables.scss +42 -0
- package/data/datagrid/_datagrid.clarity.scss +1871 -0
- package/data/datagrid/_mixins.datagrid.scss +102 -0
- package/data/datagrid/_properties.datagrid.scss +98 -0
- package/data/datagrid/_variables.datagrid.scss +98 -0
- package/data/stack-view/_properties.stack-view.scss +50 -0
- package/data/stack-view/_stack-view.clarity.scss +267 -0
- package/data/stack-view/_variables.stack-view.scss +32 -0
- package/data/tree-view/_properties.tree-view.scss +41 -0
- package/data/tree-view/_tree-view.clarity.scss +281 -0
- package/data/tree-view/_variables.tree-view.scss +51 -0
- package/emphasis/alert/_alert.clarity.scss +467 -0
- package/emphasis/alert/_mixins.alert.scss +96 -0
- package/emphasis/alert/_properties.alert.scss +183 -0
- package/emphasis/alert/_variables.alert.scss +502 -0
- package/emphasis/badge/_badges.clarity.scss +61 -0
- package/emphasis/badge/_mixins.bades.scss +34 -0
- package/emphasis/badge/_properties.badges.scss +82 -0
- package/emphasis/badge/_variables.badges.scss +160 -0
- package/emphasis/label/_labels.clarity.scss +179 -0
- package/emphasis/label/_mixins.label.scss +77 -0
- package/emphasis/label/_properties.label.scss +105 -0
- package/emphasis/label/_variables.label.scss +181 -0
- package/fesm2022/hermes-ui-angular-accordion.mjs +355 -0
- package/fesm2022/hermes-ui-angular-accordion.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-a11y.mjs +544 -0
- package/fesm2022/hermes-ui-angular-addons-a11y.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs +1082 -0
- package/fesm2022/hermes-ui-angular-addons-card-container.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs +2520 -0
- package/fesm2022/hermes-ui-angular-addons-certificate-viewer.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs +2818 -0
- package/fesm2022/hermes-ui-angular-addons-datagrid-filters.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs +3131 -0
- package/fesm2022/hermes-ui-angular-addons-datagrid.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-dialog.mjs +386 -0
- package/fesm2022/hermes-ui-angular-addons-dialog.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs +78 -0
- package/fesm2022/hermes-ui-angular-addons-drag-and-drop.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-menu.mjs +559 -0
- package/fesm2022/hermes-ui-angular-addons-menu.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs +1142 -0
- package/fesm2022/hermes-ui-angular-addons-property-view.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-stepper.mjs +716 -0
- package/fesm2022/hermes-ui-angular-addons-stepper.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-tabs.mjs +539 -0
- package/fesm2022/hermes-ui-angular-addons-tabs.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-testing.mjs +2010 -0
- package/fesm2022/hermes-ui-angular-addons-testing.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs +922 -0
- package/fesm2022/hermes-ui-angular-addons-theme-builder.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-translate.mjs +295 -0
- package/fesm2022/hermes-ui-angular-addons-translate.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-var.mjs +2028 -0
- package/fesm2022/hermes-ui-angular-addons-var.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs +610 -0
- package/fesm2022/hermes-ui-angular-addons-wizard.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs +121 -0
- package/fesm2022/hermes-ui-angular-addons-workflow-strings.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-addons-workflow.mjs +88 -0
- package/fesm2022/hermes-ui-angular-addons-workflow.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-button.mjs +719 -0
- package/fesm2022/hermes-ui-angular-button.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-collapsible-panel.mjs +201 -0
- package/fesm2022/hermes-ui-angular-collapsible-panel.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs +8045 -0
- package/fesm2022/hermes-ui-angular-data-datagrid.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs +442 -0
- package/fesm2022/hermes-ui-angular-data-stack-view.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs +1106 -0
- package/fesm2022/hermes-ui-angular-data-tree-view.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-data.mjs +40 -0
- package/fesm2022/hermes-ui-angular-data.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs +624 -0
- package/fesm2022/hermes-ui-angular-emphasis-alert.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-badge.mjs +69 -0
- package/fesm2022/hermes-ui-angular-emphasis-badge.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-common.mjs +25 -0
- package/fesm2022/hermes-ui-angular-emphasis-common.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs +105 -0
- package/fesm2022/hermes-ui-angular-emphasis-label.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-emphasis.mjs +41 -0
- package/fesm2022/hermes-ui-angular-emphasis.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs +279 -0
- package/fesm2022/hermes-ui-angular-forms-checkbox.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs +1775 -0
- package/fesm2022/hermes-ui-angular-forms-combobox.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-common.mjs +1251 -0
- package/fesm2022/hermes-ui-angular-forms-common.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs +263 -0
- package/fesm2022/hermes-ui-angular-forms-datalist.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs +3274 -0
- package/fesm2022/hermes-ui-angular-forms-datepicker.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs +826 -0
- package/fesm2022/hermes-ui-angular-forms-file-input.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-input.mjs +153 -0
- package/fesm2022/hermes-ui-angular-forms-input.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs +153 -0
- package/fesm2022/hermes-ui-angular-forms-native-select.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs +236 -0
- package/fesm2022/hermes-ui-angular-forms-number-input.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-password.mjs +233 -0
- package/fesm2022/hermes-ui-angular-forms-password.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-radio.mjs +224 -0
- package/fesm2022/hermes-ui-angular-forms-radio.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-range.mjs +186 -0
- package/fesm2022/hermes-ui-angular-forms-range.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-select.mjs +606 -0
- package/fesm2022/hermes-ui-angular-forms-select.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs +136 -0
- package/fesm2022/hermes-ui-angular-forms-textarea.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-forms.mjs +105 -0
- package/fesm2022/hermes-ui-angular-forms.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-icon.mjs +7413 -0
- package/fesm2022/hermes-ui-angular-icon.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs +120 -0
- package/fesm2022/hermes-ui-angular-layout-breadcrumbs.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout-main-container.mjs +100 -0
- package/fesm2022/hermes-ui-angular-layout-main-container.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout-nav.mjs +582 -0
- package/fesm2022/hermes-ui-angular-layout-nav.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs +807 -0
- package/fesm2022/hermes-ui-angular-layout-tabs.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs +507 -0
- package/fesm2022/hermes-ui-angular-layout-vertical-nav.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-layout.mjs +44 -0
- package/fesm2022/hermes-ui-angular-layout.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-modal.mjs +619 -0
- package/fesm2022/hermes-ui-angular-modal.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-common.mjs +1371 -0
- package/fesm2022/hermes-ui-angular-popover-common.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-dropdown.mjs +492 -0
- package/fesm2022/hermes-ui-angular-popover-dropdown.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs +494 -0
- package/fesm2022/hermes-ui-angular-popover-signpost.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover-tooltip.mjs +293 -0
- package/fesm2022/hermes-ui-angular-popover-tooltip.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-popover.mjs +41 -0
- package/fesm2022/hermes-ui-angular-popover.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs +217 -0
- package/fesm2022/hermes-ui-angular-progress-progress-bars.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-progress-spinner.mjs +132 -0
- package/fesm2022/hermes-ui-angular-progress-spinner.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-stepper.mjs +694 -0
- package/fesm2022/hermes-ui-angular-stepper.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-timeline.mjs +316 -0
- package/fesm2022/hermes-ui-angular-timeline.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-toast.mjs +373 -0
- package/fesm2022/hermes-ui-angular-toast.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-utils-conditional.mjs +351 -0
- package/fesm2022/hermes-ui-angular-utils-conditional.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-utils-loading.mjs +107 -0
- package/fesm2022/hermes-ui-angular-utils-loading.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-utils.mjs +2086 -0
- package/fesm2022/hermes-ui-angular-utils.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular-wizard.mjs +3074 -0
- package/fesm2022/hermes-ui-angular-wizard.mjs.map +1 -0
- package/fesm2022/hermes-ui-angular.mjs +130 -0
- package/fesm2022/hermes-ui-angular.mjs.map +1 -0
- package/forms/combobox/_combobox.clarity.scss +330 -0
- package/forms/combobox/_properties.combobox.scss +46 -0
- package/forms/combobox/_variables.combobox.scss +32 -0
- package/forms/datepicker/_datepicker.clarity.scss +259 -0
- package/forms/datepicker/_mixins.datepicker.scss +89 -0
- package/forms/datepicker/_properties.datepicker.scss +46 -0
- package/forms/datepicker/_variables.datepicker.scss +74 -0
- package/forms/styles/_checkbox.clarity.scss +193 -0
- package/forms/styles/_containers.clarity.scss +230 -0
- package/forms/styles/_datalist.clarity.scss +47 -0
- package/forms/styles/_file-input.clarity.scss +134 -0
- package/forms/styles/_file.clarity.scss +52 -0
- package/forms/styles/_form.clarity.scss +87 -0
- package/forms/styles/_input-group.clarity.scss +126 -0
- package/forms/styles/_input.clarity.scss +83 -0
- package/forms/styles/_mixins.forms.scss +193 -0
- package/forms/styles/_native-select.clarity.scss +178 -0
- package/forms/styles/_number-input.clarity.scss +58 -0
- package/forms/styles/_password.clarity.scss +26 -0
- package/forms/styles/_properties.forms.scss +180 -0
- package/forms/styles/_radio.clarity.scss +120 -0
- package/forms/styles/_range.clarity.scss +124 -0
- package/forms/styles/_select.clarity.scss +158 -0
- package/forms/styles/_textarea.clarity.scss +71 -0
- package/forms/styles/_toggles.clarity.scss +209 -0
- package/forms/styles/_variables.forms.scss +156 -0
- package/hermes-ui.scss +7 -0
- package/icon/icon.component.scss +247 -0
- package/image/_icons.clarity.scss +101 -0
- package/image/_images.clarity.scss +42 -0
- package/image/_mixins.images.scss +11 -0
- package/layout/_card.clarity.scss +318 -0
- package/layout/_login.clarity.scss +240 -0
- package/layout/_properties.card.scss +39 -0
- package/layout/_properties.login.scss +32 -0
- package/layout/_variables.card.scss +24 -0
- package/layout/_variables.login.scss +22 -0
- package/layout/breadcrumbs/_breadcrumbs.clarity.scss +60 -0
- package/layout/breadcrumbs/_properties.breadcrumbs.scss +18 -0
- package/layout/breadcrumbs/_variables.breadcrumbs.scss +11 -0
- package/layout/grid/_grid.scss +23 -0
- package/layout/grid/grid/_grid.scss +39 -0
- package/layout/grid/mixins/_breakpoint.scss +83 -0
- package/layout/grid/mixins/_clearfix.scss +13 -0
- package/layout/grid/mixins/_grid-framework.scss +91 -0
- package/layout/grid/mixins/_grid.scss +39 -0
- package/layout/grid/utilities/_align.scss +30 -0
- package/layout/grid/utilities/_clearfix.scss +12 -0
- package/layout/grid/utilities/_display.scss +18 -0
- package/layout/grid/utilities/_flex.scss +222 -0
- package/layout/grid/utilities/_float.scss +26 -0
- package/layout/grid/utilities/_visibility.scss +60 -0
- package/layout/main-container/_layout.clarity.scss +87 -0
- package/layout/main-container/_properties.header.scss +55 -0
- package/layout/main-container/_variables.header.scss +32 -0
- package/layout/nav/_header.clarity.scss +40 -0
- package/layout/nav/_links.clarity.scss +84 -0
- package/layout/nav/_mixins.header.scss +332 -0
- package/layout/nav/_mixins.responsive-nav.scss +75 -0
- package/layout/nav/_nav.clarity.scss +100 -0
- package/layout/nav/_properties.nav.scss +27 -0
- package/layout/nav/_properties.responsive-nav.scss +23 -0
- package/layout/nav/_properties.subnav.scss +19 -0
- package/layout/nav/_responsive-nav.clarity.scss +490 -0
- package/layout/nav/_subnav.clarity.scss +48 -0
- package/layout/nav/_variables.nav.scss +13 -0
- package/layout/nav/_variables.responsive-nav.scss +28 -0
- package/layout/nav/_variables.subnav.scss +21 -0
- package/layout/tabs/_mixins.tabs.scss +41 -0
- package/layout/tabs/_properties.tabs.scss +25 -0
- package/layout/tabs/_tabs.clarity.scss +110 -0
- package/layout/tabs/_variables.tabs.scss +17 -0
- package/layout/vertical-nav/_mixins.vertical-nav.scss +52 -0
- package/layout/vertical-nav/_properties.vertical-nav.scss +73 -0
- package/layout/vertical-nav/_variables.vertical-nav.scss +52 -0
- package/layout/vertical-nav/_vertical-nav.clarity.scss +469 -0
- package/main.scss +14 -0
- package/modal/_modal.clarity.scss +379 -0
- package/modal/_properties.modal.scss +57 -0
- package/modal/_variables.modal.scss +41 -0
- package/package.json +325 -0
- package/popover/common/README.md +112 -0
- package/popover/common/_popover.clarity.scss +28 -0
- package/popover/dropdown/_dropdown.clarity.scss +326 -0
- package/popover/dropdown/_menu-mixins.clarity.scss +132 -0
- package/popover/dropdown/_properties.dropdown.scss +50 -0
- package/popover/dropdown/_variables.dropdown.scss +36 -0
- package/popover/signpost/_properties.signpost.scss +34 -0
- package/popover/signpost/_signposts.clarity.scss +414 -0
- package/popover/signpost/_variables.signpost.scss +21 -0
- package/popover/tooltip/_mixins.tooltip.scss +186 -0
- package/popover/tooltip/_properties.tooltip.scss +28 -0
- package/popover/tooltip/_tooltips.clarity.scss +122 -0
- package/popover/tooltip/_variables.tooltip.scss +20 -0
- package/progress/progress-bars/_progress-bars.clarity.scss +616 -0
- package/progress/progress-bars/_properties.progress-bars.scss +24 -0
- package/progress/progress-bars/_variables.progress-bars.scss +15 -0
- package/progress/progress-bars/utils/_mixins.clarity.scss +18 -0
- package/progress/spinner/_mixins.spinner.scss +30 -0
- package/progress/spinner/_properties.spinner.scss +37 -0
- package/progress/spinner/_spinner.clarity.scss +148 -0
- package/progress/spinner/_variables.spinner.scss +25 -0
- package/schematics/collection.json +14 -0
- package/stepper/_properties.stepper.scss +29 -0
- package/stepper/_stepper.clarity.scss +184 -0
- package/stepper/_variables.stepper.scss +13 -0
- package/styles/_a11y.scss +14 -0
- package/styles/_close.clarity.scss +60 -0
- package/styles/_components.clarity.scss +189 -0
- package/styles/_mixins.scss +460 -0
- package/styles/_normalize.scss +292 -0
- package/styles/_reboot.clarity.scss +374 -0
- package/styles/_variables.clarity.scss +139 -0
- package/styles/core/base/base.element.scss +97 -0
- package/styles/core/global.scss +12 -0
- package/styles/core/layout/_alignments.scss +18 -0
- package/styles/core/layout/_container.scss +29 -0
- package/styles/core/layout/_display.scss +58 -0
- package/styles/core/layout/_optimize.scss +60 -0
- package/styles/core/layout/_shadow-dom.scss +47 -0
- package/styles/core/layout/_spacing.scss +31 -0
- package/styles/core/layout/_type-grid.scss +66 -0
- package/styles/core/layout/_type-horizontal.scss +33 -0
- package/styles/core/layout/_type-vertical.scss +26 -0
- package/styles/core/layout/mixins/_mixins.alignment.scss +35 -0
- package/styles/core/layout/mixins/_mixins.display.scss +23 -0
- package/styles/core/layout/mixins/_mixins.grid.scss +105 -0
- package/styles/core/layout/mixins/_mixins.scss +106 -0
- package/styles/core/layout/mixins/_mixins.shadow-dom.scss +106 -0
- package/styles/core/layout/mixins/_mixins.type-horizontal.scss +113 -0
- package/styles/core/layout/mixins/_mixins.type-vertical.scss +108 -0
- package/styles/core/module.layout.scss +22 -0
- package/styles/core/module.reset.scss +48 -0
- package/styles/core/module.typography.scss +9 -0
- package/styles/core/theme.dark.scss +298 -0
- package/styles/core/theme.high-contrast.scss +42 -0
- package/styles/core/theme.low-motion.scss +20 -0
- package/styles/core/tokens/_alias-interaction.scss +74 -0
- package/styles/core/tokens/_alias-object-background.scss +29 -0
- package/styles/core/tokens/_alias-object-border.scss +21 -0
- package/styles/core/tokens/_alias-object-container.scss +20 -0
- package/styles/core/tokens/_alias-object-opacity.scss +15 -0
- package/styles/core/tokens/_alias-object-shadow.scss +17 -0
- package/styles/core/tokens/_alias-primary.scss +21 -0
- package/styles/core/tokens/_alias-status.scss +40 -0
- package/styles/core/tokens/_alias-typography.scss +107 -0
- package/styles/core/tokens/_alias-utility.scss +42 -0
- package/styles/core/tokens/_alias-viz-colors.scss +170 -0
- package/styles/core/tokens/_global-animation.scss +32 -0
- package/styles/core/tokens/_global-colors.scss +249 -0
- package/styles/core/tokens/_global-space.scss +52 -0
- package/styles/core/tokens/_internal-scale.scss +14 -0
- package/styles/core/tokens/_properties.tokens.scss +22 -0
- package/styles/core/tokens/_variables.tokens.scss +787 -0
- package/styles/core/typography/_legacy-typography.scss +328 -0
- package/styles/core/typography/_mixins.typography.scss +18 -0
- package/styles/core/typography/_typography.scss +328 -0
- package/styles/variables/_properties.density.scss +225 -0
- package/styles/variables/_properties.global.scss +51 -0
- package/styles/variables/_properties.layout.scss +21 -0
- package/styles/variables/_properties.scss +11 -0
- package/styles/variables/_properties.typography.scss +164 -0
- package/styles/variables/_variables.density.scss +116 -0
- package/styles/variables/_variables.global.scss +87 -0
- package/styles/variables/_variables.layout.scss +37 -0
- package/styles/variables/_variables.scss +11 -0
- package/styles/variables/_variables.typography.scss +156 -0
- package/timeline/_properties.timeline.scss +38 -0
- package/timeline/_timeline.clarity.scss +172 -0
- package/timeline/_variables.timeline.scss +29 -0
- package/toast/README.md +65 -0
- package/toast/_properties.toast.scss +56 -0
- package/toast/_toast.clarity.scss +190 -0
- package/toast/_variables.toast.scss +33 -0
- package/types/hermes-ui-angular-accordion.d.ts +101 -0
- package/types/hermes-ui-angular-accordion.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-a11y.d.ts +187 -0
- package/types/hermes-ui-angular-addons-a11y.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-card-container.d.ts +482 -0
- package/types/hermes-ui-angular-addons-card-container.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-certificate-viewer.d.ts +404 -0
- package/types/hermes-ui-angular-addons-certificate-viewer.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-datagrid-filters.d.ts +911 -0
- package/types/hermes-ui-angular-addons-datagrid-filters.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-datagrid.d.ts +1529 -0
- package/types/hermes-ui-angular-addons-datagrid.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-dialog.d.ts +233 -0
- package/types/hermes-ui-angular-addons-dialog.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-drag-and-drop.d.ts +35 -0
- package/types/hermes-ui-angular-addons-drag-and-drop.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-menu.d.ts +197 -0
- package/types/hermes-ui-angular-addons-menu.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-property-view.d.ts +387 -0
- package/types/hermes-ui-angular-addons-property-view.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-stepper.d.ts +298 -0
- package/types/hermes-ui-angular-addons-stepper.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-tabs.d.ts +173 -0
- package/types/hermes-ui-angular-addons-tabs.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-testing.d.ts +592 -0
- package/types/hermes-ui-angular-addons-testing.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-theme-builder.d.ts +200 -0
- package/types/hermes-ui-angular-addons-theme-builder.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-translate.d.ts +149 -0
- package/types/hermes-ui-angular-addons-translate.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-var.d.ts +923 -0
- package/types/hermes-ui-angular-addons-var.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-wizard.d.ts +241 -0
- package/types/hermes-ui-angular-addons-wizard.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-workflow-strings.d.ts +124 -0
- package/types/hermes-ui-angular-addons-workflow-strings.d.ts.map +1 -0
- package/types/hermes-ui-angular-addons-workflow.d.ts +15 -0
- package/types/hermes-ui-angular-addons-workflow.d.ts.map +1 -0
- package/types/hermes-ui-angular-button.d.ts +170 -0
- package/types/hermes-ui-angular-button.d.ts.map +1 -0
- package/types/hermes-ui-angular-collapsible-panel.d.ts +74 -0
- package/types/hermes-ui-angular-collapsible-panel.d.ts.map +1 -0
- package/types/hermes-ui-angular-data-datagrid.d.ts +1938 -0
- package/types/hermes-ui-angular-data-datagrid.d.ts.map +1 -0
- package/types/hermes-ui-angular-data-stack-view.d.ts +88 -0
- package/types/hermes-ui-angular-data-stack-view.d.ts.map +1 -0
- package/types/hermes-ui-angular-data-tree-view.d.ts +230 -0
- package/types/hermes-ui-angular-data-tree-view.d.ts.map +1 -0
- package/types/hermes-ui-angular-data.d.ts +16 -0
- package/types/hermes-ui-angular-data.d.ts.map +1 -0
- package/types/hermes-ui-angular-emphasis-alert.d.ts +176 -0
- package/types/hermes-ui-angular-emphasis-alert.d.ts.map +1 -0
- package/types/hermes-ui-angular-emphasis-badge.d.ts +26 -0
- package/types/hermes-ui-angular-emphasis-badge.d.ts.map +1 -0
- package/types/hermes-ui-angular-emphasis-common.d.ts +7 -0
- package/types/hermes-ui-angular-emphasis-common.d.ts.map +1 -0
- package/types/hermes-ui-angular-emphasis-label.d.ts +30 -0
- package/types/hermes-ui-angular-emphasis-label.d.ts.map +1 -0
- package/types/hermes-ui-angular-emphasis.d.ts +16 -0
- package/types/hermes-ui-angular-emphasis.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-checkbox.d.ts +73 -0
- package/types/hermes-ui-angular-forms-checkbox.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-combobox.d.ts +354 -0
- package/types/hermes-ui-angular-forms-combobox.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-common.d.ts +340 -0
- package/types/hermes-ui-angular-forms-common.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-datalist.d.ts +60 -0
- package/types/hermes-ui-angular-forms-datalist.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-datepicker.d.ts +987 -0
- package/types/hermes-ui-angular-forms-datepicker.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-file-input.d.ts +194 -0
- package/types/hermes-ui-angular-forms-file-input.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-input.d.ts +30 -0
- package/types/hermes-ui-angular-forms-input.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-native-select.d.ts +37 -0
- package/types/hermes-ui-angular-forms-native-select.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-number-input.d.ts +44 -0
- package/types/hermes-ui-angular-forms-number-input.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-password.d.ts +53 -0
- package/types/hermes-ui-angular-forms-password.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-radio.d.ts +50 -0
- package/types/hermes-ui-angular-forms-radio.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-range.d.ts +38 -0
- package/types/hermes-ui-angular-forms-range.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-select.d.ts +211 -0
- package/types/hermes-ui-angular-forms-select.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms-textarea.d.ts +30 -0
- package/types/hermes-ui-angular-forms-textarea.d.ts.map +1 -0
- package/types/hermes-ui-angular-forms.d.ts +39 -0
- package/types/hermes-ui-angular-forms.d.ts.map +1 -0
- package/types/hermes-ui-angular-icon.d.ts +1504 -0
- package/types/hermes-ui-angular-icon.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-breadcrumbs.d.ts +46 -0
- package/types/hermes-ui-angular-layout-breadcrumbs.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-main-container.d.ts +29 -0
- package/types/hermes-ui-angular-layout-main-container.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-nav.d.ts +143 -0
- package/types/hermes-ui-angular-layout-nav.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-tabs.d.ts +159 -0
- package/types/hermes-ui-angular-layout-tabs.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts +129 -0
- package/types/hermes-ui-angular-layout-vertical-nav.d.ts.map +1 -0
- package/types/hermes-ui-angular-layout.d.ts +20 -0
- package/types/hermes-ui-angular-layout.d.ts.map +1 -0
- package/types/hermes-ui-angular-modal.d.ts +161 -0
- package/types/hermes-ui-angular-modal.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-common.d.ts +317 -0
- package/types/hermes-ui-angular-popover-common.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-dropdown.d.ts +124 -0
- package/types/hermes-ui-angular-popover-dropdown.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-signpost.d.ts +158 -0
- package/types/hermes-ui-angular-popover-signpost.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover-tooltip.d.ts +84 -0
- package/types/hermes-ui-angular-popover-tooltip.d.ts.map +1 -0
- package/types/hermes-ui-angular-popover.d.ts +17 -0
- package/types/hermes-ui-angular-popover.d.ts.map +1 -0
- package/types/hermes-ui-angular-progress-progress-bars.d.ts +58 -0
- package/types/hermes-ui-angular-progress-progress-bars.d.ts.map +1 -0
- package/types/hermes-ui-angular-progress-spinner.d.ts +45 -0
- package/types/hermes-ui-angular-progress-spinner.d.ts.map +1 -0
- package/types/hermes-ui-angular-stepper.d.ts +180 -0
- package/types/hermes-ui-angular-stepper.d.ts.map +1 -0
- package/types/hermes-ui-angular-timeline.d.ts +87 -0
- package/types/hermes-ui-angular-timeline.d.ts.map +1 -0
- package/types/hermes-ui-angular-toast.d.ts +131 -0
- package/types/hermes-ui-angular-toast.d.ts.map +1 -0
- package/types/hermes-ui-angular-utils-conditional.d.ts +133 -0
- package/types/hermes-ui-angular-utils-conditional.d.ts.map +1 -0
- package/types/hermes-ui-angular-utils-loading.d.ts +39 -0
- package/types/hermes-ui-angular-utils-loading.d.ts.map +1 -0
- package/types/hermes-ui-angular-utils.d.ts +914 -0
- package/types/hermes-ui-angular-utils.d.ts.map +1 -0
- package/types/hermes-ui-angular-wizard.d.ts +1509 -0
- package/types/hermes-ui-angular-wizard.d.ts.map +1 -0
- package/types/hermes-ui-angular.d.ts +44 -0
- package/types/hermes-ui-angular.d.ts.map +1 -0
- package/typography/_code.scss +36 -0
- package/typography/_font-metropolis.scss +45 -0
- package/typography/_lists.scss +81 -0
- package/typography/_typography.scss +322 -0
- package/utils/animations/_animations.clarity.scss +44 -0
- package/utils/animations/_mixins.animations.scss +33 -0
- package/wizard/_properties.wizard.scss +54 -0
- package/wizard/_variables.wizard.scss +59 -0
- package/wizard/_wizard.clarity.scss +692 -0
|
@@ -0,0 +1,610 @@
|
|
|
1
|
+
import * as i6 from '@angular/common';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import * as i0 from '@angular/core';
|
|
4
|
+
import { Component, EventEmitter, Input, ViewChildren, ViewChild, Output, Optional, Inject, NgModule } from '@angular/core';
|
|
5
|
+
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
6
|
+
import * as i1 from '@hermes-ui/angular/addons/property-view';
|
|
7
|
+
import { PropertyViewBuilder, PropertyViewModule } from '@hermes-ui/angular/addons/property-view';
|
|
8
|
+
import * as i1$1 from '@hermes-ui/angular/addons/var';
|
|
9
|
+
import { StepValidationState, formatError, modalServiceToken, WorkflowModelMonitor, StepContainer, RelevanceService, WorkflowModelManager, AppfxWorkflowCoreModule } from '@hermes-ui/angular/addons/var';
|
|
10
|
+
import * as i5 from '@hermes-ui/angular/icon';
|
|
11
|
+
import { ClarityIcons, dotCircleIcon, HermesIcon } from '@hermes-ui/angular/icon';
|
|
12
|
+
import * as i4 from '@hermes-ui/angular/wizard';
|
|
13
|
+
import { HermesWizardModule } from '@hermes-ui/angular/wizard';
|
|
14
|
+
import * as i3 from '@hermes-ui/angular/addons/a11y';
|
|
15
|
+
import { ZoomLevel } from '@hermes-ui/angular/addons/a11y';
|
|
16
|
+
import { ReplaySubject, Subject, Subscription, combineLatest, of } from 'rxjs';
|
|
17
|
+
import { take, filter, switchMap, map, tap } from 'rxjs/operators';
|
|
18
|
+
import * as i2 from '@hermes-ui/angular/addons/workflow/strings';
|
|
19
|
+
|
|
20
|
+
/*
|
|
21
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
22
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
23
|
+
* This software is released under MIT license.
|
|
24
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
25
|
+
*/
|
|
26
|
+
/**
|
|
27
|
+
* This is re-usable summary component that can be used as last step of the Wizard.
|
|
28
|
+
* The data required by this component comes from the PropertyViewSectionModel returned by Step#summary
|
|
29
|
+
*/
|
|
30
|
+
class SummaryComponent {
|
|
31
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
32
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: SummaryComponent, isStandalone: false, selector: "appfx-summary", ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<appfx-property-view *ngIf=\"model?.data\" [data]=\"model.data\"></appfx-property-view>\r\n", styles: ["appfx-property-view{height:unset}appfx-property-view ::ng-deep appfx-property-view-category{padding-left:unset}appfx-property-view ::ng-deep .table td,appfx-property-view ::ng-deep .table th{font-size:unset!important;background:none}\n"], dependencies: [{ kind: "component", type: i1.PropertyViewComponent, selector: "appfx-property-view", inputs: ["data", "config"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
33
|
+
}
|
|
34
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: SummaryComponent, decorators: [{
|
|
35
|
+
type: Component,
|
|
36
|
+
args: [{ selector: 'appfx-summary', standalone: false, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<appfx-property-view *ngIf=\"model?.data\" [data]=\"model.data\"></appfx-property-view>\r\n", styles: ["appfx-property-view{height:unset}appfx-property-view ::ng-deep appfx-property-view-category{padding-left:unset}appfx-property-view ::ng-deep .table td,appfx-property-view ::ng-deep .table th{font-size:unset!important;background:none}\n"] }]
|
|
37
|
+
}] });
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
41
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
42
|
+
* This software is released under MIT license.
|
|
43
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
44
|
+
*/
|
|
45
|
+
class SummaryModel {
|
|
46
|
+
constructor() {
|
|
47
|
+
this.loading = false;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
/**
|
|
52
|
+
* Component used to render the composition of wizard page components and apply the base
|
|
53
|
+
* wizard workflow provided by the clarity wizard component.
|
|
54
|
+
*/
|
|
55
|
+
class WizardComponent {
|
|
56
|
+
#pages;
|
|
57
|
+
#opened;
|
|
58
|
+
#wizardModel;
|
|
59
|
+
constructor(cdr, modelMgr, relevanceService, configService, workflowStrings, zoomLevelService,
|
|
60
|
+
/**
|
|
61
|
+
* openModalComponent = undefined - Wizard is used without ModalService
|
|
62
|
+
* openModalComponent = true - opened using ModalService.openModalComponent API
|
|
63
|
+
* openModalComponent = false - opened using ModalService.openModal API
|
|
64
|
+
*/
|
|
65
|
+
openModalComponent) {
|
|
66
|
+
this.cdr = cdr;
|
|
67
|
+
this.modelMgr = modelMgr;
|
|
68
|
+
this.relevanceService = relevanceService;
|
|
69
|
+
this.configService = configService;
|
|
70
|
+
this.workflowStrings = workflowStrings;
|
|
71
|
+
this.zoomLevelService = zoomLevelService;
|
|
72
|
+
this.loading = false;
|
|
73
|
+
/**
|
|
74
|
+
* Clarity Wizard size - 'md', 'lg', 'xl' and 'full-screen'.
|
|
75
|
+
* Default is 'lg'.
|
|
76
|
+
*/
|
|
77
|
+
this.size = 'lg';
|
|
78
|
+
/**
|
|
79
|
+
* Emits when {@link opened} input is changed.
|
|
80
|
+
*/
|
|
81
|
+
this.openedChange = new EventEmitter();
|
|
82
|
+
/**
|
|
83
|
+
* Dispatches when any of the workflow state's variables changes.
|
|
84
|
+
*/
|
|
85
|
+
this.onModelChange = new EventEmitter();
|
|
86
|
+
/**
|
|
87
|
+
* Dispatched when the wizard is finishing via the Finish button.
|
|
88
|
+
* You can perform the actions you want there (i.e modify or create something)
|
|
89
|
+
*/
|
|
90
|
+
this.onFinish = new EventEmitter();
|
|
91
|
+
/**
|
|
92
|
+
* Dispatched when the wizard is closed (in all three cases: via the close button
|
|
93
|
+
* or the cancel button or the finish button)
|
|
94
|
+
*/
|
|
95
|
+
this.onClose = new EventEmitter();
|
|
96
|
+
this.ZoomLevel = ZoomLevel;
|
|
97
|
+
this.showNav = false;
|
|
98
|
+
this.activeStepIndex = 1;
|
|
99
|
+
this.closeHandlerValidationState = new StepValidationState();
|
|
100
|
+
this.awaitingWizardPageOnLoad$ = new ReplaySubject(Infinity);
|
|
101
|
+
this.componentAfterViewInit$ = new Subject();
|
|
102
|
+
this.subscriptions = new Subscription();
|
|
103
|
+
this.errorActivatingStep = false;
|
|
104
|
+
this.#opened = true;
|
|
105
|
+
if (openModalComponent === false) {
|
|
106
|
+
// This means that the Wizard was opened using ModalService, but using wrong method.
|
|
107
|
+
throw new Error('AppFx Wizard must be opened using ModalService.openModalComponent method.');
|
|
108
|
+
}
|
|
109
|
+
ClarityIcons.addIcons(dotCircleIcon);
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* The descriptions of the pages that are visualized.
|
|
113
|
+
*/
|
|
114
|
+
get pages() {
|
|
115
|
+
return this.#pages;
|
|
116
|
+
}
|
|
117
|
+
set pages(value) {
|
|
118
|
+
if (value && value.some(step => !!step.summary)) {
|
|
119
|
+
// if at least one step has summary defined, append summary page.
|
|
120
|
+
this.appendSummaryPage(value);
|
|
121
|
+
this.subscriptions.add(this.relevanceService.onStepRelevanceChange$().subscribe(() => {
|
|
122
|
+
this.recalculateSummaryPageSkipState();
|
|
123
|
+
}));
|
|
124
|
+
}
|
|
125
|
+
this.relevanceService.steps = value;
|
|
126
|
+
this.subscriptions.add(this.relevanceService
|
|
127
|
+
.checkComplete$()
|
|
128
|
+
.pipe(take(1))
|
|
129
|
+
.subscribe((steps) => {
|
|
130
|
+
this.#pages = steps;
|
|
131
|
+
this.modelMgr.steps = steps;
|
|
132
|
+
this.recalculateSummaryPageSkipState();
|
|
133
|
+
}));
|
|
134
|
+
}
|
|
135
|
+
get pagesInternal() {
|
|
136
|
+
return this.#pages;
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* You can supply here any structure you like. As long as it has the
|
|
140
|
+
* needed properties to inject to the page models and eject back from
|
|
141
|
+
* the page models.
|
|
142
|
+
*
|
|
143
|
+
* If not specified, the pages will simply stay disconnected from each other,
|
|
144
|
+
* so you would need other means of communication between them.
|
|
145
|
+
*/
|
|
146
|
+
get wizardModel() {
|
|
147
|
+
return this.#wizardModel;
|
|
148
|
+
}
|
|
149
|
+
set wizardModel(value) {
|
|
150
|
+
this.#wizardModel = value;
|
|
151
|
+
this.modelMgr.model = value;
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Open/close the wizard. Default value is `true`.
|
|
155
|
+
* If the wizard is closed and then re-opened again, the wizard is reset.
|
|
156
|
+
*
|
|
157
|
+
* This input should not be set when the wizard is opened through the ModalService.
|
|
158
|
+
* Its primary use case is when the wizard is used outside vSphere UI.
|
|
159
|
+
*/
|
|
160
|
+
get opened() {
|
|
161
|
+
return this.#opened;
|
|
162
|
+
}
|
|
163
|
+
set opened(value) {
|
|
164
|
+
if (!this.#opened && value) {
|
|
165
|
+
// The wizard was closed and is re-opened.
|
|
166
|
+
this.reset();
|
|
167
|
+
}
|
|
168
|
+
this.#opened = value;
|
|
169
|
+
this.openedChange.next(value);
|
|
170
|
+
}
|
|
171
|
+
// Accessible from the component HTML
|
|
172
|
+
get isLoading() {
|
|
173
|
+
return (this.loading || // explicitly set as busy
|
|
174
|
+
this.relevanceService.loading || // check if relevanceCheck computation in progress
|
|
175
|
+
// additionally inspect pages containers and see if any one is loading
|
|
176
|
+
(!!this.pagesContainers &&
|
|
177
|
+
this.pagesContainers.some((value) => !!value.step.modelInstance && !!value.step.modelInstance.loading)));
|
|
178
|
+
}
|
|
179
|
+
get pageProgressDetails() {
|
|
180
|
+
return this.activeStep?.modelInstance?.progressStatus || '';
|
|
181
|
+
}
|
|
182
|
+
get showProgressCancelButton() {
|
|
183
|
+
return typeof this.activeStep?.modelInstance?.cancelableValidation?.cancelValidation === 'function';
|
|
184
|
+
}
|
|
185
|
+
get cancelValidationButtonLabel() {
|
|
186
|
+
return this.activeStep?.modelInstance?.cancelableValidation?.cancelButtonLabel || '';
|
|
187
|
+
}
|
|
188
|
+
get isSignPostOpen() {
|
|
189
|
+
return !!(this.debugPopup && this.debugPopup.isOpen);
|
|
190
|
+
}
|
|
191
|
+
get isNextButtonDisabled() {
|
|
192
|
+
return this.isLoading || this.errorActivatingStep || (this.activePage ? !this.activePage.readyToComplete : false);
|
|
193
|
+
}
|
|
194
|
+
cancelPageValidation() {
|
|
195
|
+
if (typeof this.activeStep?.modelInstance?.cancelableValidation?.cancelValidation === 'function') {
|
|
196
|
+
this.activeStep?.modelInstance?.cancelableValidation.cancelValidation();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
ngOnInit() {
|
|
200
|
+
this.subscriptions.add(this.modelMgr.onModelChange$.subscribe((changes) => {
|
|
201
|
+
this.onModelChange.emit(changes);
|
|
202
|
+
this.invalidateNextSteps();
|
|
203
|
+
}));
|
|
204
|
+
this.subscriptions.add(this.modelMgr.loading$.subscribe((loading) => {
|
|
205
|
+
this.loading = loading;
|
|
206
|
+
this.cdr.detectChanges();
|
|
207
|
+
}));
|
|
208
|
+
if (this.zoomLevelService) {
|
|
209
|
+
this.subscriptions.add(this.zoomLevelService.onChange.subscribe((level) => {
|
|
210
|
+
this.currentZoomLevel = level;
|
|
211
|
+
this.cdr.detectChanges();
|
|
212
|
+
}));
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
ngOnDestroy() {
|
|
216
|
+
this.pages = [];
|
|
217
|
+
this.activeStep = undefined;
|
|
218
|
+
this.subscriptions.unsubscribe();
|
|
219
|
+
this.unsubscribeRetry();
|
|
220
|
+
this.relevanceService.destroy();
|
|
221
|
+
this.modelMgr.destroy();
|
|
222
|
+
}
|
|
223
|
+
ngAfterViewInit() {
|
|
224
|
+
this.patchWizardNavigationService();
|
|
225
|
+
if (this.pagesContainers.length) {
|
|
226
|
+
// If relevance checks are fast enough (or there are no relevance checks), _pagesContainers will be initialized.
|
|
227
|
+
this.componentAfterViewInit$.next();
|
|
228
|
+
}
|
|
229
|
+
else {
|
|
230
|
+
// Relevance checks may take some time, wait for _pagesContainers to initialize
|
|
231
|
+
this.pagesContainers.changes.pipe(take(1)).subscribe(() => this.componentAfterViewInit$.next());
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
ngAfterContentInit() {
|
|
235
|
+
// upon getting a wizard page onLoad signal and safely ensuring component has instantiated itself with `AppfxWizardPage`
|
|
236
|
+
// elements in the template, only then activate the pending container
|
|
237
|
+
this.subscriptions.add(combineLatest([this.componentAfterViewInit$, this.awaitingWizardPageOnLoad$])
|
|
238
|
+
.pipe(filter(() => !!this.pagesContainers), switchMap(([, pendingStep]) => this.modelMgr.injectPropertiesToPendingStep(pendingStep)))
|
|
239
|
+
.subscribe(result => {
|
|
240
|
+
this.errorActivatingStep = !!result.error;
|
|
241
|
+
this.activatePendingContainer(result);
|
|
242
|
+
}));
|
|
243
|
+
}
|
|
244
|
+
onWizardPageActivated(page) {
|
|
245
|
+
this.showNav = false;
|
|
246
|
+
this.awaitingWizardPageOnLoad$.next(page);
|
|
247
|
+
}
|
|
248
|
+
onWizardCommit() {
|
|
249
|
+
this.commitActiveStep()
|
|
250
|
+
.pipe(take(1), filter(isValid => isValid))
|
|
251
|
+
.subscribe(() => {
|
|
252
|
+
if (this.wizard.navService.currentPageIsLast) {
|
|
253
|
+
const close$ = this.closeHandler?.onSubmit?.() || of("finish" /* Reason.finish */);
|
|
254
|
+
this.subscribeForFinishHandler(close$);
|
|
255
|
+
}
|
|
256
|
+
else {
|
|
257
|
+
this.wizard.forceNext();
|
|
258
|
+
}
|
|
259
|
+
});
|
|
260
|
+
}
|
|
261
|
+
onWizardCancel() {
|
|
262
|
+
if (!this.wizard) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
this.subscribeForCloseHandler(this.closeHandler?.onCancel?.() || of("cancel" /* Reason.cancel */));
|
|
266
|
+
}
|
|
267
|
+
onWizardBack() {
|
|
268
|
+
if (!this.wizard) {
|
|
269
|
+
return;
|
|
270
|
+
}
|
|
271
|
+
// Hide the loading indicator of the current page, if any.
|
|
272
|
+
if (this.activeStep && this.activeStep.modelInstance) {
|
|
273
|
+
this.activeStep.modelInstance.loading = false;
|
|
274
|
+
}
|
|
275
|
+
this.wizard.navService.previous();
|
|
276
|
+
}
|
|
277
|
+
openStepNavPanel() {
|
|
278
|
+
this.showNav = true;
|
|
279
|
+
}
|
|
280
|
+
subscribeForFinishHandler(finish$) {
|
|
281
|
+
this.loading = true;
|
|
282
|
+
finish$.subscribe({
|
|
283
|
+
error: (error) => {
|
|
284
|
+
this.loading = false;
|
|
285
|
+
if (error !== preventDisplayingWizardError) {
|
|
286
|
+
this.closeHandlerValidationState.errors = [
|
|
287
|
+
formatError(error).data.message || this.workflowStrings.defaultWizardSubmitError,
|
|
288
|
+
];
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
complete: () => {
|
|
292
|
+
this.loading = false;
|
|
293
|
+
this.closeHandlerValidationState.errors = [];
|
|
294
|
+
this.onFinish.emit();
|
|
295
|
+
this.wizard.forceFinish();
|
|
296
|
+
this.closeWizard("finish" /* Reason.finish */);
|
|
297
|
+
},
|
|
298
|
+
});
|
|
299
|
+
}
|
|
300
|
+
subscribeForCloseHandler(close$) {
|
|
301
|
+
this.loading = true;
|
|
302
|
+
close$.subscribe({
|
|
303
|
+
error: (error) => {
|
|
304
|
+
this.loading = false;
|
|
305
|
+
if (error !== preventDisplayingWizardError) {
|
|
306
|
+
this.closeHandlerValidationState.errors = [
|
|
307
|
+
formatError(error).data.message || this.workflowStrings.defaultWizardSubmitError,
|
|
308
|
+
];
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
complete: () => {
|
|
312
|
+
this.loading = false;
|
|
313
|
+
this.closeHandlerValidationState.errors = [];
|
|
314
|
+
this.wizard.close();
|
|
315
|
+
this.closeWizard("cancel" /* Reason.cancel */);
|
|
316
|
+
},
|
|
317
|
+
});
|
|
318
|
+
}
|
|
319
|
+
closeWizard(reason) {
|
|
320
|
+
this.onClose.emit(reason);
|
|
321
|
+
}
|
|
322
|
+
appendSummaryPage(steps) {
|
|
323
|
+
const summaryModel = new SummaryModel();
|
|
324
|
+
this.summaryStep = {
|
|
325
|
+
title: this.workflowStrings.summary.title,
|
|
326
|
+
description: this.workflowStrings.summary.description,
|
|
327
|
+
componentClass: SummaryComponent,
|
|
328
|
+
model: () => {
|
|
329
|
+
const propertyViewModelBuilder = new PropertyViewBuilder();
|
|
330
|
+
const propertyViewModel = propertyViewModelBuilder.build();
|
|
331
|
+
const categoryBuilder = propertyViewModelBuilder.generateAllCategory(''); // No title for category.
|
|
332
|
+
const category = categoryBuilder.build();
|
|
333
|
+
const sections = this.#pages
|
|
334
|
+
.filter(step => !step.isSkipped && !!step.summary)
|
|
335
|
+
.map(step => step.summary?.(categoryBuilder.section(step.title).title(step.navTitle || step.title), step.modelInstance));
|
|
336
|
+
category.content = sections;
|
|
337
|
+
propertyViewModel.categories = [category];
|
|
338
|
+
summaryModel.data = propertyViewModel;
|
|
339
|
+
return summaryModel;
|
|
340
|
+
},
|
|
341
|
+
instantiateLazy: true,
|
|
342
|
+
recreateComponent: () => true,
|
|
343
|
+
};
|
|
344
|
+
steps.push(this.summaryStep);
|
|
345
|
+
}
|
|
346
|
+
commitActiveStep() {
|
|
347
|
+
if (!this.activePage) {
|
|
348
|
+
return of(false);
|
|
349
|
+
}
|
|
350
|
+
this.loading = true;
|
|
351
|
+
return this.activePage.onCommit().pipe(switchMap(isValid => {
|
|
352
|
+
if (isValid) {
|
|
353
|
+
this.modelMgr.ejectPropertiesFromCurrentStep(this.activeStep);
|
|
354
|
+
return this.relevanceService.checkComplete$().pipe(map(() => {
|
|
355
|
+
return isValid;
|
|
356
|
+
}));
|
|
357
|
+
}
|
|
358
|
+
return of(isValid);
|
|
359
|
+
}), tap(() => {
|
|
360
|
+
this.loading = false;
|
|
361
|
+
this.cdr.detectChanges();
|
|
362
|
+
}));
|
|
363
|
+
}
|
|
364
|
+
activatePendingContainer(result) {
|
|
365
|
+
this.unsubscribeRetry();
|
|
366
|
+
const pendingPage = this.pagesContainers.find((item) => item.step === result.pendingStep);
|
|
367
|
+
if (pendingPage) {
|
|
368
|
+
if (result.error) {
|
|
369
|
+
this.retrySubscription = pendingPage.onRetry
|
|
370
|
+
.pipe(take(1))
|
|
371
|
+
.subscribe((step) => this.retryStepTransition(step));
|
|
372
|
+
}
|
|
373
|
+
else {
|
|
374
|
+
this.activeStep = result.pendingStep;
|
|
375
|
+
this.setActiveStepIndex();
|
|
376
|
+
this.activePage = this.pagesContainers.find(item => item.step === this.activeStep);
|
|
377
|
+
this.updateFooterComponent();
|
|
378
|
+
}
|
|
379
|
+
// Finally activate the container
|
|
380
|
+
pendingPage.onActivate(result.error, result.stepModelChanges, result.recreateComponent);
|
|
381
|
+
// Force digest as activation trigger changes Clarity wizard. template conditionals must re-evaluate
|
|
382
|
+
this.cdr.detectChanges();
|
|
383
|
+
}
|
|
384
|
+
}
|
|
385
|
+
updateFooterComponent() {
|
|
386
|
+
if (!this.footer?.componentClass) {
|
|
387
|
+
return;
|
|
388
|
+
}
|
|
389
|
+
this.footerComponentInputs = {
|
|
390
|
+
currentStep: this.activeStep,
|
|
391
|
+
steps: this.#pages,
|
|
392
|
+
workflowModel: this.wizardModel,
|
|
393
|
+
};
|
|
394
|
+
}
|
|
395
|
+
retryStepTransition(step) {
|
|
396
|
+
this.onWizardPageActivated(step);
|
|
397
|
+
}
|
|
398
|
+
invalidateNextSteps() {
|
|
399
|
+
if (this.wizard.currentPage) {
|
|
400
|
+
this.wizard.currentPage.completed = false;
|
|
401
|
+
let nextPage = this.wizard.pageCollection.getNextPage(this.wizard.currentPage);
|
|
402
|
+
while (nextPage) {
|
|
403
|
+
nextPage.completed = false;
|
|
404
|
+
nextPage = this.wizard.pageCollection.getNextPage(nextPage);
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
unsubscribeRetry() {
|
|
409
|
+
if (this.retrySubscription && !this.retrySubscription.closed) {
|
|
410
|
+
this.retrySubscription.unsubscribe();
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
patchWizardNavigationService() {
|
|
414
|
+
const navService = this.wizard.navService;
|
|
415
|
+
const originalGoToFunction = navService.goTo;
|
|
416
|
+
navService.goTo = (...args) => {
|
|
417
|
+
const pages = this.wizard.pages.toArray();
|
|
418
|
+
let firstIncompletePageIndex = pages.findIndex(p => !p.enabled) - 1;
|
|
419
|
+
// if firstIncompletePageIndex is negative, Currently in last page, set firstIncompletePageIndex = pages.length - 1
|
|
420
|
+
firstIncompletePageIndex = firstIncompletePageIndex < 0 ? pages.length - 1 : firstIncompletePageIndex;
|
|
421
|
+
const activeContainerIndex = this.pagesContainers.toArray().findIndex(item => item === this.activePage);
|
|
422
|
+
if (firstIncompletePageIndex === activeContainerIndex) {
|
|
423
|
+
// When moving from incomplete step to previous steps, do not call commit
|
|
424
|
+
originalGoToFunction.apply(navService, args);
|
|
425
|
+
}
|
|
426
|
+
else {
|
|
427
|
+
this.commitActiveStep()
|
|
428
|
+
.pipe(take(1), filter(isValid => isValid))
|
|
429
|
+
.subscribe(() => {
|
|
430
|
+
originalGoToFunction.apply(navService, args);
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
};
|
|
434
|
+
}
|
|
435
|
+
setActiveStepIndex() {
|
|
436
|
+
this.activeStepIndex =
|
|
437
|
+
this.#pages
|
|
438
|
+
.filter(page => {
|
|
439
|
+
return !page.isSkipped;
|
|
440
|
+
})
|
|
441
|
+
.indexOf(this.activeStep) + 1;
|
|
442
|
+
}
|
|
443
|
+
/**
|
|
444
|
+
* Reset the wizard. This means:
|
|
445
|
+
* - recreate the page components
|
|
446
|
+
* - reset page states (all pages are marked incomplete)
|
|
447
|
+
* - first page is activated
|
|
448
|
+
*
|
|
449
|
+
* NOTE: Wizard and step models remain unchanged.
|
|
450
|
+
*/
|
|
451
|
+
reset() {
|
|
452
|
+
if (this.wizard) {
|
|
453
|
+
this.wizard.reset();
|
|
454
|
+
if (this.pages) {
|
|
455
|
+
// Recreate the pages.
|
|
456
|
+
this.pages = this.pages.map(step => Object.assign({}, step));
|
|
457
|
+
}
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
recalculateSummaryPageSkipState() {
|
|
461
|
+
if (!this.summaryStep) {
|
|
462
|
+
return;
|
|
463
|
+
}
|
|
464
|
+
const showDefaultPage = this.#pages &&
|
|
465
|
+
this.#pages.some((step) => {
|
|
466
|
+
return !step.isSkipped && step.summary;
|
|
467
|
+
});
|
|
468
|
+
this.summaryStep.isSkipped = !showDefaultPage;
|
|
469
|
+
}
|
|
470
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WizardComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$1.WorkflowModelManager }, { token: i1$1.RelevanceService }, { token: i1$1.WorkflowConfigurationService }, { token: i2.WorkflowStrings }, { token: i3.ZoomLevelService, optional: true }, { token: modalServiceToken, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
471
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.22", type: WizardComponent, isStandalone: false, selector: "appfx-wizard", inputs: { title: "title", loading: "loading", closeHandler: "closeHandler", footer: "footer", size: "size", pages: "pages", wizardModel: "wizardModel", opened: "opened" }, outputs: { openedChange: "openedChange", onModelChange: "onModelChange", onFinish: "onFinish", onClose: "onClose" }, providers: [RelevanceService, WorkflowModelManager], viewQueries: [{ propertyName: "wizard", first: true, predicate: ["wizard"], descendants: true, static: true }, { propertyName: "debugPopup", first: true, predicate: WorkflowModelMonitor, descendants: true }, { propertyName: "pagesContainers", predicate: StepContainer, descendants: true }], ngImport: i0, template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-wizard\r\n #wizard\r\n [(hermesWizardOpen)]=\"opened\"\r\n [hermesWizardSize]=\"size\"\r\n class=\"app-wizard\"\r\n [class.zoom2x]=\"currentZoomLevel === ZoomLevel.x2\"\r\n [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\"\r\n [class.showNav]=\"showNav\"\r\n [class.debug-popup]=\"isSignPostOpen\"\r\n>\r\n <hermes-wizard-title *ngIf=\"!configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n <hermes-wizard-title *ngIf=\"configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <appfx-model-popup [modelMgr]=\"modelMgr\"></appfx-model-popup>\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n\r\n <div *ngIf=\"footer?.componentClass\" ngProjectAs=\"hermes-wizard-button\" class=\"appfx-wizard-footer\">\r\n <ng-container\r\n [ngComponentOutlet]=\"footer.componentClass\"\r\n [ngComponentOutletInputs]=\"footerComponentInputs\"\r\n ></ng-container>\r\n </div>\r\n\r\n <hermes-wizard-button [type]=\"'cancel'\">{{ workflowStrings.cancel }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">{{ workflowStrings.back }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">{{ workflowStrings.next }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">{{ workflowStrings.finish }}</hermes-wizard-button>\r\n\r\n <!-- A wizard with empty pages cannot be opened with latest Clarity 15 and above. -->\r\n <!-- We need an empty placeholder page, in order to be able to use wizards with asynchronous page loading. -->\r\n <!-- More details: https://github.com/vmware-clarity/ng-clarity/issues/1108 -->\r\n <ng-container *ngIf=\"!pages?.length\">\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle> </ng-template>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-validation-banner\r\n *ngIf=\"closeHandlerValidationState.errors?.length\"\r\n hermes-layout=\"m-b:sm\"\r\n [state]=\"closeHandlerValidationState\"\r\n >\r\n </appfx-validation-banner>\r\n <ng-container *ngFor=\"let page of pagesInternal; let pageIndex = index\">\r\n <hermes-wizard-page\r\n #hermesWizardPage\r\n *ngIf=\"!page.isSkipped\"\r\n class=\"pb-0\"\r\n [class.pt-0]=\"page.description\"\r\n [hermesWizardPageNextDisabled]=\"isNextButtonDisabled\"\r\n [class.is-loading]=\"isLoading\"\r\n hermesWizardPagePreventDefault=\"true\"\r\n (hermesWizardPageOnCommit)=\"onWizardCommit()\"\r\n (hermesWizardPageOnCancel)=\"onWizardCancel()\"\r\n (hermesWizardPagePrevious)=\"onWizardBack()\"\r\n (hermesWizardPageOnLoad)=\"onWizardPageActivated(page)\"\r\n [attr.data-test-id]=\"'appfx-wizard-step-content'\"\r\n >\r\n <ng-template hermesPageTitle>\r\n <button\r\n class=\"btn-show-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.openStepNavAriaLabel\"\r\n (click)=\"openStepNavPanel()\"\r\n >\r\n <hermes-icon shape=\"bars\"></hermes-icon>\r\n </button>\r\n <span class=\"page-index\">{{ activeStepIndex }}. </span>{{ page.title }}\r\n </ng-template>\r\n\r\n <ng-template hermesPageNavTitle>\r\n <!-- TODO: Should remove these hermes-icon tags when clarity fixes https://github.com/vmware/clarity/issues/3976 -->\r\n <hermes-icon\r\n shape=\"success-standard\"\r\n class=\"hermes-sr-only\"\r\n status=\"success\"\r\n *ngIf=\"hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.completed\"\r\n ></hermes-icon>\r\n <hermes-icon\r\n shape=\"pencil\"\r\n class=\"hermes-sr-only\"\r\n *ngIf=\"hermesWizardPage.enabled && !hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.inProgress\"\r\n ></hermes-icon>\r\n {{ page.navTitle || page.title }}\r\n </ng-template>\r\n <appfx-step-container [step]=\"page\" [description]=\"page.description\" class=\"content-container hermes-flex-column\">\r\n </appfx-step-container>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-spinner\r\n *ngIf=\"isLoading\"\r\n [message]=\"workflowStrings.loading\"\r\n [progressDetails]=\"pageProgressDetails\"\r\n [showActionButton]=\"showProgressCancelButton\"\r\n [actionButtonLabel]=\"cancelValidationButtonLabel\"\r\n (actionClick)=\"cancelPageValidation()\"\r\n ></appfx-spinner>\r\n</hermes-wizard>\r\n", styles: [".app-wizard .btn-close-stepnav{display:none;border:0;background:transparent;padding:0}.app-wizard .btn-close-stepnav hermes-icon{cursor:pointer}.app-wizard .btn-show-stepnav{display:none;border:0;background:transparent}.app-wizard .btn-show-stepnav hermes-icon{cursor:pointer}.app-wizard .page-index{display:none}.app-wizard .appfx-wizard-footer{flex:1 1 auto;overflow:hidden;margin-right:auto}.app-wizard.zoom2x.showNav ::ng-deep .hermes-wizard-stepnav{overflow:auto}.app-wizard ::ng-deep appfx-spinner{left:27%;width:73%}.app-wizard ::ng-deep hermes-spinner{position:static!important}.app-wizard ::ng-deep div.hermes-wizard-body-wrapper{display:flex;flex:1 1 auto;width:100%}.app-wizard ::ng-deep main.hermes-wizard-content{height:100%;display:flex;flex-direction:column}.app-wizard ::ng-deep .btn.btn-link.hermes-wizard-stepnav-link{height:unset;max-width:unset}.app-wizard ::ng-deep .hermes-wizard-stepnav-link-title{overflow-wrap:break-word;white-space:normal;line-height:1.2rem}.app-wizard.zoom2x ::ng-deep appfx-spinner,.app-wizard.zoom4x ::ng-deep appfx-spinner{left:0;width:100%}.app-wizard.zoom2x ::ng-deep .hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x ::ng-deep .hermes-wizard-stepnav-wrapper{display:none}.app-wizard.zoom2x ::ng-deep .modal,.app-wizard.zoom4x ::ng-deep .modal{overflow:visible}.app-wizard.zoom2x hermes-wizard-page appfx-step-container.content-container,.app-wizard.zoom4x hermes-wizard-page appfx-step-container.content-container{height:auto}.app-wizard.zoom2x .btn-show-stepnav,.app-wizard.zoom2x .page-index,.app-wizard.zoom4x .btn-show-stepnav,.app-wizard.zoom4x .page-index{display:inline-flex;padding-left:0}.app-wizard.zoom2x .btn-show-stepnav hermes-icon,.app-wizard.zoom4x .btn-show-stepnav hermes-icon{fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom2x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper{display:inherit;position:absolute;width:100%;height:100%;max-width:unset;padding:0;z-index:1001}.app-wizard.zoom2x.showNav .btn-close-stepnav,.app-wizard.zoom4x.showNav .btn-close-stepnav{display:inherit}.app-wizard.zoom2x.showNav .btn-close-stepnav hermes-icon,.app-wizard.zoom4x.showNav .btn-close-stepnav hermes-icon{vertical-align:baseline;fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom4x ::ng-deep .modal{padding:0}.app-wizard.zoom4x ::ng-deep .modal .modal-dialog{width:100%;height:100%;margin:0;min-height:unset}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content{display:block;overflow-y:auto}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content .hermes-wizard-body{overflow-y:hidden;max-height:unset;height:unset}.app-wizard.zoom4x ::ng-deep .modal-footer{position:sticky;bottom:0;background-color:inherit;min-height:3.2rem;height:3.2rem;padding-top:.7rem;z-index:1000}.app-wizard hermes-wizard-page{height:100%;padding-bottom:0}.app-wizard hermes-wizard-page.is-loading{pointer-events:none;cursor:not-allowed;opacity:.6}.app-wizard hermes-wizard-page.is-loading .div-disabled{opacity:1}.app-wizard hermes-wizard-page .first-row{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:.84rem;margin-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~form .form-group{margin-bottom:3px;margin-top:2px}.app-wizard hermes-wizard-page appfx-validation-banner~*{padding-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~*>span{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:9px}.app-wizard hermes-wizard-page appfx-validation-banner~*~*{padding-top:0}.app-wizard hermes-wizard-page .alert-item{align-items:center}.app-wizard hermes-wizard-page appfx-step-container{height:100%;flex-flow:column;display:flex}.debug-popup ::ng-deep hermes-modal>div>div.modal-dialog.modal-xl{margin-left:350px}\n"], dependencies: [{ kind: "component", type: i1$1.ValidationBannerComponent, selector: "appfx-validation-banner", inputs: ["state", "closable"] }, { kind: "component", type: i1$1.StepContainerComponent, selector: "appfx-step-container", inputs: ["step", "description"], outputs: ["onRetry"] }, { kind: "component", type: i1$1.WorkflowModelMonitorComponent, selector: "appfx-model-popup", inputs: ["modelMgr"] }, { kind: "component", type: i1$1.SpinnerComponent, selector: "appfx-spinner", inputs: ["message", "politeness", "isModal", "progressDetails", "showActionButton", "actionButtonLabel"], outputs: ["actionClick"] }, { kind: "component", type: i4.HermesWizard, selector: "hermes-wizard", inputs: ["hermesWizardStepnavAriaLabel", "hermesWizardStepnavLayout", "hermesWizardSize", "hermesWizardInPage", "hermesWizardInPageFillContentArea", "hermesWizardHideFooter", "hermesWizardFooterAlign", "hermesWizardClosable", "hermesWizardPreventModalAnimation", "hermesWizardForceForwardNavigation", "hermesWizardOpen", "hermesWizardPreventDefaultNext", "hermesWizardPreventDefaultCancel", "hermesWizardPreventNavigation", "hermesWizardDisableStepnav"], outputs: ["hermesWizardOpenChange", "hermesWizardOnCancel", "hermesWizardOnFinish", "hermesWizardOnReset", "hermesWizardCurrentPageChange", "hermesWizardOnNext", "hermesWizardOnPrevious"] }, { kind: "component", type: i4.HermesWizardPage, selector: "hermes-wizard-page", inputs: ["id", "hermesWizardPagePreventDefault", "hermesWizardPageNextDisabled", "hermesWizardPagePreviousDisabled", "hermesWizardPageHasError", "hermesWizardPagePreventDefaultCancel", "hermesWizardPagePreventDefaultNext"], outputs: ["hermesWizardPageNextDisabledChange", "hermesWizardPagePreviousDisabledChange", "hermesWizardPagePreventDefaultCancelChange", "hermesWizardPageOnCommit", "hermesWizardPageOnLoad", "hermesWizardPageOnCancel", "hermesWizardPageFinish", "hermesWizardPagePrevious", "hermesWizardPageNext", "hermesWizardPageDanger", "hermesWizardPagePrimary", "hermesWizardPageCustomButton"] }, { kind: "component", type: i4.HermesWizardButton, selector: "hermes-wizard-button", inputs: ["type", "hermesWizardButtonDisabled", "hermesWizardButtonHidden"], outputs: ["hermesWizardButtonClicked"] }, { kind: "directive", type: i4.HermesWizardTitle, selector: "hermes-wizard-title", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i4.HermesWizardPageTitle, selector: "[hermesPageTitle]", inputs: ["hermesHeadingLevel"] }, { kind: "directive", type: i4.HermesWizardPageNavTitle, selector: "[hermesPageNavTitle]" }, { kind: "component", type: i5.HermesIcon, selector: "hermes-icon, hermes-icon", inputs: ["shape", "size", "direction", "flip", "solid", "status", "inverse", "badge"] }, { kind: "directive", type: i6.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
|
|
472
|
+
}
|
|
473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: WizardComponent, decorators: [{
|
|
474
|
+
type: Component,
|
|
475
|
+
args: [{ selector: 'appfx-wizard', standalone: false, providers: [RelevanceService, WorkflowModelManager], template: "<!--\r\n ~ Copyright (c) 2016-2026 Broadcom. All Rights Reserved.\r\n ~ The term \"Broadcom\" refers to Broadcom Inc. and/or its subsidiaries.\r\n ~ This software is released under MIT license.\r\n ~ The full license information can be found in LICENSE in the root directory of this project.\r\n -->\r\n<hermes-wizard\r\n #wizard\r\n [(hermesWizardOpen)]=\"opened\"\r\n [hermesWizardSize]=\"size\"\r\n class=\"app-wizard\"\r\n [class.zoom2x]=\"currentZoomLevel === ZoomLevel.x2\"\r\n [class.zoom4x]=\"currentZoomLevel === ZoomLevel.x4\"\r\n [class.showNav]=\"showNav\"\r\n [class.debug-popup]=\"isSignPostOpen\"\r\n>\r\n <hermes-wizard-title *ngIf=\"!configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n <hermes-wizard-title *ngIf=\"configService.debug\" [attr.data-test-id]=\"'appfx-wizard-title'\">\r\n <appfx-model-popup [modelMgr]=\"modelMgr\"></appfx-model-popup>\r\n <button\r\n class=\"btn-close-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.closeStepNavAriaLabel\"\r\n (click)=\"showNav = false\"\r\n >\r\n <hermes-icon direction=\"left\" shape=\"angle\" class=\"stepnav-close\"></hermes-icon>\r\n </button>\r\n {{ title }}\r\n </hermes-wizard-title>\r\n\r\n <div *ngIf=\"footer?.componentClass\" ngProjectAs=\"hermes-wizard-button\" class=\"appfx-wizard-footer\">\r\n <ng-container\r\n [ngComponentOutlet]=\"footer.componentClass\"\r\n [ngComponentOutletInputs]=\"footerComponentInputs\"\r\n ></ng-container>\r\n </div>\r\n\r\n <hermes-wizard-button [type]=\"'cancel'\">{{ workflowStrings.cancel }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'previous'\">{{ workflowStrings.back }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'next'\">{{ workflowStrings.next }}</hermes-wizard-button>\r\n <hermes-wizard-button [type]=\"'finish'\">{{ workflowStrings.finish }}</hermes-wizard-button>\r\n\r\n <!-- A wizard with empty pages cannot be opened with latest Clarity 15 and above. -->\r\n <!-- We need an empty placeholder page, in order to be able to use wizards with asynchronous page loading. -->\r\n <!-- More details: https://github.com/vmware-clarity/ng-clarity/issues/1108 -->\r\n <ng-container *ngIf=\"!pages?.length\">\r\n <hermes-wizard-page>\r\n <ng-template hermesPageTitle> </ng-template>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-validation-banner\r\n *ngIf=\"closeHandlerValidationState.errors?.length\"\r\n hermes-layout=\"m-b:sm\"\r\n [state]=\"closeHandlerValidationState\"\r\n >\r\n </appfx-validation-banner>\r\n <ng-container *ngFor=\"let page of pagesInternal; let pageIndex = index\">\r\n <hermes-wizard-page\r\n #hermesWizardPage\r\n *ngIf=\"!page.isSkipped\"\r\n class=\"pb-0\"\r\n [class.pt-0]=\"page.description\"\r\n [hermesWizardPageNextDisabled]=\"isNextButtonDisabled\"\r\n [class.is-loading]=\"isLoading\"\r\n hermesWizardPagePreventDefault=\"true\"\r\n (hermesWizardPageOnCommit)=\"onWizardCommit()\"\r\n (hermesWizardPageOnCancel)=\"onWizardCancel()\"\r\n (hermesWizardPagePrevious)=\"onWizardBack()\"\r\n (hermesWizardPageOnLoad)=\"onWizardPageActivated(page)\"\r\n [attr.data-test-id]=\"'appfx-wizard-step-content'\"\r\n >\r\n <ng-template hermesPageTitle>\r\n <button\r\n class=\"btn-show-stepnav\"\r\n [attr.aria-label]=\"workflowStrings.openStepNavAriaLabel\"\r\n (click)=\"openStepNavPanel()\"\r\n >\r\n <hermes-icon shape=\"bars\"></hermes-icon>\r\n </button>\r\n <span class=\"page-index\">{{ activeStepIndex }}. </span>{{ page.title }}\r\n </ng-template>\r\n\r\n <ng-template hermesPageNavTitle>\r\n <!-- TODO: Should remove these hermes-icon tags when clarity fixes https://github.com/vmware/clarity/issues/3976 -->\r\n <hermes-icon\r\n shape=\"success-standard\"\r\n class=\"hermes-sr-only\"\r\n status=\"success\"\r\n *ngIf=\"hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.completed\"\r\n ></hermes-icon>\r\n <hermes-icon\r\n shape=\"pencil\"\r\n class=\"hermes-sr-only\"\r\n *ngIf=\"hermesWizardPage.enabled && !hermesWizardPage.completed\"\r\n [class.is-inverse]=\"hermesWizardPage.current\"\r\n [attr.title]=\"workflowStrings.step.inProgress\"\r\n ></hermes-icon>\r\n {{ page.navTitle || page.title }}\r\n </ng-template>\r\n <appfx-step-container [step]=\"page\" [description]=\"page.description\" class=\"content-container hermes-flex-column\">\r\n </appfx-step-container>\r\n </hermes-wizard-page>\r\n </ng-container>\r\n\r\n <appfx-spinner\r\n *ngIf=\"isLoading\"\r\n [message]=\"workflowStrings.loading\"\r\n [progressDetails]=\"pageProgressDetails\"\r\n [showActionButton]=\"showProgressCancelButton\"\r\n [actionButtonLabel]=\"cancelValidationButtonLabel\"\r\n (actionClick)=\"cancelPageValidation()\"\r\n ></appfx-spinner>\r\n</hermes-wizard>\r\n", styles: [".app-wizard .btn-close-stepnav{display:none;border:0;background:transparent;padding:0}.app-wizard .btn-close-stepnav hermes-icon{cursor:pointer}.app-wizard .btn-show-stepnav{display:none;border:0;background:transparent}.app-wizard .btn-show-stepnav hermes-icon{cursor:pointer}.app-wizard .page-index{display:none}.app-wizard .appfx-wizard-footer{flex:1 1 auto;overflow:hidden;margin-right:auto}.app-wizard.zoom2x.showNav ::ng-deep .hermes-wizard-stepnav{overflow:auto}.app-wizard ::ng-deep appfx-spinner{left:27%;width:73%}.app-wizard ::ng-deep hermes-spinner{position:static!important}.app-wizard ::ng-deep div.hermes-wizard-body-wrapper{display:flex;flex:1 1 auto;width:100%}.app-wizard ::ng-deep main.hermes-wizard-content{height:100%;display:flex;flex-direction:column}.app-wizard ::ng-deep .btn.btn-link.hermes-wizard-stepnav-link{height:unset;max-width:unset}.app-wizard ::ng-deep .hermes-wizard-stepnav-link-title{overflow-wrap:break-word;white-space:normal;line-height:1.2rem}.app-wizard.zoom2x ::ng-deep appfx-spinner,.app-wizard.zoom4x ::ng-deep appfx-spinner{left:0;width:100%}.app-wizard.zoom2x ::ng-deep .hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x ::ng-deep .hermes-wizard-stepnav-wrapper{display:none}.app-wizard.zoom2x ::ng-deep .modal,.app-wizard.zoom4x ::ng-deep .modal{overflow:visible}.app-wizard.zoom2x hermes-wizard-page appfx-step-container.content-container,.app-wizard.zoom4x hermes-wizard-page appfx-step-container.content-container{height:auto}.app-wizard.zoom2x .btn-show-stepnav,.app-wizard.zoom2x .page-index,.app-wizard.zoom4x .btn-show-stepnav,.app-wizard.zoom4x .page-index{display:inline-flex;padding-left:0}.app-wizard.zoom2x .btn-show-stepnav hermes-icon,.app-wizard.zoom4x .btn-show-stepnav hermes-icon{fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom2x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper,.app-wizard.zoom4x.showNav ::ng-deep .modal-dialog>.hermes-wizard-content-wrapper>.hermes-wizard-stepnav-wrapper{display:inherit;position:absolute;width:100%;height:100%;max-width:unset;padding:0;z-index:1001}.app-wizard.zoom2x.showNav .btn-close-stepnav,.app-wizard.zoom4x.showNav .btn-close-stepnav{display:inherit}.app-wizard.zoom2x.showNav .btn-close-stepnav hermes-icon,.app-wizard.zoom4x.showNav .btn-close-stepnav hermes-icon{vertical-align:baseline;fill:var(--hermes-wizard-main-text-color)}.app-wizard.zoom4x ::ng-deep .modal{padding:0}.app-wizard.zoom4x ::ng-deep .modal .modal-dialog{width:100%;height:100%;margin:0;min-height:unset}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content{display:block;overflow-y:auto}.app-wizard.zoom4x ::ng-deep .hermes-wizard-main-content .hermes-wizard-body{overflow-y:hidden;max-height:unset;height:unset}.app-wizard.zoom4x ::ng-deep .modal-footer{position:sticky;bottom:0;background-color:inherit;min-height:3.2rem;height:3.2rem;padding-top:.7rem;z-index:1000}.app-wizard hermes-wizard-page{height:100%;padding-bottom:0}.app-wizard hermes-wizard-page.is-loading{pointer-events:none;cursor:not-allowed;opacity:.6}.app-wizard hermes-wizard-page.is-loading .div-disabled{opacity:1}.app-wizard hermes-wizard-page .first-row{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:.84rem;margin-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~form .form-group{margin-bottom:3px;margin-top:2px}.app-wizard hermes-wizard-page appfx-validation-banner~*{padding-top:.3rem}.app-wizard hermes-wizard-page appfx-validation-banner~*>span{line-height:1.2rem;padding-top:.39996rem;font-size:.650004rem;margin-bottom:9px}.app-wizard hermes-wizard-page appfx-validation-banner~*~*{padding-top:0}.app-wizard hermes-wizard-page .alert-item{align-items:center}.app-wizard hermes-wizard-page appfx-step-container{height:100%;flex-flow:column;display:flex}.debug-popup ::ng-deep hermes-modal>div>div.modal-dialog.modal-xl{margin-left:350px}\n"] }]
|
|
476
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1$1.WorkflowModelManager }, { type: i1$1.RelevanceService }, { type: i1$1.WorkflowConfigurationService }, { type: i2.WorkflowStrings }, { type: i3.ZoomLevelService, decorators: [{
|
|
477
|
+
type: Optional
|
|
478
|
+
}] }, { type: undefined, decorators: [{
|
|
479
|
+
type: Inject,
|
|
480
|
+
args: [modalServiceToken]
|
|
481
|
+
}, {
|
|
482
|
+
type: Optional
|
|
483
|
+
}] }], propDecorators: { title: [{
|
|
484
|
+
type: Input
|
|
485
|
+
}], loading: [{
|
|
486
|
+
type: Input
|
|
487
|
+
}], closeHandler: [{
|
|
488
|
+
type: Input
|
|
489
|
+
}], footer: [{
|
|
490
|
+
type: Input
|
|
491
|
+
}], size: [{
|
|
492
|
+
type: Input
|
|
493
|
+
}], openedChange: [{
|
|
494
|
+
type: Output
|
|
495
|
+
}], onModelChange: [{
|
|
496
|
+
type: Output
|
|
497
|
+
}], onFinish: [{
|
|
498
|
+
type: Output
|
|
499
|
+
}], onClose: [{
|
|
500
|
+
type: Output
|
|
501
|
+
}], wizard: [{
|
|
502
|
+
type: ViewChild,
|
|
503
|
+
args: ['wizard', { static: true }]
|
|
504
|
+
}], debugPopup: [{
|
|
505
|
+
type: ViewChild,
|
|
506
|
+
args: [WorkflowModelMonitor, { static: false }]
|
|
507
|
+
}], pagesContainers: [{
|
|
508
|
+
type: ViewChildren,
|
|
509
|
+
args: [StepContainer]
|
|
510
|
+
}], pages: [{
|
|
511
|
+
type: Input
|
|
512
|
+
}], wizardModel: [{
|
|
513
|
+
type: Input
|
|
514
|
+
}], opened: [{
|
|
515
|
+
type: Input
|
|
516
|
+
}] } });
|
|
517
|
+
/**
|
|
518
|
+
* If this error is thrown from the closeHandler function, no error message will be displayed.
|
|
519
|
+
* The wizard will remain open, and will be responsibility of the consumers to handle the error path.
|
|
520
|
+
*/
|
|
521
|
+
const preventDisplayingWizardError = new Error('AppfxWizard error is not set.');
|
|
522
|
+
|
|
523
|
+
/*
|
|
524
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
525
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
526
|
+
* This software is released under MIT license.
|
|
527
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
528
|
+
*/
|
|
529
|
+
const clarityDependencies = [HermesWizardModule, HermesIcon];
|
|
530
|
+
const appfxDependencies = [PropertyViewModule, AppfxWorkflowCoreModule];
|
|
531
|
+
class AppfxWizardModule {
|
|
532
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
533
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, declarations: [SummaryComponent, WizardComponent], imports: [PropertyViewModule, AppfxWorkflowCoreModule, HermesWizardModule, HermesIcon, CommonModule, FormsModule, ReactiveFormsModule], exports: [WizardComponent] }); }
|
|
534
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, imports: [appfxDependencies, clarityDependencies, CommonModule, FormsModule, ReactiveFormsModule] }); }
|
|
535
|
+
}
|
|
536
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.22", ngImport: i0, type: AppfxWizardModule, decorators: [{
|
|
537
|
+
type: NgModule,
|
|
538
|
+
args: [{
|
|
539
|
+
imports: [...appfxDependencies, ...clarityDependencies, CommonModule, FormsModule, ReactiveFormsModule],
|
|
540
|
+
declarations: [SummaryComponent, WizardComponent],
|
|
541
|
+
exports: [WizardComponent],
|
|
542
|
+
}]
|
|
543
|
+
}] });
|
|
544
|
+
|
|
545
|
+
/*
|
|
546
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
547
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
548
|
+
* This software is released under MIT license.
|
|
549
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
550
|
+
*/
|
|
551
|
+
/**
|
|
552
|
+
* Class that holds data about the steps in the wizard and the flows (combinations of pages).
|
|
553
|
+
*/
|
|
554
|
+
class WorkflowService {
|
|
555
|
+
constructor() {
|
|
556
|
+
this.currentFlow = [];
|
|
557
|
+
this.stepsByFlowId = {};
|
|
558
|
+
}
|
|
559
|
+
/**
|
|
560
|
+
* Return the flow, selected by {@link switchToWorkflow}.
|
|
561
|
+
*/
|
|
562
|
+
get flow() {
|
|
563
|
+
return this.currentFlow;
|
|
564
|
+
}
|
|
565
|
+
/**
|
|
566
|
+
* Define a workflow (sequence of steps).
|
|
567
|
+
* When the first flow is added, it is selected as current.
|
|
568
|
+
*
|
|
569
|
+
* @param flowId Unique flow id.
|
|
570
|
+
* @param steps Steps to include in the flow.
|
|
571
|
+
* @throws Error In case of duplicate flowId.
|
|
572
|
+
*/
|
|
573
|
+
addWorkflow(flowId, steps) {
|
|
574
|
+
if (Object.prototype.hasOwnProperty.call(this.stepsByFlowId, flowId)) {
|
|
575
|
+
throw new Error(`Duplicate workflow id: ${flowId}`);
|
|
576
|
+
}
|
|
577
|
+
this.stepsByFlowId[flowId] = steps;
|
|
578
|
+
// Preselect the first added workflow.
|
|
579
|
+
if (Object.keys(this.stepsByFlowId).length === 1) {
|
|
580
|
+
this.switchToWorkflow(flowId);
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Switches the current workflow.
|
|
585
|
+
*
|
|
586
|
+
* @throws Error
|
|
587
|
+
* If flow with the given id does not exist.
|
|
588
|
+
*/
|
|
589
|
+
switchToWorkflow(newFlowId) {
|
|
590
|
+
const flowSteps = this.stepsByFlowId[newFlowId];
|
|
591
|
+
if (!flowSteps) {
|
|
592
|
+
throw new Error(`Flow with id=${newFlowId} does not exist!`);
|
|
593
|
+
}
|
|
594
|
+
this.currentFlow = flowSteps;
|
|
595
|
+
}
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
/*
|
|
599
|
+
* Copyright (c) 2016-2026 Broadcom. All Rights Reserved.
|
|
600
|
+
* The term "Broadcom" refers to Broadcom Inc. and/or its subsidiaries.
|
|
601
|
+
* This software is released under MIT license.
|
|
602
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
603
|
+
*/
|
|
604
|
+
|
|
605
|
+
/**
|
|
606
|
+
* Generated bundle index. Do not edit.
|
|
607
|
+
*/
|
|
608
|
+
|
|
609
|
+
export { AppfxWizardModule, SummaryComponent, SummaryModel, WizardComponent as Wizard, WizardComponent, WorkflowService, preventDisplayingWizardError };
|
|
610
|
+
//# sourceMappingURL=hermes-ui-angular-addons-wizard.mjs.map
|