@porscheinformatik/clr-addons 11.2.0 → 12.1.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 +15 -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 +37 -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 +152 -0
- package/esm2020/view-edit-section/view-edit-section.module.mjs +25 -0
- package/fesm2015/{clr-addons.js → clr-addons.mjs} +1757 -1068
- package/fesm2015/clr-addons.mjs.map +1 -0
- package/fesm2020/clr-addons.mjs +5055 -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/styles/clr-addons-phs.css +6 -4
- 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 +11 -1
- 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/src/back-button/back-button.scss +0 -7
- package/src/brand-avatar/brand-avatar.scss +0 -26
- package/src/breadcrumb/breadcrumb.scss +0 -21
- package/src/collapse-expand-section/collapse-expand-section.scss +0 -32
- package/src/components.clr-addons.scss +0 -391
- package/src/components.variables.clr-addons.scss +0 -42
- package/src/content-panel/content-panel.scss +0 -90
- package/src/date-time-container/date-time-container.scss +0 -18
- package/src/dot-pager/dot-pager.scss +0 -11
- package/src/flow-bar/flow-bar.scss +0 -95
- package/src/generic-quick-list/generic-quick-list.scss +0 -219
- package/src/header.clr-addons.scss +0 -377
- package/src/history/history.scss +0 -25
- package/src/letter-avatar/letter-avatar.scss +0 -27
- package/src/location-bar/location-bar-node/location-bar-node.component.scss +0 -54
- package/src/main-nav-group/main-nav-group.scss +0 -156
- package/src/mixins.scss +0 -38
- package/src/mobile.scss +0 -103
- package/src/multilingual/multilingual.scss +0 -39
- package/src/notification/notification.scss +0 -94
- package/src/numericfield/numeric-field.scss +0 -18
- package/src/paged-search-result-list/paged-search-result-list.scss +0 -10
- package/src/pager/pager.scss +0 -22
- package/src/progress-spinner/progress-spinner.scss +0 -15
- package/src/quick-list/quick-list.scss +0 -23
- package/src/searchfield/search-field.scss +0 -33
- package/src/themes/phs/css.overrides.scss +0 -148
- package/src/themes/phs/phs-theme.scss +0 -13
- package/src/themes/phs/theme.clarity.scss +0 -262
- package/src/themes/phs/variables.color.scss +0 -41
- package/src/treetable/treetable.scss +0 -338
- package/src/view-edit-section/view-edit-section.scss +0 -40
- 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
|
@@ -1,125 +0,0 @@
|
|
|
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 { NG_VALIDATORS } from '@angular/forms';
|
|
7
|
-
import { Directive, Input } from '@angular/core';
|
|
8
|
-
function isEmptyInputValue(value) {
|
|
9
|
-
// we don't check for string here so it also works with arrays
|
|
10
|
-
return value == null || value.length === 0;
|
|
11
|
-
}
|
|
12
|
-
// TODO maybe create directives for it aswell? to not only support reactive forms?
|
|
13
|
-
export class ClrNumericFieldValidators {
|
|
14
|
-
/**
|
|
15
|
-
* @description
|
|
16
|
-
* Validator that requires the control's value to be greater than or equal to the provided number.
|
|
17
|
-
* The validator exists only as a function and not as a directive.
|
|
18
|
-
*
|
|
19
|
-
* @usageNotes
|
|
20
|
-
*
|
|
21
|
-
* ### Validate against a minimum of 3
|
|
22
|
-
*
|
|
23
|
-
* ```typescript
|
|
24
|
-
* const control = new FormControl(2, ClrNumericFieldValidators.min(3, '.', ','));
|
|
25
|
-
*
|
|
26
|
-
* console.log(control.errors); // {min: {min: 3, actual: 2}}
|
|
27
|
-
* ```
|
|
28
|
-
*
|
|
29
|
-
* @returns A validator function that returns an error map with the
|
|
30
|
-
* `min` property if the validation check fails, otherwise `null`.
|
|
31
|
-
*
|
|
32
|
-
*/
|
|
33
|
-
static min(min, groupingSeparator = '.', decimalSeparator = ',') {
|
|
34
|
-
const validatorFn = (control) => {
|
|
35
|
-
if (isEmptyInputValue(control.value) || isEmptyInputValue(min)) {
|
|
36
|
-
return null; // don't validate empty values to allow optional controls
|
|
37
|
-
}
|
|
38
|
-
const value = this.parseInputString(control.value, groupingSeparator, decimalSeparator);
|
|
39
|
-
// Controls with NaN values after parsing should be treated as not having a
|
|
40
|
-
// minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min
|
|
41
|
-
return !isNaN(value) && value < min ? { min: { min: min, actual: value } } : null;
|
|
42
|
-
};
|
|
43
|
-
return validatorFn;
|
|
44
|
-
}
|
|
45
|
-
/**
|
|
46
|
-
* @description
|
|
47
|
-
* Validator that requires the control's value to be less than or equal to the provided number.
|
|
48
|
-
* The validator exists only as a function and not as a directive.
|
|
49
|
-
*
|
|
50
|
-
* @usageNotes
|
|
51
|
-
*
|
|
52
|
-
* ### Validate against a maximum of 15
|
|
53
|
-
*
|
|
54
|
-
* ```typescript
|
|
55
|
-
* const control = new FormControl(16, ClrNumericFieldValidators.max(15, '.', ','));
|
|
56
|
-
*
|
|
57
|
-
* console.log(control.errors); // {max: {max: 15, actual: 16}}
|
|
58
|
-
* ```
|
|
59
|
-
*
|
|
60
|
-
* @returns A validator function that returns an error map with the
|
|
61
|
-
* `max` property if the validation check fails, otherwise `null`.
|
|
62
|
-
*
|
|
63
|
-
*/
|
|
64
|
-
static max(max, groupingSeparator = '.', decimalSeparator = ',') {
|
|
65
|
-
const validatorFn = (control) => {
|
|
66
|
-
if (isEmptyInputValue(control.value) || isEmptyInputValue(max)) {
|
|
67
|
-
return null; // don't validate empty values to allow optional controls
|
|
68
|
-
}
|
|
69
|
-
const value = this.parseInputString(control.value, groupingSeparator, decimalSeparator);
|
|
70
|
-
// Controls with NaN values after parsing should be treated as not having a
|
|
71
|
-
// minimum, per the HTML forms spec: https://www.w3.org/TR/html5/forms.html#attr-input-min
|
|
72
|
-
return !isNaN(value) && value > max ? { max: { max: max, actual: value } } : null;
|
|
73
|
-
};
|
|
74
|
-
return validatorFn;
|
|
75
|
-
}
|
|
76
|
-
static parseInputString(value, groupingSeparator, decimalSeparator) {
|
|
77
|
-
if (typeof value !== 'string') {
|
|
78
|
-
return parseFloat(value);
|
|
79
|
-
}
|
|
80
|
-
const notGroupedNumber = value.replace(new RegExp('[' + groupingSeparator + ']', 'g'), '');
|
|
81
|
-
const formattedNumber = notGroupedNumber.replace(new RegExp('[' + decimalSeparator + ']', 'g'), '.');
|
|
82
|
-
return parseFloat(formattedNumber);
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
export class ClrMaxNumeric {
|
|
86
|
-
constructor() {
|
|
87
|
-
this._groupingSep = '.';
|
|
88
|
-
this._decimalSep = ',';
|
|
89
|
-
}
|
|
90
|
-
validate(control) {
|
|
91
|
-
return ClrNumericFieldValidators.max(this._max, this._groupingSep, this._decimalSep)(control);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
ClrMaxNumeric.decorators = [
|
|
95
|
-
{ type: Directive, args: [{
|
|
96
|
-
selector: '[clrMaxNumeric]',
|
|
97
|
-
providers: [{ provide: NG_VALIDATORS, useExisting: ClrMaxNumeric, multi: true }],
|
|
98
|
-
},] }
|
|
99
|
-
];
|
|
100
|
-
ClrMaxNumeric.propDecorators = {
|
|
101
|
-
_max: [{ type: Input, args: ['clrMaxNumeric',] }],
|
|
102
|
-
_groupingSep: [{ type: Input, args: ['clrGroupingSep',] }],
|
|
103
|
-
_decimalSep: [{ type: Input, args: ['clrDecimalSep',] }]
|
|
104
|
-
};
|
|
105
|
-
export class ClrMinNumeric {
|
|
106
|
-
constructor() {
|
|
107
|
-
this._groupingSep = '.';
|
|
108
|
-
this._decimalSep = ',';
|
|
109
|
-
}
|
|
110
|
-
validate(control) {
|
|
111
|
-
return ClrNumericFieldValidators.min(this._min, this._groupingSep, this._decimalSep)(control);
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
ClrMinNumeric.decorators = [
|
|
115
|
-
{ type: Directive, args: [{
|
|
116
|
-
selector: '[clrMinNumeric]',
|
|
117
|
-
providers: [{ provide: NG_VALIDATORS, useExisting: ClrMinNumeric, multi: true }],
|
|
118
|
-
},] }
|
|
119
|
-
];
|
|
120
|
-
ClrMinNumeric.propDecorators = {
|
|
121
|
-
_min: [{ type: Input, args: ['clrMinNumeric',] }],
|
|
122
|
-
_groupingSep: [{ type: Input, args: ['clrGroupingSep',] }],
|
|
123
|
-
_decimalSep: [{ type: Input, args: ['clrDecimalSep',] }]
|
|
124
|
-
};
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC12YWxpZGF0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2Nsci1hZGRvbnMvbnVtZXJpY2ZpZWxkL251bWVyaWMtZmllbGQtdmFsaWRhdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7OztHQUlHO0FBRUgsT0FBTyxFQUFrRCxhQUFhLEVBQWEsTUFBTSxnQkFBZ0IsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxTQUFTLGlCQUFpQixDQUFDLEtBQVU7SUFDbkMsOERBQThEO0lBQzlELE9BQU8sS0FBSyxJQUFJLElBQUksSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQztBQUM3QyxDQUFDO0FBRUQsa0ZBQWtGO0FBQ2xGLE1BQU0sT0FBTyx5QkFBeUI7SUFDcEM7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQWtCRztJQUNILE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBVyxFQUFFLGlCQUFpQixHQUFHLEdBQUcsRUFBRSxnQkFBZ0IsR0FBRyxHQUFHO1FBQ3JFLE1BQU0sV0FBVyxHQUFnQixDQUFDLE9BQXdCLEVBQTJCLEVBQUU7WUFDckYsSUFBSSxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksaUJBQWlCLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQzlELE9BQU8sSUFBSSxDQUFDLENBQUMseURBQXlEO2FBQ3ZFO1lBQ0QsTUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztZQUNoRywyRUFBMkU7WUFDM0UsMEZBQTBGO1lBQzFGLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksS0FBSyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxHQUFHLEVBQUUsRUFBRSxHQUFH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Q0FBQzs7O1lBWEYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxXQUFXLEVBQUUsYUFBYSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQzthQUNqRjs7O21CQUVFLEtBQUssU0FBQyxlQUFlOzJCQUNyQixLQUFLLFNBQUMsZ0JBQWdCOzBCQUN0QixLQUFLLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKGMpIDIwMTgtMjAyMCBQb3JzY2hlIEluZm9ybWF0aWsuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKiBUaGlzIHNvZnR3YXJlIGlzIHJlbGVhc2VkIHVuZGVyIE1JVCBsaWNlbnNlLlxuICogVGhlIGZ1bGwgbGljZW5zZSBpbmZvcm1hdGlvbiBjYW4gYmUgZm91bmQgaW4gTElDRU5TRSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBwcm9qZWN0LlxuICovXG5cbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIE5HX1ZBTElEQVRPUlMsIFZhbGlkYXRvciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZnVuY3Rpb24gaXNFbXB0eUlucHV0VmFsdWUodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAvLyB3ZSBkb24ndCBjaGVjayBmb3Igc3RyaW5nIGhlcmUgc28gaXQgYWxzbyB3b3JrcyB3aXRoIGFycmF5c1xuICByZXR1cm4gdmFsdWUgPT0gbnVsbCB8fCB2YWx1ZS5sZW5ndGggPT09IDA7XG59XG5cbi8vIFRPRE8gbWF5YmUgY3JlYXRlIGRpcmVjdGl2ZXMgZm9yIGl0IGFzd2VsbD8gdG8gbm90IG9ubHkgc3VwcG9ydCByZWFjdGl2ZSBmb3Jtcz9cbmV4cG9ydCBjbGFzcyBDbHJOdW1lcmljRmllbGRWYWxpZGF0b3JzIHtcbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgY29udHJvbCdzIHZhbHVlIHRvIGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgbnVtYmVyLlxuICAgKiBUaGUgdmFsaWRhdG9yIGV4aXN0cyBvbmx5IGFzIGEgZnVuY3Rpb24gYW5kIG5vdCBhcyBhIGRpcmVjdGl2ZS5cbiAgICpcbiAgICogQHVzYWdlTm90ZXNcbiAgICpcbiAgICogIyMjIFZhbGlkYXRlIGFnYWluc3QgYSBtaW5pbXVtIG9mIDNcbiAgICpcbiAgICogYGBgdHlwZXNjcmlwdFxuICAgKiBjb25zdCBjb250cm9sID0gbmV3IEZvcm1Db250cm9sKDIsIENsck51bWVyaWNGaWVsZFZhbGlkYXRvcnMubWluKDMsICcuJywgJywnKSk7XG4gICAqXG4gICAqIGNvbnNvbGUubG9nKGNvbnRyb2wuZXJyb3JzKTsgLy8ge21pbjoge21pbjogMywgYWN0dWFsOiAyfX1cbiAgICogYGBgXG4gICAqXG4gICAqIEByZXR1cm5zIEEgdmFsaWRhdG9yIGZ1bmN0aW9uIHRoYXQgcmV0dXJucyBhbiBlcnJvciBtYXAgd2l0aCB0aGVcbiAgICogYG1pbmAgcHJvcGVydHkgaWYgdGhlIHZhbGlkYXRpb24gY2hlY2sgZmFpbHMsIG90aGVyd2lzZSBgbnVsbGAuXG4gICAqXG4gICAqL1xuICBzdGF0aWMgbWluKG1pbjogbnVtYmVyLCBncm91cGluZ1NlcGFyYXRvciA9ICcuJywgZGVjaW1hbFNlcGFyYXRvciA9ICcsJyk6IFZhbGlkYXRvckZuIHtcbiAgICBjb25zdCB2YWxpZGF0b3JGbjogVmFsaWRhdG9yRm4gPSAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB8IG51bGwgPT4ge1xuICAgICAgaWYgKGlzRW1wdHlJbnB1dFZhbHVlKGNvbnRyb2wudmFsdWUpIHx8IGlzRW1wdHlJbnB1dFZhbHVlKG1pbikpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7IC8vIGRvbid0IHZhbGlkYXRlIGVtcHR5IHZhbHVlcyB0byBhbGxvdyBvcHRpb25hbCBjb250cm9sc1xuICAgICAgfVxuICAgICAgY29uc3QgdmFsdWU6IG51bWJlciA9IHRoaXMucGFyc2VJbnB1dFN0cmluZyhjb250cm9sLnZhbHVlLCBncm91cGluZ1NlcGFyYXRvciwgZGVjaW1hbFNlcGFyYXRvcik7XG4gICAgICAvLyBDb250cm9scyB3aXRoIE5hTiB2YWx1ZXMgYWZ0ZXIgcGFyc2luZyBzaG91bGQgYmUgdHJlYXRlZCBhcyBub3QgaGF2aW5nIGFcbiAgICAgIC8vIG1pbmltdW0sIHBlciB0aGUgSFRNTCBmb3JtcyBzcGVjOiBodHRwczovL3d3dy53My5vcmcvVFIvaHRtbDUvZm9ybXMuaHRtbCNhdHRyLWlucHV0LW1pblxuICAgICAgcmV0dXJuICFpc05hTih2YWx1ZSkgJiYgdmFsdWUgPCBtaW4gPyB7IG1pbjogeyBtaW46IG1pbiwgYWN0dWFsOiB2YWx1ZSB9IH0gOiBudWxsO1xuICAgIH07XG4gICAgcmV0dXJuIHZhbGlkYXRvckZuO1xuICB9XG5cbiAgLyoqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKiBWYWxpZGF0b3IgdGhhdCByZXF1aXJlcyB0aGUgY29udHJvbCdzIHZhbHVlIHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgcHJvdmlkZWQgbnVtYmVyLlxuICAgKiBUaGUgdmFsaWRhdG9yIGV4aXN0cyBvbmx5IGFzIGEgZnVuY3Rpb24gYW5kIG5vdCBhcyBhIGRpcmVjdGl2ZS5cbiAgICpcbiAgICogQHVzYWdlTm90ZXNcbiAgICpcbiAgICogIyMjIFZhbGlkYXRlIGFnYWluc3QgYSBtYXhpbXVtIG9mIDE1XG4gICAqXG4gICAqIGBgYHR5cGVzY3JpcHRcbiAgICogY29uc3QgY29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCgxNiwgQ2xyTnVtZXJpY0ZpZWxkVmFsaWRhdG9ycy5tYXgoMTUsICcuJywgJywnKSk7XG4gICAqXG4gICAqIGNvbnNvbGUubG9nKGNvbnRyb2wuZXJyb3JzKTsgLy8ge21heDoge21heDogMTUsIGFjdHVhbDogMTZ9fVxuICAgKiBgYGBcbiAgICpcbiAgICogQHJldHVybnMgQSB2YWxpZGF0b3IgZnVuY3Rpb24gdGhhdCByZXR1cm5zIGFuIGVycm9yIG1hcCB3aXRoIHRoZVxuICAgKiBgbWF4YCBwcm9wZXJ0eSBpZiB0aGUgdmFsaWRhdGlvbiBjaGVjayBmYWlscywgb3RoZXJ3aXNlIGBudWxsYC5cbiAgICpcbiAgICovXG4gIHN0YXRpYyBtYXgobWF4OiBudW1iZXIsIGdyb3VwaW5nU2VwYXJhdG9yID0gJy4nLCBkZWNpbWFsU2VwYXJhdG9yID0gJywnKTogVmFsaWRhdG9yRm4ge1xuICAgIGNvbnN0IHZhbGlkYXRvckZuOiBWYWxpZGF0b3JGbiA9IChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCA9PiB7XG4gICAgICBpZiAoaXNFbXB0eUlucHV0VmFsdWUoY29udHJvbC52YWx1ZSkgfHwgaXNFbXB0eUlucHV0VmFsdWUobWF4KSkge1xuICAgICAgICByZXR1cm4gbnVsbDsgLy8gZG9uJ3QgdmFsaWRhdGUgZW1wdHkgdmFsdWVzIHRvIGFsbG93IG9wdGlvbmFsIGNvbnRyb2xzXG4gICAgICB9XG4gICAgICBjb25zdCB2YWx1ZTogbnVtYmVyID0gdGhpcy5wYXJzZUlucHV0U3RyaW5nKGNvbnRyb2wudmFsdWUsIGdyb3VwaW5nU2VwYXJhdG9yLCBkZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgIC8vIENvbnRyb2xzIHdpdGggTmFOIHZhbHVlcyBhZnRlciBwYXJzaW5nIHNob3VsZCBiZSB0cmVhdGVkIGFzIG5vdCBoYXZpbmcgYVxuICAgICAgLy8gbWluaW11bSwgcGVyIHRoZSBIVE1MIGZvcm1zIHNwZWM6IGh0dHBzOi8vd3d3LnczLm9yZy9UUi9odG1sNS9mb3Jtcy5odG1sI2F0dHItaW5wdXQtbWluXG4gICAgICByZXR1cm4gIWlzTmFOKHZhbHVlKSAmJiB2YWx1ZSA+IG1heCA/IHsgbWF4OiB7IG1heDogbWF4LCBhY3R1YWw6IHZhbHVlIH0gfSA6IG51bGw7XG4gICAgfTtcbiAgICByZXR1cm4gdmFsaWRhdG9yRm47XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBwYXJzZUlucHV0U3RyaW5nKHZhbHVlOiBzdHJpbmcsIGdyb3VwaW5nU2VwYXJhdG9yOiBzdHJpbmcsIGRlY2ltYWxTZXBhcmF0b3I6IHN0cmluZyk6IG51bWJlciB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBwYXJzZUZsb2F0KHZhbHVlKTtcbiAgICB9XG4gICAgY29uc3Qgbm90R3JvdXBlZE51bWJlcjogc3RyaW5nID0gdmFsdWUucmVwbGFjZShuZXcgUmVnRXhwKCdbJyArIGdyb3VwaW5nU2VwYXJhdG9yICsgJ10nLCAnZycpLCAnJyk7XG4gICAgY29uc3QgZm9ybWF0dGVkTnVtYmVyOiBzdHJpbmcgPSBub3RHcm91cGVkTnVtYmVyLnJlcGxhY2UobmV3IFJlZ0V4cCgnWycgKyBkZWNpbWFsU2VwYXJhdG9yICsgJ10nLCAnZycpLCAnLicpO1xuICAgIHJldHVybiBwYXJzZUZsb2F0KGZvcm1hdHRlZE51bWJlcik7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck1heE51bWVyaWNdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQ2xyTWF4TnVtZXJpYywgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsck1heE51bWVyaWMgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBASW5wdXQoJ2Nsck1heE51bWVyaWMnKSBfbWF4OiBudW1iZXI7XG4gIEBJbnB1dCgnY2xyR3JvdXBpbmdTZXAnKSBfZ3JvdXBpbmdTZXAgPSAnLic7XG4gIEBJbnB1dCgnY2xyRGVjaW1hbFNlcCcpIF9kZWNpbWFsU2VwID0gJywnO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gQ2xyTnVtZXJpY0ZpZWxkVmFsaWRhdG9ycy5tYXgodGhpcy5fbWF4LCB0aGlzLl9ncm91cGluZ1NlcCwgdGhpcy5fZGVjaW1hbFNlcCkoY29udHJvbCk7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck1pbk51bWVyaWNdJyxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBOR19WQUxJREFUT1JTLCB1c2VFeGlzdGluZzogQ2xyTWluTnVtZXJpYywgbXVsdGk6IHRydWUgfV0sXG59KVxuZXhwb3J0IGNsYXNzIENsck1pbk51bWVyaWMgaW1wbGVtZW50cyBWYWxpZGF0b3Ige1xuICBASW5wdXQoJ2Nsck1pbk51bWVyaWMnKSBfbWluOiBudW1iZXI7XG4gIEBJbnB1dCgnY2xyR3JvdXBpbmdTZXAnKSBfZ3JvdXBpbmdTZXAgPSAnLic7XG4gIEBJbnB1dCgnY2xyRGVjaW1hbFNlcCcpIF9kZWNpbWFsU2VwID0gJywnO1xuXG4gIHZhbGlkYXRlKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcbiAgICByZXR1cm4gQ2xyTnVtZXJpY0ZpZWxkVmFsaWRhdG9ycy5taW4odGhpcy5fbWluLCB0aGlzLl9ncm91cGluZ1NlcCwgdGhpcy5fZGVjaW1hbFNlcCkoY29udHJvbCk7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"moduleName":null,"summaries":[{"symbol":{"__symbol":0,"members":[]},"metadata":{"__symbolic":"class"}},{"symbol":{"__symbol":1,"members":[]},"metadata":{"__symbolic":"class","members":{"_max":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrMaxNumeric"]}]}],"_groupingSep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrGroupingSep"]}]}],"_decimalSep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrDecimalSep"]}]}],"validate":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":1,"members":[]},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"[clrMaxNumeric]","exportAs":null,"inputs":{"_max":"clrMaxNumeric","_groupingSep":"clrGroupingSep","_decimalSep":"clrDecimalSep"},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[{"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}},"useClass":null,"useFactory":null,"useExisting":{"identifier":{"reference":{"__symbol":1,"members":[]}}},"multi":true}],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[],"entryComponents":[],"changeDetection":null,"template":null,"componentViewType":null,"rendererType":null,"componentFactory":null}},{"symbol":{"__symbol":3,"members":[]},"metadata":{"__symbolic":"class","members":{"_min":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrMinNumeric"]}]}],"_groupingSep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrGroupingSep"]}]}],"_decimalSep":[{"__symbolic":"property","decorators":[{"__symbolic":"call","expression":{"__symbol":2,"members":[]},"arguments":["clrDecimalSep"]}]}],"validate":[{"__symbolic":"method"}]}},"type":{"summaryKind":1,"type":{"reference":{"__symbol":3,"members":[]},"diDeps":[],"lifecycleHooks":[]},"isComponent":false,"selector":"[clrMinNumeric]","exportAs":null,"inputs":{"_min":"clrMinNumeric","_groupingSep":"clrGroupingSep","_decimalSep":"clrDecimalSep"},"outputs":{},"hostListeners":{},"hostProperties":{},"hostAttributes":{},"providers":[{"token":{"identifier":{"reference":{"__symbol":4,"members":[]}}},"useClass":null,"useFactory":null,"useExisting":{"identifier":{"reference":{"__symbol":3,"members":[]}}},"multi":true}],"viewProviders":[],"queries":[],"guards":{},"viewQueries":[],"entryComponents":[],"changeDetection":null,"template":null,"componentViewType":null,"rendererType":null,"componentFactory":null}}],"symbols":[{"__symbol":0,"name":"ClrNumericFieldValidators","filePath":"./numeric-field-validators"},{"__symbol":1,"name":"ClrMaxNumeric","filePath":"./numeric-field-validators"},{"__symbol":2,"name":"Input","filePath":"@angular/core"},{"__symbol":3,"name":"ClrMinNumeric","filePath":"./numeric-field-validators"},{"__symbol":4,"name":"NG_VALIDATORS","filePath":"@angular/forms"}]}
|
|
@@ -1,348 +0,0 @@
|
|
|
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 { Directive, ElementRef, EventEmitter, forwardRef, Input, Output, Renderer2, } from '@angular/core';
|
|
7
|
-
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
8
|
-
const NEGATIVE = '-';
|
|
9
|
-
const BACK_KEYCODE = 8;
|
|
10
|
-
const DEL_KEYCODE = 46;
|
|
11
|
-
const CONTROL_KEYCODES_UPPER_BORDER = 46;
|
|
12
|
-
const OTHER_CONTROL_KEYS = new Set([224, 91, 93]);
|
|
13
|
-
const NUMBERS = new Set(['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']);
|
|
14
|
-
export class ClrNumericField {
|
|
15
|
-
constructor(renderer, inputEl) {
|
|
16
|
-
this.renderer = renderer;
|
|
17
|
-
this.inputEl = inputEl;
|
|
18
|
-
this.textAlign = 'right';
|
|
19
|
-
this.decimalPlaces = 2;
|
|
20
|
-
this.roundValue = false;
|
|
21
|
-
this.autofillDecimals = false;
|
|
22
|
-
this.decimalSeparator = ',';
|
|
23
|
-
this.groupingSeparator = '.';
|
|
24
|
-
this.unitPosition = 'right';
|
|
25
|
-
this.numericValueChanged = new EventEmitter();
|
|
26
|
-
this.displayValue = '';
|
|
27
|
-
this.originalValue = NaN;
|
|
28
|
-
this._unit = null;
|
|
29
|
-
this.allowedKeys = new Set(NUMBERS);
|
|
30
|
-
/* Control Values Accessor Stuff below */
|
|
31
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
32
|
-
this.onChange = (_) => { };
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
34
|
-
this.onTouched = () => { };
|
|
35
|
-
}
|
|
36
|
-
set numericValue(value) {
|
|
37
|
-
if (this._numericValue !== value && !(isNaN(this._numericValue) && (isNaN(value) || value === null))) {
|
|
38
|
-
this.originalValue = value;
|
|
39
|
-
this._numericValue = this.roundOrTruncate(value);
|
|
40
|
-
this.handleInputChanged();
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
set unit(value) {
|
|
44
|
-
if (value != this._unit) {
|
|
45
|
-
this._unit = value;
|
|
46
|
-
if (this.unitSpan != null) {
|
|
47
|
-
this.unitSpan.innerHTML = '';
|
|
48
|
-
const newUnitText = this.renderer.createText(value);
|
|
49
|
-
this.renderer.appendChild(this.unitSpan, newUnitText);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
registerOnChange(fn) {
|
|
54
|
-
this.onChange = fn;
|
|
55
|
-
}
|
|
56
|
-
registerOnTouched(fn) {
|
|
57
|
-
this.onTouched = fn;
|
|
58
|
-
}
|
|
59
|
-
setDisabledState(isDisabled) {
|
|
60
|
-
this.renderer.setProperty(this.inputEl.nativeElement, 'disabled', isDisabled);
|
|
61
|
-
}
|
|
62
|
-
writeValue(value) {
|
|
63
|
-
this.numericValue = value;
|
|
64
|
-
}
|
|
65
|
-
ngOnInit() {
|
|
66
|
-
/* needs to be parsed as number explicitly as it comes as string from user input */
|
|
67
|
-
this.decimalPlaces = Number.parseInt(this.decimalPlaces.toString(), 10);
|
|
68
|
-
this.allowedKeys.add(NEGATIVE);
|
|
69
|
-
this.allowedKeys.add(this.decimalSeparator);
|
|
70
|
-
this.inputChangeListener = this.renderer.listen(this.inputEl.nativeElement, 'blur', event => {
|
|
71
|
-
this.formatInput(event.target, true);
|
|
72
|
-
});
|
|
73
|
-
this.keyupListener = this.renderer.listen(this.inputEl.nativeElement, 'keyup', event => {
|
|
74
|
-
if (event.keyCode === BACK_KEYCODE ||
|
|
75
|
-
(event.keyCode >= CONTROL_KEYCODES_UPPER_BORDER && !OTHER_CONTROL_KEYS.has(event.keyCode))) {
|
|
76
|
-
this.formatInput(event.target, false);
|
|
77
|
-
}
|
|
78
|
-
});
|
|
79
|
-
this.keydownListener = this.renderer.listen(this.inputEl.nativeElement, 'keydown', event => {
|
|
80
|
-
const value = event.target.value;
|
|
81
|
-
if (this.allowedKeys.has(event.key) ||
|
|
82
|
-
(event.keyCode <= CONTROL_KEYCODES_UPPER_BORDER && event.keyCode > 0) ||
|
|
83
|
-
event.metaKey ||
|
|
84
|
-
event.ctrlKey ||
|
|
85
|
-
event.altKey) {
|
|
86
|
-
/* allow negative sign only as first character and none exists outside of text selection */
|
|
87
|
-
const indexNegativeSign = value.indexOf(NEGATIVE);
|
|
88
|
-
if (event.key === NEGATIVE &&
|
|
89
|
-
(event.target.selectionStart > 0 || indexNegativeSign > -1) &&
|
|
90
|
-
(event.target.selectionStart === event.target.selectionEnd ||
|
|
91
|
-
!(indexNegativeSign >= event.target.selectionStart && indexNegativeSign <= event.target.selectionEnd))) {
|
|
92
|
-
return false;
|
|
93
|
-
}
|
|
94
|
-
/* no duplicate decimal separators */
|
|
95
|
-
const indexDecimalSep = value.indexOf(this.decimalSeparator);
|
|
96
|
-
if (event.key === this.decimalSeparator &&
|
|
97
|
-
(indexDecimalSep > -1 || this.decimalPlaces === 0) &&
|
|
98
|
-
(event.target.selectionStart === event.target.selectionEnd ||
|
|
99
|
-
!(indexDecimalSep >= event.target.selectionStart && indexDecimalSep <= event.target.selectionEnd))) {
|
|
100
|
-
return false;
|
|
101
|
-
}
|
|
102
|
-
/* prevent too many decimal places */
|
|
103
|
-
if (NUMBERS.has(event.key) &&
|
|
104
|
-
indexDecimalSep > -1 &&
|
|
105
|
-
indexDecimalSep < event.target.selectionStart &&
|
|
106
|
-
event.target.selectionStart === event.target.selectionEnd &&
|
|
107
|
-
value.length > indexDecimalSep + this.decimalPlaces) {
|
|
108
|
-
return false;
|
|
109
|
-
}
|
|
110
|
-
/* when deleting thousand separator, remove the digit before or after it */
|
|
111
|
-
const cursorStart = event.target.selectionStart;
|
|
112
|
-
if (cursorStart === event.target.selectionEnd) {
|
|
113
|
-
if (event.keyCode === BACK_KEYCODE && value.substr(cursorStart - 1, 1) === this.groupingSeparator) {
|
|
114
|
-
event.target.value = value.substring(0, cursorStart - 2) + value.substring(cursorStart - 1, value.length);
|
|
115
|
-
event.target.selectionStart = event.target.selectionEnd = cursorStart - 1;
|
|
116
|
-
return false;
|
|
117
|
-
}
|
|
118
|
-
else if (event.keyCode === DEL_KEYCODE && value.substr(cursorStart, 1) === this.groupingSeparator) {
|
|
119
|
-
event.target.value = value.substring(0, cursorStart + 1) + value.substring(cursorStart + 2, value.length);
|
|
120
|
-
event.target.selectionStart = event.target.selectionEnd = cursorStart + 1;
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
this.originalValue = NaN;
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
return true;
|
|
130
|
-
});
|
|
131
|
-
}
|
|
132
|
-
ngOnDestroy() {
|
|
133
|
-
this.detachListener();
|
|
134
|
-
}
|
|
135
|
-
ngAfterViewChecked() {
|
|
136
|
-
this.injectUnitSymbol();
|
|
137
|
-
}
|
|
138
|
-
handleInputChanged() {
|
|
139
|
-
this.updateInput(this.formatNumber(this._numericValue.toString().replace(new RegExp('[.]', 'g'), this.decimalSeparator), true), true);
|
|
140
|
-
}
|
|
141
|
-
formatInput(element, finalFormatting) {
|
|
142
|
-
const cursorPos = element.selectionStart;
|
|
143
|
-
const length = element.value.length;
|
|
144
|
-
const setCursor = this.displayValue !== element.value;
|
|
145
|
-
this.updateInput(this.formatNumber(element.value, finalFormatting), false);
|
|
146
|
-
if (setCursor) {
|
|
147
|
-
element.selectionStart = element.selectionEnd = Math.max(cursorPos + element.value.length - length, 0);
|
|
148
|
-
}
|
|
149
|
-
}
|
|
150
|
-
formatNumber(value, finalFormatting) {
|
|
151
|
-
let result = this.strip(value, finalFormatting);
|
|
152
|
-
/* add grouping separator */
|
|
153
|
-
const decimalIndex = result.indexOf(this.decimalSeparator);
|
|
154
|
-
const isNegative = result[0] === NEGATIVE;
|
|
155
|
-
let i = decimalIndex > -1 ? decimalIndex : result.length;
|
|
156
|
-
while (i > (isNegative ? 4 : 3)) {
|
|
157
|
-
i -= 3;
|
|
158
|
-
result = result.substring(0, i) + this.groupingSeparator + result.substring(i, result.length);
|
|
159
|
-
}
|
|
160
|
-
if (finalFormatting) {
|
|
161
|
-
if (this.decimalPlaces > 0 && !!result) {
|
|
162
|
-
/* autofill decimal places */
|
|
163
|
-
let actualDecimalIndex = result.indexOf(this.decimalSeparator);
|
|
164
|
-
if (this.autofillDecimals) {
|
|
165
|
-
if (actualDecimalIndex === -1) {
|
|
166
|
-
actualDecimalIndex = result.length;
|
|
167
|
-
result += this.decimalSeparator;
|
|
168
|
-
}
|
|
169
|
-
result = this.addMissingLeadingZero(result, actualDecimalIndex);
|
|
170
|
-
actualDecimalIndex = result.indexOf(this.decimalSeparator);
|
|
171
|
-
const actualDecimalPlaces = result.length - actualDecimalIndex - 1;
|
|
172
|
-
for (let j = 0; j < this.decimalPlaces - actualDecimalPlaces; j++) {
|
|
173
|
-
result += '0';
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
else {
|
|
177
|
-
result = this.addMissingLeadingZero(result, actualDecimalIndex);
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
return result;
|
|
182
|
-
}
|
|
183
|
-
addMissingLeadingZero(result, actualDecimalIndex) {
|
|
184
|
-
const isNegative = result[0] === NEGATIVE;
|
|
185
|
-
/* autoadd a zero before decimal separator, when it's missing */
|
|
186
|
-
if (actualDecimalIndex === 0) {
|
|
187
|
-
result = '0' + result;
|
|
188
|
-
}
|
|
189
|
-
/* autoadd a zero before decimal separator, when it's missing, for negative values */
|
|
190
|
-
if (actualDecimalIndex === 1 && isNegative) {
|
|
191
|
-
result = result[0] + '0' + result.substring(1, result.length);
|
|
192
|
-
}
|
|
193
|
-
return result;
|
|
194
|
-
}
|
|
195
|
-
strip(value, removeLeadingZeros = false) {
|
|
196
|
-
let result = '';
|
|
197
|
-
let indexDecimalSep = -1;
|
|
198
|
-
let j = -1;
|
|
199
|
-
let ignoredChars = 0;
|
|
200
|
-
for (const char of value) {
|
|
201
|
-
j++;
|
|
202
|
-
if (this.allowedKeys.has(char)) {
|
|
203
|
-
if (char === this.decimalSeparator) {
|
|
204
|
-
if (this.decimalPlaces === 0) {
|
|
205
|
-
/* dismiss content after a decimal separator, when no places allowed */
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
else if (indexDecimalSep > -1) {
|
|
209
|
-
/* ignore subsequent decimal separators */
|
|
210
|
-
continue;
|
|
211
|
-
}
|
|
212
|
-
indexDecimalSep = j;
|
|
213
|
-
}
|
|
214
|
-
if (char === '0' && removeLeadingZeros) {
|
|
215
|
-
/* remove leading zero only if it's not the only zero in the 'value' string */
|
|
216
|
-
if ((result.length === 0 && j + 1 !== value.length) || result === NEGATIVE) {
|
|
217
|
-
ignoredChars++;
|
|
218
|
-
continue;
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
if (char === NEGATIVE && j > 0) {
|
|
222
|
-
/* dismiss content after a negative sign not on first position */
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
if (indexDecimalSep > -1 && result.length + ignoredChars > indexDecimalSep + this.decimalPlaces) {
|
|
226
|
-
/* dismiss content after maximum decimal places reached */
|
|
227
|
-
break;
|
|
228
|
-
}
|
|
229
|
-
result += char;
|
|
230
|
-
}
|
|
231
|
-
else if (char === this.groupingSeparator) {
|
|
232
|
-
if (indexDecimalSep === -1) {
|
|
233
|
-
ignoredChars++;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
else {
|
|
237
|
-
/* dismiss content after a invalid character */
|
|
238
|
-
break;
|
|
239
|
-
}
|
|
240
|
-
}
|
|
241
|
-
return result;
|
|
242
|
-
}
|
|
243
|
-
updateInput(value, updateAsync) {
|
|
244
|
-
this.displayValue = value;
|
|
245
|
-
this.inputEl.nativeElement.value = value;
|
|
246
|
-
this._numericValue = parseFloat(this.strip(value).replace(this.decimalSeparator, '.'));
|
|
247
|
-
if (this._numericValue !== this.roundOrTruncate(this.originalValue)) {
|
|
248
|
-
this.originalValue = this._numericValue;
|
|
249
|
-
if (updateAsync) {
|
|
250
|
-
// Call in setTimeout to avoid Expression has changed after it has been checked error.
|
|
251
|
-
// This happens for example if the initial input has more decimal places than allowed
|
|
252
|
-
setTimeout(() => this.numericValueChanged.emit(this._numericValue));
|
|
253
|
-
}
|
|
254
|
-
else {
|
|
255
|
-
this.numericValueChanged.emit(this._numericValue);
|
|
256
|
-
}
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
getValueForFormControl() {
|
|
260
|
-
this.formatInput(this.inputEl.nativeElement, false);
|
|
261
|
-
if (isNaN(this._numericValue)) {
|
|
262
|
-
// Return undefined instead of NaN to support the default required validator.
|
|
263
|
-
return undefined;
|
|
264
|
-
}
|
|
265
|
-
return this._numericValue;
|
|
266
|
-
}
|
|
267
|
-
injectUnitSymbol() {
|
|
268
|
-
// Need to inject the unit symbol when the input element width is set to its actual value,
|
|
269
|
-
// otherwise the icon wont show in the correct position
|
|
270
|
-
if (!!this._unit && !this.unitSpan && this.inputEl.nativeElement.offsetWidth !== 0) {
|
|
271
|
-
// Get the input wrapper and apply necessary styles
|
|
272
|
-
const inputWrapper = this.inputEl.nativeElement.parentNode;
|
|
273
|
-
this.renderer.addClass(inputWrapper, 'numeric-input-wrapper');
|
|
274
|
-
// Create the span with unit symbol and apply necessary styles
|
|
275
|
-
if (!this.unitSpan) {
|
|
276
|
-
this.unitSpan = this.renderer.createElement('span');
|
|
277
|
-
this.renderer.addClass(this.unitSpan, 'unit');
|
|
278
|
-
const unitSymbol = this.renderer.createText(this._unit);
|
|
279
|
-
this.renderer.appendChild(this.unitSpan, unitSymbol);
|
|
280
|
-
this.renderer.appendChild(inputWrapper, this.unitSpan);
|
|
281
|
-
}
|
|
282
|
-
// Add padding to the input element, depending on the width of the unit symbol + 12px
|
|
283
|
-
const paddingOnInput = this.unitSpan.offsetWidth + 12;
|
|
284
|
-
if (this.unitPosition === 'left') {
|
|
285
|
-
this.renderer.addClass(this.unitSpan, 'unit-left');
|
|
286
|
-
this.renderer.setStyle(this.inputEl.nativeElement, 'padding-left', paddingOnInput + 'px');
|
|
287
|
-
}
|
|
288
|
-
else {
|
|
289
|
-
this.renderer.addClass(this.unitSpan, 'unit-right');
|
|
290
|
-
this.renderer.setStyle(this.inputEl.nativeElement, 'padding-right', paddingOnInput + 'px');
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
detachListener() {
|
|
295
|
-
if (this.inputChangeListener) {
|
|
296
|
-
this.inputChangeListener();
|
|
297
|
-
delete this.inputChangeListener;
|
|
298
|
-
}
|
|
299
|
-
if (this.keydownListener) {
|
|
300
|
-
this.keydownListener();
|
|
301
|
-
delete this.keydownListener;
|
|
302
|
-
}
|
|
303
|
-
if (this.keyupListener) {
|
|
304
|
-
this.keyupListener();
|
|
305
|
-
delete this.keyupListener;
|
|
306
|
-
}
|
|
307
|
-
}
|
|
308
|
-
roundOrTruncate(value) {
|
|
309
|
-
const method = this.roundValue ? 'round' : value < 0 ? 'ceil' : 'floor';
|
|
310
|
-
// 16 is the highest precision before numbers have weird behaviour. see https://stackoverflow.com/q/21472828/15120942
|
|
311
|
-
return Math[method](+(value * Math.pow(10, this.decimalPlaces)).toPrecision(16)) / Math.pow(10, this.decimalPlaces);
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
ClrNumericField.decorators = [
|
|
315
|
-
{ type: Directive, args: [{
|
|
316
|
-
selector: '[clrNumeric]',
|
|
317
|
-
host: {
|
|
318
|
-
'[class.text-right]': 'textAlign === "right"',
|
|
319
|
-
'(change)': 'onChange(getValueForFormControl())',
|
|
320
|
-
'(input)': 'onChange(getValueForFormControl())',
|
|
321
|
-
'(blur)': 'onTouched()',
|
|
322
|
-
},
|
|
323
|
-
providers: [
|
|
324
|
-
{
|
|
325
|
-
provide: NG_VALUE_ACCESSOR,
|
|
326
|
-
useExisting: forwardRef(() => ClrNumericField),
|
|
327
|
-
multi: true,
|
|
328
|
-
},
|
|
329
|
-
],
|
|
330
|
-
},] }
|
|
331
|
-
];
|
|
332
|
-
ClrNumericField.ctorParameters = () => [
|
|
333
|
-
{ type: Renderer2 },
|
|
334
|
-
{ type: ElementRef }
|
|
335
|
-
];
|
|
336
|
-
ClrNumericField.propDecorators = {
|
|
337
|
-
textAlign: [{ type: Input, args: ['clrTextAlign',] }],
|
|
338
|
-
decimalPlaces: [{ type: Input, args: ['clrDecimalPlaces',] }],
|
|
339
|
-
roundValue: [{ type: Input, args: ['clrRoundDisplayValue',] }],
|
|
340
|
-
autofillDecimals: [{ type: Input, args: ['clrAutofillDecimals',] }],
|
|
341
|
-
decimalSeparator: [{ type: Input, args: ['clrDecimalSep',] }],
|
|
342
|
-
groupingSeparator: [{ type: Input, args: ['clrGroupingSep',] }],
|
|
343
|
-
unitPosition: [{ type: Input, args: ['clrUnitPosition',] }],
|
|
344
|
-
numericValueChanged: [{ type: Output, args: ['clrNumericValueChange',] }],
|
|
345
|
-
numericValue: [{ type: Input, args: ['clrNumericValue',] }],
|
|
346
|
-
unit: [{ type: Input, args: ['clrUnit',] }]
|
|
347
|
-
};
|
|
348
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jbHItYWRkb25zL251bWVyaWNmaWVsZC9udW1lcmljLWZpZWxkLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFFSCxPQUFPLEVBRUwsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osVUFBVSxFQUNWLEtBQUssRUFHTCxNQUFNLEVBQ04sU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUV6RSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUM7QUFDckIsTUFBTSxZQUFZLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQztBQUN2QixNQUFNLDZCQUE2QixHQUFHLEVBQUUsQ0FBQztBQUN6QyxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0FBQ2xELE1BQU0sT0FBTyxHQUFHLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztBQWtCNUUsTUFBTSxPQUFPLGVBQWU7SUFnRTFCLFlBQW9CLFFBQW1CLEVBQVUsT0FBbUI7UUFBaEQsYUFBUSxHQUFSLFFBQVEsQ0FBVztRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVk7UUEvRDdDLGNBQVMsR0FBRyxPQUFPLENBQUM7UUFDaEIsa0JBQWEsR0FBRyxDQUFDLENBQUM7UUFDZCxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3BCLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUMvQixxQkFBZ0IsR0FBRyxHQUFH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LENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEgsQ0FBQzs7O1lBeldGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsSUFBSSxFQUFFO29CQUNKLG9CQUFvQixFQUFFLHVCQUF1QjtvQkFDN0MsVUFBVSxFQUFFLG9DQUFvQztvQkFDaEQsU0FBUyxFQUFFLG9DQUFvQztvQkFDL0MsUUFBUSxFQUFFLGFBQWE7aUJBQ3hCO2dCQUNELFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsaUJBQWlCO3dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGVBQWUsQ0FBQzt3QkFDOUMsS0FBSyxFQUFFLElBQUk7cUJBQ1o7aUJBQ0Y7YUFDRjs7O1lBMUJDLFNBQVM7WUFQVCxVQUFVOzs7d0JBbUNULEtBQUssU0FBQyxjQUFjOzRCQUNwQixLQUFLLFNBQUMsa0JBQWtCO3lCQUN4QixLQUFLLFNBQUMsc0JBQXNCOytCQUM1QixLQUFLLFNBQUMscUJBQXFCOytCQUMzQixLQUFLLFNBQUMsZUFBZTtnQ0FDckIsS0FBSyxTQUFDLGdCQUFnQjsyQkFDdEIsS0FBSyxTQUFDLGlCQUFpQjtrQ0FDdkIsTUFBTSxTQUFDLHVCQUF1QjsyQkFVOUIsS0FBSyxTQUFDLGlCQUFpQjttQkFTdkIsS0FBSyxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChjKSAyMDE4LTIwMjEgUG9yc2NoZSBJbmZvcm1hdGlrLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICogVGhpcyBzb2Z0d2FyZSBpcyByZWxlYXNlZCB1bmRlciBNSVQgbGljZW5zZS5cbiAqIFRoZSBmdWxsIGxpY2Vuc2UgaW5mb3JtYXRpb24gY2FuIGJlIGZvdW5kIGluIExJQ0VOU0UgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgcHJvamVjdC5cbiAqL1xuXG5pbXBvcnQge1xuICBBZnRlclZpZXdDaGVja2VkLFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmNvbnN0IE5FR0FUSVZFID0gJy0nO1xuY29uc3QgQkFDS19LRVlDT0RFID0gODtcbmNvbnN0IERFTF9LRVlDT0RFID0gNDY7XG5jb25zdCBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiA9IDQ2O1xuY29uc3QgT1RIRVJfQ09OVFJPTF9LRVlTID0gbmV3IFNldChbMjI0LCA5MSwgOTNdKTtcbmNvbnN0IE5VTUJFUlMgPSBuZXcgU2V0KFsnMCcsICcxJywgJzInLCAnMycsICc0JywgJzUnLCAnNicsICc3JywgJzgnLCAnOSddKTtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2Nsck51bWVyaWNdJyxcbiAgaG9zdDoge1xuICAgICdbY2xhc3MudGV4dC1yaWdodF0nOiAndGV4dEFsaWduID09PSBcInJpZ2h0XCInLFxuICAgICcoY2hhbmdlKSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGlucHV0KSc6ICdvbkNoYW5nZShnZXRWYWx1ZUZvckZvcm1Db250cm9sKCkpJyxcbiAgICAnKGJsdXIpJzogJ29uVG91Y2hlZCgpJyxcbiAgfSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBDbHJOdW1lcmljRmllbGQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2xyTnVtZXJpY0ZpZWxkIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0NoZWNrZWQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQElucHV0KCdjbHJUZXh0QWxpZ24nKSB0ZXh0QWxpZ24gPSAncmlnaHQnO1xuICBASW5wdXQoJ2NsckRlY2ltYWxQbGFjZXMnKSBkZWNpbWFsUGxhY2VzID0gMjtcbiAgQElucHV0KCdjbHJSb3VuZERpc3BsYXlWYWx1ZScpIHJvdW5kVmFsdWUgPSBmYWxzZTtcbiAgQElucHV0KCdjbHJBdXRvZmlsbERlY2ltYWxzJykgYXV0b2ZpbGxEZWNpbWFscyA9IGZhbHNlO1xuICBASW5wdXQoJ2NsckRlY2ltYWxTZXAnKSBkZWNpbWFsU2VwYXJhdG9yID0gJywnO1xuICBASW5wdXQoJ2Nsckdyb3VwaW5nU2VwJykgZ3JvdXBpbmdTZXBhcmF0b3IgPSAnLic7XG4gIEBJbnB1dCgnY2xyVW5pdFBvc2l0aW9uJykgdW5pdFBvc2l0aW9uID0gJ3JpZ2h0JztcbiAgQE91dHB1dCgnY2xyTnVtZXJpY1ZhbHVlQ2hhbmdlJykgbnVtZXJpY1ZhbHVlQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIHByaXZhdGUgZGlzcGxheVZhbHVlID0gJyc7XG4gIHByaXZhdGUgb3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgcHJpdmF0ZSBfbnVtZXJpY1ZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgX3VuaXQ6IHN0cmluZyA9IG51bGw7XG4gIHByaXZhdGUgaW5wdXRDaGFuZ2VMaXN0ZW5lcjogKCkgPT4gdm9pZDtcbiAgcHJpdmF0ZSBrZXl1cExpc3RlbmVyOiAoKSA9PiB2b2lkO1xuICBwcml2YXRlIGtleWRvd25MaXN0ZW5lcjogKCkgPT4gdm9pZDtcblxuICBASW5wdXQoJ2Nsck51bWVyaWNWYWx1ZScpXG4gIHNldCBudW1lcmljVmFsdWUodmFsdWU6IG51bWJlcikge1xuICAgIGlmICh0aGlzLl9udW1lcmljVmFsdWUgIT09IHZhbHVlICYmICEoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSAmJiAoaXNOYU4odmFsdWUpIHx8IHZhbHVlID09PSBudWxsKSkpIHtcbiAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IHZhbHVlO1xuICAgICAgdGhpcy5fbnVtZXJpY1ZhbHVlID0gdGhpcy5yb3VuZE9yVHJ1bmNhdGUodmFsdWUpO1xuICAgICAgdGhpcy5oYW5kbGVJbnB1dENoYW5nZWQoKTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoJ2NsclVuaXQnKVxuICBzZXQgdW5pdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHZhbHVlICE9IHRoaXMuX3VuaXQpIHtcbiAgICAgIHRoaXMuX3VuaXQgPSB2YWx1ZTtcbiAgICAgIGlmICh0aGlzLnVuaXRTcGFuICE9IG51bGwpIHtcbiAgICAgICAgdGhpcy51bml0U3Bhbi5pbm5lckhUTUwgPSAnJztcbiAgICAgICAgY29uc3QgbmV3VW5pdFRleHQgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodmFsdWUpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFwcGVuZENoaWxkKHRoaXMudW5pdFNwYW4sIG5ld1VuaXRUZXh0KTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuaXRTcGFuOiBIVE1MU3BhbkVsZW1lbnQ7XG4gIHByaXZhdGUgYWxsb3dlZEtleXMgPSBuZXcgU2V0KE5VTUJFUlMpO1xuXG4gIC8qIENvbnRyb2wgVmFsdWVzIEFjY2Vzc29yIFN0dWZmIGJlbG93ICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgb25DaGFuZ2UgPSAoXzogbnVtYmVyKTogdm9pZCA9PiB7fTtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1mdW5jdGlvblxuICBvblRvdWNoZWQgPSAoKTogdm9pZCA9PiB7fTtcblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiAoXzogbnVtYmVyKSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5yZW5kZXJlci5zZXRQcm9wZXJ0eSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2Rpc2FibGVkJywgaXNEaXNhYmxlZCk7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLm51bWVyaWNWYWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLCBwcml2YXRlIGlucHV0RWw6IEVsZW1lbnRSZWYpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLyogbmVlZHMgdG8gYmUgcGFyc2VkIGFzIG51bWJlciBleHBsaWNpdGx5IGFzIGl0IGNvbWVzIGFzIHN0cmluZyBmcm9tIHVzZXIgaW5wdXQgKi9cbiAgICB0aGlzLmRlY2ltYWxQbGFjZXMgPSBOdW1iZXIucGFyc2VJbnQodGhpcy5kZWNpbWFsUGxhY2VzLnRvU3RyaW5nKCksIDEwKTtcbiAgICB0aGlzLmFsbG93ZWRLZXlzLmFkZChORUdBVElWRSk7XG4gICAgdGhpcy5hbGxvd2VkS2V5cy5hZGQodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAnYmx1cicsIGV2ZW50ID0+IHtcbiAgICAgIHRoaXMuZm9ybWF0SW5wdXQoZXZlbnQudGFyZ2V0LCB0cnVlKTtcbiAgICB9KTtcblxuICAgIHRoaXMua2V5dXBMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKHRoaXMuaW5wdXRFbC5uYXRpdmVFbGVtZW50LCAna2V5dXAnLCBldmVudCA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSB8fFxuICAgICAgICAoZXZlbnQua2V5Q29kZSA+PSBDT05UUk9MX0tFWUNPREVTX1VQUEVSX0JPUkRFUiAmJiAhT1RIRVJfQ09OVFJPTF9LRVlTLmhhcyhldmVudC5rZXlDb2RlKSlcbiAgICAgICkge1xuICAgICAgICB0aGlzLmZvcm1hdElucHV0KGV2ZW50LnRhcmdldCwgZmFsc2UpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5rZXlkb3duTGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ2tleWRvd24nLCBldmVudCA9PiB7XG4gICAgICBjb25zdCB2YWx1ZTogc3RyaW5nID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xuICAgICAgaWYgKFxuICAgICAgICB0aGlzLmFsbG93ZWRLZXlzLmhhcyhldmVudC5rZXkpIHx8XG4gICAgICAgIChldmVudC5rZXlDb2RlIDw9IENPTlRST0xfS0VZQ09ERVNfVVBQRVJfQk9SREVSICYmIGV2ZW50LmtleUNvZGUgPiAwKSB8fFxuICAgICAgICBldmVudC5tZXRhS2V5IHx8XG4gICAgICAgIGV2ZW50LmN0cmxLZXkgfHxcbiAgICAgICAgZXZlbnQuYWx0S2V5XG4gICAgICApIHtcbiAgICAgICAgLyogYWxsb3cgbmVnYXRpdmUgc2lnbiBvbmx5IGFzIGZpcnN0IGNoYXJhY3RlciBhbmQgbm9uZSBleGlzdHMgb3V0c2lkZSBvZiB0ZXh0IHNlbGVjdGlvbiAqL1xuICAgICAgICBjb25zdCBpbmRleE5lZ2F0aXZlU2lnbiA9IHZhbHVlLmluZGV4T2YoTkVHQVRJVkUpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSBORUdBVElWRSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPiAwIHx8IGluZGV4TmVnYXRpdmVTaWduID4gLTEpICYmXG4gICAgICAgICAgKGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCB8fFxuICAgICAgICAgICAgIShpbmRleE5lZ2F0aXZlU2lnbiA+PSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgJiYgaW5kZXhOZWdhdGl2ZVNpZ24gPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIG5vIGR1cGxpY2F0ZSBkZWNpbWFsIHNlcGFyYXRvcnMgKi9cbiAgICAgICAgY29uc3QgaW5kZXhEZWNpbWFsU2VwID0gdmFsdWUuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgZXZlbnQua2V5ID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IgJiZcbiAgICAgICAgICAoaW5kZXhEZWNpbWFsU2VwID4gLTEgfHwgdGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSAmJlxuICAgICAgICAgIChldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQgPT09IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgfHxcbiAgICAgICAgICAgICEoaW5kZXhEZWNpbWFsU2VwID49IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJiBpbmRleERlY2ltYWxTZXAgPD0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCkpXG4gICAgICAgICkge1xuICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8qIHByZXZlbnQgdG9vIG1hbnkgZGVjaW1hbCBwbGFjZXMgKi9cbiAgICAgICAgaWYgKFxuICAgICAgICAgIE5VTUJFUlMuaGFzKGV2ZW50LmtleSkgJiZcbiAgICAgICAgICBpbmRleERlY2ltYWxTZXAgPiAtMSAmJlxuICAgICAgICAgIGluZGV4RGVjaW1hbFNlcCA8IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCAmJlxuICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9PT0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCAmJlxuICAgICAgICAgIHZhbHVlLmxlbmd0aCA+IGluZGV4RGVjaW1hbFNlcCArIHRoaXMuZGVjaW1hbFBsYWNlc1xuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICAvKiB3aGVuIGRlbGV0aW5nIHRob3VzYW5kIHNlcGFyYXRvciwgcmVtb3ZlIHRoZSBkaWdpdCBiZWZvcmUgb3IgYWZ0ZXIgaXQgKi9cbiAgICAgICAgY29uc3QgY3Vyc29yU3RhcnQgPSBldmVudC50YXJnZXQuc2VsZWN0aW9uU3RhcnQ7XG5cbiAgICAgICAgaWYgKGN1cnNvclN0YXJ0ID09PSBldmVudC50YXJnZXQuc2VsZWN0aW9uRW5kKSB7XG4gICAgICAgICAgaWYgKGV2ZW50LmtleUNvZGUgPT09IEJBQ0tfS0VZQ09ERSAmJiB2YWx1ZS5zdWJzdHIoY3Vyc29yU3RhcnQgLSAxLCAxKSA9PT0gdGhpcy5ncm91cGluZ1NlcGFyYXRvcikge1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gdmFsdWUuc3Vic3RyaW5nKDAsIGN1cnNvclN0YXJ0IC0gMikgKyB2YWx1ZS5zdWJzdHJpbmcoY3Vyc29yU3RhcnQgLSAxLCB2YWx1ZS5sZW5ndGgpO1xuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnNlbGVjdGlvblN0YXJ0ID0gZXZlbnQudGFyZ2V0LnNlbGVjdGlvbkVuZCA9IGN1cnNvclN0YXJ0IC0gMTtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LmtleUNvZGUgPT09IERFTF9LRVlDT0RFICYmIHZhbHVlLnN1YnN0cihjdXJzb3JTdGFydCwgMSkgPT09IHRoaXMuZ3JvdXBpbmdTZXBhcmF0b3IpIHtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IHZhbHVlLnN1YnN0cmluZygwLCBjdXJzb3JTdGFydCArIDEpICsgdmFsdWUuc3Vic3RyaW5nKGN1cnNvclN0YXJ0ICsgMiwgdmFsdWUubGVuZ3RoKTtcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC5zZWxlY3Rpb25TdGFydCA9IGV2ZW50LnRhcmdldC5zZWxlY3Rpb25FbmQgPSBjdXJzb3JTdGFydCArIDE7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMub3JpZ2luYWxWYWx1ZSA9IE5hTjtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5kZXRhY2hMaXN0ZW5lcigpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdDaGVja2VkKCk6IHZvaWQge1xuICAgIHRoaXMuaW5qZWN0VW5pdFN5bWJvbCgpO1xuICB9XG5cbiAgaGFuZGxlSW5wdXRDaGFuZ2VkKCk6IHZvaWQge1xuICAgIHRoaXMudXBkYXRlSW5wdXQoXG4gICAgICB0aGlzLmZvcm1hdE51bWJlcih0aGlzLl9udW1lcmljVmFsdWUudG9TdHJpbmcoKS5yZXBsYWNlKG5ldyBSZWdFeHAoJ1suXScsICdnJyksIHRoaXMuZGVjaW1hbFNlcGFyYXRvciksIHRydWUpLFxuICAgICAgdHJ1ZVxuICAgICk7XG4gIH1cblxuICBmb3JtYXRJbnB1dChlbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50LCBmaW5hbEZvcm1hdHRpbmc6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBjdXJzb3JQb3MgPSBlbGVtZW50LnNlbGVjdGlvblN0YXJ0O1xuICAgIGNvbnN0IGxlbmd0aCA9IGVsZW1lbnQudmFsdWUubGVuZ3RoO1xuICAgIGNvbnN0IHNldEN1cnNvciA9IHRoaXMuZGlzcGxheVZhbHVlICE9PSBlbGVtZW50LnZhbHVlO1xuICAgIHRoaXMudXBkYXRlSW5wdXQodGhpcy5mb3JtYXROdW1iZXIoZWxlbWVudC52YWx1ZSwgZmluYWxGb3JtYXR0aW5nKSwgZmFsc2UpO1xuICAgIGlmIChzZXRDdXJzb3IpIHtcbiAgICAgIGVsZW1lbnQuc2VsZWN0aW9uU3RhcnQgPSBlbGVtZW50LnNlbGVjdGlvbkVuZCA9IE1hdGgubWF4KGN1cnNvclBvcyArIGVsZW1lbnQudmFsdWUubGVuZ3RoIC0gbGVuZ3RoLCAwKTtcbiAgICB9XG4gIH1cblxuICBmb3JtYXROdW1iZXIodmFsdWU6IHN0cmluZywgZmluYWxGb3JtYXR0aW5nOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5zdHJpcCh2YWx1ZSwgZmluYWxGb3JtYXR0aW5nKTtcblxuICAgIC8qIGFkZCBncm91cGluZyBzZXBhcmF0b3IgKi9cbiAgICBjb25zdCBkZWNpbWFsSW5kZXggPSByZXN1bHQuaW5kZXhPZih0aGlzLmRlY2ltYWxTZXBhcmF0b3IpO1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIGxldCBpID0gZGVjaW1hbEluZGV4ID4gLTEgPyBkZWNpbWFsSW5kZXggOiByZXN1bHQubGVuZ3RoO1xuICAgIHdoaWxlIChpID4gKGlzTmVnYXRpdmUgPyA0IDogMykpIHtcbiAgICAgIGkgLT0gMztcbiAgICAgIHJlc3VsdCA9IHJlc3VsdC5zdWJzdHJpbmcoMCwgaSkgKyB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yICsgcmVzdWx0LnN1YnN0cmluZyhpLCByZXN1bHQubGVuZ3RoKTtcbiAgICB9XG5cbiAgICBpZiAoZmluYWxGb3JtYXR0aW5nKSB7XG4gICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID4gMCAmJiAhIXJlc3VsdCkge1xuICAgICAgICAvKiBhdXRvZmlsbCBkZWNpbWFsIHBsYWNlcyAqL1xuICAgICAgICBsZXQgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcbiAgICAgICAgaWYgKHRoaXMuYXV0b2ZpbGxEZWNpbWFscykge1xuICAgICAgICAgIGlmIChhY3R1YWxEZWNpbWFsSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBhY3R1YWxEZWNpbWFsSW5kZXggPSByZXN1bHQubGVuZ3RoO1xuICAgICAgICAgICAgcmVzdWx0ICs9IHRoaXMuZGVjaW1hbFNlcGFyYXRvcjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICByZXN1bHQgPSB0aGlzLmFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQsIGFjdHVhbERlY2ltYWxJbmRleCk7XG4gICAgICAgICAgYWN0dWFsRGVjaW1hbEluZGV4ID0gcmVzdWx0LmluZGV4T2YodGhpcy5kZWNpbWFsU2VwYXJhdG9yKTtcblxuICAgICAgICAgIGNvbnN0IGFjdHVhbERlY2ltYWxQbGFjZXMgPSByZXN1bHQubGVuZ3RoIC0gYWN0dWFsRGVjaW1hbEluZGV4IC0gMTtcbiAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IHRoaXMuZGVjaW1hbFBsYWNlcyAtIGFjdHVhbERlY2ltYWxQbGFjZXM7IGorKykge1xuICAgICAgICAgICAgcmVzdWx0ICs9ICcwJztcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmVzdWx0ID0gdGhpcy5hZGRNaXNzaW5nTGVhZGluZ1plcm8ocmVzdWx0LCBhY3R1YWxEZWNpbWFsSW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIGFkZE1pc3NpbmdMZWFkaW5nWmVybyhyZXN1bHQ6IHN0cmluZywgYWN0dWFsRGVjaW1hbEluZGV4OiBudW1iZXIpOiBzdHJpbmcge1xuICAgIGNvbnN0IGlzTmVnYXRpdmUgPSByZXN1bHRbMF0gPT09IE5FR0FUSVZFO1xuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAwKSB7XG4gICAgICByZXN1bHQgPSAnMCcgKyByZXN1bHQ7XG4gICAgfVxuICAgIC8qIGF1dG9hZGQgYSB6ZXJvIGJlZm9yZSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBpdCdzIG1pc3NpbmcsIGZvciBuZWdhdGl2ZSB2YWx1ZXMgKi9cbiAgICBpZiAoYWN0dWFsRGVjaW1hbEluZGV4ID09PSAxICYmIGlzTmVnYXRpdmUpIHtcbiAgICAgIHJlc3VsdCA9IHJlc3VsdFswXSArICcwJyArIHJlc3VsdC5zdWJzdHJpbmcoMSwgcmVzdWx0Lmxlbmd0aCk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBzdHJpcCh2YWx1ZTogc3RyaW5nLCByZW1vdmVMZWFkaW5nWmVyb3MgPSBmYWxzZSk6IHN0cmluZyB7XG4gICAgbGV0IHJlc3VsdCA9ICcnO1xuICAgIGxldCBpbmRleERlY2ltYWxTZXAgPSAtMTtcbiAgICBsZXQgaiA9IC0xO1xuICAgIGxldCBpZ25vcmVkQ2hhcnMgPSAwO1xuICAgIGZvciAoY29uc3QgY2hhciBvZiB2YWx1ZSkge1xuICAgICAgaisrO1xuICAgICAgaWYgKHRoaXMuYWxsb3dlZEtleXMuaGFzKGNoYXIpKSB7XG4gICAgICAgIGlmIChjaGFyID09PSB0aGlzLmRlY2ltYWxTZXBhcmF0b3IpIHtcbiAgICAgICAgICBpZiAodGhpcy5kZWNpbWFsUGxhY2VzID09PSAwKSB7XG4gICAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBkZWNpbWFsIHNlcGFyYXRvciwgd2hlbiBubyBwbGFjZXMgYWxsb3dlZCAqL1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfSBlbHNlIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSkge1xuICAgICAgICAgICAgLyogaWdub3JlIHN1YnNlcXVlbnQgZGVjaW1hbCBzZXBhcmF0b3JzICovXG4gICAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaW5kZXhEZWNpbWFsU2VwID0gajtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gJzAnICYmIHJlbW92ZUxlYWRpbmdaZXJvcykge1xuICAgICAgICAgIC8qIHJlbW92ZSBsZWFkaW5nIHplcm8gb25seSBpZiBpdCdzIG5vdCB0aGUgb25seSB6ZXJvIGluIHRoZSAndmFsdWUnIHN0cmluZyAqL1xuICAgICAgICAgIGlmICgocmVzdWx0Lmxlbmd0aCA9PT0gMCAmJiBqICsgMSAhPT0gdmFsdWUubGVuZ3RoKSB8fCByZXN1bHQgPT09IE5FR0FUSVZFKSB7XG4gICAgICAgICAgICBpZ25vcmVkQ2hhcnMrKztcbiAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoY2hhciA9PT0gTkVHQVRJVkUgJiYgaiA+IDApIHtcbiAgICAgICAgICAvKiBkaXNtaXNzIGNvbnRlbnQgYWZ0ZXIgYSBuZWdhdGl2ZSBzaWduIG5vdCBvbiBmaXJzdCBwb3NpdGlvbiAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPiAtMSAmJiByZXN1bHQubGVuZ3RoICsgaWdub3JlZENoYXJzID4gaW5kZXhEZWNpbWFsU2VwICsgdGhpcy5kZWNpbWFsUGxhY2VzKSB7XG4gICAgICAgICAgLyogZGlzbWlzcyBjb250ZW50IGFmdGVyIG1heGltdW0gZGVjaW1hbCBwbGFjZXMgcmVhY2hlZCAqL1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICAgIHJlc3VsdCArPSBjaGFyO1xuICAgICAgfSBlbHNlIGlmIChjaGFyID09PSB0aGlzLmdyb3VwaW5nU2VwYXJhdG9yKSB7XG4gICAgICAgIGlmIChpbmRleERlY2ltYWxTZXAgPT09IC0xKSB7XG4gICAgICAgICAgaWdub3JlZENoYXJzKys7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8qIGRpc21pc3MgY29udGVudCBhZnRlciBhIGludmFsaWQgY2hhcmFjdGVyICovXG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICB1cGRhdGVJbnB1dCh2YWx1ZTogc3RyaW5nLCB1cGRhdGVBc3luYzogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdmFsdWU7XG4gICAgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB2YWx1ZTtcbiAgICB0aGlzLl9udW1lcmljVmFsdWUgPSBwYXJzZUZsb2F0KHRoaXMuc3RyaXAodmFsdWUpLnJlcGxhY2UodGhpcy5kZWNpbWFsU2VwYXJhdG9yLCAnLicpKTtcbiAgICBpZiAodGhpcy5fbnVtZXJpY1ZhbHVlICE9PSB0aGlzLnJvdW5kT3JUcnVuY2F0ZSh0aGlzLm9yaWdpbmFsVmFsdWUpKSB7XG4gICAgICB0aGlzLm9yaWdpbmFsVmFsdWUgPSB0aGlzLl9udW1lcmljVmFsdWU7XG4gICAgICBpZiAodXBkYXRlQXN5bmMpIHtcbiAgICAgICAgLy8gQ2FsbCBpbiBzZXRUaW1lb3V0IHRvIGF2b2lkIEV4cHJlc3Npb24gaGFzIGNoYW5nZWQgYWZ0ZXIgaXQgaGFzIGJlZW4gY2hlY2tlZCBlcnJvci5cbiAgICAgICAgLy8gVGhpcyBoYXBwZW5zIGZvciBleGFtcGxlIGlmIHRoZSBpbml0aWFsIGlucHV0IGhhcyBtb3JlIGRlY2ltYWwgcGxhY2VzIHRoYW4gYWxsb3dlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMubnVtZXJpY1ZhbHVlQ2hhbmdlZC5lbWl0KHRoaXMuX251bWVyaWNWYWx1ZSkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5udW1lcmljVmFsdWVDaGFuZ2VkLmVtaXQodGhpcy5fbnVtZXJpY1ZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0VmFsdWVGb3JGb3JtQ29udHJvbCgpOiBudW1iZXIge1xuICAgIHRoaXMuZm9ybWF0SW5wdXQodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsIGZhbHNlKTtcbiAgICBpZiAoaXNOYU4odGhpcy5fbnVtZXJpY1ZhbHVlKSkge1xuICAgICAgLy8gUmV0dXJuIHVuZGVmaW5lZCBpbnN0ZWFkIG9mIE5hTiB0byBzdXBwb3J0IHRoZSBkZWZhdWx0IHJlcXVpcmVkIHZhbGlkYXRvci5cbiAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9udW1lcmljVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGluamVjdFVuaXRTeW1ib2woKTogdm9pZCB7XG4gICAgLy8gTmVlZCB0byBpbmplY3QgdGhlIHVuaXQgc3ltYm9sIHdoZW4gdGhlIGlucHV0IGVsZW1lbnQgd2lkdGggaXMgc2V0IHRvIGl0cyBhY3R1YWwgdmFsdWUsXG4gICAgLy8gb3RoZXJ3aXNlIHRoZSBpY29uIHdvbnQgc2hvdyBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgIGlmICghIXRoaXMuX3VuaXQgJiYgIXRoaXMudW5pdFNwYW4gJiYgdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggIT09IDApIHtcbiAgICAgIC8vIEdldCB0aGUgaW5wdXQgd3JhcHBlciBhbmQgYXBwbHkgbmVjZXNzYXJ5IHN0eWxlc1xuICAgICAgY29uc3QgaW5wdXRXcmFwcGVyID0gdGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQucGFyZW50Tm9kZTtcbiAgICAgIHRoaXMucmVuZGVyZXIuYWRkQ2xhc3MoaW5wdXRXcmFwcGVyLCAnbnVtZXJpYy1pbnB1dC13cmFwcGVyJyk7XG5cbiAgICAgIC8vIENyZWF0ZSB0aGUgc3BhbiB3aXRoIHVuaXQgc3ltYm9sIGFuZCBhcHBseSBuZWNlc3Nhcnkgc3R5bGVzXG4gICAgICBpZiAoIXRoaXMudW5pdFNwYW4pIHtcbiAgICAgICAgdGhpcy51bml0U3BhbiA9IHRoaXMucmVuZGVyZXIuY3JlYXRlRWxlbWVudCgnc3BhbicpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0Jyk7XG4gICAgICAgIGNvbnN0IHVuaXRTeW1ib2wgPSB0aGlzLnJlbmRlcmVyLmNyZWF0ZVRleHQodGhpcy5fdW5pdCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQodGhpcy51bml0U3BhbiwgdW5pdFN5bWJvbCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuYXBwZW5kQ2hpbGQoaW5wdXRXcmFwcGVyLCB0aGlzLnVuaXRTcGFuKTtcbiAgICAgIH1cblxuICAgICAgLy8gQWRkIHBhZGRpbmcgdG8gdGhlIGlucHV0IGVsZW1lbnQsIGRlcGVuZGluZyBvbiB0aGUgd2lkdGggb2YgdGhlIHVuaXQgc3ltYm9sICsgMTJweFxuICAgICAgY29uc3QgcGFkZGluZ09uSW5wdXQgPSB0aGlzLnVuaXRTcGFuLm9mZnNldFdpZHRoICsgMTI7XG4gICAgICBpZiAodGhpcy51bml0UG9zaXRpb24gPT09ICdsZWZ0Jykge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LWxlZnQnKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZSh0aGlzLmlucHV0RWwubmF0aXZlRWxlbWVudCwgJ3BhZGRpbmctbGVmdCcsIHBhZGRpbmdPbklucHV0ICsgJ3B4Jyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLmFkZENsYXNzKHRoaXMudW5pdFNwYW4sICd1bml0LXJpZ2h0Jyk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5pbnB1dEVsLm5hdGl2ZUVsZW1lbnQsICdwYWRkaW5nLXJpZ2h0JywgcGFkZGluZ09uSW5wdXQgKyAncHgnKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRldGFjaExpc3RlbmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmlucHV0Q2hhbmdlTGlzdGVuZXIpIHtcbiAgICAgIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMuaW5wdXRDaGFuZ2VMaXN0ZW5lcjtcbiAgICB9XG4gICAgaWYgKHRoaXMua2V5ZG93bkxpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleWRvd25MaXN0ZW5lcigpO1xuICAgICAgZGVsZXRlIHRoaXMua2V5ZG93bkxpc3RlbmVyO1xuICAgIH1cbiAgICBpZiAodGhpcy5rZXl1cExpc3RlbmVyKSB7XG4gICAgICB0aGlzLmtleXVwTGlzdGVuZXIoKTtcbiAgICAgIGRlbGV0ZSB0aGlzLmtleXVwTGlzdGVuZXI7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSByb3VuZE9yVHJ1bmNhdGUodmFsdWU6IG51bWJlcik6IG51bWJlciB7XG4gICAgY29uc3QgbWV0aG9kID0gdGhpcy5yb3VuZFZhbHVlID8gJ3JvdW5kJyA6IHZhbHVlIDwgMCA/ICdjZWlsJyA6ICdmbG9vcic7XG4gICAgLy8gMTYgaXMgdGhlIGhpZ2hlc3QgcHJlY2lzaW9uIGJlZm9yZSBudW1iZXJzIGhhdmUgd2VpcmQgYmVoYXZpb3VyLiBzZWUgaHR0cHM6Ly9zdGFja292ZXJmbG93LmNvbS9xLzIxNDcyODI4LzE1MTIwOTQyXG4gICAgcmV0dXJuIE1hdGhbbWV0aG9kXSgrKHZhbHVlICogTWF0aC5wb3coMTAsIHRoaXMuZGVjaW1hbFBsYWNlcykpLnRvUHJlY2lzaW9uKDE2KSkgLyBNYXRoLnBvdygxMCwgdGhpcy5kZWNpbWFsUGxhY2VzKTtcbiAgfVxufVxuIl19
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright (c) 2018-2019 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 { CommonModule } from '@angular/common';
|
|
7
|
-
import { NgModule } from '@angular/core';
|
|
8
|
-
import { FormsModule } from '@angular/forms';
|
|
9
|
-
import { ClarityModule, ClrFormsModule } from '@clr/angular';
|
|
10
|
-
import { ClrNumericField } from './numeric-field';
|
|
11
|
-
import { ClrMaxNumeric, ClrMinNumeric } from './numeric-field-validators';
|
|
12
|
-
export class ClrNumericFieldModule {
|
|
13
|
-
}
|
|
14
|
-
ClrNumericFieldModule.decorators = [
|
|
15
|
-
{ type: NgModule, args: [{
|
|
16
|
-
imports: [CommonModule, ClarityModule, ClrFormsModule, FormsModule],
|
|
17
|
-
declarations: [ClrNumericField, ClrMaxNumeric, ClrMinNumeric],
|
|
18
|
-
exports: [ClrNumericField, ClrMaxNumeric, ClrMinNumeric],
|
|
19
|
-
},] }
|
|
20
|
-
];
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtZXJpYy1maWVsZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY2xyLWFkZG9ucy9udW1lcmljZmllbGQvbnVtZXJpYy1maWVsZC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7R0FJRztBQUVILE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbEQsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQU8xRSxNQUFNLE9BQU8scUJBQXFCOzs7WUFMakMsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxFQUFFLFdBQVcsQ0FBQztnQkFDbkUsWUFBWSxFQUFFLENBQUMsZUFBZSxFQUFFLGFBQWEsRUFBRSxhQUFhLENBQUM7Z0JBQzdELE9BQU8sRUFBRSxDQUFDLGVBQWUsRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDO2FBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoYykgMjAxOC0yMDE5IFBvcnNjaGUgSW5mb3JtYXRpay4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqIFRoaXMgc29mdHdhcmUgaXMgcmVsZWFzZWQgdW5kZXIgTUlUIGxpY2Vuc2UuXG4gKiBUaGUgZnVsbCBsaWNlbnNlIGluZm9ybWF0aW9uIGNhbiBiZSBmb3VuZCBpbiBMSUNFTlNFIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHByb2plY3QuXG4gKi9cblxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IENsYXJpdHlNb2R1bGUsIENsckZvcm1zTW9kdWxlIH0gZnJvbSAnQGNsci9hbmd1bGFyJztcblxuaW1wb3J0IHsgQ2xyTnVtZXJpY0ZpZWxkIH0gZnJvbSAnLi9udW1lcmljLWZpZWxkJztcbmltcG9ydCB7IENsck1heE51bWVyaWMsIENsck1pbk51bWVyaWMgfSBmcm9tICcuL251bWVyaWMtZmllbGQtdmFsaWRhdG9ycyc7XG5cbkBOZ01vZHVsZSh7XG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIENsYXJpdHlNb2R1bGUsIENsckZvcm1zTW9kdWxlLCBGb3Jtc01vZHVsZV0sXG4gIGRlY2xhcmF0aW9uczogW0Nsck51bWVyaWNGaWVsZCwgQ2xyTWF4TnVtZXJpYywgQ2xyTWluTnVtZXJpY10sXG4gIGV4cG9ydHM6IFtDbHJOdW1lcmljRmllbGQsIENsck1heE51bWVyaWMsIENsck1pbk51bWVyaWNdLFxufSlcbmV4cG9ydCBjbGFzcyBDbHJOdW1lcmljRmllbGRNb2R1bGUge31cbiJdfQ==
|