@porscheinformatik/clr-addons 11.2.0 → 12.0.0
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/abstract-form-component/abstract-form-component.d.ts +11 -3
- package/abstract-form-component/control-id.service.d.ts +11 -0
- package/abstract-form-component/form.module.d.ts +7 -0
- package/abstract-form-component/index.d.ts +2 -0
- package/abstract-form-component/label.d.ts +16 -0
- package/autocomplete-off/autocomplete-off.directive.d.ts +3 -0
- package/autocomplete-off/autocomplete-off.module.d.ts +5 -0
- package/autocomplete-off/index.d.ts +2 -0
- package/back-button/back-button.d.ts +3 -0
- package/back-button/back-button.module.d.ts +8 -0
- package/brand-avatar/brand-avatar.d.ts +3 -0
- package/brand-avatar/brand-avatar.module.d.ts +7 -0
- package/breadcrumb/breadcrumb.d.ts +4 -1
- package/breadcrumb/breadcrumb.module.d.ts +8 -0
- package/breadcrumb/breadcrumb.service.d.ts +3 -0
- package/clr-addons.d.ts +1 -11
- package/clr-addons.module.d.ts +30 -0
- package/collapse-expand-section/collapse-expand-section.d.ts +3 -0
- package/collapse-expand-section/collapse-expand-section.module.d.ts +8 -0
- package/content-panel/content-panel-container-content.d.ts +3 -0
- package/content-panel/content-panel-container-footer.d.ts +3 -0
- package/content-panel/content-panel-container.d.ts +3 -0
- package/content-panel/content-panel.d.ts +3 -0
- package/content-panel/content-panel.module.d.ts +11 -0
- package/data-list-validator/data-list-predefined-validator.directive.d.ts +3 -0
- package/data-list-validator/data-list-validator.module.d.ts +5 -0
- package/date-time-container/date-time-container.d.ts +3 -0
- package/date-time-container/date-time-module.d.ts +9 -0
- package/date-time-container/time-input.d.ts +3 -0
- package/dot-pager/dot-pager.d.ts +3 -0
- package/dot-pager/dot-pager.module.d.ts +8 -0
- package/esm2020/abstract-form-component/abstract-form-component.mjs +100 -0
- package/esm2020/abstract-form-component/control-id.service.mjs +31 -0
- package/esm2020/abstract-form-component/form.module.mjs +21 -0
- package/esm2020/abstract-form-component/index.mjs +3 -0
- package/esm2020/abstract-form-component/label.mjs +41 -0
- package/esm2020/autocomplete-off/autocomplete-off.directive.mjs +21 -0
- package/esm2020/autocomplete-off/autocomplete-off.module.mjs +21 -0
- package/esm2020/autocomplete-off/index.mjs +3 -0
- package/esm2020/back-button/back-button.mjs +25 -0
- package/esm2020/back-button/back-button.module.mjs +25 -0
- package/{esm2015/back-button/index.js → esm2020/back-button/index.mjs} +0 -0
- package/esm2020/brand-avatar/brand-avatar.mjs +60 -0
- package/esm2020/brand-avatar/brand-avatar.module.mjs +24 -0
- package/{esm2015/brand-avatar/index.js → esm2020/brand-avatar/index.mjs} +0 -0
- package/{esm2015/breadcrumb/breadcrumb-model.interface.js → esm2020/breadcrumb/breadcrumb-model.interface.mjs} +0 -0
- package/esm2020/breadcrumb/breadcrumb.mjs +37 -0
- package/esm2020/breadcrumb/breadcrumb.module.mjs +27 -0
- package/esm2020/breadcrumb/breadcrumb.service.mjs +25 -0
- package/{esm2015/breadcrumb/index.js → esm2020/breadcrumb/index.mjs} +0 -0
- package/esm2020/clr-addons.mjs +5 -0
- package/esm2020/clr-addons.module.mjs +122 -0
- package/esm2020/collapse-expand-section/collapse-expand-section.mjs +80 -0
- package/esm2020/collapse-expand-section/collapse-expand-section.module.mjs +25 -0
- package/{esm2015/collapse-expand-section/index.js → esm2020/collapse-expand-section/index.mjs} +0 -0
- package/esm2020/content-panel/content-panel-container-content.mjs +22 -0
- package/esm2020/content-panel/content-panel-container-footer.mjs +22 -0
- package/esm2020/content-panel/content-panel-container.mjs +35 -0
- package/esm2020/content-panel/content-panel.mjs +79 -0
- package/esm2020/content-panel/content-panel.module.mjs +36 -0
- package/{esm2015/content-panel/index.js → esm2020/content-panel/index.mjs} +0 -0
- package/esm2020/data-list-validator/data-list-predefined-validator.directive.mjs +33 -0
- package/esm2020/data-list-validator/data-list-validator.module.mjs +21 -0
- package/{esm2015/data-list-validator/data-list.validator.js → esm2020/data-list-validator/data-list.validator.mjs} +0 -0
- package/{esm2015/data-list-validator/index.js → esm2020/data-list-validator/index.mjs} +0 -0
- package/esm2020/date-time-container/date-time-container.mjs +53 -0
- package/esm2020/date-time-container/date-time-module.mjs +26 -0
- package/{esm2015/date-time-container/index.js → esm2020/date-time-container/index.mjs} +0 -0
- package/esm2020/date-time-container/time-input.mjs +21 -0
- package/esm2020/dot-pager/dot-pager.mjs +58 -0
- package/esm2020/dot-pager/dot-pager.module.mjs +25 -0
- package/{esm2015/dot-pager/index.js → esm2020/dot-pager/index.mjs} +0 -0
- package/esm2020/flow-bar/flow-bar.mjs +160 -0
- package/esm2020/flow-bar/flow-bar.module.mjs +25 -0
- package/{esm2015/flow-bar/index.js → esm2020/flow-bar/index.mjs} +0 -0
- package/esm2020/generic-quick-list/generic-quick-list.mjs +93 -0
- package/esm2020/generic-quick-list/generic-quick-list.module.mjs +24 -0
- package/{esm2015/generic-quick-list/index.js → esm2020/generic-quick-list/index.mjs} +0 -0
- package/{esm2015/history/history-model.interface.js → esm2020/history/history-model.interface.mjs} +0 -0
- package/esm2020/history/history-pinned.mjs +49 -0
- package/esm2020/history/history.mjs +70 -0
- package/esm2020/history/history.module.mjs +26 -0
- package/esm2020/history/history.service.mjs +206 -0
- package/{esm2015/history/index.js → esm2020/history/index.mjs} +0 -0
- package/{esm2015/icons/index.js → esm2020/icons/index.mjs} +0 -0
- package/{esm2015/icons/shapes.js → esm2020/icons/shapes.mjs} +0 -0
- package/{esm2015/icons/svg-tag-generator.js → esm2020/icons/svg-tag-generator.mjs} +0 -0
- package/{esm2015/index.js → esm2020/index.mjs} +3 -1
- package/{esm2015/letter-avatar/index.js → esm2020/letter-avatar/index.mjs} +0 -0
- package/esm2020/letter-avatar/letter-avatar.mjs +52 -0
- package/esm2020/letter-avatar/letter-avatar.module.mjs +24 -0
- package/esm2020/location-bar/index.mjs +5 -0
- package/esm2020/location-bar/location-bar-node/location-bar-node.component.mjs +97 -0
- package/esm2020/location-bar/location-bar.component.mjs +48 -0
- package/{esm2015/location-bar/location-bar.model.js → esm2020/location-bar/location-bar.model.mjs} +0 -0
- package/esm2020/location-bar/location-bar.module.mjs +20 -0
- package/{esm2015/location-bar/location-bar.provider.js → esm2020/location-bar/location-bar.provider.mjs} +0 -0
- package/{esm2015/main-nav-group/index.js → esm2020/main-nav-group/index.mjs} +0 -0
- package/esm2020/main-nav-group/main-nav-group-item.mjs +27 -0
- package/esm2020/main-nav-group/main-nav-group.mjs +153 -0
- package/esm2020/main-nav-group/main-nav-group.module.mjs +26 -0
- package/esm2020/multilingual/abstract-multilingual.mjs +60 -0
- package/{esm2015/multilingual/index.js → esm2020/multilingual/index.mjs} +0 -0
- package/esm2020/multilingual/multilingual-input/multilingual-input.mjs +40 -0
- package/esm2020/multilingual/multilingual-selector.mjs +81 -0
- package/esm2020/multilingual/multilingual-textarea/multilingual-textarea.mjs +40 -0
- package/esm2020/multilingual/multilingual-validators.mjs +104 -0
- package/esm2020/multilingual/multilingual.module.mjs +48 -0
- package/{esm2015/notification/index.js → esm2020/notification/index.mjs} +0 -0
- package/{esm2015/notification/notification-ref.js → esm2020/notification/notification-ref.mjs} +0 -0
- package/esm2020/notification/notification.mjs +134 -0
- package/esm2020/notification/notification.module.mjs +24 -0
- package/esm2020/notification/notification.service.mjs +92 -0
- package/{esm2015/notification/scheduler-utils.js → esm2020/notification/scheduler-utils.mjs} +0 -0
- package/{esm2015/numericfield/index.js → esm2020/numericfield/index.mjs} +0 -0
- package/esm2020/numericfield/numeric-field-validators.mjs +140 -0
- package/esm2020/numericfield/numeric-field.mjs +372 -0
- package/esm2020/numericfield/numeric-field.module.mjs +26 -0
- package/{esm2015/paged-search-result-list/index.js → esm2020/paged-search-result-list/index.mjs} +0 -0
- package/esm2020/paged-search-result-list/paged-search-result-list.mjs +49 -0
- package/esm2020/paged-search-result-list/paged-search-result-list.module.mjs +26 -0
- package/{esm2015/pager/index.js → esm2020/pager/index.mjs} +0 -0
- package/esm2020/pager/pager.mjs +135 -0
- package/esm2020/pager/pager.module.mjs +25 -0
- package/{esm2015/progress-spinner/index.js → esm2020/progress-spinner/index.mjs} +0 -0
- package/esm2020/progress-spinner/progress-spinner.mjs +78 -0
- package/esm2020/progress-spinner/progress-spinner.module.mjs +23 -0
- package/{esm2015/public_api.js → esm2020/public_api.mjs} +0 -0
- package/esm2020/quick-list/add-option.mjs +65 -0
- package/{esm2015/quick-list/add-option.service.js → esm2020/quick-list/add-option.service.mjs} +0 -0
- package/{esm2015/quick-list/index.js → esm2020/quick-list/index.mjs} +0 -0
- package/esm2020/quick-list/quick-list.mjs +122 -0
- package/esm2020/quick-list/quick-list.module.mjs +26 -0
- package/{esm2015/searchfield/index.js → esm2020/searchfield/index.mjs} +0 -0
- package/esm2020/searchfield/search-field.mjs +100 -0
- package/esm2020/searchfield/search-field.module.mjs +25 -0
- package/{esm2015/treetable/index.js → esm2020/treetable/index.mjs} +3 -2
- package/esm2020/treetable/renderer/cell-renderer.mjs +28 -0
- package/esm2020/treetable/renderer/header-renderer.mjs +41 -0
- package/esm2020/treetable/renderer/index.mjs +5 -0
- package/esm2020/treetable/renderer/main-renderer.mjs +103 -0
- package/esm2020/treetable/renderer/row-renderer.mjs +20 -0
- package/esm2020/treetable/treetable-action-overflow.mjs +92 -0
- package/esm2020/treetable/treetable-cell.mjs +23 -0
- package/esm2020/treetable/treetable-column.mjs +23 -0
- package/esm2020/treetable/treetable-placeholder.mjs +30 -0
- package/esm2020/treetable/treetable-row.mjs +99 -0
- package/esm2020/treetable/treetable.mjs +73 -0
- package/esm2020/treetable/treetable.module.mjs +63 -0
- package/{esm2015/util/escape.util.js → esm2020/util/escape.util.mjs} +0 -0
- package/{esm2015/util/index.js → esm2020/util/index.mjs} +0 -0
- package/{esm2015/view-edit-section/index.js → esm2020/view-edit-section/index.mjs} +0 -0
- package/esm2020/view-edit-section/view-edit-section.mjs +83 -0
- package/esm2020/view-edit-section/view-edit-section.module.mjs +25 -0
- package/fesm2015/{clr-addons.js → clr-addons.mjs} +1689 -1064
- package/fesm2015/clr-addons.mjs.map +1 -0
- package/fesm2020/clr-addons.mjs +4991 -0
- package/fesm2020/clr-addons.mjs.map +1 -0
- package/flow-bar/flow-bar.d.ts +3 -0
- package/flow-bar/flow-bar.module.d.ts +8 -0
- package/generic-quick-list/generic-quick-list.d.ts +3 -0
- package/generic-quick-list/generic-quick-list.module.d.ts +7 -0
- package/history/history-pinned.d.ts +3 -0
- package/history/history.d.ts +3 -0
- package/history/history.module.d.ts +9 -0
- package/history/history.service.d.ts +3 -0
- package/index.d.ts +2 -0
- package/letter-avatar/letter-avatar.d.ts +3 -0
- package/letter-avatar/letter-avatar.module.d.ts +7 -0
- package/location-bar/index.d.ts +1 -0
- package/location-bar/location-bar-node/location-bar-node.component.d.ts +3 -0
- package/location-bar/location-bar.component.d.ts +3 -0
- package/location-bar/location-bar.module.d.ts +8 -0
- package/main-nav-group/main-nav-group-item.d.ts +3 -0
- package/main-nav-group/main-nav-group.d.ts +3 -0
- package/main-nav-group/main-nav-group.module.d.ts +9 -0
- package/multilingual/abstract-multilingual.d.ts +3 -0
- package/multilingual/multilingual-input/multilingual-input.d.ts +3 -0
- package/multilingual/multilingual-selector.d.ts +3 -0
- package/multilingual/multilingual-textarea/multilingual-textarea.d.ts +3 -0
- package/multilingual/multilingual-validators.d.ts +5 -0
- package/multilingual/multilingual.module.d.ts +11 -0
- package/notification/notification.d.ts +3 -0
- package/notification/notification.module.d.ts +8 -0
- package/notification/notification.service.d.ts +3 -0
- package/numericfield/numeric-field-validators.d.ts +5 -0
- package/numericfield/numeric-field.d.ts +3 -0
- package/numericfield/numeric-field.module.d.ts +9 -0
- package/package.json +27 -13
- package/paged-search-result-list/paged-search-result-list.d.ts +3 -0
- package/paged-search-result-list/paged-search-result-list.module.d.ts +9 -0
- package/pager/pager.d.ts +3 -0
- package/pager/pager.module.d.ts +8 -0
- package/progress-spinner/progress-spinner.d.ts +3 -0
- package/progress-spinner/progress-spinner.module.d.ts +6 -0
- package/quick-list/add-option.d.ts +3 -0
- package/quick-list/quick-list.d.ts +3 -0
- package/quick-list/quick-list.module.d.ts +9 -0
- package/searchfield/search-field.d.ts +4 -1
- package/searchfield/search-field.module.d.ts +8 -0
- package/src/components.clr-addons.scss +8 -4
- package/styles/clr-addons-phs.css +6 -2
- package/styles/clr-addons-phs.css.map +1 -1
- package/styles/clr-addons-phs.min.css +1 -1
- package/styles/clr-addons-phs.min.css.map +1 -1
- package/treetable/index.d.ts +1 -0
- package/treetable/renderer/cell-renderer.d.ts +3 -0
- package/treetable/renderer/header-renderer.d.ts +3 -0
- package/treetable/renderer/index.d.ts +4 -0
- package/treetable/renderer/main-renderer.d.ts +3 -0
- package/treetable/renderer/row-renderer.d.ts +3 -0
- package/treetable/treetable-action-overflow.d.ts +4 -1
- package/treetable/treetable-cell.d.ts +3 -0
- package/treetable/treetable-column.d.ts +3 -0
- package/treetable/treetable-placeholder.d.ts +3 -0
- package/treetable/treetable-row.d.ts +3 -0
- package/treetable/treetable.d.ts +3 -0
- package/treetable/treetable.module.d.ts +16 -0
- package/view-edit-section/view-edit-section.d.ts +3 -0
- package/view-edit-section/view-edit-section.module.d.ts +8 -0
- package/autocomplete-off/autocomplete-off.module.ngfactory.d.ts +0 -3
- package/back-button/back-button.module.ngfactory.d.ts +0 -3
- package/back-button/back-button.ngfactory.d.ts +0 -1
- package/brand-avatar/brand-avatar.module.ngfactory.d.ts +0 -3
- package/brand-avatar/brand-avatar.ngfactory.d.ts +0 -1
- package/breadcrumb/breadcrumb.module.ngfactory.d.ts +0 -3
- package/breadcrumb/breadcrumb.ngfactory.d.ts +0 -1
- package/bundles/clr-addons.umd.js +0 -5121
- package/bundles/clr-addons.umd.js.map +0 -1
- package/clr-addons.metadata.json +0 -1
- package/clr-addons.module.ngfactory.d.ts +0 -3
- package/collapse-expand-section/collapse-expand-section.module.ngfactory.d.ts +0 -3
- package/collapse-expand-section/collapse-expand-section.ngfactory.d.ts +0 -1
- package/content-panel/content-panel-container-content.ngfactory.d.ts +0 -1
- package/content-panel/content-panel-container-footer.ngfactory.d.ts +0 -1
- package/content-panel/content-panel-container.ngfactory.d.ts +0 -1
- package/content-panel/content-panel.module.ngfactory.d.ts +0 -3
- package/content-panel/content-panel.ngfactory.d.ts +0 -1
- package/data-list-validator/data-list-validator.module.ngfactory.d.ts +0 -3
- package/date-time-container/date-time-container.ngfactory.d.ts +0 -1
- package/date-time-container/date-time-module.ngfactory.d.ts +0 -3
- package/dot-pager/dot-pager.module.ngfactory.d.ts +0 -3
- package/dot-pager/dot-pager.ngfactory.d.ts +0 -1
- package/esm2015/abstract-form-component/abstract-form-component.js +0 -77
- package/esm2015/abstract-form-component/abstract-form-component.ngsummary.json +0 -1
- package/esm2015/autocomplete-off/autocomplete-off.directive.js +0 -17
- package/esm2015/autocomplete-off/autocomplete-off.directive.ngsummary.json +0 -1
- package/esm2015/autocomplete-off/autocomplete-off.module.js +0 -16
- package/esm2015/autocomplete-off/autocomplete-off.module.ngfactory.js +0 -13
- package/esm2015/autocomplete-off/autocomplete-off.module.ngsummary.json +0 -1
- package/esm2015/back-button/back-button.js +0 -25
- package/esm2015/back-button/back-button.module.js +0 -20
- package/esm2015/back-button/back-button.module.ngfactory.js +0 -17
- package/esm2015/back-button/back-button.module.ngsummary.json +0 -1
- package/esm2015/back-button/back-button.ngfactory.js +0 -23
- package/esm2015/back-button/back-button.ngsummary.json +0 -1
- package/esm2015/back-button/index.ngsummary.json +0 -1
- package/esm2015/brand-avatar/brand-avatar.js +0 -54
- package/esm2015/brand-avatar/brand-avatar.module.js +0 -19
- package/esm2015/brand-avatar/brand-avatar.module.ngfactory.js +0 -17
- package/esm2015/brand-avatar/brand-avatar.module.ngsummary.json +0 -1
- package/esm2015/brand-avatar/brand-avatar.ngfactory.js +0 -19
- package/esm2015/brand-avatar/brand-avatar.ngsummary.json +0 -1
- package/esm2015/brand-avatar/index.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb-model.interface.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb.js +0 -36
- package/esm2015/breadcrumb/breadcrumb.module.js +0 -22
- package/esm2015/breadcrumb/breadcrumb.module.ngfactory.js +0 -20
- package/esm2015/breadcrumb/breadcrumb.module.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb.ngfactory.js +0 -28
- package/esm2015/breadcrumb/breadcrumb.ngsummary.json +0 -1
- package/esm2015/breadcrumb/breadcrumb.service.js +0 -23
- package/esm2015/breadcrumb/breadcrumb.service.ngsummary.json +0 -1
- package/esm2015/breadcrumb/index.ngsummary.json +0 -1
- package/esm2015/clr-addons.js +0 -16
- package/esm2015/clr-addons.module.js +0 -65
- package/esm2015/clr-addons.module.ngfactory.js +0 -46
- package/esm2015/clr-addons.module.ngsummary.json +0 -1
- package/esm2015/clr-addons.ngsummary.json +0 -1
- package/esm2015/collapse-expand-section/collapse-expand-section.js +0 -55
- package/esm2015/collapse-expand-section/collapse-expand-section.module.js +0 -20
- package/esm2015/collapse-expand-section/collapse-expand-section.module.ngfactory.js +0 -17
- package/esm2015/collapse-expand-section/collapse-expand-section.module.ngsummary.json +0 -1
- package/esm2015/collapse-expand-section/collapse-expand-section.ngfactory.js +0 -30
- package/esm2015/collapse-expand-section/collapse-expand-section.ngsummary.json +0 -1
- package/esm2015/collapse-expand-section/index.ngsummary.json +0 -1
- package/esm2015/content-panel/content-panel-container-content.js +0 -18
- package/esm2015/content-panel/content-panel-container-content.ngfactory.js +0 -18
- package/esm2015/content-panel/content-panel-container-content.ngsummary.json +0 -1
- package/esm2015/content-panel/content-panel-container-footer.js +0 -18
- package/esm2015/content-panel/content-panel-container-footer.ngfactory.js +0 -18
- package/esm2015/content-panel/content-panel-container-footer.ngsummary.json +0 -1
- package/esm2015/content-panel/content-panel-container.js +0 -25
- package/esm2015/content-panel/content-panel-container.ngfactory.js +0 -18
- package/esm2015/content-panel/content-panel-container.ngsummary.json +0 -1
- package/esm2015/content-panel/content-panel.js +0 -67
- package/esm2015/content-panel/content-panel.module.js +0 -28
- package/esm2015/content-panel/content-panel.module.ngfactory.js +0 -17
- package/esm2015/content-panel/content-panel.module.ngsummary.json +0 -1
- package/esm2015/content-panel/content-panel.ngfactory.js +0 -33
- package/esm2015/content-panel/content-panel.ngsummary.json +0 -1
- package/esm2015/content-panel/index.ngsummary.json +0 -1
- package/esm2015/data-list-validator/data-list-predefined-validator.directive.js +0 -30
- package/esm2015/data-list-validator/data-list-predefined-validator.directive.ngsummary.json +0 -1
- package/esm2015/data-list-validator/data-list-validator.module.js +0 -16
- package/esm2015/data-list-validator/data-list-validator.module.ngfactory.js +0 -13
- package/esm2015/data-list-validator/data-list-validator.module.ngsummary.json +0 -1
- package/esm2015/data-list-validator/data-list.validator.ngsummary.json +0 -1
- package/esm2015/data-list-validator/index.ngsummary.json +0 -1
- package/esm2015/date-time-container/date-time-container.js +0 -45
- package/esm2015/date-time-container/date-time-container.ngfactory.js +0 -19
- package/esm2015/date-time-container/date-time-container.ngsummary.json +0 -1
- package/esm2015/date-time-container/date-time-module.js +0 -21
- package/esm2015/date-time-container/date-time-module.ngfactory.js +0 -17
- package/esm2015/date-time-container/date-time-module.ngsummary.json +0 -1
- package/esm2015/date-time-container/index.ngsummary.json +0 -1
- package/esm2015/date-time-container/time-input.js +0 -17
- package/esm2015/date-time-container/time-input.ngsummary.json +0 -1
- package/esm2015/dot-pager/dot-pager.js +0 -51
- package/esm2015/dot-pager/dot-pager.module.js +0 -20
- package/esm2015/dot-pager/dot-pager.module.ngfactory.js +0 -17
- package/esm2015/dot-pager/dot-pager.module.ngsummary.json +0 -1
- package/esm2015/dot-pager/dot-pager.ngfactory.js +0 -48
- package/esm2015/dot-pager/dot-pager.ngsummary.json +0 -1
- package/esm2015/dot-pager/index.ngsummary.json +0 -1
- package/esm2015/flow-bar/flow-bar.js +0 -154
- package/esm2015/flow-bar/flow-bar.module.js +0 -20
- package/esm2015/flow-bar/flow-bar.module.ngfactory.js +0 -17
- package/esm2015/flow-bar/flow-bar.module.ngsummary.json +0 -1
- package/esm2015/flow-bar/flow-bar.ngfactory.js +0 -33
- package/esm2015/flow-bar/flow-bar.ngsummary.json +0 -1
- package/esm2015/flow-bar/index.ngsummary.json +0 -1
- package/esm2015/generic-quick-list/generic-quick-list.js +0 -72
- package/esm2015/generic-quick-list/generic-quick-list.module.js +0 -19
- package/esm2015/generic-quick-list/generic-quick-list.module.ngfactory.js +0 -17
- package/esm2015/generic-quick-list/generic-quick-list.module.ngsummary.json +0 -1
- package/esm2015/generic-quick-list/generic-quick-list.ngfactory.js +0 -31
- package/esm2015/generic-quick-list/generic-quick-list.ngsummary.json +0 -1
- package/esm2015/generic-quick-list/index.ngsummary.json +0 -1
- package/esm2015/history/history-model.interface.ngsummary.json +0 -1
- package/esm2015/history/history-pinned.js +0 -45
- package/esm2015/history/history-pinned.ngfactory.js +0 -23
- package/esm2015/history/history-pinned.ngsummary.json +0 -1
- package/esm2015/history/history.js +0 -55
- package/esm2015/history/history.module.js +0 -21
- package/esm2015/history/history.module.ngfactory.js +0 -19
- package/esm2015/history/history.module.ngsummary.json +0 -1
- package/esm2015/history/history.ngfactory.js +0 -36
- package/esm2015/history/history.ngsummary.json +0 -1
- package/esm2015/history/history.service.js +0 -204
- package/esm2015/history/history.service.ngsummary.json +0 -1
- package/esm2015/history/index.ngsummary.json +0 -1
- package/esm2015/icons/index.ngsummary.json +0 -1
- package/esm2015/icons/shapes.ngsummary.json +0 -1
- package/esm2015/icons/svg-tag-generator.ngsummary.json +0 -1
- package/esm2015/index.ngsummary.json +0 -1
- package/esm2015/letter-avatar/index.ngsummary.json +0 -1
- package/esm2015/letter-avatar/letter-avatar.js +0 -48
- package/esm2015/letter-avatar/letter-avatar.module.js +0 -19
- package/esm2015/letter-avatar/letter-avatar.module.ngfactory.js +0 -17
- package/esm2015/letter-avatar/letter-avatar.module.ngsummary.json +0 -1
- package/esm2015/letter-avatar/letter-avatar.ngfactory.js +0 -18
- package/esm2015/letter-avatar/letter-avatar.ngsummary.json +0 -1
- package/esm2015/location-bar/index.js +0 -4
- package/esm2015/location-bar/index.ngsummary.json +0 -1
- package/esm2015/location-bar/location-bar-node/location-bar-node.component.js +0 -92
- package/esm2015/location-bar/location-bar-node/location-bar-node.component.ngfactory.js +0 -50
- package/esm2015/location-bar/location-bar-node/location-bar-node.component.ngsummary.json +0 -1
- package/esm2015/location-bar/location-bar.component.js +0 -38
- package/esm2015/location-bar/location-bar.component.ngfactory.js +0 -25
- package/esm2015/location-bar/location-bar.component.ngsummary.json +0 -1
- package/esm2015/location-bar/location-bar.model.ngsummary.json +0 -1
- package/esm2015/location-bar/location-bar.module.js +0 -15
- package/esm2015/location-bar/location-bar.module.ngfactory.js +0 -13
- package/esm2015/location-bar/location-bar.module.ngsummary.json +0 -1
- package/esm2015/location-bar/location-bar.provider.ngsummary.json +0 -1
- package/esm2015/main-nav-group/index.ngsummary.json +0 -1
- package/esm2015/main-nav-group/main-nav-group-item.js +0 -27
- package/esm2015/main-nav-group/main-nav-group-item.ngsummary.json +0 -1
- package/esm2015/main-nav-group/main-nav-group.js +0 -153
- package/esm2015/main-nav-group/main-nav-group.module.js +0 -21
- package/esm2015/main-nav-group/main-nav-group.module.ngfactory.js +0 -17
- package/esm2015/main-nav-group/main-nav-group.module.ngsummary.json +0 -1
- package/esm2015/main-nav-group/main-nav-group.ngfactory.js +0 -26
- package/esm2015/main-nav-group/main-nav-group.ngsummary.json +0 -1
- package/esm2015/multilingual/abstract-multilingual.js +0 -50
- package/esm2015/multilingual/abstract-multilingual.ngsummary.json +0 -1
- package/esm2015/multilingual/index.ngsummary.json +0 -1
- package/esm2015/multilingual/multilingual-input/multilingual-input.js +0 -32
- package/esm2015/multilingual/multilingual-input/multilingual-input.ngfactory.js +0 -46
- package/esm2015/multilingual/multilingual-input/multilingual-input.ngsummary.json +0 -1
- package/esm2015/multilingual/multilingual-selector.js +0 -46
- package/esm2015/multilingual/multilingual-selector.ngfactory.js +0 -28
- package/esm2015/multilingual/multilingual-selector.ngsummary.json +0 -1
- package/esm2015/multilingual/multilingual-textarea/multilingual-textarea.js +0 -32
- package/esm2015/multilingual/multilingual-textarea/multilingual-textarea.ngfactory.js +0 -46
- package/esm2015/multilingual/multilingual-textarea/multilingual-textarea.ngsummary.json +0 -1
- package/esm2015/multilingual/multilingual-validators.js +0 -97
- package/esm2015/multilingual/multilingual-validators.ngsummary.json +0 -1
- package/esm2015/multilingual/multilingual.module.js +0 -35
- package/esm2015/multilingual/multilingual.module.ngfactory.js +0 -17
- package/esm2015/multilingual/multilingual.module.ngsummary.json +0 -1
- package/esm2015/notification/index.ngsummary.json +0 -1
- package/esm2015/notification/notification-ref.ngsummary.json +0 -1
- package/esm2015/notification/notification.js +0 -114
- package/esm2015/notification/notification.module.js +0 -20
- package/esm2015/notification/notification.module.ngfactory.js +0 -18
- package/esm2015/notification/notification.module.ngsummary.json +0 -1
- package/esm2015/notification/notification.ngfactory.js +0 -25
- package/esm2015/notification/notification.ngsummary.json +0 -1
- package/esm2015/notification/notification.service.js +0 -92
- package/esm2015/notification/notification.service.ngsummary.json +0 -1
- package/esm2015/notification/scheduler-utils.ngsummary.json +0 -1
- package/esm2015/numericfield/index.ngsummary.json +0 -1
- package/esm2015/numericfield/numeric-field-validators.js +0 -125
- package/esm2015/numericfield/numeric-field-validators.ngsummary.json +0 -1
- package/esm2015/numericfield/numeric-field.js +0 -348
- package/esm2015/numericfield/numeric-field.module.js +0 -21
- package/esm2015/numericfield/numeric-field.module.ngfactory.js +0 -17
- package/esm2015/numericfield/numeric-field.module.ngsummary.json +0 -1
- package/esm2015/numericfield/numeric-field.ngsummary.json +0 -1
- package/esm2015/paged-search-result-list/index.ngsummary.json +0 -1
- package/esm2015/paged-search-result-list/paged-search-result-list.js +0 -34
- package/esm2015/paged-search-result-list/paged-search-result-list.module.js +0 -21
- package/esm2015/paged-search-result-list/paged-search-result-list.module.ngfactory.js +0 -18
- package/esm2015/paged-search-result-list/paged-search-result-list.module.ngsummary.json +0 -1
- package/esm2015/paged-search-result-list/paged-search-result-list.ngfactory.js +0 -31
- package/esm2015/paged-search-result-list/paged-search-result-list.ngsummary.json +0 -1
- package/esm2015/pager/index.ngsummary.json +0 -1
- package/esm2015/pager/pager.js +0 -125
- package/esm2015/pager/pager.module.js +0 -20
- package/esm2015/pager/pager.module.ngfactory.js +0 -17
- package/esm2015/pager/pager.module.ngsummary.json +0 -1
- package/esm2015/pager/pager.ngfactory.js +0 -43
- package/esm2015/pager/pager.ngsummary.json +0 -1
- package/esm2015/progress-spinner/index.ngsummary.json +0 -1
- package/esm2015/progress-spinner/progress-spinner.js +0 -69
- package/esm2015/progress-spinner/progress-spinner.module.js +0 -18
- package/esm2015/progress-spinner/progress-spinner.module.ngfactory.js +0 -12
- package/esm2015/progress-spinner/progress-spinner.module.ngsummary.json +0 -1
- package/esm2015/progress-spinner/progress-spinner.ngfactory.js +0 -18
- package/esm2015/progress-spinner/progress-spinner.ngsummary.json +0 -1
- package/esm2015/public_api.ngsummary.json +0 -1
- package/esm2015/quick-list/add-option.js +0 -53
- package/esm2015/quick-list/add-option.ngfactory.js +0 -36
- package/esm2015/quick-list/add-option.ngsummary.json +0 -1
- package/esm2015/quick-list/add-option.service.ngsummary.json +0 -1
- package/esm2015/quick-list/index.ngsummary.json +0 -1
- package/esm2015/quick-list/quick-list.js +0 -98
- package/esm2015/quick-list/quick-list.module.js +0 -21
- package/esm2015/quick-list/quick-list.module.ngfactory.js +0 -17
- package/esm2015/quick-list/quick-list.module.ngsummary.json +0 -1
- package/esm2015/quick-list/quick-list.ngfactory.js +0 -33
- package/esm2015/quick-list/quick-list.ngsummary.json +0 -1
- package/esm2015/searchfield/index.ngsummary.json +0 -1
- package/esm2015/searchfield/search-field.js +0 -100
- package/esm2015/searchfield/search-field.module.js +0 -20
- package/esm2015/searchfield/search-field.module.ngfactory.js +0 -17
- package/esm2015/searchfield/search-field.module.ngsummary.json +0 -1
- package/esm2015/searchfield/search-field.ngsummary.json +0 -1
- package/esm2015/treetable/index.ngsummary.json +0 -1
- package/esm2015/treetable/renderer/cell-renderer.js +0 -28
- package/esm2015/treetable/renderer/cell-renderer.ngsummary.json +0 -1
- package/esm2015/treetable/renderer/header-renderer.js +0 -41
- package/esm2015/treetable/renderer/header-renderer.ngsummary.json +0 -1
- package/esm2015/treetable/renderer/main-renderer.js +0 -93
- package/esm2015/treetable/renderer/main-renderer.ngsummary.json +0 -1
- package/esm2015/treetable/renderer/row-renderer.js +0 -16
- package/esm2015/treetable/renderer/row-renderer.ngsummary.json +0 -1
- package/esm2015/treetable/treetable-action-overflow.js +0 -77
- package/esm2015/treetable/treetable-action-overflow.ngfactory.js +0 -31
- package/esm2015/treetable/treetable-action-overflow.ngsummary.json +0 -1
- package/esm2015/treetable/treetable-cell.js +0 -19
- package/esm2015/treetable/treetable-cell.ngfactory.js +0 -18
- package/esm2015/treetable/treetable-cell.ngsummary.json +0 -1
- package/esm2015/treetable/treetable-column.js +0 -19
- package/esm2015/treetable/treetable-column.ngfactory.js +0 -18
- package/esm2015/treetable/treetable-column.ngsummary.json +0 -1
- package/esm2015/treetable/treetable-placeholder.js +0 -21
- package/esm2015/treetable/treetable-placeholder.ngfactory.js +0 -16
- package/esm2015/treetable/treetable-placeholder.ngsummary.json +0 -1
- package/esm2015/treetable/treetable-row.js +0 -80
- package/esm2015/treetable/treetable-row.ngfactory.js +0 -30
- package/esm2015/treetable/treetable-row.ngsummary.json +0 -1
- package/esm2015/treetable/treetable.js +0 -67
- package/esm2015/treetable/treetable.module.js +0 -40
- package/esm2015/treetable/treetable.module.ngfactory.js +0 -17
- package/esm2015/treetable/treetable.module.ngsummary.json +0 -1
- package/esm2015/treetable/treetable.ngfactory.js +0 -18
- package/esm2015/treetable/treetable.ngsummary.json +0 -1
- package/esm2015/util/escape.util.ngsummary.json +0 -1
- package/esm2015/util/index.ngsummary.json +0 -1
- package/esm2015/view-edit-section/index.ngsummary.json +0 -1
- package/esm2015/view-edit-section/view-edit-section.js +0 -57
- package/esm2015/view-edit-section/view-edit-section.module.js +0 -20
- package/esm2015/view-edit-section/view-edit-section.module.ngfactory.js +0 -17
- package/esm2015/view-edit-section/view-edit-section.module.ngsummary.json +0 -1
- package/esm2015/view-edit-section/view-edit-section.ngfactory.js +0 -48
- package/esm2015/view-edit-section/view-edit-section.ngsummary.json +0 -1
- package/fesm2015/clr-addons.js.map +0 -1
- package/flow-bar/flow-bar.module.ngfactory.d.ts +0 -3
- package/flow-bar/flow-bar.ngfactory.d.ts +0 -1
- package/generic-quick-list/generic-quick-list.module.ngfactory.d.ts +0 -3
- package/generic-quick-list/generic-quick-list.ngfactory.d.ts +0 -1
- package/history/history-pinned.ngfactory.d.ts +0 -1
- package/history/history.module.ngfactory.d.ts +0 -3
- package/history/history.ngfactory.d.ts +0 -1
- package/letter-avatar/letter-avatar.module.ngfactory.d.ts +0 -3
- package/letter-avatar/letter-avatar.ngfactory.d.ts +0 -1
- package/location-bar/location-bar-node/location-bar-node.component.ngfactory.d.ts +0 -1
- package/location-bar/location-bar.component.ngfactory.d.ts +0 -1
- package/location-bar/location-bar.module.ngfactory.d.ts +0 -3
- package/main-nav-group/main-nav-group.module.ngfactory.d.ts +0 -3
- package/main-nav-group/main-nav-group.ngfactory.d.ts +0 -1
- package/multilingual/multilingual-input/multilingual-input.ngfactory.d.ts +0 -1
- package/multilingual/multilingual-selector.ngfactory.d.ts +0 -1
- package/multilingual/multilingual-textarea/multilingual-textarea.ngfactory.d.ts +0 -1
- package/multilingual/multilingual.module.ngfactory.d.ts +0 -3
- package/notification/notification.module.ngfactory.d.ts +0 -3
- package/notification/notification.ngfactory.d.ts +0 -1
- package/numericfield/numeric-field.module.ngfactory.d.ts +0 -3
- package/paged-search-result-list/paged-search-result-list.module.ngfactory.d.ts +0 -3
- package/paged-search-result-list/paged-search-result-list.ngfactory.d.ts +0 -1
- package/pager/pager.module.ngfactory.d.ts +0 -3
- package/pager/pager.ngfactory.d.ts +0 -1
- package/progress-spinner/progress-spinner.module.ngfactory.d.ts +0 -3
- package/progress-spinner/progress-spinner.ngfactory.d.ts +0 -1
- package/quick-list/add-option.ngfactory.d.ts +0 -1
- package/quick-list/quick-list.module.ngfactory.d.ts +0 -3
- package/quick-list/quick-list.ngfactory.d.ts +0 -1
- package/searchfield/search-field.module.ngfactory.d.ts +0 -3
- package/treetable/treetable-action-overflow.ngfactory.d.ts +0 -1
- package/treetable/treetable-cell.ngfactory.d.ts +0 -1
- package/treetable/treetable-column.ngfactory.d.ts +0 -1
- package/treetable/treetable-placeholder.ngfactory.d.ts +0 -1
- package/treetable/treetable-row.ngfactory.d.ts +0 -1
- package/treetable/treetable.module.ngfactory.d.ts +0 -3
- package/treetable/treetable.ngfactory.d.ts +0 -1
- package/view-edit-section/view-edit-section.module.ngfactory.d.ts +0 -3
- package/view-edit-section/view-edit-section.ngfactory.d.ts +0 -1
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { Directive, ElementRef, Renderer2 } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class ClrMainNavGroupItem {
|
|
4
|
+
constructor(el, renderer) {
|
|
5
|
+
this.el = el;
|
|
6
|
+
this.renderer = renderer;
|
|
7
|
+
this.disabled = false;
|
|
8
|
+
renderer.setAttribute(el.nativeElement, 'tabindex', '-1');
|
|
9
|
+
}
|
|
10
|
+
focus() {
|
|
11
|
+
this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '0');
|
|
12
|
+
this.el.nativeElement.focus();
|
|
13
|
+
}
|
|
14
|
+
blur() {
|
|
15
|
+
this.renderer.setAttribute(this.el.nativeElement, 'tabindex', '-1');
|
|
16
|
+
this.el.nativeElement.blur();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
ClrMainNavGroupItem.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupItem, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
|
|
20
|
+
ClrMainNavGroupItem.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: ClrMainNavGroupItem, selector: "[clrMainNavGroupItem]", ngImport: i0 });
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupItem, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: '[clrMainNavGroupItem]',
|
|
25
|
+
}]
|
|
26
|
+
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }]; } });
|
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1uYXYtZ3JvdXAtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL21haW4tbmF2LWdyb3VwL21haW4tbmF2LWdyb3VwLWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUtqRSxNQUFNLE9BQU8sbUJBQW1CO0lBQzlCLFlBQW9CLEVBQTJCLEVBQVUsUUFBbUI7UUFBeEQsT0FBRSxHQUFGLEVBQUUsQ0FBeUI7UUFBVSxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBSTVFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFIZixRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFJRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsVUFBVSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3BFLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQy9CLENBQUM7O2dIQWRVLG1CQUFtQjtvR0FBbkIsbUJBQW1COzJGQUFuQixtQkFBbUI7a0JBSC9CLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtpQkFDbEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIFJlbmRlcmVyMiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbY2xyTWFpbk5hdkdyb3VwSXRlbV0nLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJNYWluTmF2R3JvdXBJdGVtIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBlbDogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4sIHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMikge1xuICAgIHJlbmRlcmVyLnNldEF0dHJpYnV0ZShlbC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCAnLTEnKTtcbiAgfVxuXG4gIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgZm9jdXMoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCAnMCcpO1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICB9XG4gIGJsdXIoKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRBdHRyaWJ1dGUodGhpcy5lbC5uYXRpdmVFbGVtZW50LCAndGFiaW5kZXgnLCAnLTEnKTtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuYmx1cigpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,153 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2021 Porsche Informatik. 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 { Component, Input, Injector, ElementRef, Renderer2, ContentChildren, QueryList, } from '@angular/core';
|
|
7
|
+
import { ClrMainNavGroupItem } from './main-nav-group-item';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
import * as i1 from "@clr/angular";
|
|
10
|
+
let instances = 0;
|
|
11
|
+
var ArrowKeyDirection;
|
|
12
|
+
(function (ArrowKeyDirection) {
|
|
13
|
+
ArrowKeyDirection[ArrowKeyDirection["UP"] = 0] = "UP";
|
|
14
|
+
ArrowKeyDirection[ArrowKeyDirection["DOWN"] = 1] = "DOWN";
|
|
15
|
+
})(ArrowKeyDirection || (ArrowKeyDirection = {}));
|
|
16
|
+
export class ClrMainNavGroup {
|
|
17
|
+
constructor(injector) {
|
|
18
|
+
this.prefix = 'mainNavGroup';
|
|
19
|
+
this.unlistenFuncs = [];
|
|
20
|
+
this.currentFocusedId = 0;
|
|
21
|
+
this.el = injector.get(ElementRef);
|
|
22
|
+
this.renderer = injector.get(Renderer2);
|
|
23
|
+
}
|
|
24
|
+
ngOnInit() {
|
|
25
|
+
this.id = ++instances;
|
|
26
|
+
this.listenForCloseEvents();
|
|
27
|
+
this.attachResizeListener();
|
|
28
|
+
this.listenToArrowKeys();
|
|
29
|
+
}
|
|
30
|
+
ngOnDestroy() {
|
|
31
|
+
this.detachListener();
|
|
32
|
+
}
|
|
33
|
+
onClick(event) {
|
|
34
|
+
const input = document.getElementById(this.prefix + this.id);
|
|
35
|
+
if (event.target.classList.contains('collapsible')) {
|
|
36
|
+
// toggle hidden checkbox when clicking nav group div
|
|
37
|
+
input.checked = !input.checked;
|
|
38
|
+
if (input.checked) {
|
|
39
|
+
this.focusFirstItemOnOpen();
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
if (event.target.classList.contains('nav-trigger') ||
|
|
43
|
+
event.target.parentElement.classList.contains('nav-trigger')) {
|
|
44
|
+
// '!checked' as the nav-trigger click comes before the update of the checkbox
|
|
45
|
+
if (!input.checked) {
|
|
46
|
+
this.focusFirstItemOnOpen();
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
isActive() {
|
|
51
|
+
/* is active outside hamburger menu */
|
|
52
|
+
return this.el.nativeElement.classList.contains('active') && !this.el.nativeElement.closest('.open-hamburger-menu');
|
|
53
|
+
}
|
|
54
|
+
isChecked() {
|
|
55
|
+
/* expand to currently active menu inside hamburger menu */
|
|
56
|
+
return this.el.nativeElement.classList.contains('active') && this.el.nativeElement.closest('.open-hamburger-menu');
|
|
57
|
+
}
|
|
58
|
+
closeMenus(selector) {
|
|
59
|
+
selector = '.main-container:not(.open-hamburger-menu) ' + selector;
|
|
60
|
+
const hiddenInputs = document.querySelectorAll(selector);
|
|
61
|
+
// tslint:disable-next-line:prefer-for-of
|
|
62
|
+
for (let i = 0; i < hiddenInputs.length; i++) {
|
|
63
|
+
hiddenInputs[i].checked = false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
listenForCloseEvents() {
|
|
67
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'click', event => {
|
|
68
|
+
/* close other menus when opening this one */
|
|
69
|
+
this.closeMenus('[id^=' + this.prefix + ']:not(#' + this.prefix + this.id + ')');
|
|
70
|
+
if (!event.target.classList.contains('nav-link') || event.target.classList.contains('collapsible')) {
|
|
71
|
+
if (event.target.closest('.open-hamburger-menu')) {
|
|
72
|
+
// stop click handler for grouping items, otherwise hamburger menu gets closed
|
|
73
|
+
event.stopPropagation();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
// ignore even on document level for grouping items, otherwise menu gets closed right after it was opened
|
|
77
|
+
this.ignore = event;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}));
|
|
81
|
+
this.unlistenFuncs.push(this.renderer.listen('document', 'click', event => {
|
|
82
|
+
/* close menu when clicking anywhere in the document */
|
|
83
|
+
if (this.ignore === event) {
|
|
84
|
+
delete this.ignore;
|
|
85
|
+
}
|
|
86
|
+
else {
|
|
87
|
+
this.closeMenus('#' + this.prefix + this.id);
|
|
88
|
+
}
|
|
89
|
+
}));
|
|
90
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'keydown.tab', () => {
|
|
91
|
+
this.closeMenus('#' + this.prefix + this.id);
|
|
92
|
+
}));
|
|
93
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'keydown.shift.tab', () => {
|
|
94
|
+
this.closeMenus('#' + this.prefix + this.id);
|
|
95
|
+
}));
|
|
96
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'keydown.esc', () => {
|
|
97
|
+
this.closeMenus('#' + this.prefix + this.id);
|
|
98
|
+
}));
|
|
99
|
+
}
|
|
100
|
+
attachResizeListener() {
|
|
101
|
+
this.unlistenFuncs.push(this.renderer.listen('window', 'resize', () => {
|
|
102
|
+
/* when resizing window above 768, remove open-hamburger-menu when present */
|
|
103
|
+
if (!window.matchMedia('(max-width: 992px)').matches) {
|
|
104
|
+
const hamburgerMenu = this.el.nativeElement.closest('.open-hamburger-menu');
|
|
105
|
+
if (hamburgerMenu) {
|
|
106
|
+
hamburgerMenu.classList.remove('open-hamburger-menu');
|
|
107
|
+
this.closeMenus('[id^=' + this.prefix + ']');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}));
|
|
111
|
+
}
|
|
112
|
+
detachListener() {
|
|
113
|
+
this.unlistenFuncs.forEach((unlisten) => unlisten());
|
|
114
|
+
}
|
|
115
|
+
listenToArrowKeys() {
|
|
116
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'keydown.arrowup', () => this.move(ArrowKeyDirection.UP)));
|
|
117
|
+
this.unlistenFuncs.push(this.renderer.listen(this.el.nativeElement, 'keydown.arrowdown', () => this.move(ArrowKeyDirection.DOWN)));
|
|
118
|
+
}
|
|
119
|
+
move(direction) {
|
|
120
|
+
if (!this.items || this.items.length <= 0) {
|
|
121
|
+
return;
|
|
122
|
+
}
|
|
123
|
+
this.items.toArray()[this.currentFocusedId].blur();
|
|
124
|
+
if (direction === ArrowKeyDirection.DOWN) {
|
|
125
|
+
this.currentFocusedId = this.currentFocusedId >= this.items.length - 1 ? 0 : this.currentFocusedId + 1;
|
|
126
|
+
}
|
|
127
|
+
else if (direction === ArrowKeyDirection.UP) {
|
|
128
|
+
this.currentFocusedId = this.currentFocusedId === 0 ? this.items.length - 1 : this.currentFocusedId - 1;
|
|
129
|
+
}
|
|
130
|
+
this.items.toArray()[this.currentFocusedId].focus();
|
|
131
|
+
}
|
|
132
|
+
focusFirstItemOnOpen() {
|
|
133
|
+
if (!this.items || this.items.length <= 0) {
|
|
134
|
+
return;
|
|
135
|
+
}
|
|
136
|
+
this.items.forEach(item => item.blur());
|
|
137
|
+
this.currentFocusedId = 0;
|
|
138
|
+
setTimeout(() => this.items.toArray()[this.currentFocusedId].focus());
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
ClrMainNavGroup.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroup, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
142
|
+
ClrMainNavGroup.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ClrMainNavGroup, selector: "clr-main-nav-group", inputs: { title: ["clrTitle", "title"] }, host: { properties: { "class.main-nav-group": "true" } }, queries: [{ propertyName: "items", predicate: ClrMainNavGroupItem }], ngImport: i0, template: "<section\n class=\"nav-link collapsible\"\n (click)=\"onClick($event)\"\n (keydown.enter)=\"onClick($event)\"\n (keydown.space)=\"onClick($event)\"\n [class.active]=\"isActive()\"\n tabindex=\"0\"\n>\n <input id=\"{{prefix}}{{id}}\" type=\"checkbox\" [checked]=\"isChecked()\" />\n <label class=\"nav-text nav-trigger\" for=\"{{prefix}}{{id}}\">{{title}}<clr-icon shape=\"caret down\"></clr-icon></label>\n <div class=\"nav-list dropdown-menu\">\n <ng-content></ng-content>\n </div>\n</section>\n", directives: [{ type: i1.ClrLabel, selector: "label", inputs: ["for"] }, { type: i1.ClrIconCustomTag, selector: "clr-icon" }] });
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroup, decorators: [{
|
|
144
|
+
type: Component,
|
|
145
|
+
args: [{ selector: 'clr-main-nav-group', host: { '[class.main-nav-group]': 'true' }, template: "<section\n class=\"nav-link collapsible\"\n (click)=\"onClick($event)\"\n (keydown.enter)=\"onClick($event)\"\n (keydown.space)=\"onClick($event)\"\n [class.active]=\"isActive()\"\n tabindex=\"0\"\n>\n <input id=\"{{prefix}}{{id}}\" type=\"checkbox\" [checked]=\"isChecked()\" />\n <label class=\"nav-text nav-trigger\" for=\"{{prefix}}{{id}}\">{{title}}<clr-icon shape=\"caret down\"></clr-icon></label>\n <div class=\"nav-list dropdown-menu\">\n <ng-content></ng-content>\n </div>\n</section>\n" }]
|
|
146
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { title: [{
|
|
147
|
+
type: Input,
|
|
148
|
+
args: ['clrTitle']
|
|
149
|
+
}], items: [{
|
|
150
|
+
type: ContentChildren,
|
|
151
|
+
args: [ClrMainNavGroupItem]
|
|
152
|
+
}] } });
|
|
153
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1uYXYtZ3JvdXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9tYWluLW5hdi1ncm91cC9tYWluLW5hdi1ncm91cC50cyIsIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL21haW4tbmF2LWdyb3VwL21haW4tbmF2LWdyb3VwLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUNILE9BQU8sRUFDTCxTQUFTLEVBQ1QsS0FBSyxFQUNMLFFBQVEsRUFDUixVQUFVLEVBQ1YsU0FBUyxFQUdULGVBQWUsRUFDZixTQUFTLEdBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7OztBQUU1RCxJQUFJLFNBQVMsR0FBRyxDQUFDLENBQUM7QUFFbEIsSUFBSyxpQkFHSjtBQUhELFdBQUssaUJBQWlCO0lBQ3BCLHFEQUFFLENBQUE7SUFDRix5REFBSSxDQUFBO0FBQ04sQ0FBQyxFQUhJLGlCQUFpQixLQUFqQixpQkFBaUIsUUFHckI7QUFPRCxNQUFNLE9BQU8sZUFBZTtJQWExQixZQUFZLFFBQWtCO1FBVjlCLFdBQU0sR0FBRyxjQUFjLENBQUM7UUFJaEIsa0JBQWEsR0FBbUIsRUFBRSxDQUFDO1FBSW5DLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUczQixJQUFJLENBQUMsRUFBRSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzFDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQztRQUN0QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMs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QyxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxJQUFJLENBQUMsRUFBRTtZQUN6QyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXhDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFDMUIsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUN4RSxDQUFDOzs0R0F2S1UsZUFBZTtnR0FBZixlQUFlLG9MQVVULG1CQUFtQiw2QkN4Q3RDLCtmQWNBOzJGRGdCYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLG9CQUFvQixRQUV4QixFQUFFLHdCQUF3QixFQUFFLE1BQU0sRUFBRTsrRkFHdkIsS0FBSztzQkFBdkIsS0FBSzt1QkFBQyxVQUFVO2dCQVNxQixLQUFLO3NCQUExQyxlQUFlO3VCQUFDLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBJbmplY3RvcixcbiAgRWxlbWVudFJlZixcbiAgUmVuZGVyZXIyLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2xyTWFpbk5hdkdyb3VwSXRlbSB9IGZyb20gJy4vbWFpbi1uYXYtZ3JvdXAtaXRlbSc7XG5cbmxldCBpbnN0YW5jZXMgPSAwO1xuXG5lbnVtIEFycm93S2V5RGlyZWN0aW9uIHtcbiAgVVAsXG4gIERPV04sXG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1tYWluLW5hdi1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tYWluLW5hdi1ncm91cC5odG1sJyxcbiAgaG9zdDogeyAnW2NsYXNzLm1haW4tbmF2LWdyb3VwXSc6ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBDbHJNYWluTmF2R3JvdXAgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgnY2xyVGl0bGUnKSB0aXRsZTogc3RyaW5nO1xuXG4gIHByZWZpeCA9ICdtYWluTmF2R3JvdXAnO1xuICBpZDogbnVtYmVyO1xuICBwcm90ZWN0ZWQgZWw6IEVsZW1lbnRSZWY7XG4gIHByb3RlY3RlZCByZW5kZXJlcjogUmVuZGVyZXIyO1xuICBwcml2YXRlIHVubGlzdGVuRnVuY3M6IHsgKCk6IHZvaWQgfVtdID0gW107XG4gIHByaXZhdGUgaWdub3JlOiBhbnk7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihDbHJNYWluTmF2R3JvdXBJdGVtKSBpdGVtczogUXVlcnlMaXN0PENsck1haW5OYXZHcm91cEl0ZW0+O1xuICBwcml2YXRlIGN1cnJlbnRGb2N1c2VkSWQgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKGluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMuZWwgPSBpbmplY3Rvci5nZXQoRWxlbWVudFJlZik7XG4gICAgdGhpcy5yZW5kZXJlciA9IGluamVjdG9yLmdldChSZW5kZXJlcjIpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pZCA9ICsraW5zdGFuY2VzO1xuICAgIHRoaXMubGlzdGVuRm9yQ2xvc2VFdmVudHMoKTtcbiAgICB0aGlzLmF0dGFjaFJlc2l6ZUxpc3RlbmVyKCk7XG4gICAgdGhpcy5saXN0ZW5Ub0Fycm93S2V5cygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcigpO1xuICB9XG5cbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQodGhpcy5wcmVmaXggKyB0aGlzLmlkKSBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGlmICgoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5jbGFzc0xpc3QuY29udGFpbnMoJ2NvbGxhcHNpYmxlJykpIHtcbiAgICAgIC8vIHRvZ2dsZSBoaWRkZW4gY2hlY2tib3ggd2hlbiBjbGlja2luZyBuYXYgZ3JvdXAgZGl2XG4gICAgICBpbnB1dC5jaGVja2VkID0gIWlucHV0LmNoZWNrZWQ7XG4gICAgICBpZiAoaW5wdXQuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLmZvY3VzRmlyc3RJdGVtT25PcGVuKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChcbiAgICAgIChldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLmNsYXNzTGlzdC5jb250YWlucygnbmF2LXRyaWdnZXInKSB8fFxuICAgICAgKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkucGFyZW50RWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ25hdi10cmlnZ2VyJylcbiAgICApIHtcbiAgICAgIC8vICchY2hlY2tlZCcgYXMgdGhlIG5hdi10cmlnZ2VyIGNsaWNrIGNvbWVzIGJlZm9yZSB0aGUgdXBkYXRlIG9mIHRoZSBjaGVja2JveFxuICAgICAgaWYgKCFpbnB1dC5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuZm9jdXNGaXJzdEl0ZW1Pbk9wZW4oKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBpc0FjdGl2ZSgpOiBib29sZWFuIHtcbiAgICAvKiBpcyBhY3RpdmUgb3V0c2lkZSBoYW1idXJnZXIgbWVudSAqL1xuICAgIHJldHVybiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmNvbnRhaW5zKCdhY3RpdmUnKSAmJiAhdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5vcGVuLWhhbWJ1cmdlci1tZW51Jyk7XG4gIH1cblxuICBpc0NoZWNrZWQoKTogYm9vbGVhbiB7XG4gICAgLyogZXhwYW5kIHRvIGN1cnJlbnRseSBhY3RpdmUgbWVudSBpbnNpZGUgaGFtYnVyZ2VyIG1lbnUgKi9cbiAgICByZXR1cm4gdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygnYWN0aXZlJykgJiYgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJy5vcGVuLWhhbWJ1cmdlci1tZW51Jyk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlTWVudXMoc2VsZWN0b3I6IHN0cmluZyk6IHZvaWQge1xuICAgIHNlbGVjdG9yID0gJy5tYWluLWNvbnRhaW5lcjpub3QoLm9wZW4taGFtYnVyZ2VyLW1lbnUpICcgKyBzZWxlY3RvcjtcbiAgICBjb25zdCBoaWRkZW5JbnB1dHM6IE5vZGVMaXN0T2Y8SFRNTElucHV0RWxlbWVudD4gPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6cHJlZmVyLWZvci1vZlxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaGlkZGVuSW5wdXRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICBoaWRkZW5JbnB1dHNbaV0uY2hlY2tlZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbGlzdGVuRm9yQ2xvc2VFdmVudHMoKTogdm9pZCB7XG4gICAgdGhpcy51bmxpc3RlbkZ1bmNzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdjbGljaycsIGV2ZW50ID0+IHtcbiAgICAgICAgLyogY2xvc2Ugb3RoZXIgbWVudXMgd2hlbiBvcGVuaW5nIHRoaXMgb25lICovXG4gICAgICAgIHRoaXMuY2xvc2VNZW51cygnW2lkXj0nICsgdGhpcy5wcmVmaXggKyAnXTpub3QoIycgKyB0aGlzLnByZWZpeCArIHRoaXMuaWQgKyAnKScpO1xuICAgICAgICBpZiAoIWV2ZW50LnRhcmdldC5jbGFzc0xpc3QuY29udGFpbnMoJ25hdi1saW5rJykgfHwgZXZlbnQudGFyZ2V0LmNsYXNzTGlzdC5jb250YWlucygnY29sbGFwc2libGUnKSkge1xuICAgICAgICAgIGlmIChldmVudC50YXJnZXQuY2xvc2VzdCgnLm9wZW4taGFtYnVyZ2VyLW1lbnUnKSkge1xuICAgICAgICAgICAgLy8gc3RvcCBjbGljayBoYW5kbGVyIGZvciBncm91cGluZyBpdGVtcywgb3RoZXJ3aXNlIGhhbWJ1cmdlciBtZW51IGdldHMgY2xvc2VkXG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gaWdub3JlIGV2ZW4gb24gZG9jdW1lbnQgbGV2ZWwgZm9yIGdyb3VwaW5nIGl0ZW1zLCBvdGhlcndpc2UgbWVudSBnZXRzIGNsb3NlZCByaWdodCBhZnRlciBpdCB3YXMgb3BlbmVkXG4gICAgICAgICAgICB0aGlzLmlnbm9yZSA9IGV2ZW50O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy51bmxpc3RlbkZ1bmNzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3RlbignZG9jdW1lbnQnLCAnY2xpY2snLCBldmVudCA9PiB7XG4gICAgICAgIC8qIGNsb3NlIG1lbnUgd2hlbiBjbGlja2luZyBhbnl3aGVyZSBpbiB0aGUgZG9jdW1lbnQgKi9cbiAgICAgICAgaWYgKHRoaXMuaWdub3JlID09PSBldmVudCkge1xuICAgICAgICAgIGRlbGV0ZSB0aGlzLmlnbm9yZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNsb3NlTWVudXMoJyMnICsgdGhpcy5wcmVmaXggKyB0aGlzLmlkKTtcbiAgICAgICAgfVxuICAgICAgfSlcbiAgICApO1xuXG4gICAgdGhpcy51bmxpc3RlbkZ1bmNzLnB1c2goXG4gICAgICB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmVsLm5hdGl2ZUVsZW1lbnQsICdrZXlkb3duLnRhYicsICgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZU1lbnVzKCcjJyArIHRoaXMucHJlZml4ICsgdGhpcy5pZCk7XG4gICAgICB9KVxuICAgICk7XG5cbiAgICB0aGlzLnVubGlzdGVuRnVuY3MucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuZWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24uc2hpZnQudGFiJywgKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlTWVudXMoJyMnICsgdGhpcy5wcmVmaXggKyB0aGlzLmlkKTtcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMudW5saXN0ZW5GdW5jcy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bi5lc2MnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VNZW51cygnIycgKyB0aGlzLnByZWZpeCArIHRoaXMuaWQpO1xuICAgICAgfSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBhdHRhY2hSZXNpemVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICB0aGlzLnVubGlzdGVuRnVuY3MucHVzaChcbiAgICAgIHRoaXMucmVuZGVyZXIubGlzdGVuKCd3aW5kb3cnLCAncmVzaXplJywgKCkgPT4ge1xuICAgICAgICAvKiB3aGVuIHJlc2l6aW5nIHdpbmRvdyBhYm92ZSA3NjgsIHJlbW92ZSBvcGVuLWhhbWJ1cmdlci1tZW51IHdoZW4gcHJlc2VudCAqL1xuICAgICAgICBpZiAoIXdpbmRvdy5tYXRjaE1lZGlhKCcobWF4LXdpZHRoOiA5OTJweCknKS5tYXRjaGVzKSB7XG4gICAgICAgICAgY29uc3QgaGFtYnVyZ2VyTWVudSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5jbG9zZXN0KCcub3Blbi1oYW1idXJnZXItbWVudScpIGFzIEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGhhbWJ1cmdlck1lbnUpIHtcbiAgICAgICAgICAgIGhhbWJ1cmdlck1lbnUuY2xhc3NMaXN0LnJlbW92ZSgnb3Blbi1oYW1idXJnZXItbWVudScpO1xuICAgICAgICAgICAgdGhpcy5jbG9zZU1lbnVzKCdbaWRePScgKyB0aGlzLnByZWZpeCArICddJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVyKCk6IHZvaWQge1xuICAgIHRoaXMudW5saXN0ZW5GdW5jcy5mb3JFYWNoKCh1bmxpc3RlbjogKCkgPT4gdm9pZCkgPT4gdW5saXN0ZW4oKSk7XG4gIH1cblxuICBwcml2YXRlIGxpc3RlblRvQXJyb3dLZXlzKCk6IHZvaWQge1xuICAgIHRoaXMudW5saXN0ZW5GdW5jcy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bi5hcnJvd3VwJywgKCkgPT4gdGhpcy5tb3ZlKEFycm93S2V5RGlyZWN0aW9uLlVQKSlcbiAgICApO1xuICAgIHRoaXMudW5saXN0ZW5GdW5jcy5wdXNoKFxuICAgICAgdGhpcy5yZW5kZXJlci5saXN0ZW4odGhpcy5lbC5uYXRpdmVFbGVtZW50LCAna2V5ZG93bi5hcnJvd2Rvd24nLCAoKSA9PiB0aGlzLm1vdmUoQXJyb3dLZXlEaXJlY3Rpb24uRE9XTikpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgbW92ZShkaXJlY3Rpb246IEFycm93S2V5RGlyZWN0aW9uKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLml0ZW1zIHx8IHRoaXMuaXRlbXMubGVuZ3RoIDw9IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1zLnRvQXJyYXkoKVt0aGlzLmN1cnJlbnRGb2N1c2VkSWRdLmJsdXIoKTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09IEFycm93S2V5RGlyZWN0aW9uLkRPV04pIHtcbiAgICAgIHRoaXMuY3VycmVudEZvY3VzZWRJZCA9IHRoaXMuY3VycmVudEZvY3VzZWRJZCA+PSB0aGlzLml0ZW1zLmxlbmd0aCAtIDEgPyAwIDogdGhpcy5jdXJyZW50Rm9jdXNlZElkICsgMTtcbiAgICB9IGVsc2UgaWYgKGRpcmVjdGlvbiA9PT0gQXJyb3dLZXlEaXJlY3Rpb24uVVApIHtcbiAgICAgIHRoaXMuY3VycmVudEZvY3VzZWRJZCA9IHRoaXMuY3VycmVudEZvY3VzZWRJZCA9PT0gMCA/IHRoaXMuaXRlbXMubGVuZ3RoIC0gMSA6IHRoaXMuY3VycmVudEZvY3VzZWRJZCAtIDE7XG4gICAgfVxuXG4gICAgdGhpcy5pdGVtcy50b0FycmF5KClbdGhpcy5jdXJyZW50Rm9jdXNlZElkXS5mb2N1cygpO1xuICB9XG5cbiAgcHJpdmF0ZSBmb2N1c0ZpcnN0SXRlbU9uT3BlbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMgfHwgdGhpcy5pdGVtcy5sZW5ndGggPD0gMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLml0ZW1zLmZvckVhY2goaXRlbSA9PiBpdGVtLmJsdXIoKSk7XG5cbiAgICB0aGlzLmN1cnJlbnRGb2N1c2VkSWQgPSAwO1xuICAgIHNldFRpbWVvdXQoKCkgPT4gdGhpcy5pdGVtcy50b0FycmF5KClbdGhpcy5jdXJyZW50Rm9jdXNlZElkXS5mb2N1cygpKTtcbiAgfVxufVxuIiwiPHNlY3Rpb25cbiAgY2xhc3M9XCJuYXYtbGluayBjb2xsYXBzaWJsZVwiXG4gIChjbGljayk9XCJvbkNsaWNrKCRldmVudClcIlxuICAoa2V5ZG93bi5lbnRlcik9XCJvbkNsaWNrKCRldmVudClcIlxuICAoa2V5ZG93bi5zcGFjZSk9XCJvbkNsaWNrKCRldmVudClcIlxuICBbY2xhc3MuYWN0aXZlXT1cImlzQWN0aXZlKClcIlxuICB0YWJpbmRleD1cIjBcIlxuPlxuICA8aW5wdXQgaWQ9XCJ7e3ByZWZpeH19e3tpZH19XCIgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiaXNDaGVja2VkKClcIiAvPlxuICA8bGFiZWwgY2xhc3M9XCJuYXYtdGV4dCBuYXYtdHJpZ2dlclwiIGZvcj1cInt7cHJlZml4fX17e2lkfX1cIj57e3RpdGxlfX08Y2xyLWljb24gc2hhcGU9XCJjYXJldCBkb3duXCI+PC9jbHItaWNvbj48L2xhYmVsPlxuICA8ZGl2IGNsYXNzPVwibmF2LWxpc3QgZHJvcGRvd24tbWVudVwiPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2020 Porsche Informatik. 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 { NgModule } from '@angular/core';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
import { RouterModule } from '@angular/router';
|
|
9
|
+
import { ClarityModule } from '@clr/angular';
|
|
10
|
+
import { ClrMainNavGroup } from './main-nav-group';
|
|
11
|
+
import { ClrMainNavGroupItem } from './main-nav-group-item';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class ClrMainNavGroupModule {
|
|
14
|
+
}
|
|
15
|
+
ClrMainNavGroupModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
ClrMainNavGroupModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupModule, declarations: [ClrMainNavGroup, ClrMainNavGroupItem], imports: [CommonModule, RouterModule, ClarityModule], exports: [ClrMainNavGroup, ClrMainNavGroupItem] });
|
|
17
|
+
ClrMainNavGroupModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupModule, imports: [[CommonModule, RouterModule, ClarityModule]] });
|
|
18
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMainNavGroupModule, decorators: [{
|
|
19
|
+
type: NgModule,
|
|
20
|
+
args: [{
|
|
21
|
+
imports: [CommonModule, RouterModule, ClarityModule],
|
|
22
|
+
declarations: [ClrMainNavGroup, ClrMainNavGroupItem],
|
|
23
|
+
exports: [ClrMainNavGroup, ClrMainNavGroupItem],
|
|
24
|
+
}]
|
|
25
|
+
}] });
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFpbi1uYXYtZ3JvdXAubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbWFpbi1uYXYtZ3JvdXAvbWFpbi1uYXYtZ3JvdXAubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3QyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7O0FBTzVELE1BQU0sT0FBTyxxQkFBcUI7O2tIQUFyQixxQkFBcUI7bUhBQXJCLHFCQUFxQixpQkFIakIsZUFBZSxFQUFFLG1CQUFtQixhQUR6QyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsYUFFekMsZUFBZSxFQUFFLG1CQUFtQjttSEFFbkMscUJBQXFCLFlBSnZCLENBQUMsWUFBWSxFQUFFLFlBQVksRUFBRSxhQUFhLENBQUM7MkZBSXpDLHFCQUFxQjtrQkFMakMsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsQ0FBQztvQkFDcEQsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLG1CQUFtQixDQUFDO29CQUNwRCxPQUFPLEVBQUUsQ0FBQyxlQUFlLEVBQUUsbUJBQW1CLENBQUM7aUJBQ2hEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDIwIFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IENsYXJpdHlNb2R1bGUgfSBmcm9tICdAY2xyL2FuZ3VsYXInO1xuXG5pbXBvcnQgeyBDbHJNYWluTmF2R3JvdXAgfSBmcm9tICcuL21haW4tbmF2LWdyb3VwJztcbmltcG9ydCB7IENsck1haW5OYXZHcm91cEl0ZW0gfSBmcm9tICcuL21haW4tbmF2LWdyb3VwLWl0ZW0nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSb3V0ZXJNb2R1bGUsIENsYXJpdHlNb2R1bGVdLFxuICBkZWNsYXJhdGlvbnM6IFtDbHJNYWluTmF2R3JvdXAsIENsck1haW5OYXZHcm91cEl0ZW1dLFxuICBleHBvcnRzOiBbQ2xyTWFpbk5hdkdyb3VwLCBDbHJNYWluTmF2R3JvdXBJdGVtXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTWFpbk5hdkdyb3VwTW9kdWxlIHt9XG4iXX0=
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2021 Porsche Informatik. 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 { ClrAbstractFormComponent } from '../abstract-form-component/abstract-form-component';
|
|
7
|
+
import { Directive, ElementRef, HostBinding, Injector, Input, ViewChild } from '@angular/core';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
export class ClrMultilingualAbstract extends ClrAbstractFormComponent {
|
|
10
|
+
constructor(injector) {
|
|
11
|
+
super(injector);
|
|
12
|
+
this.multi = true;
|
|
13
|
+
this.controlClasses = 'clr-col-md-10';
|
|
14
|
+
}
|
|
15
|
+
writeValue(value) {
|
|
16
|
+
if (value) {
|
|
17
|
+
this.texts = new Map(value);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
setText(key, value) {
|
|
21
|
+
this.texts.set(key, value);
|
|
22
|
+
this.onChange(new Map(this.texts));
|
|
23
|
+
}
|
|
24
|
+
showLanguageSelector() {
|
|
25
|
+
return (this.texts && this.texts.size > 1) || this.showSingleLanguageSelector;
|
|
26
|
+
}
|
|
27
|
+
changeLanguage(lang) {
|
|
28
|
+
// need as the click for closing the menu is registered on a single item
|
|
29
|
+
// if the language change destroys it immediately, the click won't get fired
|
|
30
|
+
setTimeout(() => {
|
|
31
|
+
this.selectedLang = lang;
|
|
32
|
+
this.inputElement.nativeElement.focus();
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
ClrMultilingualAbstract.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualAbstract, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
+
ClrMultilingualAbstract.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.2", type: ClrMultilingualAbstract, inputs: { controlClasses: ["clrControlClasses", "controlClasses"], selectedLang: ["clrSelectedLang", "selectedLang"], readonly: "readonly", maxlength: "maxlength", showSingleLanguageSelector: ["clrShowSingleLanguageSelector", "showSingleLanguageSelector"] }, host: { properties: { "class.clr-multilingual": "this.multi" } }, viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0 });
|
|
38
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualAbstract, decorators: [{
|
|
39
|
+
type: Directive
|
|
40
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; }, propDecorators: { multi: [{
|
|
41
|
+
type: HostBinding,
|
|
42
|
+
args: ['class.clr-multilingual']
|
|
43
|
+
}], controlClasses: [{
|
|
44
|
+
type: Input,
|
|
45
|
+
args: ['clrControlClasses']
|
|
46
|
+
}], selectedLang: [{
|
|
47
|
+
type: Input,
|
|
48
|
+
args: ['clrSelectedLang']
|
|
49
|
+
}], readonly: [{
|
|
50
|
+
type: Input
|
|
51
|
+
}], maxlength: [{
|
|
52
|
+
type: Input
|
|
53
|
+
}], showSingleLanguageSelector: [{
|
|
54
|
+
type: Input,
|
|
55
|
+
args: ['clrShowSingleLanguageSelector']
|
|
56
|
+
}], inputElement: [{
|
|
57
|
+
type: ViewChild,
|
|
58
|
+
args: ['input']
|
|
59
|
+
}] } });
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtbXVsdGlsaW5ndWFsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbXVsdGlsaW5ndWFsL2Fic3RyYWN0LW11bHRpbGluZ3VhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBQ0gsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDOUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUcvRixNQUFNLE9BQWdCLHVCQUF3QixTQUFRLHdCQUF3QjtJQWM1RSxZQUFzQixRQUFrQjtRQUN0QyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUM7UUFkcUIsVUFBSyxHQUFHLElBQUksQ0FBQztRQUV4QixtQkFBYyxHQUFHLGVBQWUsQ0FBQztJQWE3RCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQTBCO1FBQ25DLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUM3QjtJQUNILENBQUM7SUFFRCxPQUFPLENBQUMsR0FBVyxFQUFFLEtBQWE7UUFDaEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUM7SUFDaEYsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFZO1FBQ3pCLHdFQUF3RTtRQUN4RSw0RUFBNEU7UUFDNUUsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxZQUFZLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0hBeENtQix1QkFBdUI7d0dBQXZCLHVCQUF1QjsyRkFBdkIsdUJBQXVCO2tCQUQ1QyxTQUFTOytGQUUrQixLQUFLO3NCQUEzQyxXQUFXO3VCQUFDLHdCQUF3QjtnQkFFVCxjQUFjO3NCQUF6QyxLQUFLO3VCQUFDLG1CQUFtQjtnQkFDQSxZQUFZO3NCQUFyQyxLQUFLO3VCQUFDLGlCQUFpQjtnQkFDZixRQUFRO3NCQUFoQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBRWtDLDBCQUEwQjtzQkFBakUsS0FBSzt1QkFBQywrQkFBK0I7Z0JBRWxCLFlBQVk7c0JBQS9CLFNBQVM7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMSBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDbHJBYnN0cmFjdEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudC9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudCc7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RCaW5kaW5nLCBJbmplY3RvciwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDbHJNdWx0aWxpbmd1YWxBYnN0cmFjdCBleHRlbmRzIENsckFic3RyYWN0Rm9ybUNvbXBvbmVudCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2xyLW11bHRpbGluZ3VhbCcpIG11bHRpID0gdHJ1ZTtcblxuICBASW5wdXQoJ2NsckNvbnRyb2xDbGFzc2VzJykgY29udHJvbENsYXNzZXMgPSAnY2xyLWNvbC1tZC0xMCc7XG4gIEBJbnB1dCgnY2xyU2VsZWN0ZWRMYW5nJykgc2VsZWN0ZWRMYW5nOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHJlYWRvbmx5OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG1heGxlbmd0aDogbnVtYmVyO1xuICAvKiogU2hvdyBsYW5ndWFnZSBzZWxlY3RvciB3aGVuIG9ubHkgb25lIGxhbmd1YWdlIHByb3ZpZGVkICovXG4gIEBJbnB1dCgnY2xyU2hvd1NpbmdsZUxhbmd1YWdlU2VsZWN0b3InKSBzaG93U2luZ2xlTGFuZ3VhZ2VTZWxlY3RvcjogYm9vbGVhbjtcblxuICBAVmlld0NoaWxkKCdpbnB1dCcpIGlucHV0RWxlbWVudDogRWxlbWVudFJlZjtcblxuICB0ZXh0czogTWFwPHN0cmluZywgc3RyaW5nPjtcblxuICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoaW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IpO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogTWFwPHN0cmluZywgc3RyaW5nPik6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy50ZXh0cyA9IG5ldyBNYXAodmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldFRleHQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnRleHRzLnNldChrZXksIHZhbHVlKTtcbiAgICB0aGlzLm9uQ2hhbmdlKG5ldyBNYXAodGhpcy50ZXh0cykpO1xuICB9XG5cbiAgc2hvd0xhbmd1YWdlU2VsZWN0b3IoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICh0aGlzLnRleHRzICYmIHRoaXMudGV4dHMuc2l6ZSA+IDEpIHx8IHRoaXMuc2hvd1NpbmdsZUxhbmd1YWdlU2VsZWN0b3I7XG4gIH1cblxuICBjaGFuZ2VMYW5ndWFnZShsYW5nOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAvLyBuZWVkIGFzIHRoZSBjbGljayBmb3IgY2xvc2luZyB0aGUgbWVudSBpcyByZWdpc3RlcmVkIG9uIGEgc2luZ2xlIGl0ZW1cbiAgICAvLyBpZiB0aGUgbGFuZ3VhZ2UgY2hhbmdlIGRlc3Ryb3lzIGl0IGltbWVkaWF0ZWx5LCB0aGUgY2xpY2sgd29uJ3QgZ2V0IGZpcmVkXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNlbGVjdGVkTGFuZyA9IGxhbmc7XG4gICAgICB0aGlzLmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
File without changes
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2022 Porsche Informatik. 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 { Component, forwardRef, Injector } from '@angular/core';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
import { ControlIdService } from '../../abstract-form-component/control-id.service';
|
|
9
|
+
import { ClrMultilingualAbstract } from '../abstract-multilingual';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../multilingual-selector";
|
|
12
|
+
import * as i2 from "@angular/common";
|
|
13
|
+
import * as i3 from "@angular/forms";
|
|
14
|
+
import * as i4 from "@clr/angular";
|
|
15
|
+
export class ClrMultilingualInput extends ClrMultilingualAbstract {
|
|
16
|
+
constructor(injector) {
|
|
17
|
+
super(injector);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ClrMultilingualInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualInput, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
ClrMultilingualInput.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ClrMultilingualInput, selector: "clr-multilingual-input", providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: NG_VALUE_ACCESSOR,
|
|
24
|
+
useExisting: forwardRef(() => ClrMultilingualInput),
|
|
25
|
+
multi: true,
|
|
26
|
+
},
|
|
27
|
+
ControlIdService,
|
|
28
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n<div class=\"clr-control-container\" [ngClass]=\"controlClasses\">\n <clr-multilingual-selector\n *ngIf=\"showLanguageSelector()\"\n [disabled]=\"disabled\"\n [texts]=\"texts\"\n [selectedLang]=\"selectedLang\"\n (selectedLangChange)=\"changeLanguage($event)\"\n >\n </clr-multilingual-selector>\n <div class=\"clr-multi-input-wrapper\">\n <div class=\"clr-input-wrapper\">\n <input\n class=\"clr-input\"\n type=\"text\"\n [id]=\"inputId\"\n [ngModel]=\"!!texts && !!selectedLang ? texts.get(selectedLang) : ''\"\n (ngModelChange)=\"setText(selectedLang, $event)\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readonly === ''\"\n autocomplete=\"off\"\n [maxlength]=\"maxlength || null\"\n #input\n />\n <clr-icon *ngIf=\"showError\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" aria-hidden=\"true\"></clr-icon>\n </div>\n <ng-content select=\"clr-control-helper\" *ngIf=\"!showError\"></ng-content>\n <ng-content select=\"clr-control-error\" *ngIf=\"showError\"></ng-content>\n </div>\n</div>\n", components: [{ type: i1.ClrMultilingualSelector, selector: "clr-multilingual-selector", inputs: ["disabled", "texts", "selectedLang"], outputs: ["selectedLangChange"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.ClrIconCustomTag, selector: "clr-icon" }] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualInput, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'clr-multilingual-input', providers: [
|
|
32
|
+
{
|
|
33
|
+
provide: NG_VALUE_ACCESSOR,
|
|
34
|
+
useExisting: forwardRef(() => ClrMultilingualInput),
|
|
35
|
+
multi: true,
|
|
36
|
+
},
|
|
37
|
+
ControlIdService,
|
|
38
|
+
], template: "<ng-content select=\"label\"></ng-content>\n<div class=\"clr-control-container\" [ngClass]=\"controlClasses\">\n <clr-multilingual-selector\n *ngIf=\"showLanguageSelector()\"\n [disabled]=\"disabled\"\n [texts]=\"texts\"\n [selectedLang]=\"selectedLang\"\n (selectedLangChange)=\"changeLanguage($event)\"\n >\n </clr-multilingual-selector>\n <div class=\"clr-multi-input-wrapper\">\n <div class=\"clr-input-wrapper\">\n <input\n class=\"clr-input\"\n type=\"text\"\n [id]=\"inputId\"\n [ngModel]=\"!!texts && !!selectedLang ? texts.get(selectedLang) : ''\"\n (ngModelChange)=\"setText(selectedLang, $event)\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readonly === ''\"\n autocomplete=\"off\"\n [maxlength]=\"maxlength || null\"\n #input\n />\n <clr-icon *ngIf=\"showError\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" aria-hidden=\"true\"></clr-icon>\n </div>\n <ng-content select=\"clr-control-helper\" *ngIf=\"!showError\"></ng-content>\n <ng-content select=\"clr-control-error\" *ngIf=\"showError\"></ng-content>\n </div>\n</div>\n" }]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLWlucHV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbXVsdGlsaW5ndWFsL211bHRpbGluZ3VhbC1pbnB1dC9tdWx0aWxpbmd1YWwtaW5wdXQudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9tdWx0aWxpbmd1YWwvbXVsdGlsaW5ndWFsLWlucHV0L211bHRpbGluZ3VhbC1pbnB1dC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQWNuRSxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsdUJBQXVCO0lBQy9ELFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O2lIQUhVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLGlEQVRwQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLG9CQUFvQixDQUFDO1lBQ25ELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxnQkFBZ0I7S0FDakIsaURDcEJILHVyQ0ErQkE7MkZEVGEsb0JBQW9CO2tCQVpoQyxTQUFTOytCQUNFLHdCQUF3QixhQUV2Qjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxxQkFBcUIsQ0FBQzs0QkFDbkQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRyb2xJZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudC9jb250cm9sLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyTXVsdGlsaW5ndWFsQWJzdHJhY3QgfSBmcm9tICcuLi9hYnN0cmFjdC1tdWx0aWxpbmd1YWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbXVsdGlsaW5ndWFsLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpbGluZ3VhbC1pbnB1dC5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJNdWx0aWxpbmd1YWxJbnB1dCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIENvbnRyb2xJZFNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsck11bHRpbGluZ3VhbElucHV0IGV4dGVuZHMgQ2xyTXVsdGlsaW5ndWFsQWJzdHJhY3Qge1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImNsci1jb250cm9sLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNvbnRyb2xDbGFzc2VzXCI+XG4gIDxjbHItbXVsdGlsaW5ndWFsLXNlbGVjdG9yXG4gICAgKm5nSWY9XCJzaG93TGFuZ3VhZ2VTZWxlY3RvcigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt0ZXh0c109XCJ0ZXh0c1wiXG4gICAgW3NlbGVjdGVkTGFuZ109XCJzZWxlY3RlZExhbmdcIlxuICAgIChzZWxlY3RlZExhbmdDaGFuZ2UpPVwiY2hhbmdlTGFuZ3VhZ2UoJGV2ZW50KVwiXG4gID5cbiAgPC9jbHItbXVsdGlsaW5ndWFsLXNlbGVjdG9yPlxuICA8ZGl2IGNsYXNzPVwiY2xyLW11bHRpLWlucHV0LXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLWlucHV0LXdyYXBwZXJcIj5cbiAgICAgIDxpbnB1dFxuICAgICAgICBjbGFzcz1cImNsci1pbnB1dFwiXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgW2lkXT1cImlucHV0SWRcIlxuICAgICAgICBbbmdNb2RlbF09XCIhIXRleHRzICYmICEhc2VsZWN0ZWRMYW5nID8gdGV4dHMuZ2V0KHNlbGVjdGVkTGFuZykgOiAnJ1wiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInNldFRleHQoc2VsZWN0ZWRMYW5nLCAkZXZlbnQpXCJcbiAgICAgICAgKGJsdXIpPVwib25Ub3VjaCgpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5IHx8IHJlYWRvbmx5ID09PSAnJ1wiXG4gICAgICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXG4gICAgICAgIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoIHx8IG51bGxcIlxuICAgICAgICAjaW5wdXRcbiAgICAgIC8+XG4gICAgICA8Y2xyLWljb24gKm5nSWY9XCJzaG93RXJyb3JcIiBjbGFzcz1cImNsci12YWxpZGF0ZS1pY29uXCIgc2hhcGU9XCJleGNsYW1hdGlvbi1jaXJjbGVcIiBhcmlhLWhpZGRlbj1cInRydWVcIj48L2Nsci1pY29uPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWhlbHBlclwiICpuZ0lmPVwiIXNob3dFcnJvclwiPjwvbmctY29udGVudD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJjbHItY29udHJvbC1lcnJvclwiICpuZ0lmPVwic2hvd0Vycm9yXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@clr/angular";
|
|
4
|
+
import * as i2 from "@angular/common";
|
|
5
|
+
export class ClrMultilingualSelector {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.selectedLangChange = new EventEmitter();
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
ClrMultilingualSelector.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualSelector, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
11
|
+
ClrMultilingualSelector.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ClrMultilingualSelector, selector: "clr-multilingual-selector", inputs: { disabled: "disabled", texts: "texts", selectedLang: "selectedLang" }, outputs: { selectedLangChange: "selectedLangChange" }, ngImport: i0, template: `
|
|
12
|
+
<div>
|
|
13
|
+
<clr-dropdown [clrCloseMenuOnItemClick]="true">
|
|
14
|
+
<button
|
|
15
|
+
type="button"
|
|
16
|
+
class="btn btn-outline btn-sm clr-multilingual-button"
|
|
17
|
+
clrDropdownTrigger
|
|
18
|
+
[disabled]="disabled"
|
|
19
|
+
>
|
|
20
|
+
{{ selectedLang }}
|
|
21
|
+
<clr-icon shape="caret down"></clr-icon>
|
|
22
|
+
</button>
|
|
23
|
+
<clr-dropdown-menu *clrIfOpen>
|
|
24
|
+
<ng-container *ngFor="let text of texts | keyvalue">
|
|
25
|
+
<div
|
|
26
|
+
*ngIf="text.key !== selectedLang"
|
|
27
|
+
class="clr-multilingual-dd-entry"
|
|
28
|
+
clrDropdownItem
|
|
29
|
+
(click)="selectedLangChange.emit(text.key)"
|
|
30
|
+
>
|
|
31
|
+
<span class="label">{{ text.key }}</span
|
|
32
|
+
>{{ text.value }}
|
|
33
|
+
</div>
|
|
34
|
+
</ng-container>
|
|
35
|
+
</clr-dropdown-menu>
|
|
36
|
+
</clr-dropdown>
|
|
37
|
+
</div>
|
|
38
|
+
`, isInline: true, components: [{ type: i1.ClrDropdown, selector: "clr-dropdown", inputs: ["clrCloseMenuOnItemClick"] }, { type: i1.ClrDropdownMenu, selector: "clr-dropdown-menu", inputs: ["clrPosition"] }], directives: [{ type: i1.ClrDropdownTrigger, selector: "[clrDropdownTrigger],[clrDropdownToggle]" }, { type: i1.ClrIconCustomTag, selector: "clr-icon" }, { type: i1.ClrIfOpen, selector: "[clrIfOpen]", inputs: ["clrIfOpen"], outputs: ["clrIfOpenChange"] }, { type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.ClrDropdownItem, selector: "[clrDropdownItem]", inputs: ["clrDisabled", "disabled", "id"] }], pipes: { "keyvalue": i2.KeyValuePipe } });
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualSelector, decorators: [{
|
|
40
|
+
type: Component,
|
|
41
|
+
args: [{
|
|
42
|
+
selector: 'clr-multilingual-selector',
|
|
43
|
+
template: `
|
|
44
|
+
<div>
|
|
45
|
+
<clr-dropdown [clrCloseMenuOnItemClick]="true">
|
|
46
|
+
<button
|
|
47
|
+
type="button"
|
|
48
|
+
class="btn btn-outline btn-sm clr-multilingual-button"
|
|
49
|
+
clrDropdownTrigger
|
|
50
|
+
[disabled]="disabled"
|
|
51
|
+
>
|
|
52
|
+
{{ selectedLang }}
|
|
53
|
+
<clr-icon shape="caret down"></clr-icon>
|
|
54
|
+
</button>
|
|
55
|
+
<clr-dropdown-menu *clrIfOpen>
|
|
56
|
+
<ng-container *ngFor="let text of texts | keyvalue">
|
|
57
|
+
<div
|
|
58
|
+
*ngIf="text.key !== selectedLang"
|
|
59
|
+
class="clr-multilingual-dd-entry"
|
|
60
|
+
clrDropdownItem
|
|
61
|
+
(click)="selectedLangChange.emit(text.key)"
|
|
62
|
+
>
|
|
63
|
+
<span class="label">{{ text.key }}</span
|
|
64
|
+
>{{ text.value }}
|
|
65
|
+
</div>
|
|
66
|
+
</ng-container>
|
|
67
|
+
</clr-dropdown-menu>
|
|
68
|
+
</clr-dropdown>
|
|
69
|
+
</div>
|
|
70
|
+
`,
|
|
71
|
+
}]
|
|
72
|
+
}], propDecorators: { disabled: [{
|
|
73
|
+
type: Input
|
|
74
|
+
}], texts: [{
|
|
75
|
+
type: Input
|
|
76
|
+
}], selectedLang: [{
|
|
77
|
+
type: Input
|
|
78
|
+
}], selectedLangChange: [{
|
|
79
|
+
type: Output
|
|
80
|
+
}] } });
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXNlbGVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbXVsdGlsaW5ndWFsL211bHRpbGluZ3VhbC1zZWxlY3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBaUN2RSxNQUFNLE9BQU8sdUJBQXVCO0lBL0JwQztRQW1DWSx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0tBQzNEOztvSEFMWSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3TUE3QnhCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EyQlQ7MkZBRVUsdUJBQXVCO2tCQS9CbkMsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsMkJBQTJCO29CQUNyQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTJCVDtpQkFDRjs4QkFFVSxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUNJLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2Nsci1tdWx0aWxpbmd1YWwtc2VsZWN0b3InLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxkaXY+XG4gICAgICA8Y2xyLWRyb3Bkb3duIFtjbHJDbG9zZU1lbnVPbkl0ZW1DbGlja109XCJ0cnVlXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICBjbGFzcz1cImJ0biBidG4tb3V0bGluZSBidG4tc20gY2xyLW11bHRpbGluZ3VhbC1idXR0b25cIlxuICAgICAgICAgIGNsckRyb3Bkb3duVHJpZ2dlclxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBzZWxlY3RlZExhbmcgfX1cbiAgICAgICAgICA8Y2xyLWljb24gc2hhcGU9XCJjYXJldCBkb3duXCI+PC9jbHItaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxjbHItZHJvcGRvd24tbWVudSAqY2xySWZPcGVuPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IHRleHQgb2YgdGV4dHMgfCBrZXl2YWx1ZVwiPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAqbmdJZj1cInRleHQua2V5ICE9PSBzZWxlY3RlZExhbmdcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNsci1tdWx0aWxpbmd1YWwtZGQtZW50cnlcIlxuICAgICAgICAgICAgICBjbHJEcm9wZG93bkl0ZW1cbiAgICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdGVkTGFuZ0NoYW5nZS5lbWl0KHRleHQua2V5KVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyB0ZXh0LmtleSB9fTwvc3BhblxuICAgICAgICAgICAgICA+e3sgdGV4dC52YWx1ZSB9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvY2xyLWRyb3Bkb3duLW1lbnU+XG4gICAgICA8L2Nsci1kcm9wZG93bj5cbiAgICA8L2Rpdj5cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTXVsdGlsaW5ndWFsU2VsZWN0b3Ige1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgQElucHV0KCkgdGV4dHM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gIEBJbnB1dCgpIHNlbGVjdGVkTGFuZzogc3RyaW5nO1xuICBAT3V0cHV0KCkgc2VsZWN0ZWRMYW5nQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG59XG4iXX0=
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Copyright (c) 2018-2022 Porsche Informatik. 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 { Component, forwardRef, Injector } from '@angular/core';
|
|
7
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
+
import { ControlIdService } from '../../abstract-form-component/control-id.service';
|
|
9
|
+
import { ClrMultilingualAbstract } from '../abstract-multilingual';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "../multilingual-selector";
|
|
12
|
+
import * as i2 from "@angular/common";
|
|
13
|
+
import * as i3 from "@angular/forms";
|
|
14
|
+
import * as i4 from "@clr/angular";
|
|
15
|
+
export class ClrMultilingualTextarea extends ClrMultilingualAbstract {
|
|
16
|
+
constructor(injector) {
|
|
17
|
+
super(injector);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
ClrMultilingualTextarea.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualTextarea, deps: [{ token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
21
|
+
ClrMultilingualTextarea.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: ClrMultilingualTextarea, selector: "clr-multilingual-textarea", providers: [
|
|
22
|
+
{
|
|
23
|
+
provide: NG_VALUE_ACCESSOR,
|
|
24
|
+
useExisting: forwardRef(() => ClrMultilingualTextarea),
|
|
25
|
+
multi: true,
|
|
26
|
+
},
|
|
27
|
+
ControlIdService,
|
|
28
|
+
], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"label\"></ng-content>\n<div class=\"clr-control-container\" [ngClass]=\"controlClasses\">\n <clr-multilingual-selector\n *ngIf=\"showLanguageSelector()\"\n [disabled]=\"disabled\"\n [texts]=\"texts\"\n [selectedLang]=\"selectedLang\"\n (selectedLangChange)=\"changeLanguage($event)\"\n >\n </clr-multilingual-selector>\n <div class=\"clr-multi-input-wrapper\">\n <div class=\"clr-textarea-wrapper\">\n <textarea\n class=\"clr-textarea\"\n [id]=\"inputId\"\n [ngModel]=\"!!texts && !!selectedLang ? texts.get(selectedLang) : ''\"\n (ngModelChange)=\"setText(selectedLang, $event)\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readonly === ''\"\n [maxlength]=\"maxlength || null\"\n #input\n ></textarea>\n <clr-icon *ngIf=\"showError\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" aria-hidden=\"true\"></clr-icon>\n </div>\n <ng-content select=\"clr-control-helper\" *ngIf=\"!showError\"></ng-content>\n <ng-content select=\"clr-control-error\" *ngIf=\"showError\"></ng-content>\n </div>\n</div>\n", components: [{ type: i1.ClrMultilingualSelector, selector: "clr-multilingual-selector", inputs: ["disabled", "texts", "selectedLang"], outputs: ["selectedLangChange"] }], directives: [{ type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i4.ClrIconCustomTag, selector: "clr-icon" }] });
|
|
29
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: ClrMultilingualTextarea, decorators: [{
|
|
30
|
+
type: Component,
|
|
31
|
+
args: [{ selector: 'clr-multilingual-textarea', providers: [
|
|
32
|
+
{
|
|
33
|
+
provide: NG_VALUE_ACCESSOR,
|
|
34
|
+
useExisting: forwardRef(() => ClrMultilingualTextarea),
|
|
35
|
+
multi: true,
|
|
36
|
+
},
|
|
37
|
+
ControlIdService,
|
|
38
|
+
], template: "<ng-content select=\"label\"></ng-content>\n<div class=\"clr-control-container\" [ngClass]=\"controlClasses\">\n <clr-multilingual-selector\n *ngIf=\"showLanguageSelector()\"\n [disabled]=\"disabled\"\n [texts]=\"texts\"\n [selectedLang]=\"selectedLang\"\n (selectedLangChange)=\"changeLanguage($event)\"\n >\n </clr-multilingual-selector>\n <div class=\"clr-multi-input-wrapper\">\n <div class=\"clr-textarea-wrapper\">\n <textarea\n class=\"clr-textarea\"\n [id]=\"inputId\"\n [ngModel]=\"!!texts && !!selectedLang ? texts.get(selectedLang) : ''\"\n (ngModelChange)=\"setText(selectedLang, $event)\"\n (blur)=\"onTouch()\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly || readonly === ''\"\n [maxlength]=\"maxlength || null\"\n #input\n ></textarea>\n <clr-icon *ngIf=\"showError\" class=\"clr-validate-icon\" shape=\"exclamation-circle\" aria-hidden=\"true\"></clr-icon>\n </div>\n <ng-content select=\"clr-control-helper\" *ngIf=\"!showError\"></ng-content>\n <ng-content select=\"clr-control-error\" *ngIf=\"showError\"></ng-content>\n </div>\n</div>\n" }]
|
|
39
|
+
}], ctorParameters: function () { return [{ type: i0.Injector }]; } });
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlsaW5ndWFsLXRleHRhcmVhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbXVsdGlsaW5ndWFsL211bHRpbGluZ3VhbC10ZXh0YXJlYS9tdWx0aWxpbmd1YWwtdGV4dGFyZWEudHMiLCIuLi8uLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9tdWx0aWxpbmd1YWwvbXVsdGlsaW5ndWFsLXRleHRhcmVhL211bHRpbGluZ3VhbC10ZXh0YXJlYS5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDcEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQWNuRSxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsdUJBQXVCO0lBQ2xFLFlBQVksUUFBa0I7UUFDNUIsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xCLENBQUM7O29IQUhVLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLG9EQVR2QjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHVCQUF1QixDQUFDO1lBQ3RELEtBQUssRUFBRSxJQUFJO1NBQ1o7UUFDRCxnQkFBZ0I7S0FDakIsaURDcEJILHFwQ0E2QkE7MkZEUGEsdUJBQXVCO2tCQVpuQyxTQUFTOytCQUNFLDJCQUEyQixhQUUxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSx3QkFBd0IsQ0FBQzs0QkFDdEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7d0JBQ0QsZ0JBQWdCO3FCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMiBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIGZvcndhcmRSZWYsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENvbnRyb2xJZFNlcnZpY2UgfSBmcm9tICcuLi8uLi9hYnN0cmFjdC1mb3JtLWNvbXBvbmVudC9jb250cm9sLWlkLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2xyTXVsdGlsaW5ndWFsQWJzdHJhY3QgfSBmcm9tICcuLi9hYnN0cmFjdC1tdWx0aWxpbmd1YWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdjbHItbXVsdGlsaW5ndWFsLXRleHRhcmVhJyxcbiAgdGVtcGxhdGVVcmw6ICcuL211bHRpbGluZ3VhbC10ZXh0YXJlYS5odG1sJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJNdWx0aWxpbmd1YWxUZXh0YXJlYSksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIENvbnRyb2xJZFNlcnZpY2UsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENsck11bHRpbGluZ3VhbFRleHRhcmVhIGV4dGVuZHMgQ2xyTXVsdGlsaW5ndWFsQWJzdHJhY3Qge1xuICBjb25zdHJ1Y3RvcihpbmplY3RvcjogSW5qZWN0b3IpIHtcbiAgICBzdXBlcihpbmplY3Rvcik7XG4gIH1cbn1cbiIsIjxuZy1jb250ZW50IHNlbGVjdD1cImxhYmVsXCI+PC9uZy1jb250ZW50PlxuPGRpdiBjbGFzcz1cImNsci1jb250cm9sLWNvbnRhaW5lclwiIFtuZ0NsYXNzXT1cImNvbnRyb2xDbGFzc2VzXCI+XG4gIDxjbHItbXVsdGlsaW5ndWFsLXNlbGVjdG9yXG4gICAgKm5nSWY9XCJzaG93TGFuZ3VhZ2VTZWxlY3RvcigpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt0ZXh0c109XCJ0ZXh0c1wiXG4gICAgW3NlbGVjdGVkTGFuZ109XCJzZWxlY3RlZExhbmdcIlxuICAgIChzZWxlY3RlZExhbmdDaGFuZ2UpPVwiY2hhbmdlTGFuZ3VhZ2UoJGV2ZW50KVwiXG4gID5cbiAgPC9jbHItbXVsdGlsaW5ndWFsLXNlbGVjdG9yPlxuICA8ZGl2IGNsYXNzPVwiY2xyLW11bHRpLWlucHV0LXdyYXBwZXJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY2xyLXRleHRhcmVhLXdyYXBwZXJcIj5cbiAgICAgIDx0ZXh0YXJlYVxuICAgICAgICBjbGFzcz1cImNsci10ZXh0YXJlYVwiXG4gICAgICAgIFtpZF09XCJpbnB1dElkXCJcbiAgICAgICAgW25nTW9kZWxdPVwiISF0ZXh0cyAmJiAhIXNlbGVjdGVkTGFuZyA/IHRleHRzLmdldChzZWxlY3RlZExhbmcpIDogJydcIlxuICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZXRUZXh0KHNlbGVjdGVkTGFuZywgJGV2ZW50KVwiXG4gICAgICAgIChibHVyKT1cIm9uVG91Y2goKVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seSB8fCByZWFkb25seSA9PT0gJydcIlxuICAgICAgICBbbWF4bGVuZ3RoXT1cIm1heGxlbmd0aCB8fCBudWxsXCJcbiAgICAgICAgI2lucHV0XG4gICAgICA+PC90ZXh0YXJlYT5cbiAgICAgIDxjbHItaWNvbiAqbmdJZj1cInNob3dFcnJvclwiIGNsYXNzPVwiY2xyLXZhbGlkYXRlLWljb25cIiBzaGFwZT1cImV4Y2xhbWF0aW9uLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvY2xyLWljb24+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiY2xyLWNvbnRyb2wtaGVscGVyXCIgKm5nSWY9XCIhc2hvd0Vycm9yXCI+PC9uZy1jb250ZW50PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImNsci1jb250cm9sLWVycm9yXCIgKm5nSWY9XCJzaG93RXJyb3JcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|