@clr/angular 12.0.11 → 13.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/accordion/accordion-content.d.ts +3 -0
- package/accordion/accordion-description.d.ts +3 -0
- package/accordion/accordion-panel.d.ts +3 -0
- package/accordion/accordion-title.d.ts +3 -0
- package/accordion/accordion.d.ts +3 -0
- package/accordion/accordion.module.d.ts +13 -0
- package/accordion/chocolate/accordion-oompa-loompa.d.ts +3 -0
- package/accordion/chocolate/accordion-willy-wonka.d.ts +3 -0
- package/accordion/providers/accordion.service.d.ts +3 -0
- package/accordion/stepper/chocolate/stepper-oompa-loompa.d.ts +3 -0
- package/accordion/stepper/chocolate/stepper-willy-wonka.d.ts +3 -0
- package/accordion/stepper/providers/stepper.service.d.ts +3 -0
- package/accordion/stepper/step-button.d.ts +3 -0
- package/accordion/stepper/stepper-panel.d.ts +3 -0
- package/accordion/stepper/stepper.d.ts +3 -0
- package/accordion/stepper/stepper.module.d.ts +12 -0
- package/button/button-group/button-group.d.ts +3 -0
- package/button/button-group/button-group.module.d.ts +9 -0
- package/button/button-group/button.d.ts +3 -0
- package/button/button-loading/loading-button.d.ts +3 -0
- package/button/button-loading/loading-button.module.d.ts +6 -0
- package/button/button.module.d.ts +6 -0
- package/button/providers/button-in-group.service.d.ts +3 -0
- package/clr-angular.d.ts +1 -105
- package/clr-angular.module.d.ts +23 -0
- package/data/data.module.d.ts +7 -0
- package/data/datagrid/built-in/filters/datagrid-numeric-filter.d.ts +3 -0
- package/data/datagrid/built-in/filters/datagrid-string-filter.d.ts +3 -0
- package/data/datagrid/chocolate/actionable-oompa-loompa.d.ts +3 -0
- package/data/datagrid/chocolate/datagrid-willy-wonka.d.ts +3 -0
- package/data/datagrid/chocolate/expandable-oompa-loompa.d.ts +3 -0
- package/data/datagrid/datagrid-action-bar.d.ts +3 -0
- package/data/datagrid/datagrid-action-overflow.d.ts +3 -0
- package/data/datagrid/datagrid-cell.d.ts +3 -0
- package/data/datagrid/datagrid-column-separator.d.ts +3 -0
- package/data/datagrid/datagrid-column-toggle-button.d.ts +3 -0
- package/data/datagrid/datagrid-column-toggle-title.d.ts +3 -0
- package/data/datagrid/datagrid-column-toggle.d.ts +3 -0
- package/data/datagrid/datagrid-column.d.ts +3 -0
- package/data/datagrid/datagrid-detail-body.d.ts +3 -0
- package/data/datagrid/datagrid-detail-header.d.ts +3 -0
- package/data/datagrid/datagrid-detail-registerer.d.ts +3 -0
- package/data/datagrid/datagrid-detail.d.ts +3 -0
- package/data/datagrid/datagrid-filter.d.ts +3 -0
- package/data/datagrid/datagrid-footer.d.ts +3 -0
- package/data/datagrid/datagrid-hideable-column.d.ts +3 -0
- package/data/datagrid/datagrid-if-detail.d.ts +3 -0
- package/data/datagrid/datagrid-if-expanded.service.d.ts +3 -0
- package/data/datagrid/datagrid-items-trackby.d.ts +3 -0
- package/data/datagrid/datagrid-items.d.ts +3 -0
- package/data/datagrid/datagrid-page-size.d.ts +3 -0
- package/data/datagrid/datagrid-pagination.d.ts +3 -0
- package/data/datagrid/datagrid-placeholder.d.ts +3 -0
- package/data/datagrid/datagrid-row-detail.d.ts +3 -0
- package/data/datagrid/datagrid-row.d.ts +3 -0
- package/data/datagrid/datagrid.d.ts +3 -0
- package/data/datagrid/datagrid.module.d.ts +53 -0
- package/data/datagrid/providers/column-resizer.service.d.ts +3 -0
- package/data/datagrid/providers/columns.service.d.ts +3 -0
- package/data/datagrid/providers/detail.service.d.ts +3 -0
- package/data/datagrid/providers/display-mode.service.d.ts +3 -0
- package/data/datagrid/providers/filters.d.ts +3 -0
- package/data/datagrid/providers/global-expandable-rows.d.ts +3 -0
- package/data/datagrid/providers/items.d.ts +3 -0
- package/data/datagrid/providers/page.d.ts +3 -0
- package/data/datagrid/providers/row-action-service.d.ts +3 -0
- package/data/datagrid/providers/selection.d.ts +3 -0
- package/data/datagrid/providers/sort.d.ts +3 -0
- package/data/datagrid/providers/state-debouncer.provider.d.ts +3 -0
- package/data/datagrid/providers/state.provider.d.ts +3 -0
- package/data/datagrid/providers/table-size.service.d.ts +3 -0
- package/data/datagrid/render/cell-renderer.d.ts +3 -0
- package/data/datagrid/render/header-renderer.d.ts +3 -0
- package/data/datagrid/render/main-renderer.d.ts +3 -0
- package/data/datagrid/render/noop-dom-adapter.d.ts +4 -1
- package/data/datagrid/render/render-organizer.d.ts +3 -0
- package/data/datagrid/render/row-renderer.d.ts +3 -0
- package/data/datagrid/utils/datagrid-filter-registrar.d.ts +3 -0
- package/data/datagrid/wrapped-cell.d.ts +3 -0
- package/data/datagrid/wrapped-column.d.ts +3 -0
- package/data/datagrid/wrapped-row.d.ts +3 -0
- package/data/stack-view/stack-block.d.ts +3 -0
- package/data/stack-view/stack-content-input.d.ts +3 -0
- package/data/stack-view/stack-header.d.ts +3 -0
- package/data/stack-view/stack-input.d.ts +3 -6
- package/data/stack-view/stack-select.d.ts +3 -5
- package/data/stack-view/stack-view-custom-tags.d.ts +3 -0
- package/data/stack-view/stack-view.d.ts +3 -0
- package/data/stack-view/stack-view.module.d.ts +15 -0
- package/data/tree-view/recursive-children.d.ts +3 -0
- package/data/tree-view/recursive-for-of.d.ts +3 -0
- package/data/tree-view/tree-features.service.d.ts +3 -0
- package/data/tree-view/tree-focus-manager.service.d.ts +3 -0
- package/data/tree-view/tree-node-link.d.ts +3 -0
- package/data/tree-view/tree-node.d.ts +3 -0
- package/data/tree-view/tree-view.module.d.ts +12 -0
- package/data/tree-view/tree.d.ts +3 -0
- package/emphasis/alert/alert-item.d.ts +3 -0
- package/emphasis/alert/alert-text.d.ts +3 -0
- package/emphasis/alert/alert.d.ts +4 -0
- package/emphasis/alert/alert.module.d.ts +12 -0
- package/emphasis/alert/alerts-pager.d.ts +3 -0
- package/emphasis/alert/alerts.d.ts +3 -0
- package/emphasis/alert/providers/icon-and-types.service.d.ts +3 -0
- package/emphasis/alert/providers/multi-alert.service.d.ts +5 -1
- package/emphasis/emphasis.module.d.ts +5 -0
- package/esm2020/accordion/accordion-content.mjs +20 -0
- package/esm2020/accordion/accordion-description.mjs +21 -0
- package/esm2020/accordion/accordion-panel.mjs +108 -0
- package/esm2020/accordion/accordion-title.mjs +21 -0
- package/esm2020/accordion/accordion.mjs +61 -0
- package/esm2020/accordion/accordion.module.mjs +55 -0
- package/esm2020/accordion/chocolate/accordion-oompa-loompa.mjs +31 -0
- package/esm2020/accordion/chocolate/accordion-willy-wonka.mjs +17 -0
- package/{esm2015/accordion/enums/accordion-status.enum.js → esm2020/accordion/enums/accordion-status.enum.mjs} +0 -0
- package/{esm2015/accordion/enums/accordion-strategy.enum.js → esm2020/accordion/enums/accordion-strategy.enum.mjs} +0 -0
- package/{esm2015/accordion/index.js → esm2020/accordion/index.mjs} +0 -0
- package/{esm2015/accordion/models/accordion.model.js → esm2020/accordion/models/accordion.model.mjs} +0 -0
- package/esm2020/accordion/providers/accordion.service.mjs +47 -0
- package/esm2020/accordion/stepper/chocolate/stepper-oompa-loompa.mjs +31 -0
- package/esm2020/accordion/stepper/chocolate/stepper-willy-wonka.mjs +17 -0
- package/{esm2015/accordion/stepper/index.js → esm2020/accordion/stepper/index.mjs} +0 -0
- package/{esm2015/accordion/stepper/models/stepper.model.js → esm2020/accordion/stepper/models/stepper.model.mjs} +0 -0
- package/esm2020/accordion/stepper/providers/stepper.service.mjs +55 -0
- package/esm2020/accordion/stepper/step-button.mjs +51 -0
- package/esm2020/accordion/stepper/stepper-panel.mjs +89 -0
- package/esm2020/accordion/stepper/stepper.mjs +93 -0
- package/esm2020/accordion/stepper/stepper.module.mjs +30 -0
- package/{esm2015/accordion/utils/animation.js → esm2020/accordion/utils/animation.mjs} +0 -0
- package/esm2020/button/button-group/button-group.mjs +140 -0
- package/esm2020/button/button-group/button-group.module.mjs +27 -0
- package/{esm2015/button/button-group/button.js → esm2020/button/button-group/button.mjs} +57 -24
- package/{esm2015/button/button-group/index.js → esm2020/button/button-group/index.mjs} +0 -0
- package/{esm2015/button/button-loading/index.js → esm2020/button/button-loading/index.mjs} +0 -0
- package/esm2020/button/button-loading/loading-button.mjs +153 -0
- package/esm2020/button/button-loading/loading-button.module.mjs +24 -0
- package/esm2020/button/button.module.mjs +25 -0
- package/{esm2015/button/index.js → esm2020/button/index.mjs} +0 -0
- package/esm2020/button/providers/button-in-group.service.mjs +25 -0
- package/esm2020/clr-angular.mjs +5 -0
- package/esm2020/clr-angular.module.mjs +96 -0
- package/esm2020/data/data.module.mjs +20 -0
- package/{esm2015/data/datagrid/built-in/comparators/datagrid-property-comparator.js → esm2020/data/datagrid/built-in/comparators/datagrid-property-comparator.mjs} +0 -0
- package/{esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.js → esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter-impl.mjs} +0 -0
- package/esm2020/data/datagrid/built-in/filters/datagrid-numeric-filter.mjs +200 -0
- package/{esm2015/data/datagrid/built-in/filters/datagrid-property-numeric-filter.js → esm2020/data/datagrid/built-in/filters/datagrid-property-numeric-filter.mjs} +0 -0
- package/{esm2015/data/datagrid/built-in/filters/datagrid-property-string-filter.js → esm2020/data/datagrid/built-in/filters/datagrid-property-string-filter.mjs} +0 -0
- package/{esm2015/data/datagrid/built-in/filters/datagrid-string-filter-impl.js → esm2020/data/datagrid/built-in/filters/datagrid-string-filter-impl.mjs} +0 -0
- package/esm2020/data/datagrid/built-in/filters/datagrid-string-filter.mjs +131 -0
- package/{esm2015/data/datagrid/built-in/nested-property.js → esm2020/data/datagrid/built-in/nested-property.mjs} +0 -0
- package/esm2020/data/datagrid/chocolate/actionable-oompa-loompa.mjs +31 -0
- package/esm2020/data/datagrid/chocolate/datagrid-willy-wonka.mjs +17 -0
- package/esm2020/data/datagrid/chocolate/expandable-oompa-loompa.mjs +31 -0
- package/esm2020/data/datagrid/datagrid-action-bar.mjs +20 -0
- package/esm2020/data/datagrid/datagrid-action-overflow.mjs +161 -0
- package/esm2020/data/datagrid/datagrid-cell.mjs +39 -0
- package/esm2020/data/datagrid/datagrid-column-separator.mjs +172 -0
- package/esm2020/data/datagrid/datagrid-column-toggle-button.mjs +63 -0
- package/esm2020/data/datagrid/datagrid-column-toggle-title.mjs +20 -0
- package/esm2020/data/datagrid/datagrid-column-toggle.mjs +229 -0
- package/esm2020/data/datagrid/datagrid-column.mjs +430 -0
- package/esm2020/data/datagrid/datagrid-detail-body.mjs +30 -0
- package/esm2020/data/datagrid/datagrid-detail-header.mjs +61 -0
- package/esm2020/data/datagrid/datagrid-detail-registerer.mjs +34 -0
- package/esm2020/data/datagrid/datagrid-detail.mjs +70 -0
- package/esm2020/data/datagrid/datagrid-filter.mjs +182 -0
- package/esm2020/data/datagrid/datagrid-footer.mjs +79 -0
- package/esm2020/data/datagrid/datagrid-hideable-column.mjs +104 -0
- package/esm2020/data/datagrid/datagrid-if-detail.mjs +63 -0
- package/esm2020/data/datagrid/datagrid-if-expanded.service.mjs +54 -0
- package/esm2020/data/datagrid/datagrid-items-trackby.mjs +32 -0
- package/esm2020/data/datagrid/datagrid-items.mjs +63 -0
- package/esm2020/data/datagrid/datagrid-page-size.mjs +47 -0
- package/esm2020/data/datagrid/datagrid-pagination.mjs +362 -0
- package/esm2020/data/datagrid/datagrid-placeholder.mjs +41 -0
- package/esm2020/data/datagrid/datagrid-row-detail.mjs +90 -0
- package/esm2020/data/datagrid/datagrid-row.mjs +241 -0
- package/esm2020/data/datagrid/datagrid.mjs +349 -0
- package/esm2020/data/datagrid/datagrid.module.mjs +237 -0
- package/esm2020/data/datagrid/enums/column-changes.enum.mjs +14 -0
- package/{esm2015/data/datagrid/enums/display-mode.enum.js → esm2020/data/datagrid/enums/display-mode.enum.mjs} +0 -0
- package/{esm2015/data/datagrid/enums/render-step.enum.js → esm2020/data/datagrid/enums/render-step.enum.mjs} +0 -0
- package/{esm2015/data/datagrid/enums/selection-type.js → esm2020/data/datagrid/enums/selection-type.mjs} +0 -0
- package/{esm2015/data/datagrid/enums/sort-order.enum.js → esm2020/data/datagrid/enums/sort-order.enum.mjs} +0 -0
- package/{esm2015/data/datagrid/index.js → esm2020/data/datagrid/index.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/column-state.interface.js → esm2020/data/datagrid/interfaces/column-state.interface.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/comparator.interface.js → esm2020/data/datagrid/interfaces/comparator.interface.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/filter.interface.js → esm2020/data/datagrid/interfaces/filter.interface.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/numeric-filter.interface.js → esm2020/data/datagrid/interfaces/numeric-filter.interface.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/state.interface.js → esm2020/data/datagrid/interfaces/state.interface.mjs} +0 -0
- package/{esm2015/data/datagrid/interfaces/string-filter.interface.js → esm2020/data/datagrid/interfaces/string-filter.interface.mjs} +0 -0
- package/esm2020/data/datagrid/providers/column-resizer.service.mjs +57 -0
- package/{esm2015/data/datagrid/providers/column-state.provider.js → esm2020/data/datagrid/providers/column-state.provider.mjs} +0 -0
- package/esm2020/data/datagrid/providers/columns.service.mjs +53 -0
- package/{esm2015/data/datagrid/providers/custom-filter.js → esm2020/data/datagrid/providers/custom-filter.mjs} +0 -0
- package/esm2020/data/datagrid/providers/detail.service.mjs +61 -0
- package/esm2020/data/datagrid/providers/display-mode.service.mjs +35 -0
- package/esm2020/data/datagrid/providers/filters.mjs +111 -0
- package/esm2020/data/datagrid/providers/global-expandable-rows.mjs +33 -0
- package/esm2020/data/datagrid/providers/items.mjs +173 -0
- package/esm2020/data/datagrid/providers/page.mjs +155 -0
- package/esm2020/data/datagrid/providers/row-action-service.mjs +30 -0
- package/esm2020/data/datagrid/providers/selection.mjs +374 -0
- package/esm2020/data/datagrid/providers/sort.mjs +85 -0
- package/esm2020/data/datagrid/providers/state-debouncer.provider.mjs +42 -0
- package/esm2020/data/datagrid/providers/state.provider.mjs +74 -0
- package/esm2020/data/datagrid/providers/table-size.service.mjs +44 -0
- package/esm2020/data/datagrid/render/cell-renderer.mjs +81 -0
- package/{esm2015/data/datagrid/render/constants.js → esm2020/data/datagrid/render/constants.mjs} +0 -0
- package/esm2020/data/datagrid/render/header-renderer.mjs +132 -0
- package/esm2020/data/datagrid/render/main-renderer.mjs +198 -0
- package/esm2020/data/datagrid/render/noop-dom-adapter.mjs +54 -0
- package/esm2020/data/datagrid/render/render-organizer.mjs +38 -0
- package/esm2020/data/datagrid/render/row-renderer.mjs +58 -0
- package/esm2020/data/datagrid/utils/datagrid-filter-registrar.mjs +42 -0
- package/esm2020/data/datagrid/wrapped-cell.mjs +39 -0
- package/esm2020/data/datagrid/wrapped-column.mjs +40 -0
- package/esm2020/data/datagrid/wrapped-row.mjs +40 -0
- package/{esm2015/data/index.js → esm2020/data/index.mjs} +0 -0
- package/{esm2015/data/stack-view/index.js → esm2020/data/stack-view/index.mjs} +0 -0
- package/esm2020/data/stack-view/stack-block.mjs +214 -0
- package/esm2020/data/stack-view/stack-content-input.mjs +29 -0
- package/{esm2015/data/stack-view/stack-control.js → esm2020/data/stack-view/stack-control.mjs} +0 -0
- package/esm2020/data/stack-view/stack-header.mjs +68 -0
- package/{esm2015/data/stack-view/stack-input.js → esm2020/data/stack-view/stack-input.mjs} +20 -14
- package/esm2020/data/stack-view/stack-select.mjs +48 -0
- package/esm2020/data/stack-view/stack-view-custom-tags.mjs +16 -0
- package/esm2020/data/stack-view/stack-view.mjs +57 -0
- package/esm2020/data/stack-view/stack-view.module.mjs +69 -0
- package/{esm2015/data/tree-view/index.js → esm2020/data/tree-view/index.mjs} +0 -0
- package/{esm2015/data/tree-view/models/async-array.js → esm2020/data/tree-view/models/async-array.mjs} +0 -0
- package/{esm2015/data/tree-view/models/declarative-tree-node.model.js → esm2020/data/tree-view/models/declarative-tree-node.model.mjs} +0 -0
- package/{esm2015/data/tree-view/models/recursive-tree-node.model.js → esm2020/data/tree-view/models/recursive-tree-node.model.mjs} +0 -0
- package/{esm2015/data/tree-view/models/selected-state.enum.js → esm2020/data/tree-view/models/selected-state.enum.mjs} +0 -0
- package/{esm2015/data/tree-view/models/tree-node.model.js → esm2020/data/tree-view/models/tree-node.model.mjs} +0 -0
- package/esm2020/data/tree-view/recursive-children.mjs +81 -0
- package/esm2020/data/tree-view/recursive-for-of.mjs +54 -0
- package/esm2020/data/tree-view/tree-features.service.mjs +37 -0
- package/esm2020/data/tree-view/tree-focus-manager.service.mjs +121 -0
- package/esm2020/data/tree-view/tree-node-link.mjs +26 -0
- package/esm2020/data/tree-view/tree-node.mjs +279 -0
- package/esm2020/data/tree-view/tree-view.module.mjs +34 -0
- package/esm2020/data/tree-view/tree.mjs +91 -0
- package/esm2020/emphasis/alert/alert-item.mjs +43 -0
- package/esm2020/emphasis/alert/alert-text.mjs +22 -0
- package/esm2020/emphasis/alert/alert.mjs +119 -0
- package/esm2020/emphasis/alert/alert.module.mjs +34 -0
- package/esm2020/emphasis/alert/alerts-pager.mjs +72 -0
- package/esm2020/emphasis/alert/alerts.mjs +100 -0
- package/{esm2015/emphasis/alert/index.js → esm2020/emphasis/alert/index.mjs} +0 -0
- package/esm2020/emphasis/alert/providers/icon-and-types.service.mjs +74 -0
- package/esm2020/emphasis/alert/providers/multi-alert.service.mjs +96 -0
- package/{esm2015/emphasis/alert/utils/alert-info-object.js → esm2020/emphasis/alert/utils/alert-info-object.mjs} +0 -0
- package/{esm2015/emphasis/alert/utils/alert-types.js → esm2020/emphasis/alert/utils/alert-types.mjs} +0 -0
- package/esm2020/emphasis/emphasis.module.mjs +18 -0
- package/{esm2015/emphasis/index.js → esm2020/emphasis/index.mjs} +0 -0
- package/esm2020/forms/checkbox/checkbox-container.mjs +127 -0
- package/esm2020/forms/checkbox/checkbox-wrapper.mjs +68 -0
- package/esm2020/forms/checkbox/checkbox.mjs +43 -0
- package/esm2020/forms/checkbox/checkbox.module.mjs +33 -0
- package/{esm2015/forms/checkbox/index.js → esm2020/forms/checkbox/index.mjs} +0 -0
- package/esm2020/forms/combobox/combobox-container.mjs +109 -0
- package/esm2020/forms/combobox/combobox.mjs +363 -0
- package/esm2020/forms/combobox/combobox.module.mjs +81 -0
- package/{esm2015/forms/combobox/index.js → esm2020/forms/combobox/index.mjs} +0 -0
- package/{esm2015/forms/combobox/model/combobox.model.js → esm2020/forms/combobox/model/combobox.model.mjs} +0 -0
- package/{esm2015/forms/combobox/model/multi-select-combobox.model.js → esm2020/forms/combobox/model/multi-select-combobox.model.mjs} +0 -0
- package/{esm2015/forms/combobox/model/pseudo-focus.model.js → esm2020/forms/combobox/model/pseudo-focus.model.mjs} +0 -0
- package/{esm2015/forms/combobox/model/single-select-combobox.model.js → esm2020/forms/combobox/model/single-select-combobox.model.mjs} +0 -0
- package/esm2020/forms/combobox/option-items.directive.mjs +97 -0
- package/esm2020/forms/combobox/option-selected.directive.mjs +22 -0
- package/esm2020/forms/combobox/option.mjs +102 -0
- package/esm2020/forms/combobox/options.mjs +152 -0
- package/esm2020/forms/combobox/providers/combobox-container.service.mjs +18 -0
- package/esm2020/forms/combobox/providers/combobox-focus-handler.service.mjs +215 -0
- package/esm2020/forms/combobox/providers/option-selection.service.mjs +81 -0
- package/esm2020/forms/common/abstract-container.mjs +119 -0
- package/esm2020/forms/common/abstract-control.mjs +50 -0
- package/esm2020/forms/common/common.module.mjs +78 -0
- package/esm2020/forms/common/control-container.mjs +83 -0
- package/esm2020/forms/common/control.mjs +27 -0
- package/esm2020/forms/common/error.mjs +36 -0
- package/esm2020/forms/common/form.mjs +53 -0
- package/esm2020/forms/common/helper.mjs +36 -0
- package/esm2020/forms/common/if-control-state/abstract-if-state.mjs +44 -0
- package/esm2020/forms/common/if-control-state/if-control-state.service.mjs +56 -0
- package/esm2020/forms/common/if-control-state/if-error.mjs +68 -0
- package/esm2020/forms/common/if-control-state/if-success.mjs +45 -0
- package/{esm2015/forms/common/index.js → esm2020/forms/common/index.mjs} +0 -0
- package/esm2020/forms/common/label.mjs +67 -0
- package/esm2020/forms/common/layout.mjs +31 -0
- package/esm2020/forms/common/providers/container-id.service.mjs +33 -0
- package/esm2020/forms/common/providers/control-class.service.mjs +52 -0
- package/esm2020/forms/common/providers/control-id.service.mjs +31 -0
- package/esm2020/forms/common/providers/focus.service.mjs +25 -0
- package/esm2020/forms/common/providers/layout.service.mjs +57 -0
- package/esm2020/forms/common/providers/mark-control.service.mjs +25 -0
- package/esm2020/forms/common/providers/ng-control.service.mjs +33 -0
- package/esm2020/forms/common/success.mjs +36 -0
- package/esm2020/forms/common/wrapped-control.mjs +156 -0
- package/esm2020/forms/datalist/datalist-container.mjs +122 -0
- package/esm2020/forms/datalist/datalist-input.mjs +62 -0
- package/esm2020/forms/datalist/datalist.mjs +48 -0
- package/esm2020/forms/datalist/datalist.module.mjs +31 -0
- package/{esm2015/forms/datalist/index.js → esm2020/forms/datalist/index.mjs} +0 -0
- package/esm2020/forms/datalist/providers/datalist-id.service.mjs +31 -0
- package/esm2020/forms/datepicker/calendar.mjs +118 -0
- package/esm2020/forms/datepicker/date-container.mjs +249 -0
- package/esm2020/forms/datepicker/date-input.mjs +290 -0
- package/esm2020/forms/datepicker/datepicker-view-manager.mjs +46 -0
- package/esm2020/forms/datepicker/datepicker.module.mjs +87 -0
- package/esm2020/forms/datepicker/day.mjs +86 -0
- package/esm2020/forms/datepicker/daypicker.mjs +80 -0
- package/{esm2015/forms/datepicker/index.js → esm2020/forms/datepicker/index.mjs} +0 -0
- package/{esm2015/forms/datepicker/interfaces/date-range.interface.js → esm2020/forms/datepicker/interfaces/date-range.interface.mjs} +0 -0
- package/{esm2015/forms/datepicker/interfaces/day-of-week.interface.js → esm2020/forms/datepicker/interfaces/day-of-week.interface.mjs} +0 -0
- package/{esm2015/forms/datepicker/model/calendar-view.model.js → esm2020/forms/datepicker/model/calendar-view.model.mjs} +0 -0
- package/{esm2015/forms/datepicker/model/calendar.model.js → esm2020/forms/datepicker/model/calendar.model.mjs} +0 -0
- package/{esm2015/forms/datepicker/model/day-view.model.js → esm2020/forms/datepicker/model/day-view.model.mjs} +0 -0
- package/{esm2015/forms/datepicker/model/day.model.js → esm2020/forms/datepicker/model/day.model.mjs} +0 -0
- package/{esm2015/forms/datepicker/model/year-range.model.js → esm2020/forms/datepicker/model/year-range.model.mjs} +0 -0
- package/esm2020/forms/datepicker/monthpicker.mjs +125 -0
- package/esm2020/forms/datepicker/providers/date-form-control.service.mjs +36 -0
- package/esm2020/forms/datepicker/providers/date-io.service.mjs +176 -0
- package/esm2020/forms/datepicker/providers/date-navigation.service.mjs +130 -0
- package/esm2020/forms/datepicker/providers/datepicker-enabled.service.mjs +46 -0
- package/esm2020/forms/datepicker/providers/datepicker-focus.service.mjs +47 -0
- package/esm2020/forms/datepicker/providers/locale-helper.service.mjs +101 -0
- package/esm2020/forms/datepicker/providers/view-manager.service.mjs +41 -0
- package/{esm2015/forms/datepicker/utils/constants.js → esm2020/forms/datepicker/utils/constants.mjs} +0 -0
- package/{esm2015/forms/datepicker/utils/date-utils.js → esm2020/forms/datepicker/utils/date-utils.mjs} +0 -0
- package/esm2020/forms/datepicker/yearpicker.mjs +231 -0
- package/esm2020/forms/forms.module.mjs +64 -0
- package/{esm2015/forms/index.js → esm2020/forms/index.mjs} +0 -0
- package/{esm2015/forms/input/index.js → esm2020/forms/input/index.mjs} +0 -0
- package/{esm2015/forms/input/input-container.js → esm2020/forms/input/input-container.mjs} +44 -13
- package/esm2020/forms/input/input.mjs +27 -0
- package/esm2020/forms/input/input.module.mjs +33 -0
- package/{esm2015/forms/password/index.js → esm2020/forms/password/index.mjs} +0 -0
- package/esm2020/forms/password/password-container.mjs +175 -0
- package/esm2020/forms/password/password.mjs +61 -0
- package/esm2020/forms/password/password.module.mjs +32 -0
- package/{esm2015/forms/radio/index.js → esm2020/forms/radio/index.mjs} +0 -0
- package/esm2020/forms/radio/radio-container.mjs +127 -0
- package/esm2020/forms/radio/radio-wrapper.mjs +49 -0
- package/esm2020/forms/radio/radio.mjs +26 -0
- package/esm2020/forms/radio/radio.module.mjs +33 -0
- package/{esm2015/forms/range/index.js → esm2020/forms/range/index.mjs} +0 -0
- package/esm2020/forms/range/range-container.mjs +124 -0
- package/esm2020/forms/range/range.mjs +26 -0
- package/esm2020/forms/range/range.module.mjs +32 -0
- package/{esm2015/forms/select/index.js → esm2020/forms/select/index.mjs} +0 -0
- package/esm2020/forms/select/select-container.mjs +113 -0
- package/esm2020/forms/select/select.mjs +27 -0
- package/esm2020/forms/select/select.module.mjs +32 -0
- package/{esm2015/forms/textarea/index.js → esm2020/forms/textarea/index.mjs} +0 -0
- package/esm2020/forms/textarea/textarea-container.mjs +83 -0
- package/esm2020/forms/textarea/textarea.mjs +27 -0
- package/esm2020/forms/textarea/textarea.module.mjs +32 -0
- package/esm2020/icon/icon.mjs +24 -0
- package/esm2020/icon/icon.module.mjs +20 -0
- package/{esm2015/icon/index.js → esm2020/icon/index.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +0 -0
- package/{esm2015/layout/index.js → esm2020/layout/index.mjs} +0 -0
- package/esm2020/layout/layout.module.mjs +21 -0
- package/{esm2015/layout/main-container/index.js → esm2020/layout/main-container/index.mjs} +0 -0
- package/esm2020/layout/main-container/main-container.mjs +58 -0
- package/esm2020/layout/main-container/main-container.module.mjs +25 -0
- package/{esm2015/layout/nav/chocolate/index.js → esm2020/layout/nav/chocolate/index.mjs} +0 -0
- package/esm2020/layout/nav/chocolate/main-container-willy-wonka.mjs +17 -0
- package/esm2020/layout/nav/chocolate/nav-detection-oompa-loompa.mjs +33 -0
- package/esm2020/layout/nav/header.mjs +120 -0
- package/{esm2015/layout/nav/index.js → esm2020/layout/nav/index.mjs} +0 -0
- package/esm2020/layout/nav/nav-level.mjs +81 -0
- package/esm2020/layout/nav/navigation.module.mjs +40 -0
- package/{esm2015/layout/nav/providers/responsive-navigation.service.js → esm2020/layout/nav/providers/responsive-navigation.service.mjs} +7 -6
- package/{esm2015/layout/nav/responsive-nav-codes.js → esm2020/layout/nav/responsive-nav-codes.mjs} +0 -0
- package/{esm2015/layout/nav/responsive-nav-control-message.js → esm2020/layout/nav/responsive-nav-control-message.mjs} +0 -0
- package/esm2020/layout/tabs/chocolate/active-oompa-loompa.mjs +36 -0
- package/esm2020/layout/tabs/chocolate/tabs-willy-wonka.mjs +17 -0
- package/{esm2015/layout/tabs/enums/tabs-layout.enum.js → esm2020/layout/tabs/enums/tabs-layout.enum.mjs} +0 -0
- package/{esm2015/layout/tabs/index.js → esm2020/layout/tabs/index.mjs} +0 -0
- package/esm2020/layout/tabs/providers/tabs.service.mjs +45 -0
- package/esm2020/layout/tabs/tab-content.mjs +96 -0
- package/esm2020/layout/tabs/tab-link.directive.mjs +115 -0
- package/esm2020/layout/tabs/tab-overflow-content.mjs +22 -0
- package/esm2020/layout/tabs/tab.mjs +47 -0
- package/{esm2015/layout/tabs/tabs-id.provider.js → esm2020/layout/tabs/tabs-id.provider.mjs} +0 -0
- package/esm2020/layout/tabs/tabs.mjs +312 -0
- package/esm2020/layout/tabs/tabs.module.mjs +58 -0
- package/{esm2015/layout/vertical-nav/index.js → esm2020/layout/vertical-nav/index.mjs} +0 -0
- package/esm2020/layout/vertical-nav/providers/vertical-nav-group-registration.service.mjs +24 -0
- package/esm2020/layout/vertical-nav/providers/vertical-nav-group.service.mjs +25 -0
- package/esm2020/layout/vertical-nav/providers/vertical-nav-icon.service.mjs +27 -0
- package/esm2020/layout/vertical-nav/providers/vertical-nav.service.mjs +54 -0
- package/esm2020/layout/vertical-nav/vertical-nav-group-children.mjs +19 -0
- package/esm2020/layout/vertical-nav/vertical-nav-group.mjs +162 -0
- package/esm2020/layout/vertical-nav/vertical-nav-icon.mjs +24 -0
- package/esm2020/layout/vertical-nav/vertical-nav-link.mjs +44 -0
- package/esm2020/layout/vertical-nav/vertical-nav.mjs +79 -0
- package/esm2020/layout/vertical-nav/vertical-nav.module.mjs +49 -0
- package/{esm2015/modal/index.js → esm2020/modal/index.mjs} +0 -0
- package/esm2020/modal/modal-body.mjs +59 -0
- package/esm2020/modal/modal.mjs +145 -0
- package/esm2020/modal/modal.module.mjs +32 -0
- package/esm2020/popover/common/abstract-popover.mjs +123 -0
- package/{esm2015/popover/common/popover-host-anchor.token.js → esm2020/popover/common/popover-host-anchor.token.mjs} +0 -0
- package/{esm2015/popover/common/popover-options.interface.js → esm2020/popover/common/popover-options.interface.mjs} +0 -0
- package/{esm2015/popover/common/popover.js → esm2020/popover/common/popover.mjs} +0 -0
- package/esm2020/popover/dropdown/dropdown-item.mjs +88 -0
- package/esm2020/popover/dropdown/dropdown-menu.mjs +114 -0
- package/esm2020/popover/dropdown/dropdown-trigger.mjs +48 -0
- package/esm2020/popover/dropdown/dropdown.mjs +62 -0
- package/esm2020/popover/dropdown/dropdown.module.mjs +29 -0
- package/{esm2015/popover/dropdown/index.js → esm2020/popover/dropdown/index.mjs} +0 -0
- package/{esm2015/popover/dropdown/menu-positions.js → esm2020/popover/dropdown/menu-positions.mjs} +0 -0
- package/esm2020/popover/dropdown/providers/dropdown-focus-handler.service.mjs +186 -0
- package/esm2020/popover/dropdown/providers/dropdown.service.mjs +33 -0
- package/{esm2015/popover/index.js → esm2020/popover/index.mjs} +0 -0
- package/esm2020/popover/popover.module.mjs +20 -0
- package/{esm2015/popover/signpost/index.js → esm2020/popover/signpost/index.mjs} +0 -0
- package/esm2020/popover/signpost/providers/signpost-focus-manager.service.mjs +23 -0
- package/esm2020/popover/signpost/providers/signpost-id.service.mjs +26 -0
- package/esm2020/popover/signpost/signpost-content.mjs +177 -0
- package/{esm2015/popover/signpost/signpost-positions.js → esm2020/popover/signpost/signpost-positions.mjs} +0 -0
- package/esm2020/popover/signpost/signpost-trigger.mjs +96 -0
- package/esm2020/popover/signpost/signpost.mjs +89 -0
- package/esm2020/popover/signpost/signpost.module.mjs +33 -0
- package/{esm2015/popover/tooltip/index.js → esm2020/popover/tooltip/index.mjs} +0 -0
- package/esm2020/popover/tooltip/providers/tooltip-id.service.mjs +25 -0
- package/esm2020/popover/tooltip/tooltip-content.mjs +132 -0
- package/esm2020/popover/tooltip/tooltip-trigger.mjs +54 -0
- package/esm2020/popover/tooltip/tooltip.mjs +41 -0
- package/esm2020/popover/tooltip/tooltip.module.mjs +28 -0
- package/{esm2015/progress/progress-bars/index.js → esm2020/progress/progress-bars/index.mjs} +0 -0
- package/{esm2015/progress/progress-bars/progress-bar.js → esm2020/progress/progress-bars/progress-bar.mjs} +75 -30
- package/esm2020/progress/progress-bars/progress-bar.module.mjs +24 -0
- package/{esm2015/progress/spinner/index.js → esm2020/progress/spinner/index.mjs} +0 -0
- package/esm2020/progress/spinner/spinner.mjs +83 -0
- package/esm2020/progress/spinner/spinner.module.mjs +24 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/timeline/enums/timeline-layout.enum.js → esm2020/timeline/enums/timeline-layout.enum.mjs} +0 -0
- package/{esm2015/timeline/enums/timeline-step-state.enum.js → esm2020/timeline/enums/timeline-step-state.enum.mjs} +0 -0
- package/{esm2015/timeline/index.js → esm2020/timeline/index.mjs} +0 -0
- package/{esm2015/timeline/interface/icon-attribute.interface.js → esm2020/timeline/interface/icon-attribute.interface.mjs} +0 -0
- package/esm2020/timeline/providers/timeline-icon-attribute.service.mjs +54 -0
- package/esm2020/timeline/timeline-step-description.mjs +20 -0
- package/esm2020/timeline/timeline-step-header.mjs +20 -0
- package/esm2020/timeline/timeline-step-title.mjs +30 -0
- package/esm2020/timeline/timeline-step.mjs +101 -0
- package/esm2020/timeline/timeline.mjs +35 -0
- package/esm2020/timeline/timeline.module.mjs +48 -0
- package/esm2020/utils/a11y/aria-live.service.mjs +163 -0
- package/{esm2015/utils/a11y/index.js → esm2020/utils/a11y/index.mjs} +0 -0
- package/{esm2015/utils/animations/collapse/collapse.js → esm2020/utils/animations/collapse/collapse.mjs} +0 -0
- package/{esm2015/utils/animations/collapse/index.js → esm2020/utils/animations/collapse/index.mjs} +0 -0
- package/{esm2015/utils/animations/constants.js → esm2020/utils/animations/constants.mjs} +0 -0
- package/esm2020/utils/animations/expandable-animation/expandable-animation.mjs +70 -0
- package/esm2020/utils/animations/expandable-animation/expandable-animation.module.mjs +24 -0
- package/{esm2015/utils/animations/expandable-animation/index.js → esm2020/utils/animations/expandable-animation/index.mjs} +0 -0
- package/{esm2015/utils/animations/fade/fade.js → esm2020/utils/animations/fade/fade.mjs} +0 -0
- package/{esm2015/utils/animations/fade/index.js → esm2020/utils/animations/fade/index.mjs} +0 -0
- package/{esm2015/utils/animations/fade-slide/fade-slide.js → esm2020/utils/animations/fade-slide/fade-slide.mjs} +0 -0
- package/{esm2015/utils/animations/fade-slide/index.js → esm2020/utils/animations/fade-slide/index.mjs} +0 -0
- package/{esm2015/utils/animations/index.js → esm2020/utils/animations/index.mjs} +0 -0
- package/{esm2015/utils/animations/slide/index.js → esm2020/utils/animations/slide/index.mjs} +0 -0
- package/{esm2015/utils/animations/slide/slide.js → esm2020/utils/animations/slide/slide.mjs} +0 -0
- package/esm2020/utils/aria/aria.service.mjs +16 -0
- package/{esm2015/utils/breakpoints/breakpoints.js → esm2020/utils/breakpoints/breakpoints.mjs} +0 -0
- package/esm2020/utils/chocolate/oompa-loompa.mjs +32 -0
- package/esm2020/utils/chocolate/willy-wonka.mjs +36 -0
- package/{esm2015/utils/component/is-boolean-attribute-set.js → esm2020/utils/component/is-boolean-attribute-set.mjs} +0 -0
- package/esm2020/utils/conditional/conditional.module.mjs +22 -0
- package/esm2020/utils/conditional/if-active.directive.mjs +104 -0
- package/esm2020/utils/conditional/if-active.service.mjs +77 -0
- package/esm2020/utils/conditional/if-expanded.directive.mjs +92 -0
- package/esm2020/utils/conditional/if-expanded.service.mjs +58 -0
- package/esm2020/utils/conditional/if-open.directive.mjs +87 -0
- package/{esm2015/utils/conditional/index.js → esm2020/utils/conditional/index.mjs} +0 -0
- package/esm2020/utils/dom-adapter/dom-adapter.mjs +52 -0
- package/esm2020/utils/drag-and-drop/drag-and-drop.module.mjs +43 -0
- package/{esm2015/utils/drag-and-drop/drag-event.js → esm2020/utils/drag-and-drop/drag-event.mjs} +0 -0
- package/esm2020/utils/drag-and-drop/drag-handle.mjs +32 -0
- package/esm2020/utils/drag-and-drop/draggable/draggable.mjs +135 -0
- package/esm2020/utils/drag-and-drop/draggable-ghost.mjs +124 -0
- package/esm2020/utils/drag-and-drop/droppable/droppable.mjs +222 -0
- package/esm2020/utils/drag-and-drop/if-dragged.mjs +45 -0
- package/{esm2015/utils/drag-and-drop/index.js → esm2020/utils/drag-and-drop/index.mjs} +0 -0
- package/{esm2015/utils/drag-and-drop/interfaces/drag-event.interface.js → esm2020/utils/drag-and-drop/interfaces/drag-event.interface.mjs} +0 -0
- package/{esm2015/utils/drag-and-drop/interfaces/drop-tolerance.interface.js → esm2020/utils/drag-and-drop/interfaces/drop-tolerance.interface.mjs} +0 -0
- package/{esm2015/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.js → esm2020/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.mjs} +7 -5
- package/esm2020/utils/drag-and-drop/providers/drag-event-listener.service.mjs +179 -0
- package/esm2020/utils/drag-and-drop/providers/drag-handle-registrar.service.mjs +60 -0
- package/esm2020/utils/drag-and-drop/providers/draggable-snapshot.service.mjs +38 -0
- package/esm2020/utils/drag-and-drop/providers/global-drag-mode.service.mjs +26 -0
- package/{esm2015/utils/enums/key-codes.enum.js → esm2020/utils/enums/key-codes.enum.mjs} +0 -0
- package/{esm2015/utils/focus/arrow-key-direction.enum.js → esm2020/utils/focus/arrow-key-direction.enum.mjs} +0 -0
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.mjs +84 -0
- package/esm2020/utils/focus/focus-on-view-init/focus-on-view-init.module.mjs +26 -0
- package/{esm2015/utils/focus/focus-on-view-init/focus-on-view-init.provider.js → esm2020/utils/focus/focus-on-view-init/focus-on-view-init.provider.mjs} +0 -0
- package/{esm2015/utils/focus/focus-on-view-init/index.js → esm2020/utils/focus/focus-on-view-init/index.mjs} +0 -0
- package/esm2020/utils/focus/focus.service.mjs +94 -0
- package/esm2020/utils/focus/focusable-item/basic-focusable-item.service.mjs +58 -0
- package/{esm2015/utils/focus/focusable-item/custom-focusable-item-provider.js → esm2020/utils/focus/focusable-item/custom-focusable-item-provider.mjs} +0 -0
- package/{esm2015/utils/focus/focusable-item/focusable-item.js → esm2020/utils/focus/focusable-item/focusable-item.mjs} +0 -0
- package/{esm2015/utils/focus/focusable-item/linkers.js → esm2020/utils/focus/focusable-item/linkers.mjs} +0 -0
- package/{esm2015/utils/focus/key-focus/enums/focus-direction.enum.js → esm2020/utils/focus/key-focus/enums/focus-direction.enum.mjs} +0 -0
- package/{esm2015/utils/focus/key-focus/interfaces.js → esm2020/utils/focus/key-focus/interfaces.mjs} +0 -0
- package/esm2020/utils/focus/key-focus/key-focus-item.mjs +34 -0
- package/esm2020/utils/focus/key-focus/key-focus.mjs +194 -0
- package/esm2020/utils/focus/key-focus/key-focus.module.mjs +26 -0
- package/esm2020/utils/focus/key-focus/roving-tabindex.mjs +102 -0
- package/{esm2015/utils/focus/key-focus/util.js → esm2020/utils/focus/key-focus/util.mjs} +0 -0
- package/{esm2015/utils/focus/wrap-observable.js → esm2020/utils/focus/wrap-observable.mjs} +0 -0
- package/{esm2015/utils/focus-trap/focus-trap-config.interface.js → esm2020/utils/focus-trap/focus-trap-config.interface.mjs} +0 -0
- package/esm2020/utils/focus-trap/focus-trap-tracker.service.mjs +32 -0
- package/esm2020/utils/focus-trap/focus-trap.directive.mjs +156 -0
- package/esm2020/utils/focus-trap/focus-trap.module.mjs +24 -0
- package/{esm2015/utils/focus-trap/index.js → esm2020/utils/focus-trap/index.mjs} +0 -0
- package/{esm2015/utils/forms/validation.js → esm2020/utils/forms/validation.mjs} +0 -0
- package/{esm2015/utils/host-wrapping/dynamic-wrapper.js → esm2020/utils/host-wrapping/dynamic-wrapper.mjs} +0 -0
- package/esm2020/utils/host-wrapping/empty-anchor.mjs +18 -0
- package/{esm2015/utils/host-wrapping/host-wrapper.js → esm2020/utils/host-wrapping/host-wrapper.mjs} +0 -0
- package/esm2020/utils/host-wrapping/host-wrapping.module.mjs +21 -0
- package/{esm2015/utils/i18n/common-strings.default.js → esm2020/utils/i18n/common-strings.default.mjs} +6 -3
- package/{esm2015/utils/i18n/common-strings.interface.js → esm2020/utils/i18n/common-strings.interface.mjs} +1 -1
- package/esm2020/utils/i18n/common-strings.service.mjs +47 -0
- package/{esm2015/utils/i18n/index.js → esm2020/utils/i18n/index.mjs} +0 -0
- package/{esm2015/utils/id-generator/id-generator.service.js → esm2020/utils/id-generator/id-generator.service.mjs} +0 -0
- package/{esm2015/utils/index.js → esm2020/utils/index.mjs} +0 -0
- package/{esm2015/utils/key-codes/key-codes.js → esm2020/utils/key-codes/key-codes.mjs} +0 -0
- package/{esm2015/utils/loading/index.js → esm2020/utils/loading/index.mjs} +0 -0
- package/{esm2015/utils/loading/loading-listener.js → esm2020/utils/loading/loading-listener.mjs} +0 -0
- package/esm2020/utils/loading/loading.mjs +55 -0
- package/esm2020/utils/loading/loading.module.mjs +20 -0
- package/{esm2015/utils/outside-click/index.js → esm2020/utils/outside-click/index.mjs} +0 -0
- package/esm2020/utils/outside-click/outside-click.mjs +46 -0
- package/esm2020/utils/outside-click/outside-click.module.mjs +20 -0
- package/{esm2015/utils/popover/enums/alignment.enum.js → esm2020/utils/popover/enums/alignment.enum.mjs} +0 -0
- package/{esm2015/utils/popover/enums/axis.enum.js → esm2020/utils/popover/enums/axis.enum.mjs} +0 -0
- package/{esm2015/utils/popover/enums/positions.enum.js → esm2020/utils/popover/enums/positions.enum.mjs} +0 -0
- package/{esm2015/utils/popover/enums/side.enum.js → esm2020/utils/popover/enums/side.enum.mjs} +0 -0
- package/{esm2015/utils/popover/enums/viewport-violation.enum.js → esm2020/utils/popover/enums/viewport-violation.enum.mjs} +0 -0
- package/{esm2015/utils/popover/index.js → esm2020/utils/popover/index.mjs} +0 -0
- package/{esm2015/utils/popover/interfaces/popover-content-offset.interface.js → esm2020/utils/popover/interfaces/popover-content-offset.interface.mjs} +0 -0
- package/{esm2015/utils/popover/interfaces/popover-position.interface.js → esm2020/utils/popover/interfaces/popover-position.interface.mjs} +0 -0
- package/{esm2015/utils/popover/interfaces/visibility-coords.interface.js → esm2020/utils/popover/interfaces/visibility-coords.interface.mjs} +0 -0
- package/esm2020/utils/popover/popover-anchor.mjs +26 -0
- package/esm2020/utils/popover/popover-close-button.mjs +52 -0
- package/esm2020/utils/popover/popover-content.mjs +150 -0
- package/esm2020/utils/popover/popover-open-close-button.mjs +43 -0
- package/esm2020/utils/popover/popover.module.mjs +26 -0
- package/esm2020/utils/popover/position-operators.mjs +180 -0
- package/esm2020/utils/popover/providers/popover-events.service.mjs +160 -0
- package/esm2020/utils/popover/providers/popover-position.service.mjs +215 -0
- package/esm2020/utils/popover/providers/popover-toggle.service.mjs +70 -0
- package/esm2020/utils/scrolling/scrolling-service.mjs +30 -0
- package/{esm2015/utils/template-ref/index.js → esm2020/utils/template-ref/index.mjs} +0 -0
- package/esm2020/utils/template-ref/template-ref-container.mjs +29 -0
- package/esm2020/utils/template-ref/template-ref.module.mjs +25 -0
- package/{esm2015/wizard/index.js → esm2020/wizard/index.mjs} +0 -0
- package/esm2020/wizard/providers/button-hub.service.mjs +63 -0
- package/esm2020/wizard/providers/header-actions.service.mjs +37 -0
- package/esm2020/wizard/providers/page-collection.service.mjs +361 -0
- package/esm2020/wizard/providers/wizard-navigation.service.mjs +574 -0
- package/esm2020/wizard/wizard-button.mjs +187 -0
- package/esm2020/wizard/wizard-custom-tags.mjs +16 -0
- package/esm2020/wizard/wizard-header-action.mjs +76 -0
- package/esm2020/wizard/wizard-page-buttons.mjs +19 -0
- package/esm2020/wizard/wizard-page-header-actions.mjs +19 -0
- package/esm2020/wizard/wizard-page-navtitle.mjs +19 -0
- package/esm2020/wizard/wizard-page-title.mjs +19 -0
- package/{esm2015/wizard/wizard-page.js → esm2020/wizard/wizard-page.mjs} +90 -47
- package/esm2020/wizard/wizard-stepnav-item.mjs +128 -0
- package/esm2020/wizard/wizard-stepnav.mjs +48 -0
- package/esm2020/wizard/wizard.mjs +475 -0
- package/esm2020/wizard/wizard.module.mjs +72 -0
- package/fesm2015/clr-angular.mjs +26654 -0
- package/fesm2015/clr-angular.mjs.map +1 -0
- package/{fesm2015/clr-angular.js → fesm2020/clr-angular.mjs} +9876 -7404
- package/fesm2020/clr-angular.mjs.map +1 -0
- package/forms/checkbox/checkbox-container.d.ts +3 -0
- package/forms/checkbox/checkbox-wrapper.d.ts +3 -0
- package/forms/checkbox/checkbox.d.ts +3 -0
- package/forms/checkbox/checkbox.module.d.ts +11 -5
- package/forms/combobox/combobox-container.d.ts +3 -0
- package/forms/combobox/combobox.d.ts +3 -5
- package/forms/combobox/combobox.module.d.ts +18 -5
- package/forms/combobox/option-items.directive.d.ts +3 -0
- package/forms/combobox/option-selected.directive.d.ts +3 -0
- package/forms/combobox/option.d.ts +3 -0
- package/forms/combobox/options.d.ts +3 -0
- package/forms/combobox/providers/combobox-container.service.d.ts +3 -0
- package/forms/combobox/providers/combobox-focus-handler.service.d.ts +4 -1
- package/forms/combobox/providers/option-selection.service.d.ts +3 -0
- package/forms/common/abstract-container.d.ts +3 -0
- package/forms/common/abstract-control.d.ts +3 -5
- package/forms/common/common.module.d.ts +16 -5
- package/forms/common/control-container.d.ts +3 -5
- package/forms/common/control.d.ts +3 -0
- package/forms/common/error.d.ts +3 -5
- package/forms/common/form.d.ts +3 -0
- package/forms/common/helper.d.ts +3 -5
- package/forms/common/if-control-state/abstract-if-state.d.ts +3 -0
- package/forms/common/if-control-state/if-control-state.service.d.ts +3 -0
- package/forms/common/if-control-state/if-error.d.ts +3 -0
- package/forms/common/if-control-state/if-success.d.ts +3 -0
- package/forms/common/label.d.ts +3 -0
- package/forms/common/layout.d.ts +3 -0
- package/forms/common/providers/container-id.service.d.ts +3 -0
- package/forms/common/providers/control-class.service.d.ts +3 -0
- package/forms/common/providers/control-id.service.d.ts +3 -0
- package/forms/common/providers/focus.service.d.ts +3 -0
- package/forms/common/providers/layout.service.d.ts +3 -0
- package/forms/common/providers/mark-control.service.d.ts +3 -0
- package/forms/common/providers/ng-control.service.d.ts +3 -0
- package/forms/common/success.d.ts +3 -5
- package/forms/common/wrapped-control.d.ts +3 -0
- package/forms/datalist/datalist-container.d.ts +3 -5
- package/forms/datalist/datalist-input.d.ts +3 -0
- package/forms/datalist/datalist.d.ts +3 -0
- package/forms/datalist/datalist.module.d.ts +10 -0
- package/forms/datalist/providers/datalist-id.service.d.ts +3 -0
- package/forms/datepicker/calendar.d.ts +3 -0
- package/forms/datepicker/date-container.d.ts +3 -0
- package/forms/datepicker/date-input.d.ts +3 -0
- package/forms/datepicker/datepicker-view-manager.d.ts +3 -0
- package/forms/datepicker/datepicker.module.d.ts +19 -0
- package/forms/datepicker/day.d.ts +3 -0
- package/forms/datepicker/daypicker.d.ts +3 -0
- package/forms/datepicker/monthpicker.d.ts +3 -0
- package/forms/datepicker/providers/date-form-control.service.d.ts +3 -0
- package/forms/datepicker/providers/date-io.service.d.ts +3 -0
- package/forms/datepicker/providers/date-navigation.service.d.ts +3 -0
- package/forms/datepicker/providers/datepicker-enabled.service.d.ts +3 -0
- package/forms/datepicker/providers/datepicker-focus.service.d.ts +3 -0
- package/forms/datepicker/providers/locale-helper.service.d.ts +3 -0
- package/forms/datepicker/providers/view-manager.service.d.ts +3 -0
- package/forms/datepicker/yearpicker.d.ts +3 -0
- package/forms/forms.module.d.ts +16 -0
- package/forms/input/input-container.d.ts +3 -5
- package/forms/input/input.d.ts +3 -0
- package/forms/input/input.module.d.ts +10 -5
- package/forms/password/password-container.d.ts +3 -0
- package/forms/password/password.d.ts +3 -0
- package/forms/password/password.module.d.ts +10 -5
- package/forms/radio/radio-container.d.ts +3 -0
- package/forms/radio/radio-wrapper.d.ts +3 -0
- package/forms/radio/radio.d.ts +3 -0
- package/forms/radio/radio.module.d.ts +11 -5
- package/forms/range/range-container.d.ts +3 -0
- package/forms/range/range.d.ts +3 -0
- package/forms/range/range.module.d.ts +10 -5
- package/forms/select/select-container.d.ts +3 -5
- package/forms/select/select.d.ts +3 -0
- package/forms/select/select.module.d.ts +10 -5
- package/forms/textarea/textarea-container.d.ts +3 -5
- package/forms/textarea/textarea.d.ts +3 -0
- package/forms/textarea/textarea.module.d.ts +10 -5
- package/icon/icon.d.ts +5 -0
- package/icon/icon.module.d.ts +6 -0
- package/layout/layout.module.d.ts +8 -0
- package/layout/main-container/main-container.d.ts +3 -0
- package/layout/main-container/main-container.module.d.ts +7 -0
- package/layout/nav/chocolate/main-container-willy-wonka.d.ts +3 -0
- package/layout/nav/chocolate/nav-detection-oompa-loompa.d.ts +3 -0
- package/layout/nav/header.d.ts +3 -0
- package/layout/nav/nav-level.d.ts +3 -0
- package/layout/nav/navigation.module.d.ts +11 -0
- package/layout/nav/providers/responsive-navigation.service.d.ts +3 -0
- package/layout/tabs/chocolate/active-oompa-loompa.d.ts +3 -0
- package/layout/tabs/chocolate/tabs-willy-wonka.d.ts +3 -0
- package/layout/tabs/providers/tabs.service.d.ts +3 -0
- package/layout/tabs/tab-content.d.ts +3 -0
- package/layout/tabs/tab-link.directive.d.ts +3 -0
- package/layout/tabs/tab-overflow-content.d.ts +3 -0
- package/layout/tabs/tab.d.ts +3 -0
- package/layout/tabs/tabs.d.ts +3 -0
- package/layout/tabs/tabs.module.d.ts +16 -0
- package/layout/vertical-nav/providers/vertical-nav-group-registration.service.d.ts +3 -0
- package/layout/vertical-nav/providers/vertical-nav-group.service.d.ts +3 -0
- package/layout/vertical-nav/providers/vertical-nav-icon.service.d.ts +3 -0
- package/layout/vertical-nav/providers/vertical-nav.service.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav-group-children.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav-group.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav-icon.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav-link.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav.d.ts +3 -0
- package/layout/vertical-nav/vertical-nav.module.d.ts +13 -0
- package/modal/modal-body.d.ts +3 -0
- package/modal/modal.d.ts +3 -0
- package/modal/modal.module.d.ts +10 -0
- package/package.json +24 -12
- package/popover/common/abstract-popover.d.ts +4 -6
- package/popover/dropdown/dropdown-item.d.ts +3 -0
- package/popover/dropdown/dropdown-menu.d.ts +3 -0
- package/popover/dropdown/dropdown-trigger.d.ts +3 -0
- package/popover/dropdown/dropdown.d.ts +3 -0
- package/popover/dropdown/dropdown.module.d.ts +11 -0
- package/popover/dropdown/providers/dropdown-focus-handler.service.d.ts +3 -0
- package/popover/dropdown/providers/dropdown.service.d.ts +3 -0
- package/popover/popover.module.d.ts +7 -0
- package/popover/signpost/providers/signpost-focus-manager.service.d.ts +3 -0
- package/popover/signpost/providers/signpost-id.service.d.ts +3 -0
- package/popover/signpost/signpost-content.d.ts +3 -0
- package/popover/signpost/signpost-trigger.d.ts +3 -0
- package/popover/signpost/signpost.d.ts +3 -0
- package/popover/signpost/signpost.module.d.ts +11 -0
- package/popover/tooltip/providers/tooltip-id.service.d.ts +3 -0
- package/popover/tooltip/tooltip-content.d.ts +3 -0
- package/popover/tooltip/tooltip-trigger.d.ts +3 -0
- package/popover/tooltip/tooltip.d.ts +3 -0
- package/popover/tooltip/tooltip.module.d.ts +10 -0
- package/progress/progress-bars/progress-bar.d.ts +3 -0
- package/progress/progress-bars/progress-bar.module.d.ts +6 -0
- package/progress/spinner/spinner.d.ts +3 -0
- package/progress/spinner/spinner.module.d.ts +6 -0
- package/schematics/add/index.js +9 -9
- package/schematics/add/index.js.map +1 -1
- package/schematics/add/index.spec.js +13 -13
- package/schematics/add/index.spec.js.map +1 -1
- package/schematics/add/schema.json +1 -1
- package/schematics/migration-collection.json +5 -0
- package/schematics/update/update-13.0.0.js +37 -0
- package/schematics/update/update-13.0.0.js.map +1 -0
- package/schematics/update/update-13.0.0.spec.js +71 -0
- package/schematics/update/update-13.0.0.spec.js.map +1 -0
- package/schematics/update/update-3.0.0.js +1 -1
- package/schematics/update/update-3.0.0.js.map +1 -1
- package/schematics/update/update-5.0.0.js +1 -1
- package/schematics/update/update-5.0.0.js.map +1 -1
- package/schematics/update/update-5.0.0.spec.js +4 -4
- package/schematics/update/update-5.0.0.spec.js.map +1 -1
- package/schematics/utility/add-module-import-to-module.js +2 -2
- package/schematics/utility/add-module-import-to-module.js.map +1 -1
- package/schematics/utility/find-app-module.js +2 -2
- package/schematics/utility/find-app-module.js.map +1 -1
- package/schematics/utility/update-json-file.js +1 -1
- package/schematics/utility/update-json-file.js.map +1 -1
- package/src/utils/popover/README.md +139 -0
- package/timeline/providers/timeline-icon-attribute.service.d.ts +3 -0
- package/timeline/timeline-step-description.d.ts +3 -0
- package/timeline/timeline-step-header.d.ts +3 -0
- package/timeline/timeline-step-title.d.ts +3 -0
- package/timeline/timeline-step.d.ts +3 -0
- package/timeline/timeline.d.ts +3 -0
- package/timeline/timeline.module.d.ts +12 -0
- package/utils/a11y/aria-live.service.d.ts +3 -0
- package/utils/animations/expandable-animation/expandable-animation.d.ts +3 -0
- package/utils/animations/expandable-animation/expandable-animation.module.d.ts +6 -0
- package/utils/aria/aria.service.d.ts +3 -0
- package/utils/chocolate/oompa-loompa.d.ts +3 -0
- package/utils/chocolate/willy-wonka.d.ts +3 -0
- package/utils/conditional/conditional.module.d.ts +8 -0
- package/utils/conditional/if-active.directive.d.ts +3 -0
- package/utils/conditional/if-active.service.d.ts +3 -0
- package/utils/conditional/if-expanded.directive.d.ts +3 -0
- package/utils/conditional/if-expanded.service.d.ts +3 -0
- package/utils/conditional/if-open.directive.d.ts +3 -0
- package/utils/dom-adapter/dom-adapter.d.ts +4 -1
- package/utils/drag-and-drop/drag-and-drop.module.d.ts +10 -0
- package/utils/drag-and-drop/drag-handle.d.ts +3 -0
- package/utils/drag-and-drop/draggable/draggable.d.ts +3 -0
- package/utils/drag-and-drop/draggable-ghost.d.ts +3 -0
- package/utils/drag-and-drop/droppable/droppable.d.ts +3 -0
- package/utils/drag-and-drop/if-dragged.d.ts +3 -0
- package/utils/drag-and-drop/providers/drag-and-drop-event-bus.service.d.ts +3 -0
- package/utils/drag-and-drop/providers/drag-event-listener.service.d.ts +3 -0
- package/utils/drag-and-drop/providers/drag-handle-registrar.service.d.ts +3 -0
- package/utils/drag-and-drop/providers/draggable-snapshot.service.d.ts +3 -0
- package/utils/drag-and-drop/providers/global-drag-mode.service.d.ts +3 -0
- package/utils/focus/focus-on-view-init/focus-on-view-init.d.ts +3 -0
- package/utils/focus/focus-on-view-init/focus-on-view-init.module.d.ts +6 -0
- package/utils/focus/focus.service.d.ts +3 -0
- package/utils/focus/focusable-item/basic-focusable-item.service.d.ts +3 -0
- package/utils/focus/key-focus/key-focus-item.d.ts +3 -0
- package/utils/focus/key-focus/key-focus.d.ts +3 -0
- package/utils/focus/key-focus/key-focus.module.d.ts +8 -0
- package/utils/focus/key-focus/roving-tabindex.d.ts +3 -0
- package/utils/focus-trap/focus-trap-tracker.service.d.ts +3 -0
- package/utils/focus-trap/focus-trap.directive.d.ts +3 -0
- package/utils/focus-trap/focus-trap.module.d.ts +6 -0
- package/utils/host-wrapping/empty-anchor.d.ts +3 -5
- package/utils/host-wrapping/host-wrapping.module.d.ts +5 -5
- package/utils/i18n/common-strings.interface.d.ts +8 -0
- package/utils/i18n/common-strings.service.d.ts +3 -0
- package/utils/loading/loading.d.ts +3 -0
- package/utils/loading/loading.module.d.ts +6 -0
- package/utils/outside-click/outside-click.d.ts +3 -0
- package/utils/outside-click/outside-click.module.d.ts +6 -0
- package/utils/popover/popover-anchor.d.ts +3 -0
- package/utils/popover/popover-close-button.d.ts +3 -0
- package/utils/popover/popover-content.d.ts +3 -0
- package/utils/popover/popover-open-close-button.d.ts +3 -0
- package/utils/popover/popover.module.d.ts +8 -0
- package/utils/popover/providers/popover-events.service.d.ts +3 -0
- package/utils/popover/providers/popover-position.service.d.ts +3 -0
- package/utils/popover/providers/popover-toggle.service.d.ts +3 -0
- package/utils/scrolling/scrolling-service.d.ts +3 -0
- package/utils/template-ref/template-ref-container.d.ts +3 -0
- package/utils/template-ref/template-ref.module.d.ts +6 -0
- package/wizard/providers/button-hub.service.d.ts +3 -0
- package/wizard/providers/header-actions.service.d.ts +3 -0
- package/wizard/providers/page-collection.service.d.ts +3 -0
- package/wizard/providers/wizard-navigation.service.d.ts +3 -0
- package/wizard/wizard-button.d.ts +3 -0
- package/wizard/wizard-custom-tags.d.ts +3 -0
- package/wizard/wizard-header-action.d.ts +3 -0
- package/wizard/wizard-page-buttons.d.ts +3 -0
- package/wizard/wizard-page-header-actions.d.ts +3 -0
- package/wizard/wizard-page-navtitle.d.ts +3 -0
- package/wizard/wizard-page-title.d.ts +3 -0
- package/wizard/wizard-page.d.ts +3 -0
- package/wizard/wizard-stepnav-item.d.ts +6 -1
- package/wizard/wizard-stepnav.d.ts +3 -0
- package/wizard/wizard.d.ts +3 -0
- package/wizard/wizard.module.d.ts +18 -0
- package/bundles/clr-angular.umd.js +0 -26123
- package/bundles/clr-angular.umd.js.map +0 -1
- package/clr-angular.metadata.json +0 -1
- package/esm2015/accordion/accordion-content.js +0 -16
- package/esm2015/accordion/accordion-description.js +0 -17
- package/esm2015/accordion/accordion-panel.js +0 -105
- package/esm2015/accordion/accordion-title.js +0 -17
- package/esm2015/accordion/accordion.js +0 -57
- package/esm2015/accordion/accordion.module.js +0 -39
- package/esm2015/accordion/chocolate/accordion-oompa-loompa.js +0 -30
- package/esm2015/accordion/chocolate/accordion-willy-wonka.js +0 -13
- package/esm2015/accordion/providers/accordion.service.js +0 -44
- package/esm2015/accordion/stepper/chocolate/stepper-oompa-loompa.js +0 -30
- package/esm2015/accordion/stepper/chocolate/stepper-willy-wonka.js +0 -13
- package/esm2015/accordion/stepper/providers/stepper.service.js +0 -52
- package/esm2015/accordion/stepper/step-button.js +0 -47
- package/esm2015/accordion/stepper/stepper-panel.js +0 -88
- package/esm2015/accordion/stepper/stepper.js +0 -87
- package/esm2015/accordion/stepper/stepper.module.js +0 -25
- package/esm2015/button/button-group/button-group.js +0 -129
- package/esm2015/button/button-group/button-group.module.js +0 -22
- package/esm2015/button/button-loading/loading-button.js +0 -109
- package/esm2015/button/button-loading/loading-button.module.js +0 -19
- package/esm2015/button/button.module.js +0 -21
- package/esm2015/button/providers/button-in-group.service.js +0 -22
- package/esm2015/clr-angular.js +0 -108
- package/esm2015/clr-angular.module.js +0 -55
- package/esm2015/data/data.module.js +0 -15
- package/esm2015/data/datagrid/built-in/filters/datagrid-numeric-filter.js +0 -169
- package/esm2015/data/datagrid/built-in/filters/datagrid-string-filter.js +0 -111
- package/esm2015/data/datagrid/chocolate/actionable-oompa-loompa.js +0 -30
- package/esm2015/data/datagrid/chocolate/datagrid-willy-wonka.js +0 -13
- package/esm2015/data/datagrid/chocolate/expandable-oompa-loompa.js +0 -30
- package/esm2015/data/datagrid/datagrid-action-bar.js +0 -16
- package/esm2015/data/datagrid/datagrid-action-overflow.js +0 -123
- package/esm2015/data/datagrid/datagrid-cell.js +0 -38
- package/esm2015/data/datagrid/datagrid-column-separator.js +0 -151
- package/esm2015/data/datagrid/datagrid-column-toggle-button.js +0 -53
- package/esm2015/data/datagrid/datagrid-column-toggle-title.js +0 -16
- package/esm2015/data/datagrid/datagrid-column-toggle.js +0 -149
- package/esm2015/data/datagrid/datagrid-column.js +0 -374
- package/esm2015/data/datagrid/datagrid-detail-body.js +0 -22
- package/esm2015/data/datagrid/datagrid-detail-header.js +0 -45
- package/esm2015/data/datagrid/datagrid-detail-registerer.js +0 -31
- package/esm2015/data/datagrid/datagrid-detail.js +0 -52
- package/esm2015/data/datagrid/datagrid-filter.js +0 -131
- package/esm2015/data/datagrid/datagrid-footer.js +0 -58
- package/esm2015/data/datagrid/datagrid-hideable-column.js +0 -97
- package/esm2015/data/datagrid/datagrid-if-detail.js +0 -62
- package/esm2015/data/datagrid/datagrid-if-expanded.service.js +0 -52
- package/esm2015/data/datagrid/datagrid-items-trackby.js +0 -29
- package/esm2015/data/datagrid/datagrid-items.js +0 -63
- package/esm2015/data/datagrid/datagrid-page-size.js +0 -37
- package/esm2015/data/datagrid/datagrid-pagination.js +0 -258
- package/esm2015/data/datagrid/datagrid-placeholder.js +0 -34
- package/esm2015/data/datagrid/datagrid-row-detail.js +0 -81
- package/esm2015/data/datagrid/datagrid-row.js +0 -218
- package/esm2015/data/datagrid/datagrid.js +0 -295
- package/esm2015/data/datagrid/datagrid.module.js +0 -127
- package/esm2015/data/datagrid/enums/column-changes.enum.js +0 -16
- package/esm2015/data/datagrid/providers/column-resizer.service.js +0 -59
- package/esm2015/data/datagrid/providers/columns.service.js +0 -50
- package/esm2015/data/datagrid/providers/detail.service.js +0 -58
- package/esm2015/data/datagrid/providers/display-mode.service.js +0 -35
- package/esm2015/data/datagrid/providers/filters.js +0 -112
- package/esm2015/data/datagrid/providers/global-expandable-rows.js +0 -33
- package/esm2015/data/datagrid/providers/items.js +0 -175
- package/esm2015/data/datagrid/providers/page.js +0 -155
- package/esm2015/data/datagrid/providers/row-action-service.js +0 -27
- package/esm2015/data/datagrid/providers/selection.js +0 -376
- package/esm2015/data/datagrid/providers/sort.js +0 -85
- package/esm2015/data/datagrid/providers/state-debouncer.provider.js +0 -39
- package/esm2015/data/datagrid/providers/state.provider.js +0 -77
- package/esm2015/data/datagrid/providers/table-size.service.js +0 -41
- package/esm2015/data/datagrid/render/cell-renderer.js +0 -82
- package/esm2015/data/datagrid/render/header-renderer.js +0 -133
- package/esm2015/data/datagrid/render/main-renderer.js +0 -199
- package/esm2015/data/datagrid/render/noop-dom-adapter.js +0 -51
- package/esm2015/data/datagrid/render/render-organizer.js +0 -35
- package/esm2015/data/datagrid/render/row-renderer.js +0 -57
- package/esm2015/data/datagrid/utils/datagrid-filter-registrar.js +0 -41
- package/esm2015/data/datagrid/wrapped-cell.js +0 -31
- package/esm2015/data/datagrid/wrapped-column.js +0 -32
- package/esm2015/data/datagrid/wrapped-row.js +0 -32
- package/esm2015/data/stack-view/stack-block.js +0 -146
- package/esm2015/data/stack-view/stack-content-input.js +0 -25
- package/esm2015/data/stack-view/stack-header.js +0 -45
- package/esm2015/data/stack-view/stack-select.js +0 -38
- package/esm2015/data/stack-view/stack-view-custom-tags.js +0 -12
- package/esm2015/data/stack-view/stack-view.js +0 -50
- package/esm2015/data/stack-view/stack-view.module.js +0 -47
- package/esm2015/data/tree-view/recursive-children.js +0 -70
- package/esm2015/data/tree-view/recursive-for-of.js +0 -53
- package/esm2015/data/tree-view/tree-features.service.js +0 -34
- package/esm2015/data/tree-view/tree-focus-manager.service.js +0 -118
- package/esm2015/data/tree-view/tree-node-link.js +0 -25
- package/esm2015/data/tree-view/tree-node.js +0 -252
- package/esm2015/data/tree-view/tree-view.module.js +0 -30
- package/esm2015/data/tree-view/tree.js +0 -78
- package/esm2015/emphasis/alert/alert-item.js +0 -32
- package/esm2015/emphasis/alert/alert-text.js +0 -18
- package/esm2015/emphasis/alert/alert.js +0 -96
- package/esm2015/emphasis/alert/alert.module.js +0 -30
- package/esm2015/emphasis/alert/alerts-pager.js +0 -69
- package/esm2015/emphasis/alert/alerts.js +0 -94
- package/esm2015/emphasis/alert/providers/icon-and-types.service.js +0 -74
- package/esm2015/emphasis/alert/providers/multi-alert.service.js +0 -76
- package/esm2015/emphasis/emphasis.module.js +0 -13
- package/esm2015/forms/checkbox/checkbox-container.js +0 -95
- package/esm2015/forms/checkbox/checkbox-wrapper.js +0 -57
- package/esm2015/forms/checkbox/checkbox.js +0 -40
- package/esm2015/forms/checkbox/checkbox.module.js +0 -29
- package/esm2015/forms/combobox/combobox-container.js +0 -79
- package/esm2015/forms/combobox/combobox.js +0 -329
- package/esm2015/forms/combobox/combobox.module.js +0 -53
- package/esm2015/forms/combobox/option-items.directive.js +0 -96
- package/esm2015/forms/combobox/option-selected.directive.js +0 -21
- package/esm2015/forms/combobox/option.js +0 -91
- package/esm2015/forms/combobox/options.js +0 -125
- package/esm2015/forms/combobox/providers/combobox-container.service.js +0 -15
- package/esm2015/forms/combobox/providers/combobox-focus-handler.service.js +0 -213
- package/esm2015/forms/combobox/providers/option-selection.service.js +0 -78
- package/esm2015/forms/common/abstract-container.js +0 -113
- package/esm2015/forms/common/abstract-control.js +0 -47
- package/esm2015/forms/common/common.module.js +0 -56
- package/esm2015/forms/common/control-container.js +0 -51
- package/esm2015/forms/common/control.js +0 -26
- package/esm2015/forms/common/error.js +0 -32
- package/esm2015/forms/common/form.js +0 -47
- package/esm2015/forms/common/helper.js +0 -32
- package/esm2015/forms/common/if-control-state/abstract-if-state.js +0 -41
- package/esm2015/forms/common/if-control-state/if-control-state.service.js +0 -56
- package/esm2015/forms/common/if-control-state/if-error.js +0 -65
- package/esm2015/forms/common/if-control-state/if-success.js +0 -42
- package/esm2015/forms/common/label.js +0 -61
- package/esm2015/forms/common/layout.js +0 -30
- package/esm2015/forms/common/providers/container-id.service.js +0 -30
- package/esm2015/forms/common/providers/control-class.service.js +0 -50
- package/esm2015/forms/common/providers/control-id.service.js +0 -28
- package/esm2015/forms/common/providers/focus.service.js +0 -22
- package/esm2015/forms/common/providers/layout.service.js +0 -54
- package/esm2015/forms/common/providers/mark-control.service.js +0 -22
- package/esm2015/forms/common/providers/ng-control.service.js +0 -30
- package/esm2015/forms/common/success.js +0 -32
- package/esm2015/forms/common/wrapped-control.js +0 -158
- package/esm2015/forms/datalist/datalist-container.js +0 -79
- package/esm2015/forms/datalist/datalist-input.js +0 -59
- package/esm2015/forms/datalist/datalist.js +0 -46
- package/esm2015/forms/datalist/datalist.module.js +0 -27
- package/esm2015/forms/datalist/providers/datalist-id.service.js +0 -28
- package/esm2015/forms/datepicker/calendar.js +0 -119
- package/esm2015/forms/datepicker/date-container.js +0 -179
- package/esm2015/forms/datepicker/date-input.js +0 -256
- package/esm2015/forms/datepicker/datepicker-view-manager.js +0 -46
- package/esm2015/forms/datepicker/datepicker.module.js +0 -55
- package/esm2015/forms/datepicker/day.js +0 -72
- package/esm2015/forms/datepicker/daypicker.js +0 -84
- package/esm2015/forms/datepicker/monthpicker.js +0 -116
- package/esm2015/forms/datepicker/providers/date-form-control.service.js +0 -33
- package/esm2015/forms/datepicker/providers/date-io.service.js +0 -176
- package/esm2015/forms/datepicker/providers/date-navigation.service.js +0 -127
- package/esm2015/forms/datepicker/providers/datepicker-enabled.service.js +0 -43
- package/esm2015/forms/datepicker/providers/datepicker-focus.service.js +0 -45
- package/esm2015/forms/datepicker/providers/locale-helper.service.js +0 -98
- package/esm2015/forms/datepicker/providers/view-manager.service.js +0 -38
- package/esm2015/forms/datepicker/yearpicker.js +0 -193
- package/esm2015/forms/forms.module.js +0 -39
- package/esm2015/forms/input/input.js +0 -26
- package/esm2015/forms/input/input.module.js +0 -29
- package/esm2015/forms/password/password-container.js +0 -120
- package/esm2015/forms/password/password.js +0 -53
- package/esm2015/forms/password/password.module.js +0 -28
- package/esm2015/forms/radio/radio-container.js +0 -95
- package/esm2015/forms/radio/radio-wrapper.js +0 -39
- package/esm2015/forms/radio/radio.js +0 -25
- package/esm2015/forms/radio/radio.module.js +0 -29
- package/esm2015/forms/range/range-container.js +0 -93
- package/esm2015/forms/range/range.js +0 -25
- package/esm2015/forms/range/range.module.js +0 -28
- package/esm2015/forms/select/select-container.js +0 -82
- package/esm2015/forms/select/select.js +0 -26
- package/esm2015/forms/select/select.module.js +0 -28
- package/esm2015/forms/textarea/textarea-container.js +0 -51
- package/esm2015/forms/textarea/textarea.js +0 -26
- package/esm2015/forms/textarea/textarea.module.js +0 -28
- package/esm2015/icon/icon.js +0 -17
- package/esm2015/icon/icon.module.js +0 -15
- package/esm2015/layout/layout.module.js +0 -16
- package/esm2015/layout/main-container/main-container.js +0 -58
- package/esm2015/layout/main-container/main-container.module.js +0 -20
- package/esm2015/layout/nav/chocolate/main-container-willy-wonka.js +0 -13
- package/esm2015/layout/nav/chocolate/nav-detection-oompa-loompa.js +0 -32
- package/esm2015/layout/nav/header.js +0 -94
- package/esm2015/layout/nav/nav-level.js +0 -79
- package/esm2015/layout/nav/navigation.module.js +0 -29
- package/esm2015/layout/tabs/chocolate/active-oompa-loompa.js +0 -32
- package/esm2015/layout/tabs/chocolate/tabs-willy-wonka.js +0 -13
- package/esm2015/layout/tabs/providers/tabs.service.js +0 -42
- package/esm2015/layout/tabs/tab-content.js +0 -77
- package/esm2015/layout/tabs/tab-link.directive.js +0 -93
- package/esm2015/layout/tabs/tab-overflow-content.js +0 -18
- package/esm2015/layout/tabs/tab.js +0 -42
- package/esm2015/layout/tabs/tabs.js +0 -235
- package/esm2015/layout/tabs/tabs.module.js +0 -42
- package/esm2015/layout/vertical-nav/providers/vertical-nav-group-registration.service.js +0 -21
- package/esm2015/layout/vertical-nav/providers/vertical-nav-group.service.js +0 -22
- package/esm2015/layout/vertical-nav/providers/vertical-nav-icon.service.js +0 -24
- package/esm2015/layout/vertical-nav/providers/vertical-nav.service.js +0 -51
- package/esm2015/layout/vertical-nav/vertical-nav-group-children.js +0 -15
- package/esm2015/layout/vertical-nav/vertical-nav-group.js +0 -158
- package/esm2015/layout/vertical-nav/vertical-nav-icon.js +0 -23
- package/esm2015/layout/vertical-nav/vertical-nav-link.js +0 -36
- package/esm2015/layout/vertical-nav/vertical-nav.js +0 -77
- package/esm2015/layout/vertical-nav/vertical-nav.module.js +0 -37
- package/esm2015/modal/modal-body.js +0 -60
- package/esm2015/modal/modal.js +0 -111
- package/esm2015/modal/modal.module.js +0 -28
- package/esm2015/popover/common/abstract-popover.js +0 -142
- package/esm2015/popover/dropdown/dropdown-item.js +0 -87
- package/esm2015/popover/dropdown/dropdown-menu.js +0 -105
- package/esm2015/popover/dropdown/dropdown-trigger.js +0 -50
- package/esm2015/popover/dropdown/dropdown.js +0 -52
- package/esm2015/popover/dropdown/dropdown.module.js +0 -24
- package/esm2015/popover/dropdown/providers/dropdown-focus-handler.service.js +0 -181
- package/esm2015/popover/dropdown/providers/dropdown.service.js +0 -30
- package/esm2015/popover/popover.module.js +0 -15
- package/esm2015/popover/signpost/providers/signpost-focus-manager.service.js +0 -20
- package/esm2015/popover/signpost/providers/signpost-id.service.js +0 -23
- package/esm2015/popover/signpost/signpost-content.js +0 -150
- package/esm2015/popover/signpost/signpost-trigger.js +0 -95
- package/esm2015/popover/signpost/signpost.js +0 -72
- package/esm2015/popover/signpost/signpost.module.js +0 -29
- package/esm2015/popover/tooltip/providers/tooltip-id.service.js +0 -22
- package/esm2015/popover/tooltip/tooltip-content.js +0 -123
- package/esm2015/popover/tooltip/tooltip-trigger.js +0 -46
- package/esm2015/popover/tooltip/tooltip.js +0 -30
- package/esm2015/popover/tooltip/tooltip.module.js +0 -23
- package/esm2015/progress/progress-bars/progress-bar.module.js +0 -19
- package/esm2015/progress/spinner/spinner.js +0 -63
- package/esm2015/progress/spinner/spinner.module.js +0 -19
- package/esm2015/timeline/providers/timeline-icon-attribute.service.js +0 -54
- package/esm2015/timeline/timeline-step-description.js +0 -16
- package/esm2015/timeline/timeline-step-header.js +0 -16
- package/esm2015/timeline/timeline-step-title.js +0 -26
- package/esm2015/timeline/timeline-step.js +0 -73
- package/esm2015/timeline/timeline.js +0 -29
- package/esm2015/timeline/timeline.module.js +0 -36
- package/esm2015/utils/a11y/aria-live.service.js +0 -161
- package/esm2015/utils/animations/expandable-animation/expandable-animation.js +0 -57
- package/esm2015/utils/animations/expandable-animation/expandable-animation.module.js +0 -18
- package/esm2015/utils/aria/aria.service.js +0 -13
- package/esm2015/utils/chocolate/oompa-loompa.js +0 -33
- package/esm2015/utils/chocolate/willy-wonka.js +0 -33
- package/esm2015/utils/conditional/conditional.module.js +0 -17
- package/esm2015/utils/conditional/if-active.directive.js +0 -100
- package/esm2015/utils/conditional/if-active.service.js +0 -74
- package/esm2015/utils/conditional/if-expanded.directive.js +0 -91
- package/esm2015/utils/conditional/if-expanded.service.js +0 -55
- package/esm2015/utils/conditional/if-open.directive.js +0 -86
- package/esm2015/utils/dom-adapter/dom-adapter.js +0 -49
- package/esm2015/utils/drag-and-drop/drag-and-drop.module.js +0 -30
- package/esm2015/utils/drag-and-drop/drag-handle.js +0 -30
- package/esm2015/utils/drag-and-drop/draggable/draggable.js +0 -119
- package/esm2015/utils/drag-and-drop/draggable-ghost.js +0 -116
- package/esm2015/utils/drag-and-drop/droppable/droppable.js +0 -209
- package/esm2015/utils/drag-and-drop/if-dragged.js +0 -40
- package/esm2015/utils/drag-and-drop/providers/drag-event-listener.service.js +0 -181
- package/esm2015/utils/drag-and-drop/providers/drag-handle-registrar.service.js +0 -61
- package/esm2015/utils/drag-and-drop/providers/draggable-snapshot.service.js +0 -38
- package/esm2015/utils/drag-and-drop/providers/global-drag-mode.service.js +0 -26
- package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.js +0 -76
- package/esm2015/utils/focus/focus-on-view-init/focus-on-view-init.module.js +0 -21
- package/esm2015/utils/focus/focus.service.js +0 -94
- package/esm2015/utils/focus/focusable-item/basic-focusable-item.service.js +0 -55
- package/esm2015/utils/focus/key-focus/key-focus-item.js +0 -31
- package/esm2015/utils/focus/key-focus/key-focus.js +0 -181
- package/esm2015/utils/focus/key-focus/key-focus.module.js +0 -21
- package/esm2015/utils/focus/key-focus/roving-tabindex.js +0 -100
- package/esm2015/utils/focus-trap/focus-trap-tracker.service.js +0 -30
- package/esm2015/utils/focus-trap/focus-trap.directive.js +0 -154
- package/esm2015/utils/focus-trap/focus-trap.module.js +0 -19
- package/esm2015/utils/host-wrapping/empty-anchor.js +0 -14
- package/esm2015/utils/host-wrapping/host-wrapping.module.js +0 -16
- package/esm2015/utils/i18n/common-strings.service.js +0 -45
- package/esm2015/utils/loading/loading.js +0 -52
- package/esm2015/utils/loading/loading.module.js +0 -15
- package/esm2015/utils/outside-click/outside-click.js +0 -45
- package/esm2015/utils/outside-click/outside-click.module.js +0 -14
- package/esm2015/utils/popover/popover-anchor.js +0 -26
- package/esm2015/utils/popover/popover-close-button.js +0 -51
- package/esm2015/utils/popover/popover-content.js +0 -146
- package/esm2015/utils/popover/popover-open-close-button.js +0 -40
- package/esm2015/utils/popover/popover.module.js +0 -21
- package/esm2015/utils/popover/position-operators.js +0 -171
- package/esm2015/utils/popover/providers/popover-events.service.js +0 -159
- package/esm2015/utils/popover/providers/popover-position.service.js +0 -213
- package/esm2015/utils/popover/providers/popover-toggle.service.js +0 -67
- package/esm2015/utils/scrolling/scrolling-service.js +0 -27
- package/esm2015/utils/template-ref/template-ref-container.js +0 -21
- package/esm2015/utils/template-ref/template-ref.module.js +0 -19
- package/esm2015/wizard/providers/button-hub.service.js +0 -60
- package/esm2015/wizard/providers/header-actions.service.js +0 -37
- package/esm2015/wizard/providers/page-collection.service.js +0 -358
- package/esm2015/wizard/providers/wizard-navigation.service.js +0 -575
- package/esm2015/wizard/wizard-button.js +0 -163
- package/esm2015/wizard/wizard-custom-tags.js +0 -12
- package/esm2015/wizard/wizard-header-action.js +0 -55
- package/esm2015/wizard/wizard-page-buttons.js +0 -18
- package/esm2015/wizard/wizard-page-header-actions.js +0 -18
- package/esm2015/wizard/wizard-page-navtitle.js +0 -18
- package/esm2015/wizard/wizard-page-title.js +0 -18
- package/esm2015/wizard/wizard-stepnav-item.js +0 -100
- package/esm2015/wizard/wizard-stepnav.js +0 -34
- package/esm2015/wizard/wizard.js +0 -438
- package/esm2015/wizard/wizard.module.js +0 -48
- package/fesm2015/clr-angular.js.map +0 -1
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Directive, Optional } from '@angular/core';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "./providers/drag-handle-registrar.service";
|
|
9
|
+
export class ClrDragHandle {
|
|
10
|
+
constructor(el, dragHandleRegistrar) {
|
|
11
|
+
this.el = el;
|
|
12
|
+
this.dragHandleRegistrar = dragHandleRegistrar;
|
|
13
|
+
if (!this.dragHandleRegistrar) {
|
|
14
|
+
// ClrDragHandleRegistrar is provided in ClrDraggable so we expect it to be present here
|
|
15
|
+
// as clrDragHandle is required to be used only inside of a clrDraggable directive.
|
|
16
|
+
throw new Error('The clrDragHandle directive can only be used inside of a clrDraggable directive.');
|
|
17
|
+
}
|
|
18
|
+
this.dragHandleRegistrar.registerCustomHandle(this.el.nativeElement);
|
|
19
|
+
}
|
|
20
|
+
ngOnDestroy() {
|
|
21
|
+
this.dragHandleRegistrar.unregisterCustomHandle();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
ClrDragHandle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDragHandle, deps: [{ token: i0.ElementRef }, { token: i1.DragHandleRegistrarService, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
+
ClrDragHandle.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: ClrDragHandle, selector: "[clrDragHandle]", host: { properties: { "class.drag-handle": "true" } }, ngImport: i0 });
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDragHandle, decorators: [{
|
|
27
|
+
type: Directive,
|
|
28
|
+
args: [{ selector: '[clrDragHandle]', host: { '[class.drag-handle]': 'true' } }]
|
|
29
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragHandleRegistrarService, decorators: [{
|
|
30
|
+
type: Optional
|
|
31
|
+
}] }]; } });
|
|
32
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy1oYW5kbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbmd1bGFyL3NyYy91dGlscy9kcmFnLWFuZC1kcm9wL2RyYWctaGFuZGxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBQUUsU0FBUyxFQUF5QixRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUkzRSxNQUFNLE9BQU8sYUFBYTtJQUN4QixZQUFvQixFQUFjLEVBQXNCLG1CQUFrRDtRQUF0RixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQXNCLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBK0I7UUFDeEcsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM3Qix3RkFBd0Y7WUFDeEYsbUZBQW1GO1lBQ25GLE1BQU0sSUFBSSxLQUFLLENBQUMsa0ZBQWtGLENBQUMsQ0FBQztTQUNyRztRQUNELElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLG1CQUFtQixDQUFDLHNCQUFzQixFQUFFLENBQUM7SUFDcEQsQ0FBQzs7MEdBWlUsYUFBYTs4RkFBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFNBQVM7bUJBQUMsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxFQUFFLEVBQUU7OzBCQUU1QyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyYWdIYW5kbGVSZWdpc3RyYXJTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZHJhZy1oYW5kbGUtcmVnaXN0cmFyLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbY2xyRHJhZ0hhbmRsZV0nLCBob3N0OiB7ICdbY2xhc3MuZHJhZy1oYW5kbGVdJzogJ3RydWUnIH0gfSlcbmV4cG9ydCBjbGFzcyBDbHJEcmFnSGFuZGxlPFQ+IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZiwgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkcmFnSGFuZGxlUmVnaXN0cmFyOiBEcmFnSGFuZGxlUmVnaXN0cmFyU2VydmljZTxUPikge1xuICAgIGlmICghdGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyKSB7XG4gICAgICAvLyBDbHJEcmFnSGFuZGxlUmVnaXN0cmFyIGlzIHByb3ZpZGVkIGluIENsckRyYWdnYWJsZSBzbyB3ZSBleHBlY3QgaXQgdG8gYmUgcHJlc2VudCBoZXJlXG4gICAgICAvLyBhcyBjbHJEcmFnSGFuZGxlIGlzIHJlcXVpcmVkIHRvIGJlIHVzZWQgb25seSBpbnNpZGUgb2YgYSBjbHJEcmFnZ2FibGUgZGlyZWN0aXZlLlxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdUaGUgY2xyRHJhZ0hhbmRsZSBkaXJlY3RpdmUgY2FuIG9ubHkgYmUgdXNlZCBpbnNpZGUgb2YgYSBjbHJEcmFnZ2FibGUgZGlyZWN0aXZlLicpO1xuICAgIH1cbiAgICB0aGlzLmRyYWdIYW5kbGVSZWdpc3RyYXIucmVnaXN0ZXJDdXN0b21IYW5kbGUodGhpcy5lbC5uYXRpdmVFbGVtZW50KTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuZHJhZ0hhbmRsZVJlZ2lzdHJhci51bnJlZ2lzdGVyQ3VzdG9tSGFuZGxlKCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { ContentChild, Directive, EventEmitter, Output, } from '@angular/core';
|
|
7
|
+
import { Input } from '@angular/core';
|
|
8
|
+
import { DomAdapter } from '../../dom-adapter/dom-adapter';
|
|
9
|
+
import { ClrDragEvent } from '../drag-event';
|
|
10
|
+
import { ClrDraggableGhost } from '../draggable-ghost';
|
|
11
|
+
import { ClrIfDragged } from '../if-dragged';
|
|
12
|
+
import { DragEventListenerService } from '../providers/drag-event-listener.service';
|
|
13
|
+
import { DragHandleRegistrarService } from '../providers/drag-handle-registrar.service';
|
|
14
|
+
import { DraggableSnapshotService } from '../providers/draggable-snapshot.service';
|
|
15
|
+
import { GlobalDragModeService } from '../providers/global-drag-mode.service';
|
|
16
|
+
import * as i0 from "@angular/core";
|
|
17
|
+
import * as i1 from "../providers/drag-event-listener.service";
|
|
18
|
+
import * as i2 from "../providers/drag-handle-registrar.service";
|
|
19
|
+
import * as i3 from "../providers/draggable-snapshot.service";
|
|
20
|
+
import * as i4 from "../providers/global-drag-mode.service";
|
|
21
|
+
export class ClrDraggable {
|
|
22
|
+
constructor(el, dragEventListener, dragHandleRegistrar, viewContainerRef, cfr, injector, draggableSnapshot, globalDragMode) {
|
|
23
|
+
this.el = el;
|
|
24
|
+
this.dragEventListener = dragEventListener;
|
|
25
|
+
this.dragHandleRegistrar = dragHandleRegistrar;
|
|
26
|
+
this.viewContainerRef = viewContainerRef;
|
|
27
|
+
this.cfr = cfr;
|
|
28
|
+
this.injector = injector;
|
|
29
|
+
this.draggableSnapshot = draggableSnapshot;
|
|
30
|
+
this.globalDragMode = globalDragMode;
|
|
31
|
+
this.subscriptions = [];
|
|
32
|
+
this.dragOn = false;
|
|
33
|
+
this.dragStartEmitter = new EventEmitter();
|
|
34
|
+
this.dragMoveEmitter = new EventEmitter();
|
|
35
|
+
this.dragEndEmitter = new EventEmitter();
|
|
36
|
+
this.draggableEl = this.el.nativeElement;
|
|
37
|
+
this.componentFactory = this.cfr.resolveComponentFactory(ClrDraggableGhost);
|
|
38
|
+
}
|
|
39
|
+
set dataTransfer(value) {
|
|
40
|
+
this.dragEventListener.dragDataTransfer = value;
|
|
41
|
+
}
|
|
42
|
+
set group(value) {
|
|
43
|
+
this.dragEventListener.group = value;
|
|
44
|
+
}
|
|
45
|
+
set dragStartDelay(value) {
|
|
46
|
+
if (typeof value === 'number') {
|
|
47
|
+
this.dragEventListener.dragStartDelay = value;
|
|
48
|
+
}
|
|
49
|
+
else if (typeof value === 'string') {
|
|
50
|
+
this.dragEventListener.dragStartDelay = parseInt(value, 10) || 0;
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
createDefaultGhost(event) {
|
|
54
|
+
this.draggableSnapshot.capture(this.draggableEl, event);
|
|
55
|
+
// NOTE: The default ghost element will appear
|
|
56
|
+
// next to the clrDraggable in the DOM as a sibling element.
|
|
57
|
+
this.viewContainerRef.createComponent(this.componentFactory, 0, this.injector, [
|
|
58
|
+
[this.draggableEl.cloneNode(true)],
|
|
59
|
+
]);
|
|
60
|
+
}
|
|
61
|
+
destroyDefaultGhost() {
|
|
62
|
+
this.viewContainerRef.clear();
|
|
63
|
+
this.draggableSnapshot.discard();
|
|
64
|
+
}
|
|
65
|
+
ngAfterContentInit() {
|
|
66
|
+
this.dragHandleRegistrar.defaultHandleEl = this.draggableEl;
|
|
67
|
+
this.subscriptions.push(this.dragEventListener.dragStarted.subscribe((event) => {
|
|
68
|
+
this.globalDragMode.enter();
|
|
69
|
+
this.dragOn = true;
|
|
70
|
+
if (!this.customGhost) {
|
|
71
|
+
this.createDefaultGhost(event);
|
|
72
|
+
}
|
|
73
|
+
this.dragStartEmitter.emit(new ClrDragEvent(event));
|
|
74
|
+
}));
|
|
75
|
+
this.subscriptions.push(this.dragEventListener.dragMoved.subscribe((event) => {
|
|
76
|
+
this.dragMoveEmitter.emit(new ClrDragEvent(event));
|
|
77
|
+
}));
|
|
78
|
+
this.subscriptions.push(this.dragEventListener.dragEnded.subscribe((event) => {
|
|
79
|
+
this.globalDragMode.exit();
|
|
80
|
+
this.dragOn = false;
|
|
81
|
+
if (!this.customGhost) {
|
|
82
|
+
this.destroyDefaultGhost();
|
|
83
|
+
}
|
|
84
|
+
this.dragEndEmitter.emit(new ClrDragEvent(event));
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
ngOnDestroy() {
|
|
88
|
+
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
89
|
+
this.dragEventListener.detachDragListeners();
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
ClrDraggable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDraggable, deps: [{ token: i0.ElementRef }, { token: i1.DragEventListenerService }, { token: i2.DragHandleRegistrarService }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector }, { token: i3.DraggableSnapshotService }, { token: i4.GlobalDragModeService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
93
|
+
ClrDraggable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: ClrDraggable, selector: "[clrDraggable]", inputs: { dataTransfer: ["clrDraggable", "dataTransfer"], group: ["clrGroup", "group"], dragStartDelay: ["clrDragStartDelay", "dragStartDelay"] }, outputs: { dragStartEmitter: "clrDragStart", dragMoveEmitter: "clrDragMove", dragEndEmitter: "clrDragEnd" }, host: { properties: { "class.draggable": "true", "class.being-dragged": "dragOn" } }, providers: [
|
|
94
|
+
DragEventListenerService,
|
|
95
|
+
DragHandleRegistrarService,
|
|
96
|
+
DraggableSnapshotService,
|
|
97
|
+
GlobalDragModeService,
|
|
98
|
+
DomAdapter,
|
|
99
|
+
], queries: [{ propertyName: "customGhost", first: true, predicate: ClrIfDragged, descendants: true }], ngImport: i0 });
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDraggable, decorators: [{
|
|
101
|
+
type: Directive,
|
|
102
|
+
args: [{
|
|
103
|
+
selector: '[clrDraggable]',
|
|
104
|
+
providers: [
|
|
105
|
+
DragEventListenerService,
|
|
106
|
+
DragHandleRegistrarService,
|
|
107
|
+
DraggableSnapshotService,
|
|
108
|
+
GlobalDragModeService,
|
|
109
|
+
DomAdapter,
|
|
110
|
+
],
|
|
111
|
+
host: { '[class.draggable]': 'true', '[class.being-dragged]': 'dragOn' },
|
|
112
|
+
}]
|
|
113
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragEventListenerService }, { type: i2.DragHandleRegistrarService }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector }, { type: i3.DraggableSnapshotService }, { type: i4.GlobalDragModeService }]; }, propDecorators: { customGhost: [{
|
|
114
|
+
type: ContentChild,
|
|
115
|
+
args: [ClrIfDragged]
|
|
116
|
+
}], dataTransfer: [{
|
|
117
|
+
type: Input,
|
|
118
|
+
args: ['clrDraggable']
|
|
119
|
+
}], group: [{
|
|
120
|
+
type: Input,
|
|
121
|
+
args: ['clrGroup']
|
|
122
|
+
}], dragStartDelay: [{
|
|
123
|
+
type: Input,
|
|
124
|
+
args: ['clrDragStartDelay']
|
|
125
|
+
}], dragStartEmitter: [{
|
|
126
|
+
type: Output,
|
|
127
|
+
args: ['clrDragStart']
|
|
128
|
+
}], dragMoveEmitter: [{
|
|
129
|
+
type: Output,
|
|
130
|
+
args: ['clrDragMove']
|
|
131
|
+
}], dragEndEmitter: [{
|
|
132
|
+
type: Output,
|
|
133
|
+
args: ['clrDragEnd']
|
|
134
|
+
}] } });
|
|
135
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZHJhZy1hbmQtZHJvcC9kcmFnZ2FibGUvZHJhZ2dhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBSUwsWUFBWSxFQUNaLFNBQVMsRUFFVCxZQUFZLEVBR1osTUFBTSxHQUVQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDdkQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUU3QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNuRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7Ozs7O0FBYTlFLE1BQU0sT0FBTyxZQUFZO0lBTXZCLFlBQ1UsRUFBYyxFQUNkLGlCQUE4QyxFQUM5QyxtQkFBa0QsRUFDbEQsZ0JBQWtDLEVBQ2xDLEdBQTZCLEVBQzdCLFFBQWtCLEVBQ2xCLGlCQUE4QyxFQUM5QyxjQUFxQztRQVByQyxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2Qsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUE2QjtRQUM5Qyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQStCO1FBQ2xELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMs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QUFFO2lCQUN6RTt5VkFxQjZCLFdBQVc7c0JBQXRDLFlBQVk7dUJBQUMsWUFBWTtnQkFHdEIsWUFBWTtzQkFEZixLQUFLO3VCQUFDLGNBQWM7Z0JBTWpCLEtBQUs7c0JBRFIsS0FBSzt1QkFBQyxVQUFVO2dCQU1iLGNBQWM7c0JBRGpCLEtBQUs7dUJBQUMsbUJBQW1CO2dCQXVCRixnQkFBZ0I7c0JBQXZDLE1BQU07dUJBQUMsY0FBYztnQkFDQyxlQUFlO3NCQUFyQyxNQUFNO3VCQUFDLGFBQWE7Z0JBQ0MsY0FBYztzQkFBbkMsTUFBTTt1QkFBQyxZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxNi0yMDIxIFZNd2FyZSwgSW5jLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuaW1wb3J0IHtcbiAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgQ29tcG9uZW50RmFjdG9yeSxcbiAgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBDb250ZW50Q2hpbGQsXG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbmplY3RvcixcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBEb21BZGFwdGVyIH0gZnJvbSAnLi4vLi4vZG9tLWFkYXB0ZXIvZG9tLWFkYXB0ZXInO1xuaW1wb3J0IHsgQ2xyRHJhZ0V2ZW50IH0gZnJvbSAnLi4vZHJhZy1ldmVudCc7XG5pbXBvcnQgeyBDbHJEcmFnZ2FibGVHaG9zdCB9IGZyb20gJy4uL2RyYWdnYWJsZS1naG9zdCc7XG5pbXBvcnQgeyBDbHJJZkRyYWdnZWQgfSBmcm9tICcuLi9pZi1kcmFnZ2VkJztcbmltcG9ydCB7IERyYWdFdmVudEludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHJhZy1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgRHJhZ0V2ZW50TGlzdGVuZXJTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2RyYWctZXZlbnQtbGlzdGVuZXIuc2VydmljZSc7XG5pbXBvcnQgeyBEcmFnSGFuZGxlUmVnaXN0cmFyU2VydmljZSB9IGZyb20gJy4uL3Byb3ZpZGVycy9kcmFnLWhhbmRsZS1yZWdpc3RyYXIuc2VydmljZSc7XG5pbXBvcnQgeyBEcmFnZ2FibGVTbmFwc2hvdFNlcnZpY2UgfSBmcm9tICcuLi9wcm92aWRlcnMvZHJhZ2dhYmxlLXNuYXBzaG90LnNlcnZpY2UnO1xuaW1wb3J0IHsgR2xvYmFsRHJhZ01vZGVTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2dsb2JhbC1kcmFnLW1vZGUuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1tjbHJEcmFnZ2FibGVdJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAgRHJhZ0V2ZW50TGlzdGVuZXJTZXJ2aWNlLFxuICAgIERyYWdIYW5kbGVSZWdpc3RyYXJTZXJ2aWNlLFxuICAgIERyYWdnYWJsZVNuYXBzaG90U2VydmljZSxcbiAgICBHbG9iYWxEcmFnTW9kZVNlcnZpY2UsXG4gICAgRG9tQWRhcHRlcixcbiAgXSxcbiAgaG9zdDogeyAnW2NsYXNzLmRyYWdnYWJsZV0nOiAndHJ1ZScsICdbY2xhc3MuYmVpbmctZHJhZ2dlZF0nOiAnZHJhZ09uJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJEcmFnZ2FibGU8VD4gaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRyYWdnYWJsZUVsOiBhbnk7XG4gIHByaXZhdGUgc3Vic2NyaXB0aW9uczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PENsckRyYWdnYWJsZUdob3N0PFQ+PjtcbiAgcHVibGljIGRyYWdPbiA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBkcmFnRXZlbnRMaXN0ZW5lcjogRHJhZ0V2ZW50TGlzdGVuZXJTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgZHJhZ0hhbmRsZVJlZ2lzdHJhcjogRHJhZ0hhbmRsZVJlZ2lzdHJhclNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuICAgIHByaXZhdGUgY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG4gICAgcHJpdmF0ZSBkcmFnZ2FibGVTbmFwc2hvdDogRHJhZ2dhYmxlU25hcHNob3RTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgZ2xvYmFsRHJhZ01vZGU6IEdsb2JhbERyYWdNb2RlU2VydmljZVxuICApIHtcbiAgICB0aGlzLmRyYWdnYWJsZUVsID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuY29tcG9uZW50RmFjdG9yeSA9IHRoaXMuY2ZyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5PENsckRyYWdnYWJsZUdob3N0PFQ+PihDbHJEcmFnZ2FibGVHaG9zdCk7XG4gIH1cblxuICBAQ29udGVudENoaWxkKENscklmRHJhZ2dlZCkgY3VzdG9tR2hvc3Q6IENscklmRHJhZ2dlZDxUPjtcblxuICBASW5wdXQoJ2NsckRyYWdnYWJsZScpXG4gIHNldCBkYXRhVHJhbnNmZXIodmFsdWU6IFQpIHtcbiAgICB0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdEYXRhVHJhbnNmZXIgPSB2YWx1ZTtcbiAgfVxuXG4gIEBJbnB1dCgnY2xyR3JvdXAnKVxuICBzZXQgZ3JvdXAodmFsdWU6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gICAgdGhpcy5kcmFnRXZlbnRMaXN0ZW5lci5ncm91cCA9IHZhbHVlO1xuICB9XG5cbiAgQElucHV0KCdjbHJEcmFnU3RhcnREZWxheScpXG4gIHNldCBkcmFnU3RhcnREZWxheSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgIHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0RGVsYXkgPSB2YWx1ZTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0RGVsYXkgPSBwYXJzZUludCh2YWx1ZSwgMTApIHx8IDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEZWZhdWx0R2hvc3QoZXZlbnQ6IERyYWdFdmVudEludGVyZmFjZTxUPikge1xuICAgIHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2FwdHVyZSh0aGlzLmRyYWdnYWJsZUVsLCBldmVudCk7XG4gICAgLy8gTk9URTogVGhlIGRlZmF1bHQgZ2hvc3QgZWxlbWVudCB3aWxsIGFwcGVhclxuICAgIC8vIG5leHQgdG8gdGhlIGNsckRyYWdnYWJsZSBpbiB0aGUgRE9NIGFzIGEgc2libGluZyBlbGVtZW50LlxuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jcmVhdGVDb21wb25lbnQodGhpcy5jb21wb25lbnRGYWN0b3J5LCAwLCB0aGlzLmluamVjdG9yLCBbXG4gICAgICBbdGhpcy5kcmFnZ2FibGVFbC5jbG9uZU5vZGUodHJ1ZSldLFxuICAgIF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXN0cm95RGVmYXVsdEdob3N0KCkge1xuICAgIHRoaXMudmlld0NvbnRhaW5lclJlZi5jbGVhcigpO1xuICAgIHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuZGlzY2FyZCgpO1xuICB9XG5cbiAgQE91dHB1dCgnY2xyRHJhZ1N0YXJ0JykgZHJhZ1N0YXJ0RW1pdHRlcjogRXZlbnRFbWl0dGVyPENsckRyYWdFdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ2NsckRyYWdNb3ZlJykgZHJhZ01vdmVFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2xyRHJhZ0V2ZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnY2xyRHJhZ0VuZCcpIGRyYWdFbmRFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2xyRHJhZ0V2ZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG4gICAgdGhpcy5kcmFnSGFuZGxlUmVnaXN0cmFyLmRlZmF1bHRIYW5kbGVFbCA9IHRoaXMuZHJhZ2dhYmxlRWw7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0ZWQuc3Vic2NyaWJlKChldmVudDogRHJhZ0V2ZW50SW50ZXJmYWNlPFQ+KSA9PiB7XG4gICAgICAgIHRoaXMuZ2xvYmFsRHJhZ01vZGUuZW50ZXIoKTtcbiAgICAgICAgdGhpcy5kcmFnT24gPSB0cnVlO1xuICAgICAgICBpZiAoIXRoaXMuY3VzdG9tR2hvc3QpIHtcbiAgICAgICAgICB0aGlzLmNyZWF0ZURlZmF1bHRHaG9zdChldmVudCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRyYWdTdGFydEVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGV2ZW50KSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdNb3ZlZC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnRJbnRlcmZhY2U8VD4pID0+IHtcbiAgICAgICAgdGhpcy5kcmFnTW92ZUVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGV2ZW50KSk7XG4gICAgICB9KVxuICAgICk7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goXG4gICAgICB0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdFbmRlZC5zdWJzY3JpYmUoKGV2ZW50OiBEcmFnRXZlbnRJbnRlcmZhY2U8VD4pID0+IHtcbiAgICAgICAgdGhpcy5nbG9iYWxEcmFnTW9kZS5leGl0KCk7XG4gICAgICAgIHRoaXMuZHJhZ09uID0gZmFsc2U7XG4gICAgICAgIGlmICghdGhpcy5jdXN0b21HaG9zdCkge1xuICAgICAgICAgIHRoaXMuZGVzdHJveURlZmF1bHRHaG9zdCgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuZHJhZ0VuZEVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGV2ZW50KSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3ViOiBTdWJzY3JpcHRpb24pID0+IHN1Yi51bnN1YnNjcmliZSgpKTtcbiAgICB0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRldGFjaERyYWdMaXN0ZW5lcnMoKTtcbiAgfVxufVxuIl19
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { animate, style, transition, trigger } from '@angular/animations';
|
|
7
|
+
import { Component, HostBinding, Optional } from '@angular/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "./providers/drag-event-listener.service";
|
|
10
|
+
import * as i2 from "./providers/draggable-snapshot.service";
|
|
11
|
+
export class ClrDraggableGhost {
|
|
12
|
+
constructor(el, dragEventListener, draggableSnapshot, renderer, ngZone) {
|
|
13
|
+
this.el = el;
|
|
14
|
+
this.dragEventListener = dragEventListener;
|
|
15
|
+
this.draggableSnapshot = draggableSnapshot;
|
|
16
|
+
this.renderer = renderer;
|
|
17
|
+
this.ngZone = ngZone;
|
|
18
|
+
this.subscriptions = [];
|
|
19
|
+
this.leaveAnimConfig = { value: 0, params: { top: '0px', left: '0px' } };
|
|
20
|
+
if (!this.dragEventListener || !this.draggableSnapshot) {
|
|
21
|
+
throw new Error('The clr-draggable-ghost component can only be used inside of a clrDraggable directive.');
|
|
22
|
+
}
|
|
23
|
+
this.draggableGhostEl = this.el.nativeElement;
|
|
24
|
+
// Need to use Renderer2 as it runs outside of NgZone
|
|
25
|
+
this.renderer.addClass(this.draggableGhostEl, 'draggable-ghost');
|
|
26
|
+
// Register the ghost element in DragEventListener to pass in a ClrDragEvent.
|
|
27
|
+
this.dragEventListener.ghostElement = this.draggableGhostEl;
|
|
28
|
+
// Default ghost size gets the size of ClrDraggable element.
|
|
29
|
+
this.setDefaultGhostSize(this.draggableGhostEl);
|
|
30
|
+
const offset = {
|
|
31
|
+
top: this.draggableSnapshot.hasDraggableState
|
|
32
|
+
? this.draggableSnapshot.dragEvent.dragPosition.pageY - this.draggableSnapshot.clientRect.top
|
|
33
|
+
: 0,
|
|
34
|
+
left: this.draggableSnapshot.hasDraggableState
|
|
35
|
+
? this.draggableSnapshot.dragEvent.dragPosition.pageX - this.draggableSnapshot.clientRect.left
|
|
36
|
+
: 0,
|
|
37
|
+
};
|
|
38
|
+
let isAnimationConfigured = false;
|
|
39
|
+
this.subscriptions.push(this.dragEventListener.dragMoved.subscribe((event) => {
|
|
40
|
+
// On the first drag move event, we configure the animation as it's dependent on the first drag event.
|
|
41
|
+
if (!isAnimationConfigured) {
|
|
42
|
+
if (this.draggableSnapshot.hasDraggableState) {
|
|
43
|
+
this.animateToOnLeave(`${this.draggableSnapshot.clientRect.top}px`, `${this.draggableSnapshot.clientRect.left}px`);
|
|
44
|
+
}
|
|
45
|
+
else {
|
|
46
|
+
this.animateToOnLeave(`${this.dragEventListener.dragStartPosition.pageY}px`, `${this.dragEventListener.dragStartPosition.pageY}px`);
|
|
47
|
+
}
|
|
48
|
+
isAnimationConfigured = true;
|
|
49
|
+
}
|
|
50
|
+
// Position the draggable ghost.
|
|
51
|
+
const topLeftPosition = this.findTopLeftPosition(event.dragPosition, offset);
|
|
52
|
+
this.setPositionStyle(this.draggableGhostEl, topLeftPosition.pageX, topLeftPosition.pageY);
|
|
53
|
+
this.dragEventListener.dropPointPosition = this.findDropPointPosition(topLeftPosition);
|
|
54
|
+
}));
|
|
55
|
+
}
|
|
56
|
+
setDefaultGhostSize(el) {
|
|
57
|
+
if (this.draggableSnapshot.hasDraggableState) {
|
|
58
|
+
this.setSizeStyle(el, this.draggableSnapshot.clientRect.width, this.draggableSnapshot.clientRect.height);
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
animateToOnLeave(top, left) {
|
|
62
|
+
this.ngZone.run(() => {
|
|
63
|
+
this.leaveAnimConfig = { value: 0, params: { top: top, left: left } };
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
findTopLeftPosition(dragPosition, offset) {
|
|
67
|
+
return { pageX: dragPosition.pageX - offset.left, pageY: dragPosition.pageY - offset.top };
|
|
68
|
+
}
|
|
69
|
+
findDropPointPosition(topLeftPosition) {
|
|
70
|
+
if (this.draggableSnapshot.hasDraggableState) {
|
|
71
|
+
return {
|
|
72
|
+
pageX: topLeftPosition.pageX + this.draggableSnapshot.clientRect.width / 2,
|
|
73
|
+
pageY: topLeftPosition.pageY + this.draggableSnapshot.clientRect.height / 2,
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
else {
|
|
77
|
+
return topLeftPosition;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
setSizeStyle(el, width, height) {
|
|
81
|
+
this.renderer.setStyle(el, 'width', `${width}px`);
|
|
82
|
+
this.renderer.setStyle(el, 'height', `${height}px`);
|
|
83
|
+
}
|
|
84
|
+
setPositionStyle(el, left, top) {
|
|
85
|
+
this.renderer.setStyle(el, 'left', `${left}px`);
|
|
86
|
+
this.renderer.setStyle(el, 'top', `${top}px`);
|
|
87
|
+
this.renderer.setStyle(el, 'visibility', 'visible');
|
|
88
|
+
}
|
|
89
|
+
ngOnDestroy() {
|
|
90
|
+
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
ClrDraggableGhost.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDraggableGhost, deps: [{ token: i0.ElementRef }, { token: i1.DragEventListenerService, optional: true }, { token: i2.DraggableSnapshotService, optional: true }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
|
|
94
|
+
ClrDraggableGhost.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.0", type: ClrDraggableGhost, selector: "clr-draggable-ghost", host: { properties: { "@leaveAnimation": "this.leaveAnimConfig" } }, ngImport: i0, template: `<ng-content></ng-content>`, isInline: true, animations: [
|
|
95
|
+
trigger('leaveAnimation', [
|
|
96
|
+
transition(':leave', [
|
|
97
|
+
style({ left: '*', top: '*' }),
|
|
98
|
+
animate('0.2s ease-in-out', style({ top: '{{top}}', left: '{{left}}' })),
|
|
99
|
+
]),
|
|
100
|
+
]),
|
|
101
|
+
] });
|
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDraggableGhost, decorators: [{
|
|
103
|
+
type: Component,
|
|
104
|
+
args: [{
|
|
105
|
+
selector: 'clr-draggable-ghost',
|
|
106
|
+
template: `<ng-content></ng-content>`,
|
|
107
|
+
animations: [
|
|
108
|
+
trigger('leaveAnimation', [
|
|
109
|
+
transition(':leave', [
|
|
110
|
+
style({ left: '*', top: '*' }),
|
|
111
|
+
animate('0.2s ease-in-out', style({ top: '{{top}}', left: '{{left}}' })),
|
|
112
|
+
]),
|
|
113
|
+
]),
|
|
114
|
+
],
|
|
115
|
+
}]
|
|
116
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragEventListenerService, decorators: [{
|
|
117
|
+
type: Optional
|
|
118
|
+
}] }, { type: i2.DraggableSnapshotService, decorators: [{
|
|
119
|
+
type: Optional
|
|
120
|
+
}] }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { leaveAnimConfig: [{
|
|
121
|
+
type: HostBinding,
|
|
122
|
+
args: ['@leaveAnimation']
|
|
123
|
+
}] } });
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZ2dhYmxlLWdob3N0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZHJhZy1hbmQtZHJvcC9kcmFnZ2FibGUtZ2hvc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRSxPQUFPLEVBQUUsU0FBUyxFQUFjLFdBQVcsRUFBcUIsUUFBUSxFQUFhLE1BQU0sZUFBZSxDQUFDOzs7O0FBNEIzRyxNQUFNLE9BQU8saUJBQWlCO0lBTzVCLFlBQ1UsRUFBYyxFQUNGLGlCQUE4QyxFQUM5QyxpQkFBOEMsRUFDMUQsUUFBbUIsRUFDbkIsTUFBYztRQUpkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDRixzQkFBaUIsR0FBakIsaUJBQWlCLENBQTZCO1FBQzlDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBNkI7UUFDMUQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUNuQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBVGhCLGtCQUFhLEdBQW1CLEVBQUUsQ0FBQztRQUVYLG9CQUFlLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQUM7UUFTbEcsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtZQUN0RCxNQUFNLElBQUksS0FBSyxDQUFDLHdGQUF3RixDQUFDLENBQUM7U0FDM0c7UUFFRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7UUFFOUMscURBQXFEO1FBQ3JELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFD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QUE5QyxXQUFXO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cbmltcG9ydCB7IGFuaW1hdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XG5pbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBOZ1pvbmUsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IERyYWdFdmVudEludGVyZmFjZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9kcmFnLWV2ZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBEcmFnRXZlbnRMaXN0ZW5lclNlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9kcmFnLWV2ZW50LWxpc3RlbmVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgRHJhZ2dhYmxlU25hcHNob3RTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvZHJhZ2dhYmxlLXNuYXBzaG90LnNlcnZpY2UnO1xuXG50eXBlIFBhZ2VQb3NpdGlvbiA9IHtcbiAgcGFnZVg6IG51bWJlcjtcbiAgcGFnZVk6IG51bWJlcjtcbn07XG50eXBlIE9mZnNldFBvc2l0aW9uID0ge1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2xyLWRyYWdnYWJsZS1naG9zdCcsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PmAsXG4gIGFuaW1hdGlvbnM6IFtcbiAgICB0cmlnZ2VyKCdsZWF2ZUFuaW1hdGlvbicsIFtcbiAgICAgIHRyYW5zaXRpb24oJzpsZWF2ZScsIFtcbiAgICAgICAgc3R5bGUoeyBsZWZ0OiAnKicsIHRvcDogJyonIH0pLFxuICAgICAgICBhbmltYXRlKCcwLjJzIGVhc2UtaW4tb3V0Jywgc3R5bGUoeyB0b3A6ICd7e3RvcH19JywgbGVmdDogJ3t7bGVmdH19JyB9KSksXG4gICAgICBdKSxcbiAgICBdKSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyRHJhZ2dhYmxlR2hvc3Q8VD4gaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGRyYWdnYWJsZUdob3N0RWw6IGFueTtcblxuICBwcml2YXRlIHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XG5cbiAgQEhvc3RCaW5kaW5nKCdAbGVhdmVBbmltYXRpb24nKSBsZWF2ZUFuaW1Db25maWcgPSB7IHZhbHVlOiAwLCBwYXJhbXM6IHsgdG9wOiAnMHB4JywgbGVmdDogJzBweCcgfSB9O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSBkcmFnRXZlbnRMaXN0ZW5lcjogRHJhZ0V2ZW50TGlzdGVuZXJTZXJ2aWNlPFQ+LFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgZHJhZ2dhYmxlU25hcHNob3Q6IERyYWdnYWJsZVNuYXBzaG90U2VydmljZTxUPixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjIsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHtcbiAgICBpZiAoIXRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIgfHwgIXRoaXMuZHJhZ2dhYmxlU25hcHNob3QpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVGhlIGNsci1kcmFnZ2FibGUtZ2hvc3QgY29tcG9uZW50IGNhbiBvbmx5IGJlIHVzZWQgaW5zaWRlIG9mIGEgY2xyRHJhZ2dhYmxlIGRpcmVjdGl2ZS4nKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdnYWJsZUdob3N0RWwgPSB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAvLyBOZWVkIHRvIHVzZSBSZW5kZXJlcjIgYXMgaXQgcnVucyBvdXRzaWRlIG9mIE5nWm9uZVxuICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3ModGhpcy5kcmFnZ2FibGVHaG9zdEVsLCAnZHJhZ2dhYmxlLWdob3N0Jyk7XG5cbiAgICAvLyBSZWdpc3RlciB0aGUgZ2hvc3QgZWxlbWVudCBpbiBEcmFnRXZlbnRMaXN0ZW5lciB0byBwYXNzIGluIGEgQ2xyRHJhZ0V2ZW50LlxuICAgIHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZ2hvc3RFbGVtZW50ID0gdGhpcy5kcmFnZ2FibGVHaG9zdEVsO1xuXG4gICAgLy8gRGVmYXVsdCBnaG9zdCBzaXplIGdldHMgdGhlIHNpemUgb2YgQ2xyRHJhZ2dhYmxlIGVsZW1lbnQuXG4gICAgdGhpcy5zZXREZWZhdWx0R2hvc3RTaXplKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCk7XG5cbiAgICBjb25zdCBvZmZzZXQ6IE9mZnNldFBvc2l0aW9uID0ge1xuICAgICAgdG9wOiB0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlXG4gICAgICAgID8gdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kcmFnRXZlbnQuZHJhZ1Bvc2l0aW9uLnBhZ2VZIC0gdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LnRvcFxuICAgICAgICA6IDAsXG4gICAgICBsZWZ0OiB0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlXG4gICAgICAgID8gdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5kcmFnRXZlbnQuZHJhZ1Bvc2l0aW9uLnBhZ2VYIC0gdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmxlZnRcbiAgICAgICAgOiAwLFxuICAgIH07XG5cbiAgICBsZXQgaXNBbmltYXRpb25Db25maWd1cmVkID0gZmFsc2U7XG5cbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMucHVzaChcbiAgICAgIHRoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ01vdmVkLnN1YnNjcmliZSgoZXZlbnQ6IERyYWdFdmVudEludGVyZmFjZTxUPikgPT4ge1xuICAgICAgICAvLyBPbiB0aGUgZmlyc3QgZHJhZyBtb3ZlIGV2ZW50LCB3ZSBjb25maWd1cmUgdGhlIGFuaW1hdGlvbiBhcyBpdCdzIGRlcGVuZGVudCBvbiB0aGUgZmlyc3QgZHJhZyBldmVudC5cbiAgICAgICAgaWYgKCFpc0FuaW1hdGlvbkNvbmZpZ3VyZWQpIHtcbiAgICAgICAgICBpZiAodGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5hbmltYXRlVG9PbkxlYXZlKFxuICAgICAgICAgICAgICBgJHt0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QudG9wfXB4YCxcbiAgICAgICAgICAgICAgYCR7dGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LmxlZnR9cHhgXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmFuaW1hdGVUb09uTGVhdmUoXG4gICAgICAgICAgICAgIGAke3RoaXMuZHJhZ0V2ZW50TGlzdGVuZXIuZHJhZ1N0YXJ0UG9zaXRpb24ucGFnZVl9cHhgLFxuICAgICAgICAgICAgICBgJHt0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyYWdTdGFydFBvc2l0aW9uLnBhZ2VZfXB4YFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaXNBbmltYXRpb25Db25maWd1cmVkID0gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFBvc2l0aW9uIHRoZSBkcmFnZ2FibGUgZ2hvc3QuXG4gICAgICAgIGNvbnN0IHRvcExlZnRQb3NpdGlvbjogUGFnZVBvc2l0aW9uID0gdGhpcy5maW5kVG9wTGVmdFBvc2l0aW9uKGV2ZW50LmRyYWdQb3NpdGlvbiwgb2Zmc2V0KTtcbiAgICAgICAgdGhpcy5zZXRQb3NpdGlvblN0eWxlKHRoaXMuZHJhZ2dhYmxlR2hvc3RFbCwgdG9wTGVmdFBvc2l0aW9uLnBhZ2VYLCB0b3BMZWZ0UG9zaXRpb24ucGFnZVkpO1xuICAgICAgICB0aGlzLmRyYWdFdmVudExpc3RlbmVyLmRyb3BQb2ludFBvc2l0aW9uID0gdGhpcy5maW5kRHJvcFBvaW50UG9zaXRpb24odG9wTGVmdFBvc2l0aW9uKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0RGVmYXVsdEdob3N0U2l6ZShlbDogTm9kZSk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyYWdnYWJsZVNuYXBzaG90Lmhhc0RyYWdnYWJsZVN0YXRlKSB7XG4gICAgICB0aGlzLnNldFNpemVTdHlsZShlbCwgdGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5jbGllbnRSZWN0LndpZHRoLCB0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QuaGVpZ2h0KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFuaW1hdGVUb09uTGVhdmUodG9wOiBzdHJpbmcsIGxlZnQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICB0aGlzLmxlYXZlQW5pbUNvbmZpZyA9IHsgdmFsdWU6IDAsIHBhcmFtczogeyB0b3A6IHRvcCwgbGVmdDogbGVmdCB9IH07XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZpbmRUb3BMZWZ0UG9zaXRpb24oZHJhZ1Bvc2l0aW9uOiBQYWdlUG9zaXRpb24sIG9mZnNldDogT2Zmc2V0UG9zaXRpb24pOiBQYWdlUG9zaXRpb24ge1xuICAgIHJldHVybiB7IHBhZ2VYOiBkcmFnUG9zaXRpb24ucGFnZVggLSBvZmZzZXQubGVmdCwgcGFnZVk6IGRyYWdQb3NpdGlvbi5wYWdlWSAtIG9mZnNldC50b3AgfTtcbiAgfVxuXG4gIHByaXZhdGUgZmluZERyb3BQb2ludFBvc2l0aW9uKHRvcExlZnRQb3NpdGlvbjogUGFnZVBvc2l0aW9uKTogUGFnZVBvc2l0aW9uIHtcbiAgICBpZiAodGhpcy5kcmFnZ2FibGVTbmFwc2hvdC5oYXNEcmFnZ2FibGVTdGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFnZVg6IHRvcExlZnRQb3NpdGlvbi5wYWdlWCArIHRoaXMuZHJhZ2dhYmxlU25hcHNob3QuY2xpZW50UmVjdC53aWR0aCAvIDIsXG4gICAgICAgIHBhZ2VZOiB0b3BMZWZ0UG9zaXRpb24ucGFnZVkgKyB0aGlzLmRyYWdnYWJsZVNuYXBzaG90LmNsaWVudFJlY3QuaGVpZ2h0IC8gMixcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiB0b3BMZWZ0UG9zaXRpb247XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRTaXplU3R5bGUoZWw6IE5vZGUsIHdpZHRoOiBudW1iZXIsIGhlaWdodDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ3dpZHRoJywgYCR7d2lkdGh9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnaGVpZ2h0JywgYCR7aGVpZ2h0fXB4YCk7XG4gIH1cblxuICBwcml2YXRlIHNldFBvc2l0aW9uU3R5bGUoZWw6IE5vZGUsIGxlZnQ6IG51bWJlciwgdG9wOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAnbGVmdCcsIGAke2xlZnR9cHhgKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsLCAndG9wJywgYCR7dG9wfXB4YCk7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbCwgJ3Zpc2liaWxpdHknLCAndmlzaWJsZScpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLmZvckVhY2goKHN1YjogU3Vic2NyaXB0aW9uKSA9PiBzdWIudW5zdWJzY3JpYmUoKSk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2016-2021 VMware, Inc. All Rights Reserved.
|
|
3
|
+
* This software is released under MIT license.
|
|
4
|
+
* The full license information can be found in LICENSE in the root directory of this project.
|
|
5
|
+
*/
|
|
6
|
+
import { Directive, EventEmitter, Input, Output } from '@angular/core';
|
|
7
|
+
import { DomAdapter } from '../../dom-adapter/dom-adapter';
|
|
8
|
+
import { ClrDragEvent } from '../drag-event';
|
|
9
|
+
import { DragEventType } from '../interfaces/drag-event.interface';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../providers/drag-and-drop-event-bus.service";
|
|
12
|
+
import * as i2 from "../../dom-adapter/dom-adapter";
|
|
13
|
+
export class ClrDroppable {
|
|
14
|
+
constructor(el, eventBus, domAdapter, renderer) {
|
|
15
|
+
this.el = el;
|
|
16
|
+
this.eventBus = eventBus;
|
|
17
|
+
this.domAdapter = domAdapter;
|
|
18
|
+
this.renderer = renderer;
|
|
19
|
+
this.isDraggableMatch = false;
|
|
20
|
+
this._isDraggableOver = false;
|
|
21
|
+
this._dropTolerance = { top: 0, right: 0, bottom: 0, left: 0 };
|
|
22
|
+
this.dragStartEmitter = new EventEmitter();
|
|
23
|
+
this.dragMoveEmitter = new EventEmitter();
|
|
24
|
+
this.dragEndEmitter = new EventEmitter();
|
|
25
|
+
this.dragLeaveEmitter = new EventEmitter();
|
|
26
|
+
this.dragEnterEmitter = new EventEmitter();
|
|
27
|
+
this.dropEmitter = new EventEmitter();
|
|
28
|
+
this.droppableEl = this.el.nativeElement;
|
|
29
|
+
}
|
|
30
|
+
set isDraggableOver(value) {
|
|
31
|
+
// We need to add/remove this draggable-over class via Renderer2
|
|
32
|
+
// because isDraggableOver is set outside of NgZone.
|
|
33
|
+
if (value) {
|
|
34
|
+
this.renderer.addClass(this.droppableEl, 'draggable-over');
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
this.renderer.removeClass(this.droppableEl, 'draggable-over');
|
|
38
|
+
}
|
|
39
|
+
this._isDraggableOver = value;
|
|
40
|
+
}
|
|
41
|
+
set group(value) {
|
|
42
|
+
this._group = value;
|
|
43
|
+
}
|
|
44
|
+
dropToleranceGenerator(top = 0, right = top, bottom = top, left = right) {
|
|
45
|
+
return { top, right, bottom, left };
|
|
46
|
+
}
|
|
47
|
+
set dropTolerance(value) {
|
|
48
|
+
// If user provides an object here and wants to manipulate/update properties individually,
|
|
49
|
+
// the object must be immutable as we generate new object based user's given object.
|
|
50
|
+
if (typeof value === 'number') {
|
|
51
|
+
this._dropTolerance = this.dropToleranceGenerator(value);
|
|
52
|
+
}
|
|
53
|
+
else if (typeof value === 'string') {
|
|
54
|
+
const toleranceValues = value
|
|
55
|
+
.trim()
|
|
56
|
+
.split(/\s+/)
|
|
57
|
+
.map(tolerance => parseInt(tolerance, 10));
|
|
58
|
+
this._dropTolerance = this.dropToleranceGenerator(...toleranceValues);
|
|
59
|
+
}
|
|
60
|
+
else if (value) {
|
|
61
|
+
// The value could be passed in as {left: 20, top: 30 }
|
|
62
|
+
// In this case, the rest of the direction properties should be 0.
|
|
63
|
+
// That's why we initialize properties with 0 first, then override with user's given value.
|
|
64
|
+
this._dropTolerance = { ...this.dropToleranceGenerator(0), ...value };
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
unsubscribeFrom(subscription) {
|
|
68
|
+
if (subscription) {
|
|
69
|
+
subscription.unsubscribe();
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
checkGroupMatch(draggableGroup) {
|
|
73
|
+
// Both Draggable and Droppable have clrGroup input.
|
|
74
|
+
// The clrGroup input can be both a string key or array of string keys in Draggable and Droppable.
|
|
75
|
+
// It's not match if Draggable has no defined value assigned to clrGroup, but Droppable has a defined clrGroup.
|
|
76
|
+
if (!draggableGroup && this._group) {
|
|
77
|
+
return false;
|
|
78
|
+
}
|
|
79
|
+
// The same is true the other way round.
|
|
80
|
+
if (!this._group && draggableGroup) {
|
|
81
|
+
return false;
|
|
82
|
+
}
|
|
83
|
+
// It's match if both Draggable and Droppable have no assigned value for clrGroup.
|
|
84
|
+
if (!this._group && !draggableGroup) {
|
|
85
|
+
return true;
|
|
86
|
+
}
|
|
87
|
+
// It's match if both Draggable and Droppable have simple string keys that are matching.
|
|
88
|
+
// It's match if Draggable's simple clrGroup key is matching with one of the clrGroup keys of Droppable. The
|
|
89
|
+
// same is true the other way round.
|
|
90
|
+
// it's match if one of the clrGroup keys of Droppable is matching with one of the clrGroup keys of Draggable.
|
|
91
|
+
if (typeof draggableGroup === 'string') {
|
|
92
|
+
if (typeof this._group === 'string') {
|
|
93
|
+
return this._group === draggableGroup;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return this._group.indexOf(draggableGroup) > -1;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
if (typeof this._group === 'string') {
|
|
101
|
+
return draggableGroup.indexOf(this._group) > -1;
|
|
102
|
+
}
|
|
103
|
+
else {
|
|
104
|
+
return this._group.some(groupKey => draggableGroup.indexOf(groupKey) > -1);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
isInDropArea(point) {
|
|
109
|
+
if (!point) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
if (!this.clientRect) {
|
|
113
|
+
this.clientRect = this.domAdapter.clientRect(this.droppableEl);
|
|
114
|
+
}
|
|
115
|
+
if (point.pageX >= this.clientRect.left - this._dropTolerance.left &&
|
|
116
|
+
point.pageX <= this.clientRect.right + this._dropTolerance.right &&
|
|
117
|
+
point.pageY >= this.clientRect.top - this._dropTolerance.top &&
|
|
118
|
+
point.pageY <= this.clientRect.bottom + this._dropTolerance.bottom) {
|
|
119
|
+
return true;
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
return false;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
onDragStart(dragStartEvent) {
|
|
126
|
+
// Check draggable and droppable have a matching group key.
|
|
127
|
+
this.isDraggableMatch = this.checkGroupMatch(dragStartEvent.group);
|
|
128
|
+
// Subscribe to dragMoved and dragEnded only if draggable and droppable have a matching group key.
|
|
129
|
+
if (this.isDraggableMatch) {
|
|
130
|
+
this.dragStartEmitter.emit(new ClrDragEvent(dragStartEvent));
|
|
131
|
+
this.dragMoveSubscription = this.eventBus.dragMoved.subscribe((dragMoveEvent) => {
|
|
132
|
+
this.onDragMove(dragMoveEvent);
|
|
133
|
+
});
|
|
134
|
+
this.dragEndSubscription = this.eventBus.dragEnded.subscribe((dragEndEvent) => {
|
|
135
|
+
this.onDragEnd(dragEndEvent);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
onDragMove(dragMoveEvent) {
|
|
140
|
+
const isInDropArea = this.isInDropArea(dragMoveEvent.dropPointPosition);
|
|
141
|
+
if (!this._isDraggableOver && isInDropArea) {
|
|
142
|
+
this.isDraggableOver = true;
|
|
143
|
+
const dragEnterEvent = { ...dragMoveEvent, type: DragEventType.DRAG_ENTER };
|
|
144
|
+
this.eventBus.broadcast(dragEnterEvent);
|
|
145
|
+
this.dragEnterEmitter.emit(new ClrDragEvent(dragEnterEvent));
|
|
146
|
+
}
|
|
147
|
+
else if (this._isDraggableOver && !isInDropArea) {
|
|
148
|
+
this.isDraggableOver = false;
|
|
149
|
+
const dragLeaveEvent = { ...dragMoveEvent, type: DragEventType.DRAG_LEAVE };
|
|
150
|
+
this.eventBus.broadcast(dragLeaveEvent);
|
|
151
|
+
this.dragLeaveEmitter.emit(new ClrDragEvent(dragLeaveEvent));
|
|
152
|
+
}
|
|
153
|
+
this.dragMoveEmitter.emit(new ClrDragEvent(dragMoveEvent));
|
|
154
|
+
}
|
|
155
|
+
onDragEnd(dragEndEvent) {
|
|
156
|
+
if (this._isDraggableOver) {
|
|
157
|
+
if (dragEndEvent.ghostElement) {
|
|
158
|
+
// By this point, the draggable ghost component is destroyed,
|
|
159
|
+
// but the element would be active until its animation completes.
|
|
160
|
+
// As such, once the ghost is dropped over, we will give it "dropped" class.
|
|
161
|
+
// This process cannot be done in the ghost component
|
|
162
|
+
// because any subscription to the drop event is ineffective or invalid
|
|
163
|
+
// as the component had been already destroyed.
|
|
164
|
+
this.renderer.addClass(dragEndEvent.ghostElement, 'dropped');
|
|
165
|
+
}
|
|
166
|
+
const dropEvent = { ...dragEndEvent, type: DragEventType.DROP };
|
|
167
|
+
this.eventBus.broadcast(dropEvent);
|
|
168
|
+
this.dropEmitter.emit(new ClrDragEvent(dropEvent));
|
|
169
|
+
this.isDraggableOver = false;
|
|
170
|
+
}
|
|
171
|
+
this.dragEndEmitter.emit(new ClrDragEvent(dragEndEvent));
|
|
172
|
+
this.unsubscribeFrom(this.dragMoveSubscription);
|
|
173
|
+
this.unsubscribeFrom(this.dragEndSubscription);
|
|
174
|
+
this.isDraggableMatch = false;
|
|
175
|
+
delete this.clientRect;
|
|
176
|
+
}
|
|
177
|
+
ngOnInit() {
|
|
178
|
+
this.dragStartSubscription = this.eventBus.dragStarted.subscribe((dragStartEvent) => {
|
|
179
|
+
this.onDragStart(dragStartEvent);
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
ngOnDestroy() {
|
|
183
|
+
this.unsubscribeFrom(this.dragStartSubscription);
|
|
184
|
+
this.unsubscribeFrom(this.dragMoveSubscription);
|
|
185
|
+
this.unsubscribeFrom(this.dragEndSubscription);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
ClrDroppable.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDroppable, deps: [{ token: i0.ElementRef }, { token: i1.DragAndDropEventBusService }, { token: i2.DomAdapter }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
189
|
+
ClrDroppable.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.0.0", type: ClrDroppable, selector: "[clrDroppable]", inputs: { group: ["clrGroup", "group"], dropTolerance: ["clrDropTolerance", "dropTolerance"] }, outputs: { dragStartEmitter: "clrDragStart", dragMoveEmitter: "clrDragMove", dragEndEmitter: "clrDragEnd", dragLeaveEmitter: "clrDragLeave", dragEnterEmitter: "clrDragEnter", dropEmitter: "clrDrop" }, host: { properties: { "class.droppable": "true", "class.draggable-match": "isDraggableMatch" } }, providers: [DomAdapter], ngImport: i0 });
|
|
190
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.0", ngImport: i0, type: ClrDroppable, decorators: [{
|
|
191
|
+
type: Directive,
|
|
192
|
+
args: [{
|
|
193
|
+
selector: '[clrDroppable]',
|
|
194
|
+
providers: [DomAdapter],
|
|
195
|
+
host: { '[class.droppable]': 'true', '[class.draggable-match]': 'isDraggableMatch' },
|
|
196
|
+
}]
|
|
197
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.DragAndDropEventBusService }, { type: i2.DomAdapter }, { type: i0.Renderer2 }]; }, propDecorators: { group: [{
|
|
198
|
+
type: Input,
|
|
199
|
+
args: ['clrGroup']
|
|
200
|
+
}], dropTolerance: [{
|
|
201
|
+
type: Input,
|
|
202
|
+
args: ['clrDropTolerance']
|
|
203
|
+
}], dragStartEmitter: [{
|
|
204
|
+
type: Output,
|
|
205
|
+
args: ['clrDragStart']
|
|
206
|
+
}], dragMoveEmitter: [{
|
|
207
|
+
type: Output,
|
|
208
|
+
args: ['clrDragMove']
|
|
209
|
+
}], dragEndEmitter: [{
|
|
210
|
+
type: Output,
|
|
211
|
+
args: ['clrDragEnd']
|
|
212
|
+
}], dragLeaveEmitter: [{
|
|
213
|
+
type: Output,
|
|
214
|
+
args: ['clrDragLeave']
|
|
215
|
+
}], dragEnterEmitter: [{
|
|
216
|
+
type: Output,
|
|
217
|
+
args: ['clrDragEnter']
|
|
218
|
+
}], dropEmitter: [{
|
|
219
|
+
type: Output,
|
|
220
|
+
args: ['clrDrop']
|
|
221
|
+
}] } });
|
|
222
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcHBhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYW5ndWxhci9zcmMvdXRpbHMvZHJhZy1hbmQtZHJvcC9kcm9wcGFibGUvZHJvcHBhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFjLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBYSxNQUFNLGVBQWUsQ0FBQztBQUdqSCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQXNCLGFBQWEsRUFBcUIsTUFBTSxvQ0FBb0MsQ0FBQzs7OztBQVMxRyxNQUFNLE9BQU8sWUFBWTtJQVF2QixZQUNVLEVBQWMsRUFDZCxRQUF1QyxFQUN2QyxVQUFzQixFQUN0QixRQUFtQjtRQUhuQixPQUFFLEdBQUYsRUFBRSxDQUFZO1FBQ2QsYUFBUSxHQUFSLFFBQVEsQ0FBK0I7UUFDdkMsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSzdCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUNqQixxQkFBZ0IsR0FBRyxLQUFLLENBQUM7UUFvQnpCLG1CQUFjLEdBQThCLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBMEJyRSxxQkFBZ0IsR0FBa0MsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN0RSxvQkFBZSxHQUFrQyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JFLG1CQUFjLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDakUscUJBQWdCLEdBQWtDLElBQUksWUFBWSxFQUFFLENBQUM7UUFDckUscUJBQWdCLEdBQWtD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QUMsa0JBQWtCO2dCQW9CRCxnQkFBZ0I7c0JBQXZDLE1BQU07dUJBQUMsY0FBYztnQkFDQyxlQUFlO3NCQUFyQyxNQUFNO3VCQUFDLGFBQWE7Z0JBQ0MsY0FBYztzQkFBbkMsTUFBTTt1QkFBQyxZQUFZO2dCQUNJLGdCQUFnQjtzQkFBdkMsTUFBTTt1QkFBQyxjQUFjO2dCQUNFLGdCQUFnQjtzQkFBdkMsTUFBTTt1QkFBQyxjQUFjO2dCQUNILFdBQVc7c0JBQTdCLE1BQU07dUJBQUMsU0FBUyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTYtMjAyMSBWTXdhcmUsIEluYy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgUmVuZGVyZXIyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgRG9tQWRhcHRlciB9IGZyb20gJy4uLy4uL2RvbS1hZGFwdGVyL2RvbS1hZGFwdGVyJztcbmltcG9ydCB7IENsckRyYWdFdmVudCB9IGZyb20gJy4uL2RyYWctZXZlbnQnO1xuaW1wb3J0IHsgRHJhZ0V2ZW50SW50ZXJmYWNlLCBEcmFnRXZlbnRUeXBlLCBEcmFnUG9pbnRQb3NpdGlvbiB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHJhZy1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgQ2xyRHJvcFRvbGVyYW5jZUludGVyZmFjZSB9IGZyb20gJy4uL2ludGVyZmFjZXMvZHJvcC10b2xlcmFuY2UuaW50ZXJmYWNlJztcbmltcG9ydCB7IERyYWdBbmREcm9wRXZlbnRCdXNTZXJ2aWNlIH0gZnJvbSAnLi4vcHJvdmlkZXJzL2RyYWctYW5kLWRyb3AtZXZlbnQtYnVzLnNlcnZpY2UnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2xyRHJvcHBhYmxlXScsXG4gIHByb3ZpZGVyczogW0RvbUFkYXB0ZXJdLFxuICBob3N0OiB7ICdbY2xhc3MuZHJvcHBhYmxlXSc6ICd0cnVlJywgJ1tjbGFzcy5kcmFnZ2FibGUtbWF0Y2hdJzogJ2lzRHJhZ2dhYmxlTWF0Y2gnIH0sXG59KVxuZXhwb3J0IGNsYXNzIENsckRyb3BwYWJsZTxUPiBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgcHJpdmF0ZSBkcmFnU3RhcnRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBkcmFnTW92ZVN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwcml2YXRlIGRyYWdFbmRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBwcml2YXRlIGRyb3BwYWJsZUVsOiBhbnk7XG4gIHByaXZhdGUgY2xpZW50UmVjdDogQ2xpZW50UmVjdDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGVsOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgZXZlbnRCdXM6IERyYWdBbmREcm9wRXZlbnRCdXNTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgZG9tQWRhcHRlcjogRG9tQWRhcHRlcixcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5kcm9wcGFibGVFbCA9IHRoaXMuZWwubmF0aXZlRWxlbWVudDtcbiAgfVxuXG4gIGlzRHJhZ2dhYmxlTWF0Y2ggPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaXNEcmFnZ2FibGVPdmVyID0gZmFsc2U7XG5cbiAgc2V0IGlzRHJhZ2dhYmxlT3Zlcih2YWx1ZTogYm9vbGVhbikge1xuICAgIC8vIFdlIG5lZWQgdG8gYWRkL3JlbW92ZSB0aGlzIGRyYWdnYWJsZS1vdmVyIGNsYXNzIHZpYSBSZW5kZXJlcjJcbiAgICAvLyBiZWNhdXNlIGlzRHJhZ2dhYmxlT3ZlciBpcyBzZXQgb3V0c2lkZSBvZiBOZ1pvbmUuXG4gICAgaWYgKHZhbHVlKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMuZHJvcHBhYmxlRWwsICdkcmFnZ2FibGUtb3ZlcicpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnJlbW92ZUNsYXNzKHRoaXMuZHJvcHBhYmxlRWwsICdkcmFnZ2FibGUtb3ZlcicpO1xuICAgIH1cbiAgICB0aGlzLl9pc0RyYWdnYWJsZU92ZXIgPSB2YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgX2dyb3VwOiBzdHJpbmcgfCBzdHJpbmdbXTtcblxuICBASW5wdXQoJ2Nsckdyb3VwJylcbiAgc2V0IGdyb3VwKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICAgIHRoaXMuX2dyb3VwID0gdmFsdWU7XG4gIH1cblxuICBwcml2YXRlIF9kcm9wVG9sZXJhbmNlOiBDbHJEcm9wVG9sZXJhbmNlSW50ZXJmYWNlID0geyB0b3A6IDAsIHJpZ2h0OiAwLCBib3R0b206IDAsIGxlZnQ6IDAgfTtcblxuICBwcml2YXRlIGRyb3BUb2xlcmFuY2VHZW5lcmF0b3IodG9wID0gMCwgcmlnaHQgPSB0b3AsIGJvdHRvbSA9IHRvcCwgbGVmdCA9IHJpZ2h0KTogQ2xyRHJvcFRvbGVyYW5jZUludGVyZmFjZSB7XG4gICAgcmV0dXJuIHsgdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0IH07XG4gIH1cblxuICBASW5wdXQoJ2NsckRyb3BUb2xlcmFuY2UnKVxuICBzZXQgZHJvcFRvbGVyYW5jZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nIHwgQ2xyRHJvcFRvbGVyYW5jZUludGVyZmFjZSkge1xuICAgIC8vIElmIHVzZXIgcHJvdmlkZXMgYW4gb2JqZWN0IGhlcmUgYW5kIHdhbnRzIHRvIG1hbmlwdWxhdGUvdXBkYXRlIHByb3BlcnRpZXMgaW5kaXZpZHVhbGx5LFxuICAgIC8vIHRoZSBvYmplY3QgbXVzdCBiZSBpbW11dGFibGUgYXMgd2UgZ2VuZXJhdGUgbmV3IG9iamVjdCBiYXNlZCB1c2VyJ3MgZ2l2ZW4gb2JqZWN0LlxuICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICB0aGlzLl9kcm9wVG9sZXJhbmNlID0gdGhpcy5kcm9wVG9sZXJhbmNlR2VuZXJhdG9yKHZhbHVlKTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGNvbnN0IHRvbGVyYW5jZVZhbHVlcyA9IHZhbHVlXG4gICAgICAgIC50cmltKClcbiAgICAgICAgLnNwbGl0KC9cXHMrLylcbiAgICAgICAgLm1hcCh0b2xlcmFuY2UgPT4gcGFyc2VJbnQodG9sZXJhbmNlLCAxMCkpO1xuICAgICAgdGhpcy5fZHJvcFRvbGVyYW5jZSA9IHRoaXMuZHJvcFRvbGVyYW5jZUdlbmVyYXRvciguLi50b2xlcmFuY2VWYWx1ZXMpO1xuICAgIH0gZWxzZSBpZiAodmFsdWUpIHtcbiAgICAgIC8vIFRoZSB2YWx1ZSBjb3VsZCBiZSBwYXNzZWQgaW4gYXMge2xlZnQ6IDIwLCB0b3A6IDMwIH1cbiAgICAgIC8vIEluIHRoaXMgY2FzZSwgdGhlIHJlc3Qgb2YgdGhlIGRpcmVjdGlvbiBwcm9wZXJ0aWVzIHNob3VsZCBiZSAwLlxuICAgICAgLy8gVGhhdCdzIHdoeSB3ZSBpbml0aWFsaXplIHByb3BlcnRpZXMgd2l0aCAwIGZpcnN0LCB0aGVuIG92ZXJyaWRlIHdpdGggdXNlcidzIGdpdmVuIHZhbHVlLlxuICAgICAgdGhpcy5fZHJvcFRvbGVyYW5jZSA9IHsgLi4udGhpcy5kcm9wVG9sZXJhbmNlR2VuZXJhdG9yKDApLCAuLi52YWx1ZSB9O1xuICAgIH1cbiAgfVxuXG4gIEBPdXRwdXQoJ2NsckRyYWdTdGFydCcpIGRyYWdTdGFydEVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDbHJEcmFnRXZlbnQ8VD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCdjbHJEcmFnTW92ZScpIGRyYWdNb3ZlRW1pdHRlcjogRXZlbnRFbWl0dGVyPENsckRyYWdFdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ2NsckRyYWdFbmQnKSBkcmFnRW5kRW1pdHRlcjogRXZlbnRFbWl0dGVyPENsckRyYWdFdmVudDxUPj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBPdXRwdXQoJ2NsckRyYWdMZWF2ZScpIGRyYWdMZWF2ZUVtaXR0ZXI6IEV2ZW50RW1pdHRlcjxDbHJEcmFnRXZlbnQ8VD4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KCdjbHJEcmFnRW50ZXInKSBkcmFnRW50ZXJFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2xyRHJhZ0V2ZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgnY2xyRHJvcCcpIGRyb3BFbWl0dGVyOiBFdmVudEVtaXR0ZXI8Q2xyRHJhZ0V2ZW50PFQ+PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlRnJvbShzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbik6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpcHRpb24pIHtcbiAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tHcm91cE1hdGNoKGRyYWdnYWJsZUdyb3VwOiBzdHJpbmcgfCBzdHJpbmdbXSk6IGJvb2xlYW4ge1xuICAgIC8vIEJvdGggRHJhZ2dhYmxlIGFuZCBEcm9wcGFibGUgaGF2ZSBjbHJHcm91cCBpbnB1dC5cbiAgICAvLyBUaGUgY2xyR3JvdXAgaW5wdXQgY2FuIGJlIGJvdGggYSBzdHJpbmcga2V5IG9yIGFycmF5IG9mIHN0cmluZyBrZXlzIGluIERyYWdnYWJsZSBhbmQgRHJvcHBhYmxlLlxuXG4gICAgLy8gSXQncyBub3QgbWF0Y2ggaWYgRHJhZ2dhYmxlIGhhcyBubyBkZWZpbmVkIHZhbHVlIGFzc2lnbmVkIHRvIGNsckdyb3VwLCBidXQgRHJvcHBhYmxlIGhhcyBhIGRlZmluZWQgY2xyR3JvdXAuXG4gICAgaWYgKCFkcmFnZ2FibGVHcm91cCAmJiB0aGlzLl9ncm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICAvLyBUaGUgc2FtZSBpcyB0cnVlIHRoZSBvdGhlciB3YXkgcm91bmQuXG4gICAgaWYgKCF0aGlzLl9ncm91cCAmJiBkcmFnZ2FibGVHcm91cCkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8vIEl0J3MgbWF0Y2ggaWYgYm90aCBEcmFnZ2FibGUgYW5kIERyb3BwYWJsZSBoYXZlIG5vIGFzc2lnbmVkIHZhbHVlIGZvciBjbHJHcm91cC5cbiAgICBpZiAoIXRoaXMuX2dyb3VwICYmICFkcmFnZ2FibGVHcm91cCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gSXQncyBtYXRjaCBpZiBib3RoIERyYWdnYWJsZSBhbmQgRHJvcHBhYmxlIGhhdmUgc2ltcGxlIHN0cmluZyBrZXlzIHRoYXQgYXJlIG1hdGNoaW5nLlxuICAgIC8vIEl0J3MgbWF0Y2ggaWYgRHJhZ2dhYmxlJ3Mgc2ltcGxlIGNsckdyb3VwIGtleSBpcyBtYXRjaGluZyB3aXRoIG9uZSBvZiB0aGUgY2xyR3JvdXAga2V5cyBvZiBEcm9wcGFibGUuIFRoZVxuICAgIC8vIHNhbWUgaXMgdHJ1ZSB0aGUgb3RoZXIgd2F5IHJvdW5kLlxuICAgIC8vIGl0J3MgbWF0Y2ggaWYgb25lIG9mIHRoZSBjbHJHcm91cCBrZXlzIG9mIERyb3BwYWJsZSBpcyBtYXRjaGluZyB3aXRoIG9uZSBvZiB0aGUgY2xyR3JvdXAga2V5cyBvZiBEcmFnZ2FibGUuXG4gICAgaWYgKHR5cGVvZiBkcmFnZ2FibGVHcm91cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGlmICh0eXBlb2YgdGhpcy5fZ3JvdXAgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ncm91cCA9PT0gZHJhZ2dhYmxlR3JvdXA7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gdGhpcy5fZ3JvdXAuaW5kZXhPZihkcmFnZ2FibGVHcm91cCkgPiAtMTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHR5cGVvZiB0aGlzLl9ncm91cCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgcmV0dXJuIGRyYWdnYWJsZUdyb3VwLmluZGV4T2YodGhpcy5fZ3JvdXApID4gLTE7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gKHRoaXMuX2dyb3VwIGFzIHN0cmluZ1tdKS5zb21lKGdyb3VwS2V5ID0+IGRyYWdnYWJsZUdyb3VwLmluZGV4T2YoZ3JvdXBLZXkpID4gLTEpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaXNJbkRyb3BBcmVhKHBvaW50OiBEcmFnUG9pbnRQb3NpdGlvbik6IGJvb2xlYW4ge1xuICAgIGlmICghcG9pbnQpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuY2xpZW50UmVjdCkge1xuICAgICAgdGhpcy5jbGllbnRSZWN0ID0gdGhpcy5kb21BZGFwdGVyLmNsaWVudFJlY3QodGhpcy5kcm9wcGFibGVFbCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcG9pbnQucGFnZVggPj0gdGhpcy5jbGllbnRSZWN0LmxlZnQgLSB0aGlzLl9kcm9wVG9sZXJhbmNlLmxlZnQgJiZcbiAgICAgIHBvaW50LnBhZ2VYIDw9IHRoaXMuY2xpZW50UmVjdC5yaWdodCArIHRoaXMuX2Ryb3BUb2xlcmFuY2UucmlnaHQgJiZcbiAgICAgIHBvaW50LnBhZ2VZID49IHRoaXMuY2xpZW50UmVjdC50b3AgLSB0aGlzLl9kcm9wVG9sZXJhbmNlLnRvcCAmJlxuICAgICAgcG9pbnQucGFnZVkgPD0gdGhpcy5jbGllbnRSZWN0LmJvdHRvbSArIHRoaXMuX2Ryb3BUb2xlcmFuY2UuYm90dG9tXG4gICAgKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb25EcmFnU3RhcnQoZHJhZ1N0YXJ0RXZlbnQ6IERyYWdFdmVudEludGVyZmFjZTxUPik6IHZvaWQge1xuICAgIC8vIENoZWNrIGRyYWdnYWJsZSBhbmQgZHJvcHBhYmxlIGhhdmUgYSBtYXRjaGluZyBncm91cCBrZXkuXG4gICAgdGhpcy5pc0RyYWdnYWJsZU1hdGNoID0gdGhpcy5jaGVja0dyb3VwTWF0Y2goZHJhZ1N0YXJ0RXZlbnQuZ3JvdXApO1xuXG4gICAgLy8gU3Vic2NyaWJlIHRvIGRyYWdNb3ZlZCBhbmQgZHJhZ0VuZGVkIG9ubHkgaWYgZHJhZ2dhYmxlIGFuZCBkcm9wcGFibGUgaGF2ZSBhIG1hdGNoaW5nIGdyb3VwIGtleS5cbiAgICBpZiAodGhpcy5pc0RyYWdnYWJsZU1hdGNoKSB7XG4gICAgICB0aGlzLmRyYWdTdGFydEVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGRyYWdTdGFydEV2ZW50KSk7XG4gICAgICB0aGlzLmRyYWdNb3ZlU3Vic2NyaXB0aW9uID0gdGhpcy5ldmVudEJ1cy5kcmFnTW92ZWQuc3Vic2NyaWJlKChkcmFnTW92ZUV2ZW50OiBEcmFnRXZlbnRJbnRlcmZhY2U8VD4pID0+IHtcbiAgICAgICAgdGhpcy5vbkRyYWdNb3ZlKGRyYWdNb3ZlRXZlbnQpO1xuICAgICAgfSk7XG4gICAgICB0aGlzLmRyYWdFbmRTdWJzY3JpcHRpb24gPSB0aGlzLmV2ZW50QnVzLmRyYWdFbmRlZC5zdWJzY3JpYmUoKGRyYWdFbmRFdmVudDogRHJhZ0V2ZW50SW50ZXJmYWNlPFQ+KSA9PiB7XG4gICAgICAgIHRoaXMub25EcmFnRW5kKGRyYWdFbmRFdmVudCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9uRHJhZ01vdmUoZHJhZ01vdmVFdmVudDogRHJhZ0V2ZW50SW50ZXJmYWNlPFQ+KTogdm9pZCB7XG4gICAgY29uc3QgaXNJbkRyb3BBcmVhID0gdGhpcy5pc0luRHJvcEFyZWEoZHJhZ01vdmVFdmVudC5kcm9wUG9pbnRQb3NpdGlvbik7XG4gICAgaWYgKCF0aGlzLl9pc0RyYWdnYWJsZU92ZXIgJiYgaXNJbkRyb3BBcmVhKSB7XG4gICAgICB0aGlzLmlzRHJhZ2dhYmxlT3ZlciA9IHRydWU7XG4gICAgICBjb25zdCBkcmFnRW50ZXJFdmVudCA9IHsgLi4uZHJhZ01vdmVFdmVudCwgdHlwZTogRHJhZ0V2ZW50VHlwZS5EUkFHX0VOVEVSIH07XG4gICAgICB0aGlzLmV2ZW50QnVzLmJyb2FkY2FzdChkcmFnRW50ZXJFdmVudCk7XG4gICAgICB0aGlzLmRyYWdFbnRlckVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGRyYWdFbnRlckV2ZW50KSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9pc0RyYWdnYWJsZU92ZXIgJiYgIWlzSW5Ecm9wQXJlYSkge1xuICAgICAgdGhpcy5pc0RyYWdnYWJsZU92ZXIgPSBmYWxzZTtcbiAgICAgIGNvbnN0IGRyYWdMZWF2ZUV2ZW50ID0geyAuLi5kcmFnTW92ZUV2ZW50LCB0eXBlOiBEcmFnRXZlbnRUeXBlLkRSQUdfTEVBVkUgfTtcbiAgICAgIHRoaXMuZXZlbnRCdXMuYnJvYWRjYXN0KGRyYWdMZWF2ZUV2ZW50KTtcbiAgICAgIHRoaXMuZHJhZ0xlYXZlRW1pdHRlci5lbWl0KG5ldyBDbHJEcmFnRXZlbnQoZHJhZ0xlYXZlRXZlbnQpKTtcbiAgICB9XG5cbiAgICB0aGlzLmRyYWdNb3ZlRW1pdHRlci5lbWl0KG5ldyBDbHJEcmFnRXZlbnQoZHJhZ01vdmVFdmVudCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkRyYWdFbmQoZHJhZ0VuZEV2ZW50OiBEcmFnRXZlbnRJbnRlcmZhY2U8VD4pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5faXNEcmFnZ2FibGVPdmVyKSB7XG4gICAgICBpZiAoZHJhZ0VuZEV2ZW50Lmdob3N0RWxlbWVudCkge1xuICAgICAgICAvLyBCeSB0aGlzIHBvaW50LCB0aGUgZHJhZ2dhYmxlIGdob3N0IGNvbXBvbmVudCBpcyBkZXN0cm95ZWQsXG4gICAgICAgIC8vIGJ1dCB0aGUgZWxlbWVudCB3b3VsZCBiZSBhY3RpdmUgdW50aWwgaXRzIGFuaW1hdGlvbiBjb21wbGV0ZXMuXG4gICAgICAgIC8vIEFzIHN1Y2gsIG9uY2UgdGhlIGdob3N0IGlzIGRyb3BwZWQgb3Zlciwgd2Ugd2lsbCBnaXZlIGl0IFwiZHJvcHBlZFwiIGNsYXNzLlxuXG4gICAgICAgIC8vIFRoaXMgcHJvY2VzcyBjYW5ub3QgYmUgZG9uZSBpbiB0aGUgZ2hvc3QgY29tcG9uZW50XG4gICAgICAgIC8vIGJlY2F1c2UgYW55IHN1YnNjcmlwdGlvbiB0byB0aGUgZHJvcCBldmVudCBpcyBpbmVmZmVjdGl2ZSBvciBpbnZhbGlkXG4gICAgICAgIC8vIGFzIHRoZSBjb21wb25lbnQgaGFkIGJlZW4gYWxyZWFkeSBkZXN0cm95ZWQuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoZHJhZ0VuZEV2ZW50Lmdob3N0RWxlbWVudCwgJ2Ryb3BwZWQnKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgZHJvcEV2ZW50ID0geyAuLi5kcmFnRW5kRXZlbnQsIHR5cGU6IERyYWdFdmVudFR5cGUuRFJPUCB9O1xuICAgICAgdGhpcy5ldmVudEJ1cy5icm9hZGNhc3QoZHJvcEV2ZW50KTtcbiAgICAgIHRoaXMuZHJvcEVtaXR0ZXIuZW1pdChuZXcgQ2xyRHJhZ0V2ZW50KGRyb3BFdmVudCkpO1xuICAgICAgdGhpcy5pc0RyYWdnYWJsZU92ZXIgPSBmYWxzZTtcbiAgICB9XG4gICAgdGhpcy5kcmFnRW5kRW1pdHRlci5lbWl0KG5ldyBDbHJEcmFnRXZlbnQoZHJhZ0VuZEV2ZW50KSk7XG4gICAgdGhpcy51bnN1YnNjcmliZUZyb20odGhpcy5kcmFnTW92ZVN1YnNjcmlwdGlvbik7XG4gICAgdGhpcy51bnN1YnNjcmliZUZyb20odGhpcy5kcmFnRW5kU3Vic2NyaXB0aW9uKTtcbiAgICB0aGlzLmlzRHJhZ2dhYmxlTWF0Y2ggPSBmYWxzZTtcbiAgICBkZWxldGUgdGhpcy5jbGllbnRSZWN0O1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kcmFnU3RhcnRTdWJzY3JpcHRpb24gPSB0aGlzLmV2ZW50QnVzLmRyYWdTdGFydGVkLnN1YnNjcmliZSgoZHJhZ1N0YXJ0RXZlbnQ6IERyYWdFdmVudEludGVyZmFjZTxUPikgPT4ge1xuICAgICAgdGhpcy5vbkRyYWdTdGFydChkcmFnU3RhcnRFdmVudCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlRnJvbSh0aGlzLmRyYWdTdGFydFN1YnNjcmlwdGlvbik7XG4gICAgdGhpcy51bnN1YnNjcmliZUZyb20odGhpcy5kcmFnTW92ZVN1YnNjcmlwdGlvbik7XG4gICAgdGhpcy51bnN1YnNjcmliZUZyb20odGhpcy5kcmFnRW5kU3Vic2NyaXB0aW9uKTtcbiAgfVxufVxuIl19
|