@colijnit/corecomponents_v12 12.0.13 → 12.0.16
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/bundles/colijnit-corecomponents_v12.umd.js +7619 -0
- package/bundles/colijnit-corecomponents_v12.umd.js.map +1 -0
- package/colijnit-corecomponents_v12.d.ts +26 -0
- package/colijnit-corecomponents_v12.metadata.json +1 -0
- package/esm2015/colijnit-corecomponents_v12.js +27 -0
- package/esm2015/lib/components/article-tile/article-tile.component.js +80 -0
- package/esm2015/lib/components/article-tile/article-tile.module.js +35 -0
- package/esm2015/lib/components/base/base-input.component.js +571 -0
- package/esm2015/lib/components/base/base.module.js +22 -0
- package/esm2015/lib/components/base/component-interface-name.js +4 -0
- package/esm2015/lib/components/base/configuration-adapter-component.interface.js +2 -0
- package/esm2015/lib/components/button/button.component.js +70 -0
- package/esm2015/lib/components/button/button.module.js +19 -0
- package/esm2015/lib/components/button-drop-down/button-drop-down.component.js +47 -0
- package/esm2015/lib/components/button-drop-down/button-drop-down.module.js +21 -0
- package/esm2015/lib/components/co-dialog/co-dialog.component.js +67 -0
- package/esm2015/lib/components/co-dialog/co-dialog.module.js +19 -0
- package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.component.js +60 -0
- package/esm2015/lib/components/co-dialog-prompt/co-dialog-prompt.module.js +16 -0
- package/esm2015/lib/components/co-kanban/co-kanban.component.js +107 -0
- package/esm2015/lib/components/co-kanban/co-kanban.module.js +21 -0
- package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.component.js +53 -0
- package/esm2015/lib/components/co-rich-text-editor/co-rich-text-editor.module.js +21 -0
- package/esm2015/lib/components/co-schedule/co-schedule.component.js +64 -0
- package/esm2015/lib/components/co-schedule/co-schedule.module.js +21 -0
- package/esm2015/lib/components/co-sidebar/co-sidebar.component.js +39 -0
- package/esm2015/lib/components/co-sidebar/co-sidebar.module.js +15 -0
- package/esm2015/lib/components/co-toggle/co-toggle.component.js +35 -0
- package/esm2015/lib/components/co-toggle/co-toggle.module.js +21 -0
- package/esm2015/lib/components/collapsible/collapsible.component.js +58 -0
- package/esm2015/lib/components/collapsible/collapsible.module.js +17 -0
- package/esm2015/lib/components/drop-down-list/drop-down-list.component.js +61 -0
- package/esm2015/lib/components/drop-down-list/drop-down.module.js +20 -0
- package/esm2015/lib/components/form/form.component.js +198 -0
- package/esm2015/lib/components/form/form.module.js +23 -0
- package/esm2015/lib/components/grid/base/base-grid.component.js +77 -0
- package/esm2015/lib/components/grid/base/base-inline-edit-grid.component.js +41 -0
- package/esm2015/lib/components/grid/base/base-selection-grid.component.js +83 -0
- package/esm2015/lib/components/grid/base/base-toolbar-grid.component.js +79 -0
- package/esm2015/lib/components/grid/co-grid.component.js +57 -0
- package/esm2015/lib/components/grid/co-grid.module.js +36 -0
- package/esm2015/lib/components/grid/enum/grid-lines.enum.js +9 -0
- package/esm2015/lib/components/grid/interface/grid-menu-event-args.js +2 -0
- package/esm2015/lib/components/grid/interface/grid-row-drag-event-args.js +2 -0
- package/esm2015/lib/components/grid/interface/grid-row-drop-event-args.js +2 -0
- package/esm2015/lib/components/icon/icon-cache.service.js +52 -0
- package/esm2015/lib/components/icon/icon.component.js +28 -0
- package/esm2015/lib/components/icon/icon.module.js +25 -0
- package/esm2015/lib/components/image/image.component.js +20 -0
- package/esm2015/lib/components/image/image.module.js +13 -0
- package/esm2015/lib/components/input-checkbox/input-checkbox.component.js +58 -0
- package/esm2015/lib/components/input-checkbox/input-checkbox.module.js +23 -0
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.js +68 -0
- package/esm2015/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.js +25 -0
- package/esm2015/lib/components/input-combo-box/input-combo-box.component.js +77 -0
- package/esm2015/lib/components/input-combo-box/input-combo-box.module.js +25 -0
- package/esm2015/lib/components/input-date-picker/input-date-picker.component.js +95 -0
- package/esm2015/lib/components/input-date-picker/input-date-picker.module.js +28 -0
- package/esm2015/lib/components/input-listbox/input-listbox.component.js +66 -0
- package/esm2015/lib/components/input-listbox/input-listbox.module.js +25 -0
- package/esm2015/lib/components/input-number-picker/input-number-picker.component.js +284 -0
- package/esm2015/lib/components/input-number-picker/input-number-picker.module.js +21 -0
- package/esm2015/lib/components/input-radio-button/input-radio-button.component.js +52 -0
- package/esm2015/lib/components/input-radio-button/input-radio-button.module.js +22 -0
- package/esm2015/lib/components/input-text/input-text.component.js +126 -0
- package/esm2015/lib/components/input-text/input-text.module.js +29 -0
- package/esm2015/lib/components/level-indicator/level-indicator-level.enum.js +7 -0
- package/esm2015/lib/components/level-indicator/level-indicator.component.js +34 -0
- package/esm2015/lib/components/level-indicator/level-indicator.module.js +15 -0
- package/esm2015/lib/components/multi-select-list/multi-select-list.component.js +69 -0
- package/esm2015/lib/components/multi-select-list/multi-select-list.module.js +19 -0
- package/esm2015/lib/components/pivot/co-pivot.component.js +171 -0
- package/esm2015/lib/components/pivot/co-pivot.module.js +19 -0
- package/esm2015/lib/components/popup/const/popup-window-token.js +3 -0
- package/esm2015/lib/components/popup/interface/popup-button.js +8 -0
- package/esm2015/lib/components/popup/interface/popup-close-event.js +2 -0
- package/esm2015/lib/components/popup/interface/popup-settings.js +42 -0
- package/esm2015/lib/components/popup/interface/popup.js +2 -0
- package/esm2015/lib/components/popup/model/popup-button-globals.js +11 -0
- package/esm2015/lib/components/popup/model/popup-window.js +38 -0
- package/esm2015/lib/components/popup/popup-buttons.component.js +53 -0
- package/esm2015/lib/components/popup/popup-message-display.component.js +47 -0
- package/esm2015/lib/components/popup/popup-window-shell.component.js +159 -0
- package/esm2015/lib/components/popup/popup.module.js +49 -0
- package/esm2015/lib/components/popup/service/popup-shower.service.js +87 -0
- package/esm2015/lib/components/popup/service/prompt.service.js +124 -0
- package/esm2015/lib/components/popup/text-input-popup.component.js +36 -0
- package/esm2015/lib/components/simple-grid/simple-grid-column.directive.js +36 -0
- package/esm2015/lib/components/simple-grid/simple-grid.component.js +112 -0
- package/esm2015/lib/components/simple-grid/simple-grid.module.js +24 -0
- package/esm2015/lib/components/tile/tile.component.js +71 -0
- package/esm2015/lib/components/tile/tile.module.js +23 -0
- package/esm2015/lib/core/constant/default-upper-bound-for-range-components.js +3 -0
- package/esm2015/lib/core/constant/java-max-int.js +2 -0
- package/esm2015/lib/core/constant/number-inputs-key-down-white-list.js +44 -0
- package/esm2015/lib/core/decorator/input-boolean.decorator.js +34 -0
- package/esm2015/lib/core/enum/co-document-image-display-kind.enum.js +7 -0
- package/esm2015/lib/core/enum/co-document-type.enum.js +11 -0
- package/esm2015/lib/core/enum/core-components-icon.enum.js +58 -0
- package/esm2015/lib/core/enum/file-type-internal.enum.js +17 -0
- package/esm2015/lib/core/enum/file-type.enum.js +11 -0
- package/esm2015/lib/core/enum/float-label-type.enum.js +7 -0
- package/esm2015/lib/core/enum/input-number-picker-show-mode.enum.js +8 -0
- package/esm2015/lib/core/enum/input-text-type.enum.js +6 -0
- package/esm2015/lib/core/enum/keyboard-code.enum.js +74 -0
- package/esm2015/lib/core/enum/object-right-type.enum.js +7 -0
- package/esm2015/lib/core/enum/popup-button-type.enum.js +12 -0
- package/esm2015/lib/core/enum/popup-type.enum.js +11 -0
- package/esm2015/lib/core/enum/schedule-view.enum.js +16 -0
- package/esm2015/lib/core/enum/table-name.enum.js +81 -0
- package/esm2015/lib/core/function/any-nill.function.js +6 -0
- package/esm2015/lib/core/function/is-nill.function.js +5 -0
- package/esm2015/lib/core/function/none-nill.function.js +17 -0
- package/esm2015/lib/core/function/not-nill.function.js +5 -0
- package/esm2015/lib/core/model/bounds-constrained-number-value.js +171 -0
- package/esm2015/lib/core/model/check-precision-and-scale-result.js +2 -0
- package/esm2015/lib/core/model/check-within-stepped-bounds-result.js +2 -0
- package/esm2015/lib/core/model/co-document-right.bo.js +3 -0
- package/esm2015/lib/core/model/co-document.bo.js +121 -0
- package/esm2015/lib/core/model/core-components-icon-svg.js +56 -0
- package/esm2015/lib/core/model/element-position.js +10 -0
- package/esm2015/lib/core/model/event/string-prompt-result-event.js +8 -0
- package/esm2015/lib/core/model/numerical-range.js +14 -0
- package/esm2015/lib/core/service/form-input-user-change-listener.service.js +25 -0
- package/esm2015/lib/core/service/form-master.service.js +102 -0
- package/esm2015/lib/core/service/ng-zone-wrapper.service.js +20 -0
- package/esm2015/lib/core/utils/array-utils.js +264 -0
- package/esm2015/lib/core/utils/browser-utils.js +100 -0
- package/esm2015/lib/core/utils/event-utils.js +53 -0
- package/esm2015/lib/core/utils/file-utils.js +267 -0
- package/esm2015/lib/core/utils/number-utils.js +309 -0
- package/esm2015/lib/core/utils/object-utils.js +186 -0
- package/esm2015/lib/core/utils/string-utils.js +94 -0
- package/esm2015/lib/core/validator/max-string-length.validator.js +10 -0
- package/esm2015/lib/core/validator/precision-scale.validator.js +11 -0
- package/esm2015/lib/core/validator/required.validator.js +5 -0
- package/esm2015/lib/directives/ripple/ripple-ref.js +26 -0
- package/esm2015/lib/directives/ripple/ripple-renderer.js +160 -0
- package/esm2015/lib/directives/ripple/ripple.directive.js +80 -0
- package/esm2015/lib/directives/ripple/ripple.module.js +24 -0
- package/esm2015/lib/directives/ripple/scroll-dispatcher.service.js +108 -0
- package/esm2015/lib/directives/ripple/scrollable.directive.js +40 -0
- package/esm2015/lib/directives/ripple/viewport-ruler.service.js +73 -0
- package/esm2015/lib/directives/stopclick/stop-click.directive.js +38 -0
- package/esm2015/lib/directives/stopclick/stop-click.module.js +15 -0
- package/esm2015/lib/pipes/append.pipe.js +17 -0
- package/esm2015/lib/pipes/append.pipe.module.js +15 -0
- package/esm2015/lib/pipes/price-display-pipe.module.js +15 -0
- package/esm2015/lib/pipes/price-display.pipe.js +20 -0
- package/esm2015/public-api.js +72 -0
- package/fesm2015/colijnit-corecomponents_v12.js +6985 -0
- package/fesm2015/colijnit-corecomponents_v12.js.map +1 -0
- package/lib/components/article-tile/article-tile.component.d.ts +22 -0
- package/{src/lib → lib}/components/article-tile/article-tile.component.scss +0 -0
- package/lib/components/article-tile/article-tile.module.d.ts +2 -0
- package/lib/components/base/base-input.component.d.ts +146 -0
- package/lib/components/base/base.module.d.ts +2 -0
- package/lib/components/base/component-interface-name.d.ts +3 -0
- package/{src/lib/components/base/configuration-adapter-component.interface.ts → lib/components/base/configuration-adapter-component.interface.d.ts} +0 -0
- package/lib/components/button/button.component.d.ts +20 -0
- package/lib/components/button/button.module.d.ts +2 -0
- package/lib/components/button/style/_co-ripple.scss +69 -0
- package/lib/components/button/style/_layout.scss +64 -0
- package/lib/components/button/style/_material-definition.scss +9 -0
- package/lib/components/button/style/_theme.scss +81 -0
- package/lib/components/button/style/material.scss +22 -0
- package/lib/components/button-drop-down/button-drop-down.component.d.ts +16 -0
- package/lib/components/button-drop-down/button-drop-down.module.d.ts +2 -0
- package/lib/components/button-drop-down/style/_layout.scss +7 -0
- package/{src/lib/components/co-dialog-prompt/co-dialog-prompt.component.scss → lib/components/button-drop-down/style/_material-definition.scss} +0 -0
- package/lib/components/button-drop-down/style/_theme.scss +5 -0
- package/lib/components/button-drop-down/style/material.scss +4 -0
- package/{src/lib → lib}/components/card/card.scss +3 -1
- package/lib/components/co-dialog/co-dialog.component.d.ts +12 -0
- package/lib/components/co-dialog/co-dialog.module.d.ts +2 -0
- package/lib/components/co-dialog/style/_layout.scss +47 -0
- package/lib/components/co-dialog/style/_material-definition.scss +23 -0
- package/lib/components/co-dialog/style/_theme.scss +27 -0
- package/lib/components/co-dialog/style/material.scss +4 -0
- package/lib/components/co-dialog-prompt/co-dialog-prompt.component.d.ts +19 -0
- package/{src/lib/components/co-dialog/co-dialog.component.scss → lib/components/co-dialog-prompt/co-dialog-prompt.component.scss} +0 -0
- package/lib/components/co-dialog-prompt/co-dialog-prompt.module.d.ts +2 -0
- package/lib/components/co-kanban/co-kanban.component.d.ts +28 -0
- package/lib/components/co-kanban/co-kanban.module.d.ts +2 -0
- package/lib/components/co-kanban/style/_layout.scss +51 -0
- package/lib/components/co-kanban/style/_material-definition.scss +25 -0
- package/lib/components/co-kanban/style/_theme.scss +7 -0
- package/lib/components/co-kanban/style/material.scss +13 -0
- package/lib/components/co-rich-text-editor/co-rich-text-editor.component.d.ts +13 -0
- package/lib/components/co-rich-text-editor/co-rich-text-editor.module.d.ts +2 -0
- package/lib/components/co-rich-text-editor/style/_layout.scss +5 -0
- package/lib/components/co-rich-text-editor/style/_material-definition.scss +9 -0
- package/lib/components/co-rich-text-editor/style/_theme.scss +5 -0
- package/lib/components/co-rich-text-editor/style/material.scss +4 -0
- package/lib/components/co-schedule/co-schedule.component.d.ts +18 -0
- package/{src/lib → lib}/components/co-schedule/co-schedule.component.scss +0 -0
- package/lib/components/co-schedule/co-schedule.module.d.ts +2 -0
- package/lib/components/co-sidebar/co-sidebar.component.d.ts +10 -0
- package/{src/lib → lib}/components/co-sidebar/co-sidebar.component.scss +0 -0
- package/lib/components/co-sidebar/co-sidebar.module.d.ts +2 -0
- package/lib/components/co-toggle/co-toggle.component.d.ts +9 -0
- package/lib/components/co-toggle/co-toggle.component.scss +1 -0
- package/lib/components/co-toggle/co-toggle.module.d.ts +2 -0
- package/lib/components/collapsible/collapsible.component.d.ts +16 -0
- package/lib/components/collapsible/collapsible.module.d.ts +2 -0
- package/lib/components/collapsible/style/_layout.scss +53 -0
- package/lib/components/collapsible/style/_material-definition.scss +9 -0
- package/lib/components/collapsible/style/_theme.scss +9 -0
- package/lib/components/collapsible/style/material.scss +4 -0
- package/lib/components/drop-down-list/drop-down-list.component.d.ts +16 -0
- package/{src/lib → lib}/components/drop-down-list/drop-down-list.component.scss +0 -0
- package/lib/components/drop-down-list/drop-down.module.d.ts +2 -0
- package/lib/components/drop-down-list/style/_layout.scss +7 -0
- package/{src/lib/components/co-rich-text-editor/co-rich-text-editor.component.scss → lib/components/drop-down-list/style/_material-definition.scss} +0 -0
- package/lib/components/drop-down-list/style/_theme.scss +5 -0
- package/lib/components/drop-down-list/style/material.scss +4 -0
- package/lib/components/form/form.component.d.ts +40 -0
- package/lib/components/form/form.module.d.ts +2 -0
- package/lib/components/grid/base/base-grid.component.d.ts +24 -0
- package/lib/components/grid/base/base-inline-edit-grid.component.d.ts +9 -0
- package/lib/components/grid/base/base-selection-grid.component.d.ts +27 -0
- package/lib/components/grid/base/base-toolbar-grid.component.d.ts +17 -0
- package/lib/components/grid/co-grid.component.d.ts +6 -0
- package/lib/components/grid/co-grid.module.d.ts +2 -0
- package/{src/lib/components/grid/enum/grid-lines.enum.ts → lib/components/grid/enum/grid-lines.enum.d.ts} +2 -2
- package/lib/components/grid/interface/grid-menu-event-args.d.ts +3 -0
- package/lib/components/grid/interface/grid-row-drag-event-args.d.ts +3 -0
- package/lib/components/grid/interface/grid-row-drop-event-args.d.ts +3 -0
- package/lib/components/grid/style/_layout.scss +38 -0
- package/lib/components/grid/style/_material-definition.scss +17 -0
- package/lib/components/grid/style/_theme.scss +5 -0
- package/lib/components/grid/style/material.scss +4 -0
- package/lib/components/icon/icon-cache.service.d.ts +20 -0
- package/lib/components/icon/icon.component.d.ts +10 -0
- package/lib/components/icon/icon.module.d.ts +2 -0
- package/{src/lib → lib}/components/icon/icon.scss +3 -2
- package/lib/components/image/image.component.d.ts +4 -0
- package/lib/components/image/image.module.d.ts +2 -0
- package/lib/components/input-checkbox/input-checkbox.component.d.ts +16 -0
- package/lib/components/input-checkbox/input-checkbox.module.d.ts +2 -0
- package/lib/components/input-checkbox/style/_layout.scss +5 -0
- package/lib/components/input-checkbox/style/_material-definition.scss +2 -0
- package/lib/components/input-checkbox/style/_theme.scss +5 -0
- package/lib/components/input-checkbox/style/material.scss +4 -0
- package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.d.ts +22 -0
- package/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.d.ts +2 -0
- package/lib/components/input-checkbox-multi-select/style/_layout.scss +5 -0
- package/lib/components/input-checkbox-multi-select/style/_material-definition.scss +7 -0
- package/lib/components/input-checkbox-multi-select/style/_theme.scss +5 -0
- package/lib/components/input-checkbox-multi-select/style/material.scss +4 -0
- package/lib/components/input-combo-box/input-combo-box.component.d.ts +25 -0
- package/lib/components/input-combo-box/input-combo-box.module.d.ts +2 -0
- package/lib/components/input-combo-box/style/_layout.scss +5 -0
- package/lib/components/input-combo-box/style/_material-definition.scss +7 -0
- package/lib/components/input-combo-box/style/_theme.scss +5 -0
- package/lib/components/input-combo-box/style/material.scss +4 -0
- package/lib/components/input-date-picker/input-date-picker.component.d.ts +30 -0
- package/lib/components/input-date-picker/input-date-picker.module.d.ts +2 -0
- package/lib/components/input-date-picker/style/_layout.scss +5 -0
- package/lib/components/input-date-picker/style/_material-definition.scss +8 -0
- package/lib/components/input-date-picker/style/_theme.scss +5 -0
- package/lib/components/input-date-picker/style/material.scss +4 -0
- package/lib/components/input-listbox/input-listbox.component.d.ts +14 -0
- package/lib/components/input-listbox/input-listbox.module.d.ts +2 -0
- package/lib/components/input-listbox/style/_layout.scss +22 -0
- package/lib/components/input-listbox/style/_material-definition.scss +10 -0
- package/lib/components/input-listbox/style/_theme.scss +14 -0
- package/lib/components/input-listbox/style/material.scss +4 -0
- package/lib/components/input-number-picker/input-number-picker.component.d.ts +65 -0
- package/lib/components/input-number-picker/input-number-picker.module.d.ts +2 -0
- package/lib/components/input-number-picker/style/_layout.scss +43 -0
- package/lib/components/input-number-picker/style/_material-definition.scss +17 -0
- package/lib/components/input-number-picker/style/_theme.scss +22 -0
- package/lib/components/input-number-picker/style/material.scss +4 -0
- package/lib/components/input-radio-button/input-radio-button.component.d.ts +15 -0
- package/lib/components/input-radio-button/input-radio-button.module.d.ts +2 -0
- package/lib/components/input-radio-button/style/_layout.scss +28 -0
- package/lib/components/input-radio-button/style/_material-definition.scss +9 -0
- package/lib/components/input-radio-button/style/_theme.scss +11 -0
- package/lib/components/input-radio-button/style/material.scss +4 -0
- package/lib/components/input-search/style/_layout.scss +42 -0
- package/lib/components/input-search/style/_material-definition.scss +6 -0
- package/lib/components/input-search/style/_theme.scss +10 -0
- package/lib/components/input-search/style/material.scss +4 -0
- package/lib/components/input-text/input-text.component.d.ts +47 -0
- package/lib/components/input-text/input-text.module.d.ts +2 -0
- package/lib/components/input-text/style/_layout.scss +5 -0
- package/lib/components/input-text/style/_material-definition.scss +3 -0
- package/lib/components/input-text/style/_theme.scss +5 -0
- package/lib/components/input-text/style/material.scss +4 -0
- package/{src/lib/components/level-indicator/level-indicator-level.enum.ts → lib/components/level-indicator/level-indicator-level.enum.d.ts} +2 -2
- package/lib/components/level-indicator/level-indicator.component.d.ts +9 -0
- package/lib/components/level-indicator/level-indicator.module.d.ts +2 -0
- package/{src/lib → lib}/components/level-indicator/level-indicator.scss +4 -2
- package/lib/components/multi-select-list/multi-select-list.component.d.ts +19 -0
- package/lib/components/multi-select-list/multi-select-list.module.d.ts +2 -0
- package/lib/components/multi-select-list/style/_layout.scss +5 -0
- package/lib/components/multi-select-list/style/_material-definition.scss +7 -0
- package/lib/components/multi-select-list/style/_theme.scss +5 -0
- package/lib/components/multi-select-list/style/material.scss +4 -0
- package/lib/components/pivot/co-pivot.component.d.ts +40 -0
- package/lib/components/pivot/co-pivot.module.d.ts +2 -0
- package/lib/components/pivot/style/_layout.scss +5 -0
- package/lib/components/pivot/style/_material-definition.scss +10 -0
- package/lib/components/pivot/style/_theme.scss +5 -0
- package/lib/components/pivot/style/material.scss +4 -0
- package/lib/components/popup/const/popup-window-token.d.ts +3 -0
- package/lib/components/popup/interface/popup-button.d.ts +8 -0
- package/{src/lib/components/popup/interface/popup-close-event.ts → lib/components/popup/interface/popup-close-event.d.ts} +0 -3
- package/lib/components/popup/interface/popup-settings.d.ts +21 -0
- package/lib/components/popup/interface/popup.d.ts +9 -0
- package/lib/components/popup/model/popup-button-globals.d.ts +9 -0
- package/lib/components/popup/model/popup-window.d.ts +21 -0
- package/lib/components/popup/popup-buttons.component.d.ts +13 -0
- package/{src/lib → lib}/components/popup/popup-buttons.component.scss +0 -0
- package/lib/components/popup/popup-message-display.component.d.ts +12 -0
- package/lib/components/popup/popup-window-shell.component.d.ts +42 -0
- package/{src/lib → lib}/components/popup/popup-window-shell.component.scss +8 -8
- package/lib/components/popup/popup.module.d.ts +4 -0
- package/lib/components/popup/service/popup-shower.service.d.ts +17 -0
- package/lib/components/popup/service/prompt.service.d.ts +17 -0
- package/lib/components/popup/text-input-popup.component.d.ts +12 -0
- package/lib/components/simple-grid/simple-grid-column.directive.d.ts +18 -0
- package/lib/components/simple-grid/simple-grid.component.d.ts +26 -0
- package/lib/components/simple-grid/simple-grid.module.d.ts +2 -0
- package/lib/components/simple-grid/style/_layout.scss +80 -0
- package/lib/components/simple-grid/style/_material-definition.scss +16 -0
- package/lib/components/simple-grid/style/_theme.scss +17 -0
- package/lib/components/simple-grid/style/material.scss +4 -0
- package/lib/components/tile/tile.component.d.ts +15 -0
- package/{src/lib → lib}/components/tile/tile.component.scss +4 -4
- package/lib/components/tile/tile.module.d.ts +2 -0
- package/lib/core/constant/default-upper-bound-for-range-components.d.ts +1 -0
- package/lib/core/constant/java-max-int.d.ts +1 -0
- package/lib/core/constant/number-inputs-key-down-white-list.d.ts +2 -0
- package/lib/core/decorator/input-boolean.decorator.d.ts +8 -0
- package/{src/lib/core/enum/co-document-image-display-kind.enum.ts → lib/core/enum/co-document-image-display-kind.enum.d.ts} +1 -1
- package/lib/core/enum/co-document-type.enum.d.ts +5 -0
- package/{src/lib/core/enum/core-components-icon.enum.ts → lib/core/enum/core-components-icon.enum.d.ts} +56 -57
- package/{src/lib/core/enum/file-type-internal.enum.ts → lib/core/enum/file-type-internal.enum.d.ts} +10 -10
- package/lib/core/enum/file-type.enum.d.ts +5 -0
- package/lib/core/enum/float-label-type.enum.d.ts +5 -0
- package/lib/core/enum/input-number-picker-show-mode.enum.d.ts +5 -0
- package/lib/core/enum/input-text-type.enum.d.ts +4 -0
- package/{src/lib/core/enum/keyboard-code.enum.ts → lib/core/enum/keyboard-code.enum.d.ts} +23 -24
- package/{src/lib/core/enum/object-right-type.enum.ts → lib/core/enum/object-right-type.enum.d.ts} +1 -1
- package/lib/core/enum/popup-button-type.enum.d.ts +9 -0
- package/lib/core/enum/popup-type.enum.d.ts +9 -0
- package/{src/lib/core/enum/schedule-view.enum.ts → lib/core/enum/schedule-view.enum.d.ts} +2 -2
- package/{src/lib/core/enum/table-name.enum.ts → lib/core/enum/table-name.enum.d.ts} +1 -1
- package/lib/core/function/any-nill.function.d.ts +1 -0
- package/lib/core/function/is-nill.function.d.ts +1 -0
- package/lib/core/function/none-nill.function.d.ts +1 -0
- package/lib/core/function/not-nill.function.d.ts +1 -0
- package/lib/core/model/bounds-constrained-number-value.d.ts +46 -0
- package/{src/lib/core/model/check-precision-and-scale-result.ts → lib/core/model/check-precision-and-scale-result.d.ts} +1 -2
- package/{src/lib/core/model/check-within-stepped-bounds-result.ts → lib/core/model/check-within-stepped-bounds-result.d.ts} +3 -3
- package/lib/core/model/co-document-right.bo.d.ts +6 -0
- package/lib/core/model/co-document.bo.d.ts +61 -0
- package/lib/core/model/core-components-icon-svg.d.ts +4 -0
- package/lib/core/model/element-position.d.ts +7 -0
- package/lib/core/model/event/string-prompt-result-event.d.ts +6 -0
- package/lib/core/model/numerical-range.d.ts +7 -0
- package/lib/core/service/form-input-user-change-listener.service.d.ts +10 -0
- package/lib/core/service/form-master.service.d.ts +26 -0
- package/lib/core/service/ng-zone-wrapper.service.d.ts +6 -0
- package/lib/core/utils/array-utils.d.ts +85 -0
- package/lib/core/utils/browser-utils.d.ts +15 -0
- package/lib/core/utils/event-utils.d.ts +12 -0
- package/lib/core/utils/file-utils.d.ts +29 -0
- package/lib/core/utils/number-utils.d.ts +89 -0
- package/lib/core/utils/object-utils.d.ts +31 -0
- package/lib/core/utils/string-utils.d.ts +25 -0
- package/lib/core/validator/max-string-length.validator.d.ts +2 -0
- package/lib/core/validator/precision-scale.validator.d.ts +2 -0
- package/lib/core/validator/required.validator.d.ts +2 -0
- package/lib/directives/ripple/ripple-ref.d.ts +21 -0
- package/lib/directives/ripple/ripple-renderer.d.ts +56 -0
- package/lib/directives/ripple/ripple.directive.d.ts +56 -0
- package/lib/directives/ripple/ripple.module.d.ts +2 -0
- package/lib/directives/ripple/scroll-dispatcher.service.d.ts +51 -0
- package/lib/directives/ripple/scrollable.directive.d.ts +20 -0
- package/lib/directives/ripple/viewport-ruler.service.d.ts +29 -0
- package/lib/directives/stopclick/stop-click.directive.d.ts +10 -0
- package/lib/directives/stopclick/stop-click.module.d.ts +2 -0
- package/{src/lib → lib}/modules/pagination/pagination.scss +4 -4
- package/lib/pipes/append.pipe.d.ts +4 -0
- package/lib/pipes/append.pipe.module.d.ts +2 -0
- package/lib/pipes/price-display-pipe.module.d.ts +2 -0
- package/lib/pipes/price-display.pipe.d.ts +4 -0
- package/{src/lib → lib}/style/_extendables.scss +0 -0
- package/{src/lib → lib}/style/_input.mixins.scss +0 -0
- package/lib/style/_mixin.scss +9 -0
- package/{src/lib → lib}/style/_responsiveness.mixins.scss +0 -0
- package/{src/lib → lib}/style/_responsiveness.scss +0 -0
- package/{src/lib → lib}/style/_transition.mixins.scss +0 -0
- package/{src/lib/style/_base-input.scss → lib/style/_variables.scss} +77 -95
- package/{src/lib → lib}/style/main.scss +0 -0
- package/{src/lib → lib}/style/material2/_core.scss +3 -3
- package/lib/style/material2/_material2-scss-barrel.scss +16 -0
- package/{src/lib → lib}/style/material2/ripple/_co-ripple.scss +0 -0
- package/{src/lib → lib}/style/material2/style/_elevation.scss +0 -0
- package/{src/lib → lib}/style/material2/style/_list-common.scss +0 -0
- package/{src/lib → lib}/style/material2/style/_variables.scss +0 -0
- package/{src/lib → lib}/style/material2/theming/_palette.scss +0 -0
- package/{src/lib → lib}/style/material2/theming/_theming.scss +0 -0
- package/{src/lib → lib}/style/material2/typography/_typography.scss +0 -0
- package/package.json +11 -3
- package/{src/public-api.ts → public-api.d.ts} +68 -66
- package/colijnit-corecomponents_v12-12.0.13.tgz +0 -0
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -10
- package/src/lib/components/article-tile/article-tile.component.ts +0 -95
- package/src/lib/components/article-tile/article-tile.module.ts +0 -34
- package/src/lib/components/base/base-input.component.ts +0 -681
- package/src/lib/components/base/base.module.ts +0 -22
- package/src/lib/components/base/component-interface-name.ts +0 -6
- package/src/lib/components/button/button.component.ts +0 -94
- package/src/lib/components/button/button.module.ts +0 -18
- package/src/lib/components/button/button.scss +0 -111
- package/src/lib/components/button-drop-down/button-drop-down.component.scss +0 -19
- package/src/lib/components/button-drop-down/button-drop-down.component.ts +0 -53
- package/src/lib/components/button-drop-down/button-drop-down.module.ts +0 -17
- package/src/lib/components/card/card.component.ts +0 -92
- package/src/lib/components/card/card.module.ts +0 -34
- package/src/lib/components/co-dialog/co-dialog.component.ts +0 -88
- package/src/lib/components/co-dialog/co-dialog.module.ts +0 -15
- package/src/lib/components/co-dialog-prompt/co-dialog-prompt.component.ts +0 -70
- package/src/lib/components/co-dialog-prompt/co-dialog-prompt.module.ts +0 -15
- package/src/lib/components/co-kanban/co-kanban.component.ts +0 -128
- package/src/lib/components/co-kanban/co-kanban.module.ts +0 -18
- package/src/lib/components/co-rich-text-editor/co-rich-text-editor.component.ts +0 -69
- package/src/lib/components/co-rich-text-editor/co-rich-text-editor.module.ts +0 -18
- package/src/lib/components/co-schedule/co-schedule.component.ts +0 -96
- package/src/lib/components/co-schedule/co-schedule.module.ts +0 -19
- package/src/lib/components/co-sidebar/co-sidebar.component.ts +0 -42
- package/src/lib/components/co-sidebar/co-sidebar.module.ts +0 -13
- package/src/lib/components/co-toggle/co-toggle.component.scss +0 -0
- package/src/lib/components/co-toggle/co-toggle.component.ts +0 -46
- package/src/lib/components/co-toggle/co-toggle.module.ts +0 -18
- package/src/lib/components/drop-down-list/drop-down-list.component.ts +0 -65
- package/src/lib/components/drop-down-list/drop-down.module.ts +0 -18
- package/src/lib/components/form/form.component.ts +0 -223
- package/src/lib/components/form/form.module.ts +0 -22
- package/src/lib/components/grid/base/base-grid.component.ts +0 -83
- package/src/lib/components/grid/base/base-inline-edit-grid.component.ts +0 -36
- package/src/lib/components/grid/base/base-selection-grid.component.ts +0 -98
- package/src/lib/components/grid/base/base-toolbar-grid.component.ts +0 -75
- package/src/lib/components/grid/co-grid.component.scss +0 -29
- package/src/lib/components/grid/co-grid.component.ts +0 -70
- package/src/lib/components/grid/co-grid.module.ts +0 -49
- package/src/lib/components/grid/enum/column-align.enum.ts +0 -5
- package/src/lib/components/grid/interface/grid-menu-event-args.ts +0 -5
- package/src/lib/components/grid/interface/grid-row-drag-event-args.ts +0 -5
- package/src/lib/components/grid/interface/grid-row-drop-event-args.ts +0 -5
- package/src/lib/components/grid/model/co-grid-column.ts +0 -9
- package/src/lib/components/icon/icon-cache.service.ts +0 -57
- package/src/lib/components/icon/icon.component.ts +0 -30
- package/src/lib/components/icon/icon.module.ts +0 -24
- package/src/lib/components/image/image.component.ts +0 -20
- package/src/lib/components/image/image.css +0 -9
- package/src/lib/components/image/image.module.ts +0 -11
- package/src/lib/components/input-checkbox/input-checkbox.component.scss +0 -14
- package/src/lib/components/input-checkbox/input-checkbox.component.ts +0 -69
- package/src/lib/components/input-checkbox/input-checkbox.module.ts +0 -22
- package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.scss +0 -8
- package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.component.ts +0 -84
- package/src/lib/components/input-checkbox-multi-select/input-checkbox-multi-select.module.ts +0 -24
- package/src/lib/components/input-combo-box/input-combo-box.component.scss +0 -8
- package/src/lib/components/input-combo-box/input-combo-box.component.ts +0 -96
- package/src/lib/components/input-combo-box/input-combo-box.module.ts +0 -24
- package/src/lib/components/input-date-picker/input-date-picker.component.scss +0 -30
- package/src/lib/components/input-date-picker/input-date-picker.component.ts +0 -121
- package/src/lib/components/input-date-picker/input-date-picker.module.ts +0 -27
- package/src/lib/components/input-number-picker/input-number-picker.component.scss +0 -49
- package/src/lib/components/input-number-picker/input-number-picker.component.ts +0 -316
- package/src/lib/components/input-number-picker/input-number-picker.module.ts +0 -16
- package/src/lib/components/input-radio-button/input-radio-button.component.scss +0 -89
- package/src/lib/components/input-radio-button/input-radio-button.component.ts +0 -74
- package/src/lib/components/input-radio-button/input-radio-button.module.ts +0 -20
- package/src/lib/components/input-text/input-text.component.ts +0 -155
- package/src/lib/components/input-text/input-text.module.ts +0 -27
- package/src/lib/components/input-text/input-text.scss +0 -4
- package/src/lib/components/level-indicator/level-indicator.component.ts +0 -41
- package/src/lib/components/level-indicator/level-indicator.module.ts +0 -13
- package/src/lib/components/multi-select-list/multi-select-list.component.scss +0 -1
- package/src/lib/components/multi-select-list/multi-select-list.component.ts +0 -78
- package/src/lib/components/multi-select-list/multi-select-list.module.ts +0 -17
- package/src/lib/components/pivot/co-pivot.component.scss +0 -0
- package/src/lib/components/pivot/co-pivot.component.ts +0 -246
- package/src/lib/components/pivot/co-pivot.module.ts +0 -16
- package/src/lib/components/popup/const/popup-window-token.ts +0 -4
- package/src/lib/components/popup/interface/popup-button.ts +0 -14
- package/src/lib/components/popup/interface/popup-settings.ts +0 -70
- package/src/lib/components/popup/interface/popup.ts +0 -17
- package/src/lib/components/popup/model/popup-button-globals.ts +0 -11
- package/src/lib/components/popup/model/popup-window.ts +0 -51
- package/src/lib/components/popup/popup-buttons.component.ts +0 -61
- package/src/lib/components/popup/popup-message-display.component.ts +0 -49
- package/src/lib/components/popup/popup-window-shell.component.ts +0 -222
- package/src/lib/components/popup/popup.module.ts +0 -48
- package/src/lib/components/popup/service/popup-shower.service.ts +0 -98
- package/src/lib/components/popup/service/prompt.service.ts +0 -127
- package/src/lib/components/popup/text-input-popup.component.ts +0 -36
- package/src/lib/components/tile/tile.component.ts +0 -70
- package/src/lib/components/tile/tile.module.ts +0 -21
- package/src/lib/core/abstract/collection-based-component.ts +0 -488
- package/src/lib/core/config/device-environment.ts +0 -26
- package/src/lib/core/constant/default-upper-bound-for-range-components.ts +0 -3
- package/src/lib/core/constant/java-max-int.ts +0 -1
- package/src/lib/core/constant/number-inputs-key-down-white-list.ts +0 -45
- package/src/lib/core/decorator/input-boolean.decorator.ts +0 -35
- package/src/lib/core/enum/co-direction.ts +0 -7
- package/src/lib/core/enum/co-document-type.enum.ts +0 -9
- package/src/lib/core/enum/co-orientation.ts +0 -18
- package/src/lib/core/enum/collection-based-component-input-driver-prop.enum.ts +0 -10
- package/src/lib/core/enum/color-sequence-name.enum.ts +0 -5
- package/src/lib/core/enum/file-type.enum.ts +0 -9
- package/src/lib/core/enum/float-label-type.enum.ts +0 -5
- package/src/lib/core/enum/input-number-picker-show-mode.enum.ts +0 -6
- package/src/lib/core/enum/input-text-type.enum.ts +0 -4
- package/src/lib/core/enum/keyboard-key.enum.ts +0 -77
- package/src/lib/core/enum/logical-operator-type.enum.ts +0 -5
- package/src/lib/core/enum/popup-button-type.enum.ts +0 -10
- package/src/lib/core/enum/popup-type.enum.ts +0 -9
- package/src/lib/core/enum/search-data-type.ts +0 -4
- package/src/lib/core/enum/search-property-state.ts +0 -5
- package/src/lib/core/enum/sort-data-type.ts +0 -6
- package/src/lib/core/enum/sort-direction.ts +0 -9
- package/src/lib/core/enum/value-comparison-type.ts +0 -11
- package/src/lib/core/function/any-nill.function.ts +0 -6
- package/src/lib/core/function/is-nill.function.ts +0 -4
- package/src/lib/core/function/none-nill.function.ts +0 -16
- package/src/lib/core/function/not-nill.function.ts +0 -4
- package/src/lib/core/interface/search-property.ts +0 -15
- package/src/lib/core/interface/sort-property.ts +0 -16
- package/src/lib/core/model/bounds-constrained-number-value.ts +0 -219
- package/src/lib/core/model/co-document-right.bo.ts +0 -9
- package/src/lib/core/model/co-document.bo.ts +0 -193
- package/src/lib/core/model/color-sequence.ts +0 -39
- package/src/lib/core/model/color.ts +0 -29
- package/src/lib/core/model/core-components-icon-svg.ts +0 -56
- package/src/lib/core/model/element-position.ts +0 -14
- package/src/lib/core/model/event/number-prompt-result-event.ts +0 -10
- package/src/lib/core/model/event/string-prompt-result-event.ts +0 -10
- package/src/lib/core/model/numerical-range.ts +0 -19
- package/src/lib/core/service/color-sequence.service.ts +0 -104
- package/src/lib/core/service/form-input-user-change-listener.service.ts +0 -31
- package/src/lib/core/service/form-master.service.ts +0 -119
- package/src/lib/core/service/ng-zone-wrapper.service.ts +0 -15
- package/src/lib/core/utils/array-utils.spec.ts +0 -588
- package/src/lib/core/utils/array-utils.ts +0 -301
- package/src/lib/core/utils/browser-utils.ts +0 -123
- package/src/lib/core/utils/business-object-utils.ts +0 -42
- package/src/lib/core/utils/css-utils.ts +0 -276
- package/src/lib/core/utils/element-ref.utils.ts +0 -12
- package/src/lib/core/utils/event-utils.ts +0 -61
- package/src/lib/core/utils/file-utils.ts +0 -291
- package/src/lib/core/utils/number-utils.spec.ts +0 -657
- package/src/lib/core/utils/number-utils.ts +0 -350
- package/src/lib/core/utils/object-utils.ts +0 -205
- package/src/lib/core/utils/parameter-value-conversion-utils.ts +0 -116
- package/src/lib/core/utils/search-utils.ts +0 -121
- package/src/lib/core/utils/sort-utils.ts +0 -108
- package/src/lib/core/utils/string-utils.ts +0 -100
- package/src/lib/core/validator/email.validator.ts +0 -10
- package/src/lib/core/validator/max-string-length.validator.ts +0 -11
- package/src/lib/core/validator/precision-scale.validator.ts +0 -14
- package/src/lib/core/validator/required.validator.ts +0 -9
- package/src/lib/directives/align-with/align-with.directive.ts +0 -158
- package/src/lib/directives/align-with/align-with.module.ts +0 -13
- package/src/lib/directives/clickoutside/click-outside-master.service.ts +0 -64
- package/src/lib/directives/clickoutside/click-outside.directive.ts +0 -72
- package/src/lib/directives/clickoutside/clickoutside.module.ts +0 -17
- package/src/lib/directives/parsevalue/parse-value.directive.ts +0 -42
- package/src/lib/directives/parsevalue/parse-value.module.ts +0 -13
- package/src/lib/directives/resize/resize-detect.directive.ts +0 -54
- package/src/lib/directives/resize/resize-detect.module.ts +0 -13
- package/src/lib/directives/ripple/ripple-ref.ts +0 -28
- package/src/lib/directives/ripple/ripple-renderer.ts +0 -217
- package/src/lib/directives/ripple/ripple.directive.ts +0 -116
- package/src/lib/directives/ripple/ripple.module.ts +0 -24
- package/src/lib/directives/ripple/scroll-dispatcher.service.ts +0 -129
- package/src/lib/directives/ripple/scrollable.directive.ts +0 -37
- package/src/lib/directives/ripple/viewport-ruler.service.ts +0 -84
- package/src/lib/directives/stopclick/stop-click.directive.ts +0 -35
- package/src/lib/directives/stopclick/stop-click.module.ts +0 -14
- package/src/lib/directives/template-wrapper/template-wrapper.directive.ts +0 -71
- package/src/lib/directives/template-wrapper/template-wrapper.module.ts +0 -13
- package/src/lib/model/data-item.ts +0 -9
- package/src/lib/model/enum/currency-code.enum.ts +0 -7
- package/src/lib/model/enum/language-code.enum.ts +0 -8
- package/src/lib/model/map/currencies.map.ts +0 -6
- package/src/lib/modules/drag-drop/drag-drop-container.component.ts +0 -115
- package/src/lib/modules/drag-drop/drag-drop-container.css +0 -34
- package/src/lib/modules/drag-drop/drag-drop-manager.service.ts +0 -414
- package/src/lib/modules/drag-drop/drag-drop.module.ts +0 -20
- package/src/lib/modules/drag-drop/draggable.directive.ts +0 -70
- package/src/lib/modules/drag-drop/model/co-drag-event.ts +0 -5
- package/src/lib/modules/drag-drop/model/co-drop-event.ts +0 -9
- package/src/lib/modules/drag-drop/model/drag-drop-container-element.ts +0 -7
- package/src/lib/modules/drag-drop/model/drag-drop-container.ts +0 -9
- package/src/lib/modules/media-monitor/flex-layout-breakpoint.enum.ts +0 -5
- package/src/lib/modules/media-monitor/media-monitor.module.ts +0 -14
- package/src/lib/modules/media-monitor/media-monitor.service.ts +0 -36
- package/src/lib/modules/pagination/paginate.pipe.ts +0 -122
- package/src/lib/modules/pagination/pagination-instance.ts +0 -18
- package/src/lib/modules/pagination/pagination.component.ts +0 -217
- package/src/lib/modules/pagination/pagination.module.ts +0 -25
- package/src/lib/modules/pagination/pagination.service.ts +0 -98
- package/src/lib/pipes/append.pipe.module.ts +0 -13
- package/src/lib/pipes/append.pipe.ts +0 -17
- package/src/lib/pipes/co-currency-pipe.module.ts +0 -13
- package/src/lib/pipes/co-currency.pipe.ts +0 -45
- package/src/lib/pipes/emun-keys.pipe.ts +0 -20
- package/src/lib/pipes/enum-keys-pipe.module.ts +0 -13
- package/src/lib/pipes/file-type-image-pipe.module.ts +0 -13
- package/src/lib/pipes/file-type-image.pipe.ts +0 -45
- package/src/lib/pipes/master-pipe.module.ts +0 -13
- package/src/lib/pipes/master.pipe.ts +0 -71
- package/src/lib/pipes/price-display-pipe.module.ts +0 -14
- package/src/lib/pipes/price-display.pipe.ts +0 -20
- package/src/lib/pipes/safe-style.pipe.module.ts +0 -13
- package/src/lib/pipes/safe-style.pipe.ts +0 -14
- package/src/lib/pipes/ucfirst-pipe.module.ts +0 -13
- package/src/lib/pipes/ucfirst.pipe.ts +0 -14
- package/src/lib/style/_variables.scss +0 -76
- package/src/lib/style/material2/_material2-scss-barrel.scss +0 -16
- package/src/test.ts +0 -28
- package/tsconfig.lib.json +0 -20
- package/tsconfig.lib.prod.json +0 -16
- package/tsconfig.spec.json +0 -17
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { notNill } from "../function/not-nill.function";
|
|
2
|
+
import { ArrayUtils } from './array-utils';
|
|
3
|
+
// @dynamic
|
|
4
|
+
export class StringUtils {
|
|
5
|
+
// Returns the given argument as a string. Returns given defaultValue if conversion of argument to string was impossible.
|
|
6
|
+
static ParseString(arg, defaultValue = '') {
|
|
7
|
+
if (!StringUtils.IsString(arg)) {
|
|
8
|
+
if (arg && typeof arg.toString === 'function') {
|
|
9
|
+
arg = arg.toString();
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
arg = defaultValue;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return arg;
|
|
16
|
+
}
|
|
17
|
+
static AsLowerCaseIfString(str) {
|
|
18
|
+
if (StringUtils.IsString(str)) {
|
|
19
|
+
return str.toLowerCase();
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
return str;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Example usage:
|
|
27
|
+
* str = 'File is to large to upload. Maximum file size is {0} Mb'
|
|
28
|
+
* format = [FileUtils.MaxUploadSizeInMb]
|
|
29
|
+
* output = File is to large to upload. Maximum file size is 3 Mb
|
|
30
|
+
*
|
|
31
|
+
* str = '{0} is way better than {1}'
|
|
32
|
+
* format = ['Angular2','Angular1']
|
|
33
|
+
* output = Angular2 is way better than Angular1
|
|
34
|
+
*
|
|
35
|
+
* @param str The string that contains {0} and {1} etc, for replacement by given format data
|
|
36
|
+
* @param format The format replacement data
|
|
37
|
+
*/
|
|
38
|
+
static Format(str, format) {
|
|
39
|
+
let args = Array.prototype.slice.call(format);
|
|
40
|
+
return str.replace(/{(\d+)}/g, function (match, number) {
|
|
41
|
+
return typeof args[number] !== 'undefined' ? (args[number] !== null ? args[number] : "") : "";
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
static IsString(str) {
|
|
45
|
+
return typeof str === 'string';
|
|
46
|
+
}
|
|
47
|
+
// Returns whether given str is a string and has a length > 0.
|
|
48
|
+
static IsStringWithLength(str) {
|
|
49
|
+
return notNill(str) && StringUtils.IsString(str) && str.length > 0;
|
|
50
|
+
}
|
|
51
|
+
// Returns a new string string with N amount of characters removed from the end of it.
|
|
52
|
+
static RemoveLastChars(str, amount) {
|
|
53
|
+
if (str) {
|
|
54
|
+
return str.slice(0, -1 * amount);
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
return str;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
static StringToStringArray(str) {
|
|
61
|
+
if (!str) {
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
const strArray = str.split(" ");
|
|
65
|
+
ArrayUtils.RemoveElementsByFilter(strArray, (txt) => {
|
|
66
|
+
return !txt || txt === "";
|
|
67
|
+
});
|
|
68
|
+
return strArray;
|
|
69
|
+
}
|
|
70
|
+
static CloneStringArray(strArray) {
|
|
71
|
+
const clone = [];
|
|
72
|
+
if (strArray) {
|
|
73
|
+
for (let i = 0, len = strArray.length; i < len; i++) {
|
|
74
|
+
clone.push(strArray[i]);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return clone;
|
|
78
|
+
}
|
|
79
|
+
static ToStringOrDefault(arg, defaultReturnVal = "") {
|
|
80
|
+
if (notNill(arg) && arg.toString) {
|
|
81
|
+
return arg.toString();
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
return defaultReturnVal;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static CreateGuid() {
|
|
88
|
+
return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'.replace(/[xy]/g, (c) => {
|
|
89
|
+
const r = Math.random() * 16 | 0;
|
|
90
|
+
return (c === 'x' ? r : (r & 0x3 | 0x8)).toString(16);
|
|
91
|
+
});
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RyaW5nLXV0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3V0aWxzL3N0cmluZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsT0FBTyxFQUFDLE1BQU0sK0JBQStCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxXQUFXO0FBQ1gsTUFBTSxPQUFPLFdBQVc7SUFDcEIseUhBQXlIO0lBQ2xILE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBUSxFQUFFLGVBQXVCLEVBQUU7UUFDekQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDNUIsSUFBSSxHQUFHLElBQUksT0FBTyxHQUFHLENBQUMsUUFBUSxLQUFLLFVBQVUsRUFBRTtnQkFDM0MsR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN4QjtpQkFBTTtnQkFDSCxHQUFHLEdBQUcsWUFBWSxDQUFDO2FBQ3RCO1NBQ0o7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNmLENBQUM7SUFFTSxNQUFNLENBQUMsbUJBQW1CLENBQUMsR0FBUTtRQUN0QyxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDM0IsT0FBTyxHQUFHLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDNUI7YUFBTTtZQUNILE9BQU8sR0FBRyxDQUFDO1NBQ2Q7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7OztPQVlHO0lBQ0ksTUFBTSxDQUFDLE1BQU0sQ0FBQyxHQUFXLEVBQUUsTUFBYTtRQUMzQyxJQUFJLElBQUksR0FBUSxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDbkQsT0FBTyxHQUFHLENBQUMsT0FBTyxDQUFDLFVB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ZnVuY3Rpb24vbm90LW5pbGwuZnVuY3Rpb25cIjtcclxuaW1wb3J0IHsgQXJyYXlVdGlscyB9IGZyb20gJy4vYXJyYXktdXRpbHMnO1xyXG5cclxuLy8gQGR5bmFtaWNcclxuZXhwb3J0IGNsYXNzIFN0cmluZ1V0aWxzIHtcclxuICAgIC8vIFJldHVybnMgdGhlIGdpdmVuIGFyZ3VtZW50IGFzIGEgc3RyaW5nLiBSZXR1cm5zIGdpdmVuIGRlZmF1bHRWYWx1ZSBpZiBjb252ZXJzaW9uIG9mIGFyZ3VtZW50IHRvIHN0cmluZyB3YXMgaW1wb3NzaWJsZS5cclxuICAgIHB1YmxpYyBzdGF0aWMgUGFyc2VTdHJpbmcoYXJnOiBhbnksIGRlZmF1bHRWYWx1ZTogc3RyaW5nID0gJycpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghU3RyaW5nVXRpbHMuSXNTdHJpbmcoYXJnKSkge1xyXG4gICAgICAgICAgICBpZiAoYXJnICYmIHR5cGVvZiBhcmcudG9TdHJpbmcgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgICAgIGFyZyA9IGFyZy50b1N0cmluZygpO1xyXG4gICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgYXJnID0gZGVmYXVsdFZhbHVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBhcmc7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBBc0xvd2VyQ2FzZUlmU3RyaW5nKHN0cjogYW55KTogYW55IHtcclxuICAgICAgICBpZiAoU3RyaW5nVXRpbHMuSXNTdHJpbmcoc3RyKSkge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyLnRvTG93ZXJDYXNlKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIHN0cjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFeGFtcGxlIHVzYWdlOlxyXG4gICAgICogc3RyID0gJ0ZpbGUgaXMgdG8gbGFyZ2UgdG8gdXBsb2FkLiBNYXhpbXVtIGZpbGUgc2l6ZSBpcyB7MH0gTWInXHJcbiAgICAgKiBmb3JtYXQgPSBbRmlsZVV0aWxzLk1heFVwbG9hZFNpemVJbk1iXVxyXG4gICAgICogb3V0cHV0ID0gRmlsZSBpcyB0byBsYXJnZSB0byB1cGxvYWQuIE1heGltdW0gZmlsZSBzaXplIGlzIDMgTWJcclxuICAgICAqXHJcbiAgICAgKiBzdHIgPSAnezB9IGlzIHdheSBiZXR0ZXIgdGhhbiB7MX0nXHJcbiAgICAgKiBmb3JtYXQgPSBbJ0FuZ3VsYXIyJywnQW5ndWxhcjEnXVxyXG4gICAgICogb3V0cHV0ID0gQW5ndWxhcjIgaXMgd2F5IGJldHRlciB0aGFuIEFuZ3VsYXIxXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIHN0ciBUaGUgc3RyaW5nIHRoYXQgY29udGFpbnMgezB9IGFuZCB7MX0gZXRjLCBmb3IgcmVwbGFjZW1lbnQgYnkgZ2l2ZW4gZm9ybWF0IGRhdGFcclxuICAgICAqIEBwYXJhbSBmb3JtYXQgVGhlIGZvcm1hdCByZXBsYWNlbWVudCBkYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzdGF0aWMgRm9ybWF0KHN0cjogc3RyaW5nLCBmb3JtYXQ6IGFueVtdKTogc3RyaW5nIHtcclxuICAgICAgICBsZXQgYXJnczogYW55ID0gQXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoZm9ybWF0KTtcclxuICAgICAgICByZXR1cm4gc3RyLnJlcGxhY2UoL3soXFxkKyl9L2csIGZ1bmN0aW9uIChtYXRjaDogYW55LCBudW1iZXI6IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgICAgIHJldHVybiB0eXBlb2YgYXJnc1tudW1iZXJdICE9PSAndW5kZWZpbmVkJyA/IChhcmdzW251bWJlcl0gIT09IG51bGwgPyBhcmdzW251bWJlcl0gOiBcIlwiKSA6IFwiXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N0cmluZyhzdHI6IGFueSk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0eXBlb2Ygc3RyID09PSAnc3RyaW5nJztcclxuICAgIH1cclxuXHJcbiAgICAvLyBSZXR1cm5zIHdoZXRoZXIgZ2l2ZW4gc3RyIGlzIGEgc3RyaW5nIGFuZCBoYXMgYSBsZW5ndGggPiAwLlxyXG4gICAgcHVibGljIHN0YXRpYyBJc1N0cmluZ1dpdGhMZW5ndGgoc3RyOiBhbnkpOiBib29sZWFuIHtcclxuICAgICAgICByZXR1cm4gbm90TmlsbChzdHIpICYmIFN0cmluZ1V0aWxzLklzU3RyaW5nKHN0cikgJiYgc3RyLmxlbmd0aCA+IDA7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gUmV0dXJucyBhIG5ldyBzdHJpbmcgc3RyaW5nIHdpdGggTiBhbW91bnQgb2YgY2hhcmFjdGVycyByZW1vdmVkIGZyb20gdGhlIGVuZCBvZiBpdC5cclxuICAgIHB1YmxpYyBzdGF0aWMgUmVtb3ZlTGFzdENoYXJzKHN0cjogc3RyaW5nLCBhbW91bnQ6IG51bWJlcik6IHN0cmluZyB7XHJcbiAgICAgICAgaWYgKHN0cikge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyLnNsaWNlKDAsIC0xICogYW1vdW50KTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICByZXR1cm4gc3RyO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFN0cmluZ1RvU3RyaW5nQXJyYXkoc3RyOiBzdHJpbmcpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgaWYgKCFzdHIpIHtcclxuICAgICAgICAgICAgcmV0dXJuIFtdO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgY29uc3Qgc3RyQXJyYXk6IHN0cmluZ1tdID0gc3RyLnNwbGl0KFwiIFwiKTtcclxuICAgICAgICBBcnJheVV0aWxzLlJlbW92ZUVsZW1lbnRzQnlGaWx0ZXIoc3RyQXJyYXksICh0eHQ6IHN0cmluZykgPT4ge1xyXG4gICAgICAgICAgICByZXR1cm4gIXR4dCB8fCB0eHQgPT09IFwiXCI7XHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgcmV0dXJuIHN0ckFycmF5O1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ2xvbmVTdHJpbmdBcnJheShzdHJBcnJheTogc3RyaW5nW10pOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgY29uc3QgY2xvbmU6IHN0cmluZ1tdID0gW107XHJcbiAgICAgICAgaWYgKHN0ckFycmF5KSB7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDAsIGxlbjogbnVtYmVyID0gc3RyQXJyYXkubGVuZ3RoOyBpIDwgbGVuOyBpKyspIHtcclxuICAgICAgICAgICAgICAgIGNsb25lLnB1c2goc3RyQXJyYXlbaV0pO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBjbG9uZTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIFRvU3RyaW5nT3JEZWZhdWx0KGFyZzogYW55LCBkZWZhdWx0UmV0dXJuVmFsOiBzdHJpbmcgPSBcIlwiKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAobm90TmlsbChhcmcpICYmIGFyZy50b1N0cmluZykge1xyXG4gICAgICAgICAgICByZXR1cm4gYXJnLnRvU3RyaW5nKCk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRSZXR1cm5WYWw7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgQ3JlYXRlR3VpZCgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiAneHh4eHh4eHgteHh4eC00eHh4LXl4eHgteHh4eHh4eHh4eHh4Jy5yZXBsYWNlKC9beHldL2csIChjOiBzdHJpbmcpID0+IHtcclxuICAgICAgICAgICAgY29uc3QgcjogbnVtYmVyID0gTWF0aC5yYW5kb20oKSAqIDE2IHwgMDtcclxuICAgICAgICAgICAgcmV0dXJuIChjID09PSAneCcgPyByIDogKHIgJiAweDMgfCAweDgpKS50b1N0cmluZygxNik7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export function maxStringLengthValidator(length) {
|
|
2
|
+
return function (control) {
|
|
3
|
+
let isValid = true;
|
|
4
|
+
if (control.value && typeof control.value === 'string') {
|
|
5
|
+
isValid = control.value.length <= length;
|
|
6
|
+
}
|
|
7
|
+
return isValid ? null : { "max-length": { message: "MESSAGE_FIELD_TOO_LONG", placeholder: "" + length } };
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4LXN0cmluZy1sZW5ndGgudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3ZhbGlkYXRvci9tYXgtc3RyaW5nLWxlbmd0aC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLHdCQUF3QixDQUFDLE1BQWM7SUFDbkQsT0FBTyxVQUFVLE9BQW9CO1FBQ2pDLElBQUksT0FBTyxHQUFZLElBQUksQ0FBQztRQUM1QixJQUFJLE9BQU8sQ0FBQyxLQUFLLElBQUksT0FBTyxPQUFPLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRTtZQUNwRCxPQUFPLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLElBQUksTUFBTSxDQUFDO1NBQzVDO1FBQ0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBQyxZQUFZLEVBQUUsRUFBQyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsV0FBVyxFQUFFLEVBQUUsR0FBRyxNQUFNLEVBQUMsRUFBQyxDQUFDO0lBQzFHLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWF4U3RyaW5nTGVuZ3RoVmFsaWRhdG9yKGxlbmd0aDogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIGZ1bmN0aW9uIChjb250cm9sOiBGb3JtQ29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgfCBudWxsIHtcclxuICAgICAgICBsZXQgaXNWYWxpZDogYm9vbGVhbiA9IHRydWU7XHJcbiAgICAgICAgaWYgKGNvbnRyb2wudmFsdWUgJiYgdHlwZW9mIGNvbnRyb2wudmFsdWUgPT09ICdzdHJpbmcnKSB7XHJcbiAgICAgICAgICAgIGlzVmFsaWQgPSBjb250cm9sLnZhbHVlLmxlbmd0aCA8PSBsZW5ndGg7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHtcIm1heC1sZW5ndGhcIjoge21lc3NhZ2U6IFwiTUVTU0FHRV9GSUVMRF9UT09fTE9OR1wiLCBwbGFjZWhvbGRlcjogXCJcIiArIGxlbmd0aH19O1xyXG4gICAgfTtcclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { NumberUtils } from '../utils/number-utils';
|
|
2
|
+
export function precisionScaleValidator(precision, scale) {
|
|
3
|
+
return function (control) {
|
|
4
|
+
let isValid = true;
|
|
5
|
+
if (control) {
|
|
6
|
+
isValid = NumberUtils.CheckPrecisionAndScale(control.value, precision, scale).isOk;
|
|
7
|
+
}
|
|
8
|
+
return isValid ? null : { 'precision-scale': "MESSAGE_FIELD_PRECISION_OVERRIDDEN||" + precision };
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvY29yZS92YWxpZGF0b3IvcHJlY2lzaW9uLXNjYWxlLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLFNBQWlCLEVBQUUsS0FBYTtJQUNwRSxPQUFPLFVBQVUsT0FBb0I7UUFDakMsSUFBSSxPQUFPLEdBQVksSUFBSSxDQUFDO1FBRTVCLElBQUksT0FBTyxFQUFFO1lBQ1QsT0FBTyxHQUFHLFdBQVcsQ0FBQyxzQkFBc0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUM7U0FDdEY7UUFFRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFDLGlCQUFpQixFQUFFLHNDQUFzQyxHQUFHLFNBQVMsRUFBQyxDQUFDO0lBQ3BHLENBQUMsQ0FBQztBQUNOLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4gfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE51bWJlclV0aWxzIH0gZnJvbSAnLi4vdXRpbHMvbnVtYmVyLXV0aWxzJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBwcmVjaXNpb25TY2FsZVZhbGlkYXRvcihwcmVjaXNpb246IG51bWJlciwgc2NhbGU6IG51bWJlcik6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiBmdW5jdGlvbiAoY29udHJvbDogRm9ybUNvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcbiAgICAgICAgbGV0IGlzVmFsaWQ6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAgICAgICBpZiAoY29udHJvbCkge1xyXG4gICAgICAgICAgICBpc1ZhbGlkID0gTnVtYmVyVXRpbHMuQ2hlY2tQcmVjaXNpb25BbmRTY2FsZShjb250cm9sLnZhbHVlLCBwcmVjaXNpb24sIHNjYWxlKS5pc09rO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeydwcmVjaXNpb24tc2NhbGUnOiBcIk1FU1NBR0VfRklFTERfUFJFQ0lTSU9OX09WRVJSSURERU58fFwiICsgcHJlY2lzaW9ufTtcclxuICAgIH07XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export function requiredValidator(control) {
|
|
2
|
+
const isValid = !(control.value === null || control.value === undefined || control.value === "");
|
|
3
|
+
return isValid ? null : { 'required': 'MESSAGE_FIELD_REQUIRED' };
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9jb3JlL3ZhbGlkYXRvci9yZXF1aXJlZC52YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxVQUFVLGlCQUFpQixDQUFDLE9BQXdCO0lBRXRELE1BQU0sT0FBTyxHQUFZLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsS0FBSyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBRTFHLE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUMsVUFBVSxFQUFFLHdCQUF3QixFQUFDLENBQUM7QUFFbkUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZFZhbGlkYXRvcihjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiBWYWxpZGF0aW9uRXJyb3JzIHwgbnVsbCB7XHJcblxyXG4gICAgY29uc3QgaXNWYWxpZDogYm9vbGVhbiA9ICEoY29udHJvbC52YWx1ZSA9PT0gbnVsbCB8fCBjb250cm9sLnZhbHVlID09PSB1bmRlZmluZWQgfHwgY29udHJvbC52YWx1ZSA9PT0gXCJcIik7XHJcblxyXG4gICAgcmV0dXJuIGlzVmFsaWQgPyBudWxsIDogeydyZXF1aXJlZCc6ICdNRVNTQUdFX0ZJRUxEX1JFUVVJUkVEJ307XHJcblxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.
|
|
2
|
+
/** Possible states for a ripple element. */
|
|
3
|
+
export var CoRippleState;
|
|
4
|
+
(function (CoRippleState) {
|
|
5
|
+
CoRippleState[CoRippleState["FADING_IN"] = 0] = "FADING_IN";
|
|
6
|
+
CoRippleState[CoRippleState["VISIBLE"] = 1] = "VISIBLE";
|
|
7
|
+
CoRippleState[CoRippleState["FADING_OUT"] = 2] = "FADING_OUT";
|
|
8
|
+
CoRippleState[CoRippleState["HIDDEN"] = 3] = "HIDDEN";
|
|
9
|
+
})(CoRippleState || (CoRippleState = {}));
|
|
10
|
+
/**
|
|
11
|
+
* Reference to a previously launched ripple element.
|
|
12
|
+
*/
|
|
13
|
+
export class CoRippleRef {
|
|
14
|
+
constructor(_renderer, element, config) {
|
|
15
|
+
this._renderer = _renderer;
|
|
16
|
+
this.element = element;
|
|
17
|
+
this.config = config;
|
|
18
|
+
/** Current state of the ripple reference. */
|
|
19
|
+
this.state = CoRippleState.HIDDEN;
|
|
20
|
+
}
|
|
21
|
+
/** Fades out the ripple element. */
|
|
22
|
+
fadeOut() {
|
|
23
|
+
this._renderer.fadeOutRipple(this);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFJeEUsNENBQTRDO0FBQzVDLE1BQU0sQ0FBTixJQUFZLGFBRVg7QUFGRCxXQUFZLGFBQWE7SUFDckIsMkRBQVMsQ0FBQTtJQUFFLHVEQUFPLENBQUE7SUFBRSw2REFBVSxDQUFBO0lBQUUscURBQU0sQ0FBQTtBQUMxQyxDQUFDLEVBRlcsYUFBYSxLQUFiLGFBQWEsUUFFeEI7QUFFRDs7R0FFRztBQUNILE1BQU0sT0FBTyxXQUFXO0lBS3BCLFlBQ1ksU0FBMkIsRUFDNUIsT0FBb0IsRUFDcEIsTUFBc0I7UUFGckIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDNUIsWUFBTyxHQUFQLE9BQU8sQ0FBYTtRQUNwQixXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQU5qQyw2Q0FBNkM7UUFDN0MsVUFBSyxHQUFrQixhQUFhLENBQUMsTUFBTSxDQUFDO0lBTTVDLENBQUM7SUFFRCxvQ0FBb0M7SUFDcEMsT0FBTztRQUNILElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBmcm9tIGlPbmVKUyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtDb1JpcHBsZUNvbmZpZywgQ29SaXBwbGVSZW5kZXJlcn0gZnJvbSBcIi4vcmlwcGxlLXJlbmRlcmVyXCI7XHJcblxyXG4vKiogUG9zc2libGUgc3RhdGVzIGZvciBhIHJpcHBsZSBlbGVtZW50LiAqL1xyXG5leHBvcnQgZW51bSBDb1JpcHBsZVN0YXRlIHtcclxuICAgIEZBRElOR19JTiwgVklTSUJMRSwgRkFESU5HX09VVCwgSElEREVOXHJcbn1cclxuXHJcbi8qKlxyXG4gKiBSZWZlcmVuY2UgdG8gYSBwcmV2aW91c2x5IGxhdW5jaGVkIHJpcHBsZSBlbGVtZW50LlxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIENvUmlwcGxlUmVmIHtcclxuXHJcbiAgICAvKiogQ3VycmVudCBzdGF0ZSBvZiB0aGUgcmlwcGxlIHJlZmVyZW5jZS4gKi9cclxuICAgIHN0YXRlOiBDb1JpcHBsZVN0YXRlID0gQ29SaXBwbGVTdGF0ZS5ISURERU47XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBfcmVuZGVyZXI6IENvUmlwcGxlUmVuZGVyZXIsXHJcbiAgICAgICAgcHVibGljIGVsZW1lbnQ6IEhUTUxFbGVtZW50LFxyXG4gICAgICAgIHB1YmxpYyBjb25maWc6IENvUmlwcGxlQ29uZmlnKSB7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEZhZGVzIG91dCB0aGUgcmlwcGxlIGVsZW1lbnQuICovXHJcbiAgICBmYWRlT3V0KCkge1xyXG4gICAgICAgIHRoaXMuX3JlbmRlcmVyLmZhZGVPdXRSaXBwbGUodGhpcyk7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
// NOTE: Copied and adapted to CoreComponents from iOneJS on 9-may-2018.
|
|
2
|
+
import { CoRippleRef, CoRippleState } from "./ripple-ref";
|
|
3
|
+
/** Fade-in duration for the ripples. Can be modified with the speedFactor option. */
|
|
4
|
+
export const RIPPLE_FADE_IN_DURATION = 450;
|
|
5
|
+
/** Fade-out duration for the ripples in milliseconds. This can't be modified by the speedFactor. */
|
|
6
|
+
export const RIPPLE_FADE_OUT_DURATION = 400;
|
|
7
|
+
/**
|
|
8
|
+
* Helper service that performs DOM manipulations. Not intended to be used outside this module.
|
|
9
|
+
* The constructor takes a reference to the ripple directive's host element and a map of DOM
|
|
10
|
+
* event handlers to be installed on the element that triggers ripple animations.
|
|
11
|
+
* This will eventually become a custom renderer once Angular support exists.
|
|
12
|
+
* @docs-private
|
|
13
|
+
*/
|
|
14
|
+
export class CoRippleRenderer {
|
|
15
|
+
constructor(_elementRef, _ngZone, _ruler) {
|
|
16
|
+
this._ngZone = _ngZone;
|
|
17
|
+
this._ruler = _ruler;
|
|
18
|
+
/** Whether the mouse is currently down or not. */
|
|
19
|
+
this._isMousedown = false;
|
|
20
|
+
/** Events to be registered on the trigger element. */
|
|
21
|
+
this._triggerEvents = new Map();
|
|
22
|
+
/** Set of currently active ripple references. */
|
|
23
|
+
this._activeRipples = new Set();
|
|
24
|
+
/** Ripple config for all ripples created by events. */
|
|
25
|
+
this.rippleConfig = {};
|
|
26
|
+
/** Whether mouse ripples should be created or not. */
|
|
27
|
+
this.rippleDisabled = false;
|
|
28
|
+
this._containerElement = _elementRef.nativeElement;
|
|
29
|
+
// Specify events which need to be registered on the trigger.
|
|
30
|
+
this._triggerEvents.set('mousedown', this.onMousedown.bind(this));
|
|
31
|
+
this._triggerEvents.set('mouseup', this.onMouseup.bind(this));
|
|
32
|
+
this._triggerEvents.set('mouseleave', this.onMouseLeave.bind(this));
|
|
33
|
+
// By default use the host element as trigger element.
|
|
34
|
+
this.setTriggerElement(this._containerElement);
|
|
35
|
+
}
|
|
36
|
+
/** Fades in a ripple at the given coordinates. */
|
|
37
|
+
fadeInRipple(pageX, pageY, config = {}) {
|
|
38
|
+
let containerRect = this._containerElement.getBoundingClientRect();
|
|
39
|
+
if (config.centered) {
|
|
40
|
+
pageX = containerRect.left + containerRect.width / 2;
|
|
41
|
+
pageY = containerRect.top + containerRect.height / 2;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Subtract scroll values from the coordinates because calculations below
|
|
45
|
+
// are always relative to the viewport rectangle.
|
|
46
|
+
let scrollPosition = this._ruler.getViewportScrollPosition();
|
|
47
|
+
pageX -= scrollPosition.left;
|
|
48
|
+
pageY -= scrollPosition.top;
|
|
49
|
+
}
|
|
50
|
+
let radius = config.radius || distanceToFurthestCorner(pageX, pageY, containerRect);
|
|
51
|
+
let duration = RIPPLE_FADE_IN_DURATION * (1 / (config.speedFactor || 1));
|
|
52
|
+
let offsetX = pageX - containerRect.left;
|
|
53
|
+
let offsetY = pageY - containerRect.top;
|
|
54
|
+
let ripple = document.createElement('div');
|
|
55
|
+
ripple.classList.add('mat-ripple-element');
|
|
56
|
+
ripple.style.left = `${offsetX - radius}px`;
|
|
57
|
+
ripple.style.top = `${offsetY - radius}px`;
|
|
58
|
+
ripple.style.height = `${radius * 2}px`;
|
|
59
|
+
ripple.style.width = `${radius * 2}px`;
|
|
60
|
+
// If the color is not set, the default CSS color will be used.
|
|
61
|
+
ripple.style.backgroundColor = config.color;
|
|
62
|
+
ripple.style.transitionDuration = `${duration}ms`;
|
|
63
|
+
this._containerElement.appendChild(ripple);
|
|
64
|
+
// By default the browser does not recalculate the styles of dynamically created
|
|
65
|
+
// ripple elements. This is critical because then the `scale` would not animate properly.
|
|
66
|
+
enforceStyleRecalculation(ripple);
|
|
67
|
+
ripple.style.transform = 'scale(1)';
|
|
68
|
+
// Exposed reference to the ripple that will be returned.
|
|
69
|
+
let rippleRef = new CoRippleRef(this, ripple, config);
|
|
70
|
+
rippleRef.state = CoRippleState.FADING_IN;
|
|
71
|
+
// Add the ripple reference to the list of all active ripples.
|
|
72
|
+
this._activeRipples.add(rippleRef);
|
|
73
|
+
// Wait for the ripple element to be completely faded in.
|
|
74
|
+
// Once it's faded in, the ripple can be hidden immediately if the mouse is released.
|
|
75
|
+
this.runTimeoutOutsideZone(() => {
|
|
76
|
+
rippleRef.state = CoRippleState.VISIBLE;
|
|
77
|
+
if (!config.persistent && !this._isMousedown) {
|
|
78
|
+
rippleRef.fadeOut();
|
|
79
|
+
}
|
|
80
|
+
}, duration);
|
|
81
|
+
return rippleRef;
|
|
82
|
+
}
|
|
83
|
+
/** Fades out a ripple reference. */
|
|
84
|
+
fadeOutRipple(rippleRef) {
|
|
85
|
+
// For ripples that are not active anymore, don't re-un the fade-out animation.
|
|
86
|
+
if (!this._activeRipples.delete(rippleRef)) {
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
let rippleEl = rippleRef.element;
|
|
90
|
+
rippleEl.style.transitionDuration = `${RIPPLE_FADE_OUT_DURATION}ms`;
|
|
91
|
+
rippleEl.style.opacity = '0';
|
|
92
|
+
rippleRef.state = CoRippleState.FADING_OUT;
|
|
93
|
+
// Once the ripple faded out, the ripple can be safely removed from the DOM.
|
|
94
|
+
this.runTimeoutOutsideZone(() => {
|
|
95
|
+
rippleRef.state = CoRippleState.HIDDEN;
|
|
96
|
+
rippleEl.parentNode.removeChild(rippleEl);
|
|
97
|
+
}, RIPPLE_FADE_OUT_DURATION);
|
|
98
|
+
}
|
|
99
|
+
/** Fades out all currently active ripples. */
|
|
100
|
+
fadeOutAll() {
|
|
101
|
+
this._activeRipples.forEach(ripple => ripple.fadeOut());
|
|
102
|
+
}
|
|
103
|
+
/** Sets the trigger element and registers the mouse events. */
|
|
104
|
+
setTriggerElement(element) {
|
|
105
|
+
// Remove all previously register event listeners from the trigger element.
|
|
106
|
+
if (this._triggerElement) {
|
|
107
|
+
this._triggerEvents.forEach((fn, type) => this._triggerElement.removeEventListener(type, fn));
|
|
108
|
+
}
|
|
109
|
+
if (element) {
|
|
110
|
+
// If the element is not null, register all event listeners on the trigger element.
|
|
111
|
+
this._ngZone.runOutsideAngular(() => {
|
|
112
|
+
this._triggerEvents.forEach((fn, type) => element.addEventListener(type, fn));
|
|
113
|
+
});
|
|
114
|
+
}
|
|
115
|
+
this._triggerElement = element;
|
|
116
|
+
}
|
|
117
|
+
/** Listener being called on mousedown event. */
|
|
118
|
+
onMousedown(event) {
|
|
119
|
+
if (!this.rippleDisabled) {
|
|
120
|
+
this._isMousedown = true;
|
|
121
|
+
this.fadeInRipple(event.pageX, event.pageY, this.rippleConfig);
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
/** Listener being called on mouseup event. */
|
|
125
|
+
onMouseup() {
|
|
126
|
+
this._isMousedown = false;
|
|
127
|
+
// Fade-out all ripples that are completely visible and not persistent.
|
|
128
|
+
this._activeRipples.forEach(ripple => {
|
|
129
|
+
if (!ripple.config.persistent && ripple.state === CoRippleState.VISIBLE) {
|
|
130
|
+
ripple.fadeOut();
|
|
131
|
+
}
|
|
132
|
+
});
|
|
133
|
+
}
|
|
134
|
+
/** Listener being called on mouseleave event. */
|
|
135
|
+
onMouseLeave() {
|
|
136
|
+
if (this._isMousedown) {
|
|
137
|
+
this.onMouseup();
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
/** Runs a timeout outside of the Angular zone to avoid triggering the change detection. */
|
|
141
|
+
runTimeoutOutsideZone(fn, delay = 0) {
|
|
142
|
+
this._ngZone.runOutsideAngular(() => setTimeout(fn, delay));
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
/** Enforces a style recalculation of a DOM element by computing its styles. */
|
|
146
|
+
function enforceStyleRecalculation(element) {
|
|
147
|
+
// Enforce a style recalculation by calling `getComputedStyle` and accessing any property.
|
|
148
|
+
// Calling `getPropertyValue` is important to let optimizers know that this is not a noop.
|
|
149
|
+
// See: https://gist.github.com/paulirish/5d52fb081b3570c81e3a
|
|
150
|
+
window.getComputedStyle(element).getPropertyValue('opacity');
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Returns the distance from the point (x, y) to the furthest corner of a rectangle.
|
|
154
|
+
*/
|
|
155
|
+
function distanceToFurthestCorner(x, y, rect) {
|
|
156
|
+
const distX = Math.max(Math.abs(x - rect.left), Math.abs(x - rect.right));
|
|
157
|
+
const distY = Math.max(Math.abs(y - rect.top), Math.abs(y - rect.bottom));
|
|
158
|
+
return Math.sqrt(distX * distX + distY * distY);
|
|
159
|
+
}
|
|
160
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLXJlbmRlcmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZWNvbXBvbmVudHMvc3JjL2xpYi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUtcmVuZGVyZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0VBQXdFO0FBSXhFLE9BQU8sRUFBQyxXQUFXLEVBQUUsYUFBYSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBR3hELHFGQUFxRjtBQUNyRixNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxHQUFHLENBQUM7QUFFM0Msb0dBQW9HO0FBQ3BHLE1BQU0sQ0FBQyxNQUFNLHdCQUF3QixHQUFHLEdBQUcsQ0FBQztBQVU1Qzs7Ozs7O0dBTUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBdUJ6QixZQUFZLFdBQXVCLEVBQVUsT0FBZSxFQUFVLE1BQThCO1FBQXZELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVSxXQUFNLEdBQU4sTUFBTSxDQUF3QjtRQWZwRyxrREFBa0Q7UUFDMUMsaUJBQVksR0FBWSxLQUFLLENBQUM7UUFFdEMsc0RBQXNEO1FBQzlDLG1CQUFjLEdBQUcsSUFBSSxHQUFHLEVBQWUsQ0FBQztRQUVoRCxpREFBaUQ7UUFDekMsbUJBQWMsR0FBRyxJQUFJLEdBQUcsRUFBZSxDQUFDO1FBRWhELHVEQUF1RDtRQUN2RCxpQkFBWSxHQUFtQixFQUFFLENBQUM7UUFFbEMsc0RBQXNEO1FBQ3RELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRzVCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBRW5ELDZEQUE2RDtRQUM3RCxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUNsRSxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxT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RSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssR0FBRyxLQUFLLEdBQUcsS0FBSyxDQUFDLENBQUM7QUFDcEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBmcm9tIGlPbmVKUyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtFbGVtZW50UmVmLCBOZ1pvbmV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHtDb1JpcHBsZVJlZiwgQ29SaXBwbGVTdGF0ZX0gZnJvbSBcIi4vcmlwcGxlLXJlZlwiO1xyXG5pbXBvcnQge0NvVmlld3BvcnRSdWxlclNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LXJ1bGVyLnNlcnZpY2VcIjtcclxuXHJcbi8qKiBGYWRlLWluIGR1cmF0aW9uIGZvciB0aGUgcmlwcGxlcy4gQ2FuIGJlIG1vZGlmaWVkIHdpdGggdGhlIHNwZWVkRmFjdG9yIG9wdGlvbi4gKi9cclxuZXhwb3J0IGNvbnN0IFJJUFBMRV9GQURFX0lOX0RVUkFUSU9OID0gNDUwO1xyXG5cclxuLyoqIEZhZGUtb3V0IGR1cmF0aW9uIGZvciB0aGUgcmlwcGxlcyBpbiBtaWxsaXNlY29uZHMuIFRoaXMgY2FuJ3QgYmUgbW9kaWZpZWQgYnkgdGhlIHNwZWVkRmFjdG9yLiAqL1xyXG5leHBvcnQgY29uc3QgUklQUExFX0ZBREVfT1VUX0RVUkFUSU9OID0gNDAwO1xyXG5cclxuZXhwb3J0IHR5cGUgQ29SaXBwbGVDb25maWcgPSB7XHJcbiAgICBjb2xvcj86IHN0cmluZztcclxuICAgIGNlbnRlcmVkPzogYm9vbGVhbjtcclxuICAgIHJhZGl1cz86IG51bWJlcjtcclxuICAgIHNwZWVkRmFjdG9yPzogbnVtYmVyO1xyXG4gICAgcGVyc2lzdGVudD86IGJvb2xlYW47XHJcbn07XHJcblxyXG4vKipcclxuICogSGVscGVyIHNlcnZpY2UgdGhhdCBwZXJmb3JtcyBET00gbWFuaXB1bGF0aW9ucy4gTm90IGludGVuZGVkIHRvIGJlIHVzZWQgb3V0c2lkZSB0aGlzIG1vZHVsZS5cclxuICogVGhlIGNvbnN0cnVjdG9yIHRha2VzIGEgcmVmZXJlbmNlIHRvIHRoZSByaXBwbGUgZGlyZWN0aXZlJ3MgaG9zdCBlbGVtZW50IGFuZCBhIG1hcCBvZiBET01cclxuICogZXZlbnQgaGFuZGxlcnMgdG8gYmUgaW5zdGFsbGVkIG9uIHRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgcmlwcGxlIGFuaW1hdGlvbnMuXHJcbiAqIFRoaXMgd2lsbCBldmVudHVhbGx5IGJlY29tZSBhIGN1c3RvbSByZW5kZXJlciBvbmNlIEFuZ3VsYXIgc3VwcG9ydCBleGlzdHMuXHJcbiAqIEBkb2NzLXByaXZhdGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBDb1JpcHBsZVJlbmRlcmVyIHtcclxuXHJcbiAgICAvKiogRWxlbWVudCB3aGVyZSB0aGUgcmlwcGxlcyBhcmUgYmVpbmcgYWRkZWQgdG8uICovXHJcbiAgICBwcml2YXRlIF9jb250YWluZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKiogRWxlbWVudCB3aGljaCB0cmlnZ2VycyB0aGUgcmlwcGxlIGVsZW1lbnRzIG9uIG1vdXNlIGV2ZW50cy4gKi9cclxuICAgIHByaXZhdGUgX3RyaWdnZXJFbGVtZW50OiBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKiogV2hldGhlciB0aGUgbW91c2UgaXMgY3VycmVudGx5IGRvd24gb3Igbm90LiAqL1xyXG4gICAgcHJpdmF0ZSBfaXNNb3VzZWRvd246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgICAvKiogRXZlbnRzIHRvIGJlIHJlZ2lzdGVyZWQgb24gdGhlIHRyaWdnZXIgZWxlbWVudC4gKi9cclxuICAgIHByaXZhdGUgX3RyaWdnZXJFdmVudHMgPSBuZXcgTWFwPHN0cmluZywgYW55PigpO1xyXG5cclxuICAgIC8qKiBTZXQgb2YgY3VycmVudGx5IGFjdGl2ZSByaXBwbGUgcmVmZXJlbmNlcy4gKi9cclxuICAgIHByaXZhdGUgX2FjdGl2ZVJpcHBsZXMgPSBuZXcgU2V0PENvUmlwcGxlUmVmPigpO1xyXG5cclxuICAgIC8qKiBSaXBwbGUgY29uZmlnIGZvciBhbGwgcmlwcGxlcyBjcmVhdGVkIGJ5IGV2ZW50cy4gKi9cclxuICAgIHJpcHBsZUNvbmZpZzogQ29SaXBwbGVDb25maWcgPSB7fTtcclxuXHJcbiAgICAvKiogV2hldGhlciBtb3VzZSByaXBwbGVzIHNob3VsZCBiZSBjcmVhdGVkIG9yIG5vdC4gKi9cclxuICAgIHJpcHBsZURpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgY29uc3RydWN0b3IoX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgX25nWm9uZTogTmdab25lLCBwcml2YXRlIF9ydWxlcjogQ29WaWV3cG9ydFJ1bGVyU2VydmljZSkge1xyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQgPSBfZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xyXG5cclxuICAgICAgICAvLyBTcGVjaWZ5IGV2ZW50cyB3aGljaCBuZWVkIHRvIGJlIHJlZ2lzdGVyZWQgb24gdGhlIHRyaWdnZXIuXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5zZXQoJ21vdXNlZG93bicsIHRoaXMub25Nb3VzZWRvd24uYmluZCh0aGlzKSk7XHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5zZXQoJ21vdXNldXAnLCB0aGlzLm9uTW91c2V1cC5iaW5kKHRoaXMpKTtcclxuICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnRzLnNldCgnbW91c2VsZWF2ZScsIHRoaXMub25Nb3VzZUxlYXZlLmJpbmQodGhpcykpO1xyXG5cclxuICAgICAgICAvLyBCeSBkZWZhdWx0IHVzZSB0aGUgaG9zdCBlbGVtZW50IGFzIHRyaWdnZXIgZWxlbWVudC5cclxuICAgICAgICB0aGlzLnNldFRyaWdnZXJFbGVtZW50KHRoaXMuX2NvbnRhaW5lckVsZW1lbnQpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGYWRlcyBpbiBhIHJpcHBsZSBhdCB0aGUgZ2l2ZW4gY29vcmRpbmF0ZXMuICovXHJcbiAgICBmYWRlSW5SaXBwbGUocGFnZVg6IG51bWJlciwgcGFnZVk6IG51bWJlciwgY29uZmlnOiBDb1JpcHBsZUNvbmZpZyA9IHt9KTogQ29SaXBwbGVSZWYge1xyXG4gICAgICAgIGxldCBjb250YWluZXJSZWN0ID0gdGhpcy5fY29udGFpbmVyRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuXHJcbiAgICAgICAgaWYgKGNvbmZpZy5jZW50ZXJlZCkge1xyXG4gICAgICAgICAgICBwYWdlWCA9IGNvbnRhaW5lclJlY3QubGVmdCArIGNvbnRhaW5lclJlY3Qud2lkdGggLyAyO1xyXG4gICAgICAgICAgICBwYWdlWSA9IGNvbnRhaW5lclJlY3QudG9wICsgY29udGFpbmVyUmVjdC5oZWlnaHQgLyAyO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIFN1YnRyYWN0IHNjcm9sbCB2YWx1ZXMgZnJvbSB0aGUgY29vcmRpbmF0ZXMgYmVjYXVzZSBjYWxjdWxhdGlvbnMgYmVsb3dcclxuICAgICAgICAgICAgLy8gYXJlIGFsd2F5cyByZWxhdGl2ZSB0byB0aGUgdmlld3BvcnQgcmVjdGFuZ2xlLlxyXG4gICAgICAgICAgICBsZXQgc2Nyb2xsUG9zaXRpb24gPSB0aGlzLl9ydWxlci5nZXRWaWV3cG9ydFNjcm9sbFBvc2l0aW9uKCk7XHJcbiAgICAgICAgICAgIHBhZ2VYIC09IHNjcm9sbFBvc2l0aW9uLmxlZnQ7XHJcbiAgICAgICAgICAgIHBhZ2VZIC09IHNjcm9sbFBvc2l0aW9uLnRvcDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGxldCByYWRpdXMgPSBjb25maWcucmFkaXVzIHx8IGRpc3RhbmNlVG9GdXJ0aGVzdENvcm5lcihwYWdlWCwgcGFnZVksIGNvbnRhaW5lclJlY3QpO1xyXG4gICAgICAgIGxldCBkdXJhdGlvbiA9IFJJUFBMRV9GQURFX0lOX0RVUkFUSU9OICogKDEgLyAoY29uZmlnLnNwZWVkRmFjdG9yIHx8IDEpKTtcclxuICAgICAgICBsZXQgb2Zmc2V0WCA9IHBhZ2VYIC0gY29udGFpbmVyUmVjdC5sZWZ0O1xyXG4gICAgICAgIGxldCBvZmZzZXRZID0gcGFnZVkgLSBjb250YWluZXJSZWN0LnRvcDtcclxuXHJcbiAgICAgICAgbGV0IHJpcHBsZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpO1xyXG4gICAgICAgIHJpcHBsZS5jbGFzc0xpc3QuYWRkKCdtYXQtcmlwcGxlLWVsZW1lbnQnKTtcclxuXHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmxlZnQgPSBgJHtvZmZzZXRYIC0gcmFkaXVzfXB4YDtcclxuICAgICAgICByaXBwbGUuc3R5bGUudG9wID0gYCR7b2Zmc2V0WSAtIHJhZGl1c31weGA7XHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLmhlaWdodCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS53aWR0aCA9IGAke3JhZGl1cyAqIDJ9cHhgO1xyXG5cclxuICAgICAgICAvLyBJZiB0aGUgY29sb3IgaXMgbm90IHNldCwgdGhlIGRlZmF1bHQgQ1NTIGNvbG9yIHdpbGwgYmUgdXNlZC5cclxuICAgICAgICByaXBwbGUuc3R5bGUuYmFja2dyb3VuZENvbG9yID0gY29uZmlnLmNvbG9yO1xyXG4gICAgICAgIHJpcHBsZS5zdHlsZS50cmFuc2l0aW9uRHVyYXRpb24gPSBgJHtkdXJhdGlvbn1tc2A7XHJcblxyXG4gICAgICAgIHRoaXMuX2NvbnRhaW5lckVsZW1lbnQuYXBwZW5kQ2hpbGQocmlwcGxlKTtcclxuXHJcbiAgICAgICAgLy8gQnkgZGVmYXVsdCB0aGUgYnJvd3NlciBkb2VzIG5vdCByZWNhbGN1bGF0ZSB0aGUgc3R5bGVzIG9mIGR5bmFtaWNhbGx5IGNyZWF0ZWRcclxuICAgICAgICAvLyByaXBwbGUgZWxlbWVudHMuIFRoaXMgaXMgY3JpdGljYWwgYmVjYXVzZSB0aGVuIHRoZSBgc2NhbGVgIHdvdWxkIG5vdCBhbmltYXRlIHByb3Blcmx5LlxyXG4gICAgICAgIGVuZm9yY2VTdHlsZVJlY2FsY3VsYXRpb24ocmlwcGxlKTtcclxuXHJcbiAgICAgICAgcmlwcGxlLnN0eWxlLnRyYW5zZm9ybSA9ICdzY2FsZSgxKSc7XHJcblxyXG4gICAgICAgIC8vIEV4cG9zZWQgcmVmZXJlbmNlIHRvIHRoZSByaXBwbGUgdGhhdCB3aWxsIGJlIHJldHVybmVkLlxyXG4gICAgICAgIGxldCByaXBwbGVSZWYgPSBuZXcgQ29SaXBwbGVSZWYodGhpcywgcmlwcGxlLCBjb25maWcpO1xyXG5cclxuICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLkZBRElOR19JTjtcclxuXHJcbiAgICAgICAgLy8gQWRkIHRoZSByaXBwbGUgcmVmZXJlbmNlIHRvIHRoZSBsaXN0IG9mIGFsbCBhY3RpdmUgcmlwcGxlcy5cclxuICAgICAgICB0aGlzLl9hY3RpdmVSaXBwbGVzLmFkZChyaXBwbGVSZWYpO1xyXG5cclxuICAgICAgICAvLyBXYWl0IGZvciB0aGUgcmlwcGxlIGVsZW1lbnQgdG8gYmUgY29tcGxldGVseSBmYWRlZCBpbi5cclxuICAgICAgICAvLyBPbmNlIGl0J3MgZmFkZWQgaW4sIHRoZSByaXBwbGUgY2FuIGJlIGhpZGRlbiBpbW1lZGlhdGVseSBpZiB0aGUgbW91c2UgaXMgcmVsZWFzZWQuXHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLlZJU0lCTEU7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNvbmZpZy5wZXJzaXN0ZW50ICYmICF0aGlzLl9pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICAgICAgcmlwcGxlUmVmLmZhZGVPdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0sIGR1cmF0aW9uKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIHJpcHBsZVJlZjtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRmFkZXMgb3V0IGEgcmlwcGxlIHJlZmVyZW5jZS4gKi9cclxuICAgIGZhZGVPdXRSaXBwbGUocmlwcGxlUmVmOiBDb1JpcHBsZVJlZikge1xyXG4gICAgICAgIC8vIEZvciByaXBwbGVzIHRoYXQgYXJlIG5vdCBhY3RpdmUgYW55bW9yZSwgZG9uJ3QgcmUtdW4gdGhlIGZhZGUtb3V0IGFuaW1hdGlvbi5cclxuICAgICAgICBpZiAoIXRoaXMuX2FjdGl2ZVJpcHBsZXMuZGVsZXRlKHJpcHBsZVJlZikpIHtcclxuICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgbGV0IHJpcHBsZUVsID0gcmlwcGxlUmVmLmVsZW1lbnQ7XHJcblxyXG4gICAgICAgIHJpcHBsZUVsLnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9IGAke1JJUFBMRV9GQURFX09VVF9EVVJBVElPTn1tc2A7XHJcbiAgICAgICAgcmlwcGxlRWwuc3R5bGUub3BhY2l0eSA9ICcwJztcclxuXHJcbiAgICAgICAgcmlwcGxlUmVmLnN0YXRlID0gQ29SaXBwbGVTdGF0ZS5GQURJTkdfT1VUO1xyXG5cclxuICAgICAgICAvLyBPbmNlIHRoZSByaXBwbGUgZmFkZWQgb3V0LCB0aGUgcmlwcGxlIGNhbiBiZSBzYWZlbHkgcmVtb3ZlZCBmcm9tIHRoZSBET00uXHJcbiAgICAgICAgdGhpcy5ydW5UaW1lb3V0T3V0c2lkZVpvbmUoKCkgPT4ge1xyXG4gICAgICAgICAgICByaXBwbGVSZWYuc3RhdGUgPSBDb1JpcHBsZVN0YXRlLkhJRERFTjtcclxuICAgICAgICAgICAgcmlwcGxlRWwucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChyaXBwbGVFbCk7XHJcbiAgICAgICAgfSwgUklQUExFX0ZBREVfT1VUX0RVUkFUSU9OKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogRmFkZXMgb3V0IGFsbCBjdXJyZW50bHkgYWN0aXZlIHJpcHBsZXMuICovXHJcbiAgICBmYWRlT3V0QWxsKCkge1xyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaChyaXBwbGUgPT4gcmlwcGxlLmZhZGVPdXQoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNldHMgdGhlIHRyaWdnZXIgZWxlbWVudCBhbmQgcmVnaXN0ZXJzIHRoZSBtb3VzZSBldmVudHMuICovXHJcbiAgICBzZXRUcmlnZ2VyRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCkge1xyXG4gICAgICAgIC8vIFJlbW92ZSBhbGwgcHJldmlvdXNseSByZWdpc3RlciBldmVudCBsaXN0ZW5lcnMgZnJvbSB0aGUgdHJpZ2dlciBlbGVtZW50LlxyXG4gICAgICAgIGlmICh0aGlzLl90cmlnZ2VyRWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLl90cmlnZ2VyRXZlbnRzLmZvckVhY2goKGZuLCB0eXBlKSA9PiB0aGlzLl90cmlnZ2VyRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKHR5cGUsIGZuKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpZiAoZWxlbWVudCkge1xyXG4gICAgICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBub3QgbnVsbCwgcmVnaXN0ZXIgYWxsIGV2ZW50IGxpc3RlbmVycyBvbiB0aGUgdHJpZ2dlciBlbGVtZW50LlxyXG4gICAgICAgICAgICB0aGlzLl9uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJpZ2dlckV2ZW50cy5mb3JFYWNoKChmbiwgdHlwZSkgPT4gZWxlbWVudC5hZGRFdmVudExpc3RlbmVyKHR5cGUsIGZuKSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy5fdHJpZ2dlckVsZW1lbnQgPSBlbGVtZW50O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBiZWluZyBjYWxsZWQgb24gbW91c2Vkb3duIGV2ZW50LiAqL1xyXG4gICAgcHJpdmF0ZSBvbk1vdXNlZG93bihldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgICAgIGlmICghdGhpcy5yaXBwbGVEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLl9pc01vdXNlZG93biA9IHRydWU7XHJcbiAgICAgICAgICAgIHRoaXMuZmFkZUluUmlwcGxlKGV2ZW50LnBhZ2VYLCBldmVudC5wYWdlWSwgdGhpcy5yaXBwbGVDb25maWcpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogTGlzdGVuZXIgYmVpbmcgY2FsbGVkIG9uIG1vdXNldXAgZXZlbnQuICovXHJcbiAgICBwcml2YXRlIG9uTW91c2V1cCgpIHtcclxuICAgICAgICB0aGlzLl9pc01vdXNlZG93biA9IGZhbHNlO1xyXG5cclxuICAgICAgICAvLyBGYWRlLW91dCBhbGwgcmlwcGxlcyB0aGF0IGFyZSBjb21wbGV0ZWx5IHZpc2libGUgYW5kIG5vdCBwZXJzaXN0ZW50LlxyXG4gICAgICAgIHRoaXMuX2FjdGl2ZVJpcHBsZXMuZm9yRWFjaChyaXBwbGUgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIXJpcHBsZS5jb25maWcucGVyc2lzdGVudCAmJiByaXBwbGUuc3RhdGUgPT09IENvUmlwcGxlU3RhdGUuVklTSUJMRSkge1xyXG4gICAgICAgICAgICAgICAgcmlwcGxlLmZhZGVPdXQoKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBMaXN0ZW5lciBiZWluZyBjYWxsZWQgb24gbW91c2VsZWF2ZSBldmVudC4gKi9cclxuICAgIHByaXZhdGUgb25Nb3VzZUxlYXZlKCkge1xyXG4gICAgICAgIGlmICh0aGlzLl9pc01vdXNlZG93bikge1xyXG4gICAgICAgICAgICB0aGlzLm9uTW91c2V1cCgpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICAvKiogUnVucyBhIHRpbWVvdXQgb3V0c2lkZSBvZiB0aGUgQW5ndWxhciB6b25lIHRvIGF2b2lkIHRyaWdnZXJpbmcgdGhlIGNoYW5nZSBkZXRlY3Rpb24uICovXHJcbiAgICBwcml2YXRlIHJ1blRpbWVvdXRPdXRzaWRlWm9uZShmbjogRnVuY3Rpb24sIGRlbGF5OiBudW1iZXIgPSAwKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fbmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHNldFRpbWVvdXQoZm4sIGRlbGF5KSk7XHJcbiAgICB9XHJcblxyXG59XHJcblxyXG4vKiogRW5mb3JjZXMgYSBzdHlsZSByZWNhbGN1bGF0aW9uIG9mIGEgRE9NIGVsZW1lbnQgYnkgY29tcHV0aW5nIGl0cyBzdHlsZXMuICovXHJcbmZ1bmN0aW9uIGVuZm9yY2VTdHlsZVJlY2FsY3VsYXRpb24oZWxlbWVudDogSFRNTEVsZW1lbnQpIHtcclxuICAgIC8vIEVuZm9yY2UgYSBzdHlsZSByZWNhbGN1bGF0aW9uIGJ5IGNhbGxpbmcgYGdldENvbXB1dGVkU3R5bGVgIGFuZCBhY2Nlc3NpbmcgYW55IHByb3BlcnR5LlxyXG4gICAgLy8gQ2FsbGluZyBgZ2V0UHJvcGVydHlWYWx1ZWAgaXMgaW1wb3J0YW50IHRvIGxldCBvcHRpbWl6ZXJzIGtub3cgdGhhdCB0aGlzIGlzIG5vdCBhIG5vb3AuXHJcbiAgICAvLyBTZWU6IGh0dHBzOi8vZ2lzdC5naXRodWIuY29tL3BhdWxpcmlzaC81ZDUyZmIwODFiMzU3MGM4MWUzYVxyXG4gICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUoZWxlbWVudCkuZ2V0UHJvcGVydHlWYWx1ZSgnb3BhY2l0eScpO1xyXG59XHJcblxyXG4vKipcclxuICogUmV0dXJucyB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgcG9pbnQgKHgsIHkpIHRvIHRoZSBmdXJ0aGVzdCBjb3JuZXIgb2YgYSByZWN0YW5nbGUuXHJcbiAqL1xyXG5mdW5jdGlvbiBkaXN0YW5jZVRvRnVydGhlc3RDb3JuZXIoeDogbnVtYmVyLCB5OiBudW1iZXIsIHJlY3Q6IENsaWVudFJlY3QpIHtcclxuICAgIGNvbnN0IGRpc3RYID0gTWF0aC5tYXgoTWF0aC5hYnMoeCAtIHJlY3QubGVmdCksIE1hdGguYWJzKHggLSByZWN0LnJpZ2h0KSk7XHJcbiAgICBjb25zdCBkaXN0WSA9IE1hdGgubWF4KE1hdGguYWJzKHkgLSByZWN0LnRvcCksIE1hdGguYWJzKHkgLSByZWN0LmJvdHRvbSkpO1xyXG4gICAgcmV0dXJuIE1hdGguc3FydChkaXN0WCAqIGRpc3RYICsgZGlzdFkgKiBkaXN0WSk7XHJcbn0iXX0=
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.
|
|
2
|
+
import { Directive, ElementRef, Inject, InjectionToken, Input, NgZone, Optional } from '@angular/core';
|
|
3
|
+
import { CoRippleRenderer } from "./ripple-renderer";
|
|
4
|
+
import { CoViewportRulerService } from "./viewport-ruler.service";
|
|
5
|
+
/** OpaqueToken that can be used to specify the global ripple options. */
|
|
6
|
+
export const MD_RIPPLE_GLOBAL_OPTIONS = new InjectionToken('CoRippleGlobalOptions');
|
|
7
|
+
export class CoRippleDirective {
|
|
8
|
+
constructor(elementRef, ngZone, ruler,
|
|
9
|
+
// Type needs to be `any` because of https://github.com/angular/angular/issues/12631
|
|
10
|
+
globalOptions) {
|
|
11
|
+
/**
|
|
12
|
+
* If set, the radius in pixels of foreground ripples when fully expanded. If unset, the radius
|
|
13
|
+
* will be the distance from the center of the ripple to the furthest corner of the host element's
|
|
14
|
+
* bounding rectangle.
|
|
15
|
+
*/
|
|
16
|
+
this.radius = 0;
|
|
17
|
+
/**
|
|
18
|
+
* If set, the normal duration of ripple animations is divided by this value. For example,
|
|
19
|
+
* setting it to 0.5 will cause the animations to take twice as long.
|
|
20
|
+
* A changed speedFactor will not modify the fade-out duration of the ripples.
|
|
21
|
+
*/
|
|
22
|
+
this.speedFactor = 1;
|
|
23
|
+
this._rippleRenderer = new CoRippleRenderer(elementRef, ngZone, ruler);
|
|
24
|
+
this._globalOptions = globalOptions ? globalOptions : {};
|
|
25
|
+
}
|
|
26
|
+
ngOnChanges(changes) {
|
|
27
|
+
if (changes['trigger'] && this.trigger) {
|
|
28
|
+
this._rippleRenderer.setTriggerElement(this.trigger);
|
|
29
|
+
}
|
|
30
|
+
this._rippleRenderer.rippleDisabled = this._globalOptions.disabled || this.disabled;
|
|
31
|
+
this._rippleRenderer.rippleConfig = this.rippleConfig;
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
// Set the trigger element to null to cleanup all listeners.
|
|
35
|
+
this._rippleRenderer.setTriggerElement(null);
|
|
36
|
+
}
|
|
37
|
+
/** Launches a manual ripple at the specified position. */
|
|
38
|
+
launch(pageX, pageY, config = this.rippleConfig) {
|
|
39
|
+
return this._rippleRenderer.fadeInRipple(pageX, pageY, config);
|
|
40
|
+
}
|
|
41
|
+
/** Fades out all currently showing ripple elements. */
|
|
42
|
+
fadeOutAll() {
|
|
43
|
+
this._rippleRenderer.fadeOutAll();
|
|
44
|
+
}
|
|
45
|
+
/** Ripple configuration from the directive's input values. */
|
|
46
|
+
get rippleConfig() {
|
|
47
|
+
return {
|
|
48
|
+
centered: this.centered,
|
|
49
|
+
speedFactor: this.speedFactor * (this._globalOptions.baseSpeedFactor || 1),
|
|
50
|
+
radius: this.radius,
|
|
51
|
+
color: this.color
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
CoRippleDirective.decorators = [
|
|
56
|
+
{ type: Directive, args: [{
|
|
57
|
+
selector: '[md-ripple], [mat-ripple], [mdRipple], [matRipple]',
|
|
58
|
+
exportAs: 'mdRipple',
|
|
59
|
+
host: {
|
|
60
|
+
'[class.mat-ripple]': 'true',
|
|
61
|
+
'[class.mat-ripple-unbounded]': 'unbounded'
|
|
62
|
+
}
|
|
63
|
+
},] }
|
|
64
|
+
];
|
|
65
|
+
CoRippleDirective.ctorParameters = () => [
|
|
66
|
+
{ type: ElementRef },
|
|
67
|
+
{ type: NgZone },
|
|
68
|
+
{ type: CoViewportRulerService },
|
|
69
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [MD_RIPPLE_GLOBAL_OPTIONS,] }] }
|
|
70
|
+
];
|
|
71
|
+
CoRippleDirective.propDecorators = {
|
|
72
|
+
trigger: [{ type: Input, args: ['mdRippleTrigger',] }],
|
|
73
|
+
centered: [{ type: Input, args: ['mdRippleCentered',] }],
|
|
74
|
+
disabled: [{ type: Input, args: ['mdRippleDisabled',] }],
|
|
75
|
+
radius: [{ type: Input, args: ['mdRippleRadius',] }],
|
|
76
|
+
speedFactor: [{ type: Input, args: ['mdRippleSpeedFactor',] }],
|
|
77
|
+
color: [{ type: Input, args: ['mdRippleColor',] }],
|
|
78
|
+
unbounded: [{ type: Input, args: ['mdRippleUnbounded',] }]
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFFeEUsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQzFJLE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUVuRSxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUVoRSx5RUFBeUU7QUFDekUsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQTBDLElBQUksY0FBYyxDQUFDLHVCQUF1QixDQUFDLENBQUM7QUFlM0gsTUFBTSxPQUFPLGlCQUFpQjtJQWdEMUIsWUFDSSxVQUFzQixFQUN0QixNQUFjLEVBQ2QsS0FBNkI7SUFDN0Isb0ZBQW9GO0lBQ3RDLGFBQWtCO1FBL0JwRTs7OztXQUlHO1FBQ3NCLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFFNUM7Ozs7V0FJRztRQUMyQixnQkFBVyxHQUFXLENBQUMsQ0FBQztRQXFCbEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGdCQUFnQixDQUFDLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDdkUsSUFBSSxDQUFDLGNBQWMsR0FBRyxhQUFhLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQzdELENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN4RDtRQUVELElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDcEYsSUFBSSxDQUFDLGVBQWUsQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMxRCxDQUFDO0lBRUQsV0FBVztRQUNQLDREQUE0RDtRQUM1RCxJQUFJLENBQUMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pELENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsTUFBTSxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQUUsU0FBeUIsSUFBSSxDQUFDLFlBQVk7UUFDM0UsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCx1REFBdUQ7SUFDdkQsVUFBVTtRQUNOLElBQUksQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELDhEQUE4RDtJQUM5RCxJQUFJLFlBQVk7UUFDWixPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3ZCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLElBQUksQ0FBQyxDQUFDO1lBQzFFLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTTtZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7U0FDcEIsQ0FBQztJQUNOLENBQUM7OztZQW5HSixTQUFTLFNBQUM7Z0JBQ1AsUUFBUSxFQUFFLG9EQUFvRDtnQkFDOUQsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLElBQUksRUFBRTtvQkFDRixvQkFBb0IsRUFBRSxNQUFNO29CQUM1Qiw4QkFBOEIsRUFBRSxXQUFXO2lCQUM5QzthQUNKOzs7WUFwQmtCLFVBQVU7WUFBaUMsTUFBTTtZQUc1RCxzQkFBc0I7NENBdUVyQixRQUFRLFlBQUksTUFBTSxTQUFDLHdCQUF3Qjs7O3NCQTdDL0MsS0FBSyxTQUFDLGlCQUFpQjt1QkFNdkIsS0FBSyxTQUFDLGtCQUFrQjt1QkFNeEIsS0FBSyxTQUFDLGtCQUFrQjtxQkFPeEIsS0FBSyxTQUFDLGdCQUFnQjswQkFPdEIsS0FBSyxTQUFDLHFCQUFxQjtvQkFHM0IsS0FBSyxTQUFDLGVBQWU7d0JBR3JCLEtBQUssU0FBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBOT1RFOiBDb3BpZWQgZnJvbSBpT25lSlMgYW5kIGFkYXB0ZWQgdG8gQ29yZUNvbXBvbmVudHMgb24gOS1tYXktMjAxOC5cclxuXHJcbmltcG9ydCB7RGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbmplY3QsIEluamVjdGlvblRva2VuLCBJbnB1dCwgTmdab25lLCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT3B0aW9uYWwsIFNpbXBsZUNoYW5nZXN9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvUmlwcGxlQ29uZmlnLCBDb1JpcHBsZVJlbmRlcmVyfSBmcm9tIFwiLi9yaXBwbGUtcmVuZGVyZXJcIjtcclxuaW1wb3J0IHtDb1JpcHBsZVJlZn0gZnJvbSBcIi4vcmlwcGxlLXJlZlwiO1xyXG5pbXBvcnQge0NvVmlld3BvcnRSdWxlclNlcnZpY2V9IGZyb20gXCIuL3ZpZXdwb3J0LXJ1bGVyLnNlcnZpY2VcIjtcclxuXHJcbi8qKiBPcGFxdWVUb2tlbiB0aGF0IGNhbiBiZSB1c2VkIHRvIHNwZWNpZnkgdGhlIGdsb2JhbCByaXBwbGUgb3B0aW9ucy4gKi9cclxuZXhwb3J0IGNvbnN0IE1EX1JJUFBMRV9HTE9CQUxfT1BUSU9OUzogSW5qZWN0aW9uVG9rZW48Q29SaXBwbGVHbG9iYWxPcHRpb25zPiA9IG5ldyBJbmplY3Rpb25Ub2tlbignQ29SaXBwbGVHbG9iYWxPcHRpb25zJyk7XHJcblxyXG5leHBvcnQgdHlwZSBDb1JpcHBsZUdsb2JhbE9wdGlvbnMgPSB7XHJcbiAgICBkaXNhYmxlZD86IGJvb2xlYW47XHJcbiAgICBiYXNlU3BlZWRGYWN0b3I/OiBudW1iZXI7XHJcbn07XHJcblxyXG5ARGlyZWN0aXZlKHtcclxuICAgIHNlbGVjdG9yOiAnW21kLXJpcHBsZV0sIFttYXQtcmlwcGxlXSwgW21kUmlwcGxlXSwgW21hdFJpcHBsZV0nLFxyXG4gICAgZXhwb3J0QXM6ICdtZFJpcHBsZScsXHJcbiAgICBob3N0OiB7XHJcbiAgICAgICAgJ1tjbGFzcy5tYXQtcmlwcGxlXSc6ICd0cnVlJyxcclxuICAgICAgICAnW2NsYXNzLm1hdC1yaXBwbGUtdW5ib3VuZGVkXSc6ICd1bmJvdW5kZWQnXHJcbiAgICB9XHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb1JpcHBsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcnMgdGhlIHJpcHBsZSB3aGVuIGNsaWNrIGV2ZW50cyBhcmUgcmVjZWl2ZWQuIERlZmF1bHRzIHRvIHRoZVxyXG4gICAgICogZGlyZWN0aXZlJ3MgaG9zdCBlbGVtZW50LlxyXG4gICAgICovXHJcbiAgICAgICAgLy8gUHJldmVudCBUUyBtZXRhZGF0YSBlbWl0IGZyb20gcmVmZXJlbmNpbmcgSFRNTEVsZW1lbnQgaW4gcmlwcGxlLmpzXHJcbiAgICAgICAgLy8gT3RoZXJ3aXNlIHJ1bm5pbmcgdGhpcyBjb2RlIGluIGEgTm9kZSBlbnZpcm9ubWVudCAoZS5nIFVuaXZlcnNhbCkgd2lsbCBub3Qgd29yay5cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVUcmlnZ2VyJykgdHJpZ2dlcjogSFRNTEVsZW1lbnQgfCBIVE1MRWxlbWVudDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFdoZXRoZXIgdGhlIHJpcHBsZSBhbHdheXMgb3JpZ2luYXRlcyBmcm9tIHRoZSBjZW50ZXIgb2YgdGhlIGhvc3QgZWxlbWVudCdzIGJvdW5kcywgcmF0aGVyXHJcbiAgICAgKiB0aGFuIG9yaWdpbmF0aW5nIGZyb20gdGhlIGxvY2F0aW9uIG9mIHRoZSBjbGljayBldmVudC5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZUNlbnRlcmVkJykgY2VudGVyZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBXaGV0aGVyIGNsaWNrIGV2ZW50cyB3aWxsIG5vdCB0cmlnZ2VyIHRoZSByaXBwbGUuIEl0IGNhbiBzdGlsbCBiZSB0cmlnZ2VyZWQgYnkgbWFudWFsbHlcclxuICAgICAqIGNhbGxpbmcgY3JlYXRlUmlwcGxlKClcclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZURpc2FibGVkJykgZGlzYWJsZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJZiBzZXQsIHRoZSByYWRpdXMgaW4gcGl4ZWxzIG9mIGZvcmVncm91bmQgcmlwcGxlcyB3aGVuIGZ1bGx5IGV4cGFuZGVkLiBJZiB1bnNldCwgdGhlIHJhZGl1c1xyXG4gICAgICogd2lsbCBiZSB0aGUgZGlzdGFuY2UgZnJvbSB0aGUgY2VudGVyIG9mIHRoZSByaXBwbGUgdG8gdGhlIGZ1cnRoZXN0IGNvcm5lciBvZiB0aGUgaG9zdCBlbGVtZW50J3NcclxuICAgICAqIGJvdW5kaW5nIHJlY3RhbmdsZS5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZVJhZGl1cycpIHJhZGl1czogbnVtYmVyID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIElmIHNldCwgdGhlIG5vcm1hbCBkdXJhdGlvbiBvZiByaXBwbGUgYW5pbWF0aW9ucyBpcyBkaXZpZGVkIGJ5IHRoaXMgdmFsdWUuIEZvciBleGFtcGxlLFxyXG4gICAgICogc2V0dGluZyBpdCB0byAwLjUgd2lsbCBjYXVzZSB0aGUgYW5pbWF0aW9ucyB0byB0YWtlIHR3aWNlIGFzIGxvbmcuXHJcbiAgICAgKiBBIGNoYW5nZWQgc3BlZWRGYWN0b3Igd2lsbCBub3QgbW9kaWZ5IHRoZSBmYWRlLW91dCBkdXJhdGlvbiBvZiB0aGUgcmlwcGxlcy5cclxuICAgICAqL1xyXG4gICAgQElucHV0KCdtZFJpcHBsZVNwZWVkRmFjdG9yJykgc3BlZWRGYWN0b3I6IG51bWJlciA9IDE7XHJcblxyXG4gICAgLyoqIEN1c3RvbSBjb2xvciBmb3IgcmlwcGxlcy4gKi9cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVDb2xvcicpIGNvbG9yOiBzdHJpbmc7XHJcblxyXG4gICAgLyoqIFdoZXRoZXIgZm9yZWdyb3VuZCByaXBwbGVzIHNob3VsZCBiZSB2aXNpYmxlIG91dHNpZGUgdGhlIGNvbXBvbmVudCdzIGJvdW5kcy4gKi9cclxuICAgIEBJbnB1dCgnbWRSaXBwbGVVbmJvdW5kZWQnKSB1bmJvdW5kZWQ6IGJvb2xlYW47XHJcblxyXG4gICAgLyoqIFJlbmRlcmVyIGZvciB0aGUgcmlwcGxlIERPTSBtYW5pcHVsYXRpb25zLiAqL1xyXG4gICAgcHJpdmF0ZSBfcmlwcGxlUmVuZGVyZXI6IENvUmlwcGxlUmVuZGVyZXI7XHJcblxyXG4gICAgLyoqIE9wdGlvbnMgdGhhdCBhcmUgc2V0IGdsb2JhbGx5IGZvciBhbGwgcmlwcGxlcy4gKi9cclxuICAgIHByaXZhdGUgX2dsb2JhbE9wdGlvbnM6IENvUmlwcGxlR2xvYmFsT3B0aW9ucztcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxyXG4gICAgICAgIG5nWm9uZTogTmdab25lLFxyXG4gICAgICAgIHJ1bGVyOiBDb1ZpZXdwb3J0UnVsZXJTZXJ2aWNlLFxyXG4gICAgICAgIC8vIFR5cGUgbmVlZHMgdG8gYmUgYGFueWAgYmVjYXVzZSBvZiBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9hbmd1bGFyL2lzc3Vlcy8xMjYzMVxyXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoTURfUklQUExFX0dMT0JBTF9PUFRJT05TKSBnbG9iYWxPcHRpb25zOiBhbnlcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuX3JpcHBsZVJlbmRlcmVyID0gbmV3IENvUmlwcGxlUmVuZGVyZXIoZWxlbWVudFJlZiwgbmdab25lLCBydWxlcik7XHJcbiAgICAgICAgdGhpcy5fZ2xvYmFsT3B0aW9ucyA9IGdsb2JhbE9wdGlvbnMgPyBnbG9iYWxPcHRpb25zIDoge307XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzWyd0cmlnZ2VyJ10gJiYgdGhpcy50cmlnZ2VyKSB7XHJcbiAgICAgICAgICAgIHRoaXMuX3JpcHBsZVJlbmRlcmVyLnNldFRyaWdnZXJFbGVtZW50KHRoaXMudHJpZ2dlcik7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5yaXBwbGVEaXNhYmxlZCA9IHRoaXMuX2dsb2JhbE9wdGlvbnMuZGlzYWJsZWQgfHwgdGhpcy5kaXNhYmxlZDtcclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5yaXBwbGVDb25maWcgPSB0aGlzLnJpcHBsZUNvbmZpZztcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICAvLyBTZXQgdGhlIHRyaWdnZXIgZWxlbWVudCB0byBudWxsIHRvIGNsZWFudXAgYWxsIGxpc3RlbmVycy5cclxuICAgICAgICB0aGlzLl9yaXBwbGVSZW5kZXJlci5zZXRUcmlnZ2VyRWxlbWVudChudWxsKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogTGF1bmNoZXMgYSBtYW51YWwgcmlwcGxlIGF0IHRoZSBzcGVjaWZpZWQgcG9zaXRpb24uICovXHJcbiAgICBsYXVuY2gocGFnZVg6IG51bWJlciwgcGFnZVk6IG51bWJlciwgY29uZmlnOiBDb1JpcHBsZUNvbmZpZyA9IHRoaXMucmlwcGxlQ29uZmlnKTogQ29SaXBwbGVSZWYge1xyXG4gICAgICAgIHJldHVybiB0aGlzLl9yaXBwbGVSZW5kZXJlci5mYWRlSW5SaXBwbGUocGFnZVgsIHBhZ2VZLCBjb25maWcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBGYWRlcyBvdXQgYWxsIGN1cnJlbnRseSBzaG93aW5nIHJpcHBsZSBlbGVtZW50cy4gKi9cclxuICAgIGZhZGVPdXRBbGwoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy5fcmlwcGxlUmVuZGVyZXIuZmFkZU91dEFsbCgpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSaXBwbGUgY29uZmlndXJhdGlvbiBmcm9tIHRoZSBkaXJlY3RpdmUncyBpbnB1dCB2YWx1ZXMuICovXHJcbiAgICBnZXQgcmlwcGxlQ29uZmlnKCk6IENvUmlwcGxlQ29uZmlnIHtcclxuICAgICAgICByZXR1cm4ge1xyXG4gICAgICAgICAgICBjZW50ZXJlZDogdGhpcy5jZW50ZXJlZCxcclxuICAgICAgICAgICAgc3BlZWRGYWN0b3I6IHRoaXMuc3BlZWRGYWN0b3IgKiAodGhpcy5fZ2xvYmFsT3B0aW9ucy5iYXNlU3BlZWRGYWN0b3IgfHwgMSksXHJcbiAgICAgICAgICAgIHJhZGl1czogdGhpcy5yYWRpdXMsXHJcbiAgICAgICAgICAgIGNvbG9yOiB0aGlzLmNvbG9yXHJcbiAgICAgICAgfTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
// NOTE: Copied from iOneJS and adapted to CoreComponents on 9-may-2018.
|
|
2
|
+
import { NgModule } from "@angular/core";
|
|
3
|
+
import { CoViewportRulerService } from "./viewport-ruler.service";
|
|
4
|
+
import { CoRippleDirective } from "./ripple.directive";
|
|
5
|
+
import { CoScrollableDirective } from "./scrollable.directive";
|
|
6
|
+
import { CoScrollDispatcherService } from "./scroll-dispatcher.service";
|
|
7
|
+
export class RippleModule {
|
|
8
|
+
}
|
|
9
|
+
RippleModule.decorators = [
|
|
10
|
+
{ type: NgModule, args: [{
|
|
11
|
+
declarations: [
|
|
12
|
+
CoRippleDirective,
|
|
13
|
+
CoScrollableDirective
|
|
14
|
+
],
|
|
15
|
+
providers: [
|
|
16
|
+
CoScrollDispatcherService,
|
|
17
|
+
CoViewportRulerService
|
|
18
|
+
],
|
|
19
|
+
exports: [
|
|
20
|
+
CoRippleDirective
|
|
21
|
+
]
|
|
22
|
+
},] }
|
|
23
|
+
];
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmlwcGxlLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvcmlwcGxlLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3RUFBd0U7QUFFeEUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUMsaUJBQWlCLEVBQUMsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRCxPQUFPLEVBQUMscUJBQXFCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQWV0RSxNQUFNLE9BQU8sWUFBWTs7O1lBYnhCLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUU7b0JBQ1YsaUJBQWlCO29CQUNqQixxQkFBcUI7aUJBQ3hCO2dCQUNELFNBQVMsRUFBRTtvQkFDUCx5QkFBeUI7b0JBQ3pCLHNCQUFzQjtpQkFDekI7Z0JBQ0QsT0FBTyxFQUFFO29CQUNMLGlCQUFpQjtpQkFDcEI7YUFDSiIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBmcm9tIGlPbmVKUyBhbmQgYWRhcHRlZCB0byBDb3JlQ29tcG9uZW50cyBvbiA5LW1heS0yMDE4LlxyXG5cclxuaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbmltcG9ydCB7Q29WaWV3cG9ydFJ1bGVyU2VydmljZX0gZnJvbSBcIi4vdmlld3BvcnQtcnVsZXIuc2VydmljZVwiO1xyXG5pbXBvcnQge0NvUmlwcGxlRGlyZWN0aXZlfSBmcm9tIFwiLi9yaXBwbGUuZGlyZWN0aXZlXCI7XHJcbmltcG9ydCB7Q29TY3JvbGxhYmxlRGlyZWN0aXZlfSBmcm9tIFwiLi9zY3JvbGxhYmxlLmRpcmVjdGl2ZVwiO1xyXG5pbXBvcnQge0NvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2V9IGZyb20gXCIuL3Njcm9sbC1kaXNwYXRjaGVyLnNlcnZpY2VcIjtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBDb1JpcHBsZURpcmVjdGl2ZSxcclxuICAgICAgICBDb1Njcm9sbGFibGVEaXJlY3RpdmVcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDb1Njcm9sbERpc3BhdGNoZXJTZXJ2aWNlLFxyXG4gICAgICAgIENvVmlld3BvcnRSdWxlclNlcnZpY2VcclxuICAgIF0sXHJcbiAgICBleHBvcnRzOiBbXHJcbiAgICAgICAgQ29SaXBwbGVEaXJlY3RpdmVcclxuICAgIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFJpcHBsZU1vZHVsZSB7XHJcbn0iXX0=
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// NOTE: Copied and adapted to iOneJS from https://github.com/angular/material2/blob/master/src/lib/core on 14-march-2017.
|
|
2
|
+
import { Injectable, Optional, SkipSelf } from '@angular/core';
|
|
3
|
+
import { fromEvent, merge, Subject } from 'rxjs';
|
|
4
|
+
import { auditTime } from 'rxjs/operators';
|
|
5
|
+
/** Time in ms to throttle the scrolling events by default. */
|
|
6
|
+
export const DEFAULT_SCROLL_TIME = 20;
|
|
7
|
+
/**
|
|
8
|
+
* Service contained all registered Scrollable references and emits an event when any one of the
|
|
9
|
+
* Scrollable references emit a scrolled event.
|
|
10
|
+
*/
|
|
11
|
+
export class CoScrollDispatcherService {
|
|
12
|
+
constructor() {
|
|
13
|
+
/** Subject for notifying that a registered scrollable reference element has been scrolled. */
|
|
14
|
+
this._scrolled = new Subject();
|
|
15
|
+
/** Keeps track of the global `scroll` and `resize` subscriptions. */
|
|
16
|
+
this._globalSubscription = null;
|
|
17
|
+
/** Keeps track of the amount of subscriptions to `scrolled`. Used for cleaning up afterwards. */
|
|
18
|
+
this._scrolledCount = 0;
|
|
19
|
+
/**
|
|
20
|
+
* Map of all the scrollable references that are registered with the service and their
|
|
21
|
+
* scroll event subscriptions.
|
|
22
|
+
*/
|
|
23
|
+
this.scrollableReferences = new Map();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Registers a Scrollable with the service and listens for its scrolled events. When the
|
|
27
|
+
* scrollable is scrolled, the service emits the event in its scrolled observable.
|
|
28
|
+
* @param scrollable Scrollable instance to be registered.
|
|
29
|
+
*/
|
|
30
|
+
register(scrollable) {
|
|
31
|
+
const scrollSubscription = scrollable.elementScrolled().subscribe(() => this._notify());
|
|
32
|
+
this.scrollableReferences.set(scrollable, scrollSubscription);
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Deregisters a Scrollable reference and unsubscribes from its scroll event observable.
|
|
36
|
+
* @param scrollable Scrollable instance to be deregistered.
|
|
37
|
+
*/
|
|
38
|
+
deregister(scrollable) {
|
|
39
|
+
if (this.scrollableReferences.has(scrollable)) {
|
|
40
|
+
this.scrollableReferences.get(scrollable).unsubscribe();
|
|
41
|
+
this.scrollableReferences.delete(scrollable);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Subscribes to an observable that emits an event whenever any of the registered Scrollable
|
|
46
|
+
* references (or window, document, or body) fire a scrolled event. Can provide a time in ms
|
|
47
|
+
* to override the default "throttle" time.
|
|
48
|
+
*/
|
|
49
|
+
scrolled(auditTimeInMs = DEFAULT_SCROLL_TIME, callback) {
|
|
50
|
+
// In the case of a 0ms delay, use an observable without auditTime
|
|
51
|
+
// since it does add a perceptible delay in processing overhead.
|
|
52
|
+
let observable = auditTimeInMs > 0 ?
|
|
53
|
+
auditTime(auditTimeInMs) :
|
|
54
|
+
this._scrolled.asObservable();
|
|
55
|
+
this._scrolledCount++;
|
|
56
|
+
if (!this._globalSubscription) {
|
|
57
|
+
this._globalSubscription = merge(fromEvent(window.document, 'scroll'), fromEvent(window, 'resize')).subscribe(() => this._notify());
|
|
58
|
+
}
|
|
59
|
+
// Note that we need to do the subscribing from here, in order to be able to remove
|
|
60
|
+
// the global event listeners once there are no more subscriptions.
|
|
61
|
+
return observable.subscribe(callback).add(() => {
|
|
62
|
+
this._scrolledCount--;
|
|
63
|
+
if (this._globalSubscription && !this.scrollableReferences.size && !this._scrolledCount) {
|
|
64
|
+
this._globalSubscription.unsubscribe();
|
|
65
|
+
this._globalSubscription = null;
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
/** Returns all registered Scrollables that contain the provided element. */
|
|
70
|
+
getScrollContainers(elementRef) {
|
|
71
|
+
const scrollingContainers = [];
|
|
72
|
+
this.scrollableReferences.forEach((subscription, scrollable) => {
|
|
73
|
+
if (this.scrollableContainsElement(scrollable, elementRef)) {
|
|
74
|
+
scrollingContainers.push(scrollable);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
return scrollingContainers;
|
|
78
|
+
}
|
|
79
|
+
/** Returns true if the element is contained within the provided Scrollable. */
|
|
80
|
+
scrollableContainsElement(scrollable, elementRef) {
|
|
81
|
+
let element = elementRef.nativeElement;
|
|
82
|
+
let scrollableElement = scrollable.getElementRef().nativeElement;
|
|
83
|
+
// Traverse through the element parents until we reach null, checking if any of the elements
|
|
84
|
+
// are the scrollable's element.
|
|
85
|
+
do {
|
|
86
|
+
if (element == scrollableElement) {
|
|
87
|
+
return true;
|
|
88
|
+
}
|
|
89
|
+
} while (element = element.parentElement);
|
|
90
|
+
}
|
|
91
|
+
/** Sends a notification that a scroll event has been fired. */
|
|
92
|
+
_notify() {
|
|
93
|
+
this._scrolled.next();
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
CoScrollDispatcherService.decorators = [
|
|
97
|
+
{ type: Injectable }
|
|
98
|
+
];
|
|
99
|
+
export function SCROLL_DISPATCHER_PROVIDER_FACTORY(parentDispatcher) {
|
|
100
|
+
return parentDispatcher || new CoScrollDispatcherService();
|
|
101
|
+
}
|
|
102
|
+
export const SCROLL_DISPATCHER_PROVIDER = {
|
|
103
|
+
// If there is already a ScrollDispatcher available, use that. Otherwise, provide a new one.
|
|
104
|
+
provide: CoScrollDispatcherService,
|
|
105
|
+
deps: [[new Optional(), new SkipSelf(), CoScrollDispatcherService]],
|
|
106
|
+
useFactory: SCROLL_DISPATCHER_PROVIDER_FACTORY
|
|
107
|
+
};
|
|
108
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmVjb21wb25lbnRzL3NyYy9saWIvZGlyZWN0aXZlcy9yaXBwbGUvc2Nyb2xsLWRpc3BhdGNoZXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSwwSEFBMEg7QUFDMUgsT0FBTyxFQUFjLFVBQVUsRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNFLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFjLE9BQU8sRUFBZ0IsTUFBTSxNQUFNLENBQUM7QUFHM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLDhEQUE4RDtBQUM5RCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBRyxFQUFFLENBQUM7QUFFdEM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLHlCQUF5QjtJQUR0QztRQUVJLDhGQUE4RjtRQUM5RixjQUFTLEdBQWtCLElBQUksT0FBTyxFQUFRLENBQUM7UUFFL0MscUVBQXFFO1FBQ3JFLHdCQUFtQixHQUFpQixJQUFJLENBQUM7UUFFekMsaUdBQWlHO1FBQ3pGLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRTNCOzs7V0FHRztRQUNILHlCQUFvQixHQUE2QyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBd0YvRSxDQUFDO0lBdEZHOzs7O09BSUc7SUFDSCxRQUFRLENBQUMsVUFBaUM7UUFDdEMsTUFBTSxrQkFBa0IsR0FBRyxVQUFVLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVEOzs7T0FHRztJQUNI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QkFBMEIsR0FBRztJQUN0Qyw0RkFBNEY7SUFDNUYsT0FBTyxFQUFFLHlCQUF5QjtJQUNsQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSx5QkFBeUIsQ0FBQyxDQUFDO0lBQ25FLFVBQVUsRUFBRSxrQ0FBa0M7Q0FDakQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE5PVEU6IENvcGllZCBhbmQgYWRhcHRlZCB0byBpT25lSlMgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vYW5ndWxhci9tYXRlcmlhbDIvYmxvYi9tYXN0ZXIvc3JjL2xpYi9jb3JlIG9uIDE0LW1hcmNoLTIwMTcuXHJcbmltcG9ydCB7IEVsZW1lbnRSZWYsIEluamVjdGFibGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBmcm9tRXZlbnQsIG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJqZWN0LCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSB9IGZyb20gJy4vc2Nyb2xsYWJsZS5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBhdWRpdFRpbWUgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcblxyXG4vKiogVGltZSBpbiBtcyB0byB0aHJvdHRsZSB0aGUgc2Nyb2xsaW5nIGV2ZW50cyBieSBkZWZhdWx0LiAqL1xyXG5leHBvcnQgY29uc3QgREVGQVVMVF9TQ1JPTExfVElNRSA9IDIwO1xyXG5cclxuLyoqXHJcbiAqIFNlcnZpY2UgY29udGFpbmVkIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGUgcmVmZXJlbmNlcyBhbmQgZW1pdHMgYW4gZXZlbnQgd2hlbiBhbnkgb25lIG9mIHRoZVxyXG4gKiBTY3JvbGxhYmxlIHJlZmVyZW5jZXMgZW1pdCBhIHNjcm9sbGVkIGV2ZW50LlxyXG4gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSB7XHJcbiAgICAvKiogU3ViamVjdCBmb3Igbm90aWZ5aW5nIHRoYXQgYSByZWdpc3RlcmVkIHNjcm9sbGFibGUgcmVmZXJlbmNlIGVsZW1lbnQgaGFzIGJlZW4gc2Nyb2xsZWQuICovXHJcbiAgICBfc2Nyb2xsZWQ6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICAgIC8qKiBLZWVwcyB0cmFjayBvZiB0aGUgZ2xvYmFsIGBzY3JvbGxgIGFuZCBgcmVzaXplYCBzdWJzY3JpcHRpb25zLiAqL1xyXG4gICAgX2dsb2JhbFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuXHJcbiAgICAvKiogS2VlcHMgdHJhY2sgb2YgdGhlIGFtb3VudCBvZiBzdWJzY3JpcHRpb25zIHRvIGBzY3JvbGxlZGAuIFVzZWQgZm9yIGNsZWFuaW5nIHVwIGFmdGVyd2FyZHMuICovXHJcbiAgICBwcml2YXRlIF9zY3JvbGxlZENvdW50ID0gMDtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE1hcCBvZiBhbGwgdGhlIHNjcm9sbGFibGUgcmVmZXJlbmNlcyB0aGF0IGFyZSByZWdpc3RlcmVkIHdpdGggdGhlIHNlcnZpY2UgYW5kIHRoZWlyXHJcbiAgICAgKiBzY3JvbGwgZXZlbnQgc3Vic2NyaXB0aW9ucy5cclxuICAgICAqL1xyXG4gICAgc2Nyb2xsYWJsZVJlZmVyZW5jZXM6IE1hcDxDb1Njcm9sbGFibGVEaXJlY3RpdmUsIFN1YnNjcmlwdGlvbj4gPSBuZXcgTWFwKCk7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWdpc3RlcnMgYSBTY3JvbGxhYmxlIHdpdGggdGhlIHNlcnZpY2UgYW5kIGxpc3RlbnMgZm9yIGl0cyBzY3JvbGxlZCBldmVudHMuIFdoZW4gdGhlXHJcbiAgICAgKiBzY3JvbGxhYmxlIGlzIHNjcm9sbGVkLCB0aGUgc2VydmljZSBlbWl0cyB0aGUgZXZlbnQgaW4gaXRzIHNjcm9sbGVkIG9ic2VydmFibGUuXHJcbiAgICAgKiBAcGFyYW0gc2Nyb2xsYWJsZSBTY3JvbGxhYmxlIGluc3RhbmNlIHRvIGJlIHJlZ2lzdGVyZWQuXHJcbiAgICAgKi9cclxuICAgIHJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IHNjcm9sbFN1YnNjcmlwdGlvbiA9IHNjcm9sbGFibGUuZWxlbWVudFNjcm9sbGVkKCkuc3Vic2NyaWJlKCgpID0+IHRoaXMuX25vdGlmeSgpKTtcclxuXHJcbiAgICAgICAgdGhpcy5zY3JvbGxhYmxlUmVmZXJlbmNlcy5zZXQoc2Nyb2xsYWJsZSwgc2Nyb2xsU3Vic2NyaXB0aW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERlcmVnaXN0ZXJzIGEgU2Nyb2xsYWJsZSByZWZlcmVuY2UgYW5kIHVuc3Vic2NyaWJlcyBmcm9tIGl0cyBzY3JvbGwgZXZlbnQgb2JzZXJ2YWJsZS5cclxuICAgICAqIEBwYXJhbSBzY3JvbGxhYmxlIFNjcm9sbGFibGUgaW5zdGFuY2UgdG8gYmUgZGVyZWdpc3RlcmVkLlxyXG4gICAgICovXHJcbiAgICBkZXJlZ2lzdGVyKHNjcm9sbGFibGU6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZSk6IHZvaWQge1xyXG4gICAgICAgIGlmICh0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmhhcyhzY3JvbGxhYmxlKSkge1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmdldChzY3JvbGxhYmxlKS51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmRlbGV0ZShzY3JvbGxhYmxlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTdWJzY3JpYmVzIHRvIGFuIG9ic2VydmFibGUgdGhhdCBlbWl0cyBhbiBldmVudCB3aGVuZXZlciBhbnkgb2YgdGhlIHJlZ2lzdGVyZWQgU2Nyb2xsYWJsZVxyXG4gICAgICogcmVmZXJlbmNlcyAob3Igd2luZG93LCBkb2N1bWVudCwgb3IgYm9keSkgZmlyZSBhIHNjcm9sbGVkIGV2ZW50LiBDYW4gcHJvdmlkZSBhIHRpbWUgaW4gbXNcclxuICAgICAqIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IFwidGhyb3R0bGVcIiB0aW1lLlxyXG4gICAgICovXHJcbiAgICBzY3JvbGxlZChhdWRpdFRpbWVJbk1zOiBudW1iZXIgPSBERUZBVUxUX1NDUk9MTF9USU1FLCBjYWxsYmFjazogKCkgPT4gYW55KTogU3Vic2NyaXB0aW9uIHtcclxuICAgICAgICAvLyBJbiB0aGUgY2FzZSBvZiBhIDBtcyBkZWxheSwgdXNlIGFuIG9ic2VydmFibGUgd2l0aG91dCBhdWRpdFRpbWVcclxuICAgICAgICAvLyBzaW5jZSBpdCBkb2VzIGFkZCBhIHBlcmNlcHRpYmxlIGRlbGF5IGluIHByb2Nlc3Npbmcgb3ZlcmhlYWQuXHJcbiAgICAgICAgbGV0IG9ic2VydmFibGU6IGFueSA9IGF1ZGl0VGltZUluTXMgPiAwID9cclxuICAgICAgICAgICAgYXVkaXRUaW1lKGF1ZGl0VGltZUluTXMpIDpcclxuICAgICAgICAgICAgdGhpcy5fc2Nyb2xsZWQuYXNPYnNlcnZhYmxlKCk7XHJcblxyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkQ291bnQrKztcclxuXHJcbiAgICAgICAgaWYgKCF0aGlzLl9nbG9iYWxTdWJzY3JpcHRpb24pIHtcclxuICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbWVyZ2UoXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LmRvY3VtZW50LCAnc2Nyb2xsJyksXHJcbiAgICAgICAgICAgICAgICBmcm9tRXZlbnQod2luZG93LCAncmVzaXplJylcclxuICAgICAgICAgICAgKS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5fbm90aWZ5KCkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gTm90ZSB0aGF0IHdlIG5lZWQgdG8gZG8gdGhlIHN1YnNjcmliaW5nIGZyb20gaGVyZSwgaW4gb3JkZXIgdG8gYmUgYWJsZSB0byByZW1vdmVcclxuICAgICAgICAvLyB0aGUgZ2xvYmFsIGV2ZW50IGxpc3RlbmVycyBvbmNlIHRoZXJlIGFyZSBubyBtb3JlIHN1YnNjcmlwdGlvbnMuXHJcbiAgICAgICAgcmV0dXJuIG9ic2VydmFibGUuc3Vic2NyaWJlKGNhbGxiYWNrKS5hZGQoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLl9zY3JvbGxlZENvdW50LS07XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uICYmICF0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLnNpemUgJiYgIXRoaXMuX3Njcm9sbGVkQ291bnQpIHtcclxuICAgICAgICAgICAgICAgIHRoaXMuX2dsb2JhbFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5fZ2xvYmFsU3Vic2NyaXB0aW9uID0gbnVsbDtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIGFsbCByZWdpc3RlcmVkIFNjcm9sbGFibGVzIHRoYXQgY29udGFpbiB0aGUgcHJvdmlkZWQgZWxlbWVudC4gKi9cclxuICAgIGdldFNjcm9sbENvbnRhaW5lcnMoZWxlbWVudFJlZjogRWxlbWVudFJlZik6IENvU2Nyb2xsYWJsZURpcmVjdGl2ZVtdIHtcclxuICAgICAgICBjb25zdCBzY3JvbGxpbmdDb250YWluZXJzOiBDb1Njcm9sbGFibGVEaXJlY3RpdmVbXSA9IFtdO1xyXG5cclxuICAgICAgICB0aGlzLnNjcm9sbGFibGVSZWZlcmVuY2VzLmZvckVhY2goKHN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uLCBzY3JvbGxhYmxlOiBDb1Njcm9sbGFibGVEaXJlY3RpdmUpID0+IHtcclxuICAgICAgICAgICAgaWYgKHRoaXMuc2Nyb2xsYWJsZUNvbnRhaW5zRWxlbWVudChzY3JvbGxhYmxlLCBlbGVtZW50UmVmKSkge1xyXG4gICAgICAgICAgICAgICAgc2Nyb2xsaW5nQ29udGFpbmVycy5wdXNoKHNjcm9sbGFibGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHJldHVybiBzY3JvbGxpbmdDb250YWluZXJzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBSZXR1cm5zIHRydWUgaWYgdGhlIGVsZW1lbnQgaXMgY29udGFpbmVkIHdpdGhpbiB0aGUgcHJvdmlkZWQgU2Nyb2xsYWJsZS4gKi9cclxuICAgIHNjcm9sbGFibGVDb250YWluc0VsZW1lbnQoc2Nyb2xsYWJsZTogQ29TY3JvbGxhYmxlRGlyZWN0aXZlLCBlbGVtZW50UmVmOiBFbGVtZW50UmVmKTogYm9vbGVhbiB7XHJcbiAgICAgICAgbGV0IGVsZW1lbnQgPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XHJcbiAgICAgICAgbGV0IHNjcm9sbGFibGVFbGVtZW50ID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudDtcclxuXHJcbiAgICAgICAgLy8gVHJhdmVyc2UgdGhyb3VnaCB0aGUgZWxlbWVudCBwYXJlbnRzIHVudGlsIHdlIHJlYWNoIG51bGwsIGNoZWNraW5nIGlmIGFueSBvZiB0aGUgZWxlbWVudHNcclxuICAgICAgICAvLyBhcmUgdGhlIHNjcm9sbGFibGUncyBlbGVtZW50LlxyXG4gICAgICAgIGRvIHtcclxuICAgICAgICAgICAgaWYgKGVsZW1lbnQgPT0gc2Nyb2xsYWJsZUVsZW1lbnQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSB3aGlsZSAoZWxlbWVudCA9IGVsZW1lbnQucGFyZW50RWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIFNlbmRzIGEgbm90aWZpY2F0aW9uIHRoYXQgYSBzY3JvbGwgZXZlbnQgaGFzIGJlZW4gZmlyZWQuICovXHJcbiAgICBfbm90aWZ5KCkge1xyXG4gICAgICAgIHRoaXMuX3Njcm9sbGVkLm5leHQoKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSX0ZBQ1RPUlkocGFyZW50RGlzcGF0Y2hlcjogQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZSkge1xyXG4gICAgcmV0dXJuIHBhcmVudERpc3BhdGNoZXIgfHwgbmV3IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UoKTtcclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IFNDUk9MTF9ESVNQQVRDSEVSX1BST1ZJREVSID0ge1xyXG4gICAgLy8gSWYgdGhlcmUgaXMgYWxyZWFkeSBhIFNjcm9sbERpc3BhdGNoZXIgYXZhaWxhYmxlLCB1c2UgdGhhdC4gT3RoZXJ3aXNlLCBwcm92aWRlIGEgbmV3IG9uZS5cclxuICAgIHByb3ZpZGU6IENvU2Nyb2xsRGlzcGF0Y2hlclNlcnZpY2UsXHJcbiAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQ29TY3JvbGxEaXNwYXRjaGVyU2VydmljZV1dLFxyXG4gICAgdXNlRmFjdG9yeTogU0NST0xMX0RJU1BBVENIRVJfUFJPVklERVJfRkFDVE9SWVxyXG59O1xyXG4iXX0=
|