ngx-tethys 18.2.7 → 19.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +10 -0
- package/badge/badge.component.d.ts +21 -3
- package/cascader/cascader-search-option.component.d.ts +6 -3
- package/core/store/store.d.ts +1 -1
- package/date-picker/abstract-picker.component.d.ts +1 -1
- package/date-picker/abstract-picker.directive.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-header.component.d.ts +1 -1
- package/date-picker/lib/calendar/calendar-table.component.d.ts +1 -1
- package/date-range/date-range.component.d.ts +12 -2
- package/divider/divider.component.d.ts +2 -8
- package/dropdown/dropdown-menu.component.d.ts +1 -1
- package/empty/empty.component.d.ts +1 -4
- package/fesm2022/ngx-tethys-action.mjs +12 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +8 -8
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +12 -12
- package/fesm2022/ngx-tethys-alert.mjs.map +1 -1
- package/fesm2022/ngx-tethys-anchor.mjs +11 -13
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +9 -9
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +20 -20
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +26 -26
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +10 -10
- package/fesm2022/ngx-tethys-back-top.mjs.map +1 -1
- package/fesm2022/ngx-tethys-badge.mjs +9 -9
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +13 -15
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +20 -20
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +15 -15
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +23 -24
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +9 -9
- package/fesm2022/ngx-tethys-checkbox.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +12 -12
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-color-picker.mjs +38 -38
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +15 -15
- package/fesm2022/ngx-tethys-comment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-copy.mjs +8 -8
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +21 -21
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +141 -141
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +14 -14
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +27 -28
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +8 -9
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +8 -8
- package/fesm2022/ngx-tethys-dot.mjs.map +1 -1
- package/fesm2022/ngx-tethys-drag-drop.mjs +20 -20
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +47 -48
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +12 -12
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +8 -8
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +44 -44
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +14 -14
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +35 -38
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +18 -18
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +11 -11
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +19 -19
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +11 -11
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +23 -23
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -64
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +19 -19
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +9 -9
- package/fesm2022/ngx-tethys-loading.mjs.map +1 -1
- package/fesm2022/ngx-tethys-mention.mjs +12 -12
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +29 -29
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +25 -26
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +24 -25
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +15 -15
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +23 -23
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +12 -12
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +12 -12
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +15 -15
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -13
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +17 -19
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +9 -9
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +13 -13
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +16 -16
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +70 -70
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +23 -28
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +34 -35
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +9 -9
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +12 -12
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-statistic.mjs +9 -9
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +8 -8
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +9 -9
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +23 -23
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +15 -16
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +24 -24
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +15 -16
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +16 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +13 -13
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +13 -13
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +19 -19
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +15 -15
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +17 -17
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +2 -18
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +9 -9
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys-watermark.mjs +8 -8
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/input/input.component.d.ts +1 -1
- package/layout/header.component.d.ts +21 -3
- package/menu/group/menu-group.component.d.ts +6 -30
- package/message/abstract/abstract-message-container.component.d.ts +1 -1
- package/message/abstract/abstract-message.component.d.ts +1 -1
- package/nav/nav.component.d.ts +2 -2
- package/package.json +1 -169
- package/pagination/pagination.component.d.ts +45 -5
- package/property/property-item.component.d.ts +4 -2
- package/schematics/dependencies.js +3 -3
- package/schematics/ng-add/index.js +7 -3
- package/schematics/ng-update/core/complete.js +1 -2
- package/schematics/ng-update/migration-collection.json +4 -4
- package/schematics/ng-update/{update-18 → update-19}/index.js +4 -5
- package/schematics/ng-update/{update-18 → update-19}/index.spec.js +4 -4
- package/schematics/testing/get-json-content.js +1 -2
- package/schematics/testing/test-app.js +1 -2
- package/schematics/testing/test-project.js +1 -2
- package/schematics/testing/test-workspace.d.ts +0 -2
- package/schematics/testing/test-workspace.js +2 -2
- package/schematics/utils/create-tree-compiler-host.js +1 -2
- package/schematics/utils/create-tree-ts-parse-config-host.js +2 -2
- package/schematics/utils/get-angular-json.js +1 -2
- package/schematics/utils/get-project.js +1 -2
- package/schematics/utils/get-workspace-tsconfig.js +1 -2
- package/schematics/utils/package-config.js +2 -3
- package/schematics/utils/update-file.service.js +2 -2
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/shared/base-form-check.component.d.ts +1 -1
- package/shared/option/list-option/list-option.component.d.ts +1 -4
- package/shared/select/styles/select.mixin.scss +2 -1
- package/skeleton/skeleton-rectangle.component.d.ts +1 -4
- package/skeleton/stylized/bullet-list.component.d.ts +1 -9
- package/styles/bootstrap/utilities/_background.scss +2 -1
- package/styles/bootstrap/utilities/_text.scss +1 -1
- package/table/table.component.d.ts +1 -1
- package/upload/file-select-base.d.ts +1 -1
- package/esm2022/action/action.component.mjs +0 -174
- package/esm2022/action/action.module.mjs +0 -19
- package/esm2022/action/actions.component.mjs +0 -57
- package/esm2022/action/index.mjs +0 -4
- package/esm2022/action/ngx-tethys-action.mjs +0 -5
- package/esm2022/affix/affix.component.mjs +0 -243
- package/esm2022/affix/affix.module.mjs +0 -18
- package/esm2022/affix/index.mjs +0 -3
- package/esm2022/affix/ngx-tethys-affix.mjs +0 -5
- package/esm2022/affix/respond-events.mjs +0 -11
- package/esm2022/alert/alert.component.mjs +0 -98
- package/esm2022/alert/alert.directive.mjs +0 -25
- package/esm2022/alert/alert.module.mjs +0 -19
- package/esm2022/alert/index.mjs +0 -4
- package/esm2022/alert/ngx-tethys-alert.mjs +0 -5
- package/esm2022/anchor/anchor-link.component.mjs +0 -106
- package/esm2022/anchor/anchor.component.mjs +0 -266
- package/esm2022/anchor/anchor.module.mjs +0 -20
- package/esm2022/anchor/index.mjs +0 -4
- package/esm2022/anchor/ngx-tethys-anchor.mjs +0 -5
- package/esm2022/arrow-switcher/arrow-switcher.component.mjs +0 -130
- package/esm2022/arrow-switcher/index.mjs +0 -3
- package/esm2022/arrow-switcher/module.mjs +0 -21
- package/esm2022/arrow-switcher/ngx-tethys-arrow-switcher.mjs +0 -5
- package/esm2022/autocomplete/autocomplete.component.mjs +0 -182
- package/esm2022/autocomplete/autocomplete.trigger.directive.mjs +0 -275
- package/esm2022/autocomplete/index.mjs +0 -8
- package/esm2022/autocomplete/module.mjs +0 -67
- package/esm2022/autocomplete/ngx-tethys-autocomplete.mjs +0 -5
- package/esm2022/autocomplete/overlay/autocomplete-animations.mjs +0 -10
- package/esm2022/autocomplete/overlay/autocomplete-container.component.mjs +0 -64
- package/esm2022/autocomplete/overlay/autocomplete-ref.mjs +0 -18
- package/esm2022/autocomplete/overlay/autocomplete.config.mjs +0 -18
- package/esm2022/autocomplete/overlay/autocomplete.options.mjs +0 -6
- package/esm2022/autocomplete/overlay/autocomplete.service.mjs +0 -127
- package/esm2022/avatar/avatar-list/avatar-list.component.mjs +0 -76
- package/esm2022/avatar/avatar.component.mjs +0 -179
- package/esm2022/avatar/avatar.module.mjs +0 -33
- package/esm2022/avatar/avatar.pipe.mjs +0 -91
- package/esm2022/avatar/avatar.service.mjs +0 -27
- package/esm2022/avatar/index.mjs +0 -6
- package/esm2022/avatar/ngx-tethys-avatar.mjs +0 -5
- package/esm2022/back-top/back-top.component.mjs +0 -126
- package/esm2022/back-top/back-top.module.mjs +0 -18
- package/esm2022/back-top/index.mjs +0 -3
- package/esm2022/back-top/ngx-tethys-back-top.mjs +0 -5
- package/esm2022/badge/badge.component.mjs +0 -238
- package/esm2022/badge/badge.module.mjs +0 -18
- package/esm2022/badge/index.mjs +0 -3
- package/esm2022/badge/ngx-tethys-badge.mjs +0 -5
- package/esm2022/breadcrumb/breadcrumb-item.component.mjs +0 -49
- package/esm2022/breadcrumb/breadcrumb.component.mjs +0 -115
- package/esm2022/breadcrumb/index.mjs +0 -4
- package/esm2022/breadcrumb/module.mjs +0 -21
- package/esm2022/breadcrumb/ngx-tethys-breadcrumb.mjs +0 -5
- package/esm2022/button/button-group.component.mjs +0 -90
- package/esm2022/button/button-icon.component.mjs +0 -166
- package/esm2022/button/button.component.mjs +0 -216
- package/esm2022/button/button.module.mjs +0 -20
- package/esm2022/button/index.mjs +0 -5
- package/esm2022/button/ngx-tethys-button.mjs +0 -5
- package/esm2022/calendar/calendar-cells.mjs +0 -35
- package/esm2022/calendar/calendar-header.component.mjs +0 -117
- package/esm2022/calendar/calendar.component.mjs +0 -122
- package/esm2022/calendar/index.mjs +0 -5
- package/esm2022/calendar/module.mjs +0 -63
- package/esm2022/calendar/ngx-tethys-calendar.mjs +0 -5
- package/esm2022/card/card.component.mjs +0 -48
- package/esm2022/card/card.module.mjs +0 -19
- package/esm2022/card/content.component.mjs +0 -58
- package/esm2022/card/header.component.mjs +0 -42
- package/esm2022/card/index.mjs +0 -5
- package/esm2022/card/ngx-tethys-card.mjs +0 -5
- package/esm2022/carousel/carousel-item.directive.mjs +0 -37
- package/esm2022/carousel/carousel.component.mjs +0 -290
- package/esm2022/carousel/carousel.service.mjs +0 -74
- package/esm2022/carousel/engine/carousel-base.mjs +0 -43
- package/esm2022/carousel/engine/carousel-fade.mjs +0 -46
- package/esm2022/carousel/engine/carousel-noop.mjs +0 -28
- package/esm2022/carousel/engine/carousel-slide.mjs +0 -62
- package/esm2022/carousel/engine/index.mjs +0 -5
- package/esm2022/carousel/index.mjs +0 -5
- package/esm2022/carousel/module.mjs +0 -21
- package/esm2022/carousel/ngx-tethys-carousel.mjs +0 -5
- package/esm2022/carousel/typings.mjs +0 -2
- package/esm2022/cascader/cascader-li.component.mjs +0 -81
- package/esm2022/cascader/cascader-search-option.component.mjs +0 -73
- package/esm2022/cascader/cascader.component.mjs +0 -768
- package/esm2022/cascader/cascader.service.mjs +0 -558
- package/esm2022/cascader/index.mjs +0 -5
- package/esm2022/cascader/module.mjs +0 -62
- package/esm2022/cascader/ngx-tethys-cascader.mjs +0 -5
- package/esm2022/cascader/types.mjs +0 -2
- package/esm2022/checkbox/checkbox.component.mjs +0 -51
- package/esm2022/checkbox/index.mjs +0 -4
- package/esm2022/checkbox/module.mjs +0 -18
- package/esm2022/checkbox/ngx-tethys-checkbox.mjs +0 -5
- package/esm2022/collapse/collapse-item.component.mjs +0 -88
- package/esm2022/collapse/collapse.component.mjs +0 -79
- package/esm2022/collapse/index.mjs +0 -4
- package/esm2022/collapse/module.mjs +0 -22
- package/esm2022/collapse/ngx-tethys-collapse.mjs +0 -5
- package/esm2022/color-picker/color-picker-custom-panel.component.mjs +0 -38
- package/esm2022/color-picker/color-picker-panel.component.mjs +0 -100
- package/esm2022/color-picker/color-picker.component.mjs +0 -289
- package/esm2022/color-picker/constant.mjs +0 -73
- package/esm2022/color-picker/coordinates.directive.mjs +0 -73
- package/esm2022/color-picker/helpers/color.class.mjs +0 -281
- package/esm2022/color-picker/helpers/colors-table.class.mjs +0 -155
- package/esm2022/color-picker/helpers/rgba.class.mjs +0 -34
- package/esm2022/color-picker/index.mjs +0 -14
- package/esm2022/color-picker/module.mjs +0 -72
- package/esm2022/color-picker/ngx-tethys-color-picker.mjs +0 -5
- package/esm2022/color-picker/parts/alpha/alpha.component.mjs +0 -64
- package/esm2022/color-picker/parts/hue/hue.component.mjs +0 -54
- package/esm2022/color-picker/parts/indicator/indicator.component.mjs +0 -26
- package/esm2022/color-picker/parts/inputs/inputs.component.mjs +0 -61
- package/esm2022/color-picker/parts/saturation/saturation.component.mjs +0 -68
- package/esm2022/comment/comment-actions.directive.mjs +0 -19
- package/esm2022/comment/comment-content.directive.mjs +0 -19
- package/esm2022/comment/comment.component.mjs +0 -30
- package/esm2022/comment/comment.module.mjs +0 -41
- package/esm2022/comment/index.mjs +0 -5
- package/esm2022/comment/ngx-tethys-comment.mjs +0 -5
- package/esm2022/copy/copy.directive.mjs +0 -101
- package/esm2022/copy/index.mjs +0 -3
- package/esm2022/copy/module.mjs +0 -18
- package/esm2022/copy/ngx-tethys-copy.mjs +0 -5
- package/esm2022/core/animation/animation-consts.mjs +0 -23
- package/esm2022/core/animation/collapse.mjs +0 -12
- package/esm2022/core/animation/fade.mjs +0 -7
- package/esm2022/core/animation/index.mjs +0 -2
- package/esm2022/core/animation/public-api.mjs +0 -6
- package/esm2022/core/animation/thumb.mjs +0 -12
- package/esm2022/core/animation/zoom.mjs +0 -66
- package/esm2022/core/behaviors/constructor.mjs +0 -5
- package/esm2022/core/behaviors/control-value-accessor.mjs +0 -17
- package/esm2022/core/behaviors/decorators.mjs +0 -47
- package/esm2022/core/behaviors/disabled.mjs +0 -17
- package/esm2022/core/behaviors/focus-control.mjs +0 -31
- package/esm2022/core/behaviors/index.mjs +0 -11
- package/esm2022/core/behaviors/initialized.mjs +0 -12
- package/esm2022/core/behaviors/loading-done.mjs +0 -12
- package/esm2022/core/behaviors/mixin.mjs +0 -5
- package/esm2022/core/behaviors/tabindex.mjs +0 -21
- package/esm2022/core/behaviors/unsubscribe.mjs +0 -23
- package/esm2022/core/click-positioner.mjs +0 -36
- package/esm2022/core/color/color.mjs +0 -13
- package/esm2022/core/color/index.mjs +0 -2
- package/esm2022/core/debounce-time.mjs +0 -11
- package/esm2022/core/event-dispatchers/index.mjs +0 -2
- package/esm2022/core/index.mjs +0 -16
- package/esm2022/core/ngx-tethys-core.mjs +0 -5
- package/esm2022/core/overlay/abstract-overlay-container.mjs +0 -53
- package/esm2022/core/overlay/abstract-overlay-ref.mjs +0 -160
- package/esm2022/core/overlay/abstract-overlay.config.mjs +0 -70
- package/esm2022/core/overlay/abstract-overlay.service.mjs +0 -158
- package/esm2022/core/overlay/index.mjs +0 -10
- package/esm2022/core/overlay/interface.mjs +0 -2
- package/esm2022/core/overlay/overlay-position-map.mjs +0 -88
- package/esm2022/core/overlay/overlay.directive.mjs +0 -175
- package/esm2022/core/overlay/portal-directives.mjs +0 -47
- package/esm2022/core/overlay/utils.mjs +0 -69
- package/esm2022/core/request-animation.mjs +0 -41
- package/esm2022/core/scroll-to.service.mjs +0 -33
- package/esm2022/core/scroll.mjs +0 -83
- package/esm2022/core/spacing/index.mjs +0 -2
- package/esm2022/core/spacing/spacing.mjs +0 -17
- package/esm2022/core/store/action-state.mjs +0 -11
- package/esm2022/core/store/action.mjs +0 -48
- package/esm2022/core/store/actions-stream.mjs +0 -2
- package/esm2022/core/store/index.mjs +0 -4
- package/esm2022/core/store/store.mjs +0 -125
- package/esm2022/core/store/types.mjs +0 -6
- package/esm2022/core/store/utils.mjs +0 -14
- package/esm2022/core/theme/index.mjs +0 -3
- package/esm2022/core/theme/store.mjs +0 -42
- package/esm2022/core/theme/theme.mjs +0 -9
- package/esm2022/core/translate.mjs +0 -22
- package/esm2022/core/update-host-class.service.mjs +0 -60
- package/esm2022/date-picker/abstract-picker.component.mjs +0 -318
- package/esm2022/date-picker/abstract-picker.directive.mjs +0 -218
- package/esm2022/date-picker/base-picker.component.mjs +0 -249
- package/esm2022/date-picker/date-helper.service.mjs +0 -37
- package/esm2022/date-picker/date-picker.component.mjs +0 -41
- package/esm2022/date-picker/date-picker.config.mjs +0 -103
- package/esm2022/date-picker/date-picker.directive.mjs +0 -39
- package/esm2022/date-picker/date-picker.module.mjs +0 -117
- package/esm2022/date-picker/date-picker.service.mjs +0 -31
- package/esm2022/date-picker/index.mjs +0 -37
- package/esm2022/date-picker/inner-types.mjs +0 -2
- package/esm2022/date-picker/lib/calendar/calendar-footer.component.mjs +0 -98
- package/esm2022/date-picker/lib/calendar/calendar-header.component.mjs +0 -92
- package/esm2022/date-picker/lib/calendar/calendar-table.component.mjs +0 -105
- package/esm2022/date-picker/lib/date/date-header.component.mjs +0 -35
- package/esm2022/date-picker/lib/date/date-table-cell.component.mjs +0 -24
- package/esm2022/date-picker/lib/date/date-table.component.mjs +0 -149
- package/esm2022/date-picker/lib/date/types.mjs +0 -2
- package/esm2022/date-picker/lib/date-carousel/date-carousel.component.mjs +0 -388
- package/esm2022/date-picker/lib/decade/decade-header.component.mjs +0 -42
- package/esm2022/date-picker/lib/decade/decade-table.component.mjs +0 -81
- package/esm2022/date-picker/lib/lib-packer.module.mjs +0 -123
- package/esm2022/date-picker/lib/month/month-header.component.mjs +0 -27
- package/esm2022/date-picker/lib/month/month-table.component.mjs +0 -97
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +0 -566
- package/esm2022/date-picker/lib/popups/inner-popup.component.mjs +0 -196
- package/esm2022/date-picker/lib/quarter/quarter-table.component.mjs +0 -98
- package/esm2022/date-picker/lib/year/year-header.component.mjs +0 -39
- package/esm2022/date-picker/lib/year/year-table.component.mjs +0 -100
- package/esm2022/date-picker/month-picker.component.mjs +0 -45
- package/esm2022/date-picker/ngx-tethys-date-picker.mjs +0 -5
- package/esm2022/date-picker/picker.component.mjs +0 -273
- package/esm2022/date-picker/picker.pipes.mjs +0 -112
- package/esm2022/date-picker/picker.util.mjs +0 -220
- package/esm2022/date-picker/picker.validators.mjs +0 -79
- package/esm2022/date-picker/quarter-picker.component.mjs +0 -48
- package/esm2022/date-picker/range-picker.component.mjs +0 -39
- package/esm2022/date-picker/range-picker.directive.mjs +0 -39
- package/esm2022/date-picker/standard-types.mjs +0 -2
- package/esm2022/date-picker/week-picker.component.mjs +0 -40
- package/esm2022/date-picker/year-picker.component.mjs +0 -48
- package/esm2022/date-range/date-range.class.mjs +0 -6
- package/esm2022/date-range/date-range.component.mjs +0 -255
- package/esm2022/date-range/index.mjs +0 -5
- package/esm2022/date-range/module.mjs +0 -50
- package/esm2022/date-range/ngx-tethys-date-range.mjs +0 -5
- package/esm2022/date-range/optional-dates/optional-dates.component.mjs +0 -50
- package/esm2022/dialog/body/dialog-body.component.mjs +0 -49
- package/esm2022/dialog/confirm/confirm.component.mjs +0 -77
- package/esm2022/dialog/confirm/token.mjs +0 -3
- package/esm2022/dialog/confirm.config.mjs +0 -29
- package/esm2022/dialog/dialog-animations.mjs +0 -19
- package/esm2022/dialog/dialog-container.component.mjs +0 -169
- package/esm2022/dialog/dialog-ref.mjs +0 -35
- package/esm2022/dialog/dialog.config.mjs +0 -62
- package/esm2022/dialog/dialog.module.mjs +0 -91
- package/esm2022/dialog/dialog.options.mjs +0 -6
- package/esm2022/dialog/dialog.service.mjs +0 -145
- package/esm2022/dialog/footer/dialog-footer.component.mjs +0 -51
- package/esm2022/dialog/header/dialog-header.component.mjs +0 -87
- package/esm2022/dialog/index.mjs +0 -12
- package/esm2022/dialog/ngx-tethys-dialog.mjs +0 -5
- package/esm2022/divider/divider.component.mjs +0 -117
- package/esm2022/divider/divider.module.mjs +0 -20
- package/esm2022/divider/index.mjs +0 -3
- package/esm2022/divider/ngx-tethys-divider.mjs +0 -5
- package/esm2022/dot/dot.component.mjs +0 -111
- package/esm2022/dot/dot.module.mjs +0 -17
- package/esm2022/dot/index.mjs +0 -3
- package/esm2022/dot/ngx-tethys-dot.mjs +0 -5
- package/esm2022/drag-drop/drag-content.directive.mjs +0 -32
- package/esm2022/drag-drop/drag-drop.class.mjs +0 -7
- package/esm2022/drag-drop/drag-drop.service.mjs +0 -23
- package/esm2022/drag-drop/drag-handle.directive.mjs +0 -43
- package/esm2022/drag-drop/drag-ref.mjs +0 -225
- package/esm2022/drag-drop/drag.directive.mjs +0 -71
- package/esm2022/drag-drop/drop-container.class.mjs +0 -6
- package/esm2022/drag-drop/drop-container.directive.mjs +0 -129
- package/esm2022/drag-drop/index.mjs +0 -10
- package/esm2022/drag-drop/module.mjs +0 -27
- package/esm2022/drag-drop/ngx-tethys-drag-drop.mjs +0 -5
- package/esm2022/dropdown/dropdown-active.directive.mjs +0 -66
- package/esm2022/dropdown/dropdown-menu-item.directive.mjs +0 -210
- package/esm2022/dropdown/dropdown-menu.component.mjs +0 -156
- package/esm2022/dropdown/dropdown-submenu.component.mjs +0 -83
- package/esm2022/dropdown/dropdown.directive.mjs +0 -189
- package/esm2022/dropdown/index.mjs +0 -7
- package/esm2022/dropdown/module.mjs +0 -79
- package/esm2022/dropdown/ngx-tethys-dropdown.mjs +0 -5
- package/esm2022/empty/empty.component.mjs +0 -183
- package/esm2022/empty/empty.config.mjs +0 -17
- package/esm2022/empty/empty.module.mjs +0 -21
- package/esm2022/empty/index.mjs +0 -4
- package/esm2022/empty/ngx-tethys-empty.mjs +0 -5
- package/esm2022/empty/svgs.mjs +0 -207
- package/esm2022/flexible-text/flexible-text.component.mjs +0 -157
- package/esm2022/flexible-text/flexible-text.module.mjs +0 -19
- package/esm2022/flexible-text/index.mjs +0 -3
- package/esm2022/flexible-text/ngx-tethys-flexible-text.mjs +0 -5
- package/esm2022/form/form-group-error/form-group-error.component.mjs +0 -53
- package/esm2022/form/form-group-label.directive.mjs +0 -49
- package/esm2022/form/form-group.component.mjs +0 -145
- package/esm2022/form/form-submit.directive.mjs +0 -40
- package/esm2022/form/form-validator-loader.mjs +0 -134
- package/esm2022/form/form-validator.service.mjs +0 -252
- package/esm2022/form/form.class.mjs +0 -8
- package/esm2022/form/form.directive.mjs +0 -158
- package/esm2022/form/from-group-footer/form-group-footer.component.mjs +0 -53
- package/esm2022/form/index.mjs +0 -12
- package/esm2022/form/module.mjs +0 -104
- package/esm2022/form/ngx-tethys-form.mjs +0 -5
- package/esm2022/form/validator/confirm-validator.directive.mjs +0 -33
- package/esm2022/form/validator/index.mjs +0 -5
- package/esm2022/form/validator/max-validator.directive.mjs +0 -41
- package/esm2022/form/validator/min-validator.directive.mjs +0 -41
- package/esm2022/form/validator/unique-validator.directive.mjs +0 -52
- package/esm2022/fullscreen/fullscreen-launch.directive.mjs +0 -18
- package/esm2022/fullscreen/fullscreen-ref.mjs +0 -151
- package/esm2022/fullscreen/fullscreen.component.mjs +0 -78
- package/esm2022/fullscreen/fullscreen.config.mjs +0 -6
- package/esm2022/fullscreen/fullscreen.module.mjs +0 -17
- package/esm2022/fullscreen/fullscreen.service.mjs +0 -47
- package/esm2022/fullscreen/index.mjs +0 -7
- package/esm2022/fullscreen/ngx-tethys-fullscreen.mjs +0 -5
- package/esm2022/grid/flex.mjs +0 -179
- package/esm2022/grid/grid.token.mjs +0 -5
- package/esm2022/grid/index.mjs +0 -7
- package/esm2022/grid/module.mjs +0 -56
- package/esm2022/grid/ngx-tethys-grid.mjs +0 -5
- package/esm2022/grid/thy-col.directive.mjs +0 -66
- package/esm2022/grid/thy-grid-item.component.mjs +0 -60
- package/esm2022/grid/thy-grid.component.mjs +0 -256
- package/esm2022/grid/thy-row.directive.mjs +0 -59
- package/esm2022/guider/guider-hint/guider-hint.component.mjs +0 -52
- package/esm2022/guider/guider-manager.mjs +0 -39
- package/esm2022/guider/guider-ref.mjs +0 -133
- package/esm2022/guider/guider-step-ref.mjs +0 -242
- package/esm2022/guider/guider.class.mjs +0 -15
- package/esm2022/guider/guider.directive.mjs +0 -50
- package/esm2022/guider/guider.module.mjs +0 -24
- package/esm2022/guider/guider.service.mjs +0 -76
- package/esm2022/guider/index.mjs +0 -9
- package/esm2022/guider/ngx-tethys-guider.mjs +0 -5
- package/esm2022/guider/utils.mjs +0 -10
- package/esm2022/i18n/i18n.mjs +0 -9
- package/esm2022/i18n/i18n.service.mjs +0 -45
- package/esm2022/i18n/i18n.token.mjs +0 -10
- package/esm2022/i18n/index.mjs +0 -10
- package/esm2022/i18n/locale.mjs +0 -13
- package/esm2022/i18n/locales/de-de.mjs +0 -134
- package/esm2022/i18n/locales/en-us.mjs +0 -155
- package/esm2022/i18n/locales/ja-jp.mjs +0 -134
- package/esm2022/i18n/locales/zh-hans.mjs +0 -134
- package/esm2022/i18n/locales/zh-hant.mjs +0 -134
- package/esm2022/i18n/ngx-tethys-i18n.mjs +0 -5
- package/esm2022/icon/config.mjs +0 -8
- package/esm2022/icon/icon-registry.mjs +0 -340
- package/esm2022/icon/icon.component.mjs +0 -198
- package/esm2022/icon/icon.module.mjs +0 -20
- package/esm2022/icon/index.mjs +0 -5
- package/esm2022/icon/ngx-tethys-icon.mjs +0 -5
- package/esm2022/image/image-group.component.mjs +0 -32
- package/esm2022/image/image.class.mjs +0 -2
- package/esm2022/image/image.config.mjs +0 -21
- package/esm2022/image/image.directive.mjs +0 -130
- package/esm2022/image/image.service.mjs +0 -58
- package/esm2022/image/index.mjs +0 -9
- package/esm2022/image/module.mjs +0 -67
- package/esm2022/image/ngx-tethys-image.mjs +0 -5
- package/esm2022/image/preview/image-preview-ref.mjs +0 -32
- package/esm2022/image/preview/image-preview.component.mjs +0 -413
- package/esm2022/image/utils.mjs +0 -13
- package/esm2022/input/index.mjs +0 -7
- package/esm2022/input/input-count.component.mjs +0 -68
- package/esm2022/input/input-group.component.mjs +0 -161
- package/esm2022/input/input-search.component.mjs +0 -152
- package/esm2022/input/input.component.mjs +0 -142
- package/esm2022/input/input.directive.mjs +0 -63
- package/esm2022/input/module.mjs +0 -51
- package/esm2022/input/ngx-tethys-input.mjs +0 -5
- package/esm2022/input-number/index.mjs +0 -3
- package/esm2022/input-number/input-number.component.mjs +0 -362
- package/esm2022/input-number/module.mjs +0 -22
- package/esm2022/input-number/ngx-tethys-input-number.mjs +0 -5
- package/esm2022/layout/content-main.component.mjs +0 -42
- package/esm2022/layout/content-section.component.mjs +0 -42
- package/esm2022/layout/content.component.mjs +0 -42
- package/esm2022/layout/header.component.mjs +0 -125
- package/esm2022/layout/index.mjs +0 -11
- package/esm2022/layout/layout.component.mjs +0 -47
- package/esm2022/layout/layout.module.mjs +0 -121
- package/esm2022/layout/ngx-tethys-layout.mjs +0 -5
- package/esm2022/layout/sidebar-content.component.mjs +0 -41
- package/esm2022/layout/sidebar-footer.component.mjs +0 -41
- package/esm2022/layout/sidebar-header.component.mjs +0 -54
- package/esm2022/layout/sidebar.component.mjs +0 -405
- package/esm2022/list/index.mjs +0 -7
- package/esm2022/list/list-item-meta.component.mjs +0 -38
- package/esm2022/list/list-item.component.mjs +0 -25
- package/esm2022/list/list.component.mjs +0 -41
- package/esm2022/list/list.module.mjs +0 -22
- package/esm2022/list/ngx-tethys-list.mjs +0 -5
- package/esm2022/list/selection/selection-list.mjs +0 -393
- package/esm2022/list/selection/selection.interface.mjs +0 -2
- package/esm2022/loading/index.mjs +0 -3
- package/esm2022/loading/loading.component.mjs +0 -54
- package/esm2022/loading/loading.module.mjs +0 -17
- package/esm2022/loading/ngx-tethys-loading.mjs +0 -5
- package/esm2022/mention/adapter/adapter.mjs +0 -20
- package/esm2022/mention/adapter/editable.adapter.mjs +0 -48
- package/esm2022/mention/adapter/index.mjs +0 -16
- package/esm2022/mention/adapter/textarea.adapter.mjs +0 -58
- package/esm2022/mention/caret-positioner.mjs +0 -194
- package/esm2022/mention/index.mjs +0 -5
- package/esm2022/mention/interfaces.mjs +0 -2
- package/esm2022/mention/mention.directive.mjs +0 -160
- package/esm2022/mention/mention.module.mjs +0 -23
- package/esm2022/mention/ngx-tethys-mention.mjs +0 -5
- package/esm2022/mention/suggestions/suggestions.component.mjs +0 -80
- package/esm2022/menu/divider/menu-divider.component.mjs +0 -21
- package/esm2022/menu/group/menu-group.component.mjs +0 -187
- package/esm2022/menu/index.mjs +0 -9
- package/esm2022/menu/item/action/menu-item-action.component.mjs +0 -75
- package/esm2022/menu/item/icon/menu-item-icon.component.mjs +0 -33
- package/esm2022/menu/item/menu-item.component.mjs +0 -42
- package/esm2022/menu/item/name/menu-item-name.component.mjs +0 -32
- package/esm2022/menu/menu.component.mjs +0 -39
- package/esm2022/menu/menu.module.mjs +0 -49
- package/esm2022/menu/ngx-tethys-menu.mjs +0 -5
- package/esm2022/message/abstract/abstract-message-container.component.mjs +0 -26
- package/esm2022/message/abstract/abstract-message-queue.service.mjs +0 -34
- package/esm2022/message/abstract/abstract-message-ref.mjs +0 -22
- package/esm2022/message/abstract/abstract-message.component.mjs +0 -76
- package/esm2022/message/abstract/abstract-message.service.mjs +0 -29
- package/esm2022/message/abstract/index.mjs +0 -6
- package/esm2022/message/index.mjs +0 -9
- package/esm2022/message/message-container.component.mjs +0 -45
- package/esm2022/message/message-queue.service.mjs +0 -25
- package/esm2022/message/message-ref.mjs +0 -4
- package/esm2022/message/message.component.mjs +0 -61
- package/esm2022/message/message.config.mjs +0 -14
- package/esm2022/message/message.service.mjs +0 -92
- package/esm2022/message/module.mjs +0 -24
- package/esm2022/message/ngx-tethys-message.mjs +0 -5
- package/esm2022/nav/icon-nav/icon-nav-link.directive.mjs +0 -43
- package/esm2022/nav/icon-nav/icon-nav.component.mjs +0 -45
- package/esm2022/nav/index.mjs +0 -7
- package/esm2022/nav/nav-ink-bar.directive.mjs +0 -79
- package/esm2022/nav/nav-item.directive.mjs +0 -98
- package/esm2022/nav/nav.component.mjs +0 -410
- package/esm2022/nav/nav.module.mjs +0 -54
- package/esm2022/nav/nav.pipe.mjs +0 -24
- package/esm2022/nav/ngx-tethys-nav.mjs +0 -5
- package/esm2022/ngx-tethys.mjs +0 -5
- package/esm2022/notify/index.mjs +0 -8
- package/esm2022/notify/module.mjs +0 -24
- package/esm2022/notify/ngx-tethys-notify.mjs +0 -5
- package/esm2022/notify/notify-container.component.mjs +0 -31
- package/esm2022/notify/notify-queue.service.mjs +0 -30
- package/esm2022/notify/notify-ref.mjs +0 -4
- package/esm2022/notify/notify.component.mjs +0 -99
- package/esm2022/notify/notify.config.mjs +0 -14
- package/esm2022/notify/notify.service.mjs +0 -97
- package/esm2022/pagination/index.mjs +0 -6
- package/esm2022/pagination/ngx-tethys-pagination.mjs +0 -5
- package/esm2022/pagination/pagination.class.mjs +0 -2
- package/esm2022/pagination/pagination.component.mjs +0 -366
- package/esm2022/pagination/pagination.config.mjs +0 -30
- package/esm2022/pagination/pagination.module.mjs +0 -43
- package/esm2022/pagination/pagination.pipe.mjs +0 -53
- package/esm2022/popover/body/popover-body.component.mjs +0 -25
- package/esm2022/popover/header/popover-header.component.mjs +0 -54
- package/esm2022/popover/index.mjs +0 -10
- package/esm2022/popover/module.mjs +0 -47
- package/esm2022/popover/ngx-tethys-popover.mjs +0 -5
- package/esm2022/popover/popover-animations.mjs +0 -22
- package/esm2022/popover/popover-container.component.mjs +0 -125
- package/esm2022/popover/popover-ref.mjs +0 -25
- package/esm2022/popover/popover.config.mjs +0 -38
- package/esm2022/popover/popover.directive.mjs +0 -157
- package/esm2022/popover/popover.options.mjs +0 -6
- package/esm2022/popover/popover.service.mjs +0 -201
- package/esm2022/progress/index.mjs +0 -6
- package/esm2022/progress/interfaces.mjs +0 -2
- package/esm2022/progress/ngx-tethys-progress.mjs +0 -5
- package/esm2022/progress/progress-circle.component.mjs +0 -136
- package/esm2022/progress/progress-strip.component.mjs +0 -54
- package/esm2022/progress/progress.component.mjs +0 -142
- package/esm2022/progress/progress.module.mjs +0 -20
- package/esm2022/property/index.mjs +0 -4
- package/esm2022/property/module.mjs +0 -20
- package/esm2022/property/ngx-tethys-property.mjs +0 -5
- package/esm2022/property/properties.component.mjs +0 -59
- package/esm2022/property/property-item.component.mjs +0 -175
- package/esm2022/property-operation/group/property-operation-group.component.mjs +0 -20
- package/esm2022/property-operation/index.mjs +0 -4
- package/esm2022/property-operation/module.mjs +0 -21
- package/esm2022/property-operation/ngx-tethys-property-operation.mjs +0 -5
- package/esm2022/property-operation/property-operation.component.mjs +0 -183
- package/esm2022/public-api.mjs +0 -2
- package/esm2022/radio/button/radio-button.component.mjs +0 -56
- package/esm2022/radio/group/radio-group.component.mjs +0 -138
- package/esm2022/radio/index.mjs +0 -5
- package/esm2022/radio/module.mjs +0 -20
- package/esm2022/radio/ngx-tethys-radio.mjs +0 -5
- package/esm2022/radio/radio.component.mjs +0 -58
- package/esm2022/rate/index.mjs +0 -4
- package/esm2022/rate/module.mjs +0 -23
- package/esm2022/rate/ngx-tethys-rate.mjs +0 -5
- package/esm2022/rate/rate-item.component.mjs +0 -76
- package/esm2022/rate/rate.component.mjs +0 -244
- package/esm2022/resizable/index.mjs +0 -8
- package/esm2022/resizable/interface.mjs +0 -2
- package/esm2022/resizable/module.mjs +0 -19
- package/esm2022/resizable/ngx-tethys-resizable.mjs +0 -5
- package/esm2022/resizable/resizable.directive.mjs +0 -363
- package/esm2022/resizable/resizable.service.mjs +0 -69
- package/esm2022/resizable/resize-handle.component.mjs +0 -104
- package/esm2022/resizable/resize-handles.component.mjs +0 -64
- package/esm2022/resizable/utils.mjs +0 -14
- package/esm2022/result/index.mjs +0 -3
- package/esm2022/result/ngx-tethys-result.mjs +0 -5
- package/esm2022/result/result.component.mjs +0 -43
- package/esm2022/result/result.module.mjs +0 -17
- package/esm2022/segment/index.mjs +0 -5
- package/esm2022/segment/ngx-tethys-segment.mjs +0 -5
- package/esm2022/segment/segment-item.component.mjs +0 -87
- package/esm2022/segment/segment.component.mjs +0 -143
- package/esm2022/segment/segment.module.mjs +0 -20
- package/esm2022/segment/segment.token.mjs +0 -3
- package/esm2022/segment/types.mjs +0 -2
- package/esm2022/select/custom-select/custom-select.component.mjs +0 -904
- package/esm2022/select/index.mjs +0 -5
- package/esm2022/select/module.mjs +0 -62
- package/esm2022/select/native-select/native-select.component.mjs +0 -98
- package/esm2022/select/ngx-tethys-select.mjs +0 -5
- package/esm2022/select/select.config.mjs +0 -21
- package/esm2022/shared/base-form-check.component.mjs +0 -120
- package/esm2022/shared/directives/string-or-template-outlet.directive.mjs +0 -57
- package/esm2022/shared/directives/thy-autofocus.directive.mjs +0 -60
- package/esm2022/shared/directives/thy-contextmenu.directive.mjs +0 -39
- package/esm2022/shared/directives/thy-ctrl-enter.directive.mjs +0 -43
- package/esm2022/shared/directives/thy-drag-drop.directive.mjs +0 -51
- package/esm2022/shared/directives/thy-enter.directive.mjs +0 -43
- package/esm2022/shared/directives/thy-scroll.directive.mjs +0 -84
- package/esm2022/shared/directives/thy-show.mjs +0 -59
- package/esm2022/shared/directives/thy-stop-propagation.directive.mjs +0 -57
- package/esm2022/shared/directives/view-outlet.directive.mjs +0 -85
- package/esm2022/shared/index.mjs +0 -16
- package/esm2022/shared/ng-transclude.directive.mjs +0 -32
- package/esm2022/shared/ngx-tethys-shared.mjs +0 -5
- package/esm2022/shared/option/group/option-group.component.mjs +0 -92
- package/esm2022/shared/option/index.mjs +0 -9
- package/esm2022/shared/option/list-option/list-option.component.mjs +0 -96
- package/esm2022/shared/option/module.mjs +0 -29
- package/esm2022/shared/option/option-group.component.mjs +0 -25
- package/esm2022/shared/option/option.component.mjs +0 -181
- package/esm2022/shared/option/option.token.mjs +0 -14
- package/esm2022/shared/option/options-container.component.mjs +0 -29
- package/esm2022/shared/option/select-option-base.mjs +0 -3
- package/esm2022/shared/select/index.mjs +0 -3
- package/esm2022/shared/select/module.mjs +0 -27
- package/esm2022/shared/select/select-control/select-control.component.mjs +0 -280
- package/esm2022/shared/shared.module.mjs +0 -71
- package/esm2022/skeleton/index.mjs +0 -9
- package/esm2022/skeleton/module.mjs +0 -27
- package/esm2022/skeleton/ngx-tethys-skeleton.mjs +0 -5
- package/esm2022/skeleton/skeleton-circle.component.mjs +0 -92
- package/esm2022/skeleton/skeleton-rectangle.component.mjs +0 -100
- package/esm2022/skeleton/skeleton.component.mjs +0 -32
- package/esm2022/skeleton/skeleton.config.mjs +0 -8
- package/esm2022/skeleton/stylized/bullet-list.component.mjs +0 -124
- package/esm2022/skeleton/stylized/list.component.mjs +0 -95
- package/esm2022/skeleton/stylized/paragraph.component.mjs +0 -107
- package/esm2022/slide/drawer/drawer-container.directive.mjs +0 -21
- package/esm2022/slide/index.mjs +0 -13
- package/esm2022/slide/ngx-tethys-slide.mjs +0 -5
- package/esm2022/slide/slide-animations.mjs +0 -24
- package/esm2022/slide/slide-body/slide-body-section.component.mjs +0 -41
- package/esm2022/slide/slide-body/slide-body.component.mjs +0 -25
- package/esm2022/slide/slide-container.component.mjs +0 -192
- package/esm2022/slide/slide-footer/slide-footer.component.mjs +0 -26
- package/esm2022/slide/slide-header/slide-header.component.mjs +0 -59
- package/esm2022/slide/slide-layout/slide-layout.component.mjs +0 -27
- package/esm2022/slide/slide-ref.service.mjs +0 -32
- package/esm2022/slide/slide.config.mjs +0 -38
- package/esm2022/slide/slide.module.mjs +0 -65
- package/esm2022/slide/slide.service.mjs +0 -104
- package/esm2022/slider/index.mjs +0 -3
- package/esm2022/slider/ngx-tethys-slider.mjs +0 -5
- package/esm2022/slider/slider.component.mjs +0 -346
- package/esm2022/slider/slider.module.mjs +0 -19
- package/esm2022/space/index.mjs +0 -3
- package/esm2022/space/ngx-tethys-space.mjs +0 -5
- package/esm2022/space/space.component.mjs +0 -88
- package/esm2022/space/space.module.mjs +0 -17
- package/esm2022/statistic/index.mjs +0 -3
- package/esm2022/statistic/ngx-tethys-statistic.mjs +0 -5
- package/esm2022/statistic/statistic.component.mjs +0 -184
- package/esm2022/statistic/statistic.module.mjs +0 -20
- package/esm2022/stepper/index.mjs +0 -6
- package/esm2022/stepper/ngx-tethys-stepper.mjs +0 -5
- package/esm2022/stepper/step-header.component.mjs +0 -40
- package/esm2022/stepper/step.component.mjs +0 -32
- package/esm2022/stepper/stepper-button.directive.mjs +0 -56
- package/esm2022/stepper/stepper.component.mjs +0 -105
- package/esm2022/stepper/stepper.module.mjs +0 -21
- package/esm2022/strength/index.mjs +0 -3
- package/esm2022/strength/ngx-tethys-strength.mjs +0 -5
- package/esm2022/strength/strength.component.mjs +0 -122
- package/esm2022/strength/strength.module.mjs +0 -17
- package/esm2022/switch/index.mjs +0 -3
- package/esm2022/switch/ngx-tethys-switch.mjs +0 -5
- package/esm2022/switch/switch.component.mjs +0 -181
- package/esm2022/switch/switch.module.mjs +0 -17
- package/esm2022/table/enums/column-skeleton-type.mjs +0 -8
- package/esm2022/table/enums/index.mjs +0 -2
- package/esm2022/table/index.mjs +0 -9
- package/esm2022/table/ngx-tethys-table.mjs +0 -5
- package/esm2022/table/pipes/drag.pipe.mjs +0 -20
- package/esm2022/table/pipes/table.pipe.mjs +0 -20
- package/esm2022/table/table-column.component.mjs +0 -200
- package/esm2022/table/table-skeleton.component.mjs +0 -165
- package/esm2022/table/table.component.mjs +0 -966
- package/esm2022/table/table.interface.mjs +0 -7
- package/esm2022/table/table.module.mjs +0 -75
- package/esm2022/tabs/index.mjs +0 -5
- package/esm2022/tabs/ngx-tethys-tabs.mjs +0 -5
- package/esm2022/tabs/tab-content.component.mjs +0 -52
- package/esm2022/tabs/tab.component.mjs +0 -36
- package/esm2022/tabs/tabs.component.mjs +0 -139
- package/esm2022/tabs/tabs.module.mjs +0 -21
- package/esm2022/tabs/types.mjs +0 -2
- package/esm2022/tag/index.mjs +0 -4
- package/esm2022/tag/ngx-tethys-tag.mjs +0 -5
- package/esm2022/tag/tag.component.mjs +0 -109
- package/esm2022/tag/tag.module.mjs +0 -19
- package/esm2022/tag/tags.component.mjs +0 -24
- package/esm2022/testing/data-transfer.mjs +0 -55
- package/esm2022/testing/dispatcher-events.mjs +0 -46
- package/esm2022/testing/element-focus.mjs +0 -18
- package/esm2022/testing/events.mjs +0 -145
- package/esm2022/testing/index.mjs +0 -8
- package/esm2022/testing/ngx-tethys-testing.mjs +0 -5
- package/esm2022/testing/thy-icon.mjs +0 -50
- package/esm2022/testing/type-in-element.mjs +0 -20
- package/esm2022/testing/xhr-mock.mjs +0 -100
- package/esm2022/time-picker/index.mjs +0 -8
- package/esm2022/time-picker/inner/inner-time-picker.class.mjs +0 -2
- package/esm2022/time-picker/inner/inner-time-picker.component.mjs +0 -239
- package/esm2022/time-picker/inner/inner-time-picker.config.mjs +0 -45
- package/esm2022/time-picker/inner/inner-time-picker.store.mjs +0 -134
- package/esm2022/time-picker/ngx-tethys-time-picker.mjs +0 -5
- package/esm2022/time-picker/time-picker-controls.util.mjs +0 -118
- package/esm2022/time-picker/time-picker-panel.component.mjs +0 -265
- package/esm2022/time-picker/time-picker.component.mjs +0 -363
- package/esm2022/time-picker/time-picker.module.mjs +0 -54
- package/esm2022/time-picker/time-picker.utils.mjs +0 -131
- package/esm2022/timeline/index.mjs +0 -5
- package/esm2022/timeline/ngx-tethys-timeline.mjs +0 -5
- package/esm2022/timeline/timeline-item.component.mjs +0 -59
- package/esm2022/timeline/timeline.component.mjs +0 -156
- package/esm2022/timeline/timeline.module.mjs +0 -21
- package/esm2022/timeline/timeline.service.mjs +0 -17
- package/esm2022/tooltip/index.mjs +0 -9
- package/esm2022/tooltip/interface.mjs +0 -2
- package/esm2022/tooltip/ngx-tethys-tooltip.mjs +0 -5
- package/esm2022/tooltip/tooltip-animations.mjs +0 -23
- package/esm2022/tooltip/tooltip-ref.mjs +0 -147
- package/esm2022/tooltip/tooltip.component.mjs +0 -103
- package/esm2022/tooltip/tooltip.config.mjs +0 -17
- package/esm2022/tooltip/tooltip.directive.mjs +0 -150
- package/esm2022/tooltip/tooltip.module.mjs +0 -22
- package/esm2022/tooltip/tooltip.service.mjs +0 -28
- package/esm2022/transfer/index.mjs +0 -5
- package/esm2022/transfer/ngx-tethys-transfer.mjs +0 -5
- package/esm2022/transfer/transfer-list.component.mjs +0 -154
- package/esm2022/transfer/transfer.component.mjs +0 -180
- package/esm2022/transfer/transfer.interface.mjs +0 -6
- package/esm2022/transfer/transfer.module.mjs +0 -50
- package/esm2022/tree/index.mjs +0 -7
- package/esm2022/tree/ngx-tethys-tree.mjs +0 -5
- package/esm2022/tree/tree-abstract.mjs +0 -3
- package/esm2022/tree/tree-node.class.mjs +0 -93
- package/esm2022/tree/tree-node.component.mjs +0 -212
- package/esm2022/tree/tree.class.mjs +0 -15
- package/esm2022/tree/tree.component.mjs +0 -648
- package/esm2022/tree/tree.module.mjs +0 -74
- package/esm2022/tree/tree.pipe.mjs +0 -26
- package/esm2022/tree/tree.service.mjs +0 -187
- package/esm2022/tree-select/index.mjs +0 -4
- package/esm2022/tree-select/module.mjs +0 -52
- package/esm2022/tree-select/ngx-tethys-tree-select.mjs +0 -5
- package/esm2022/tree-select/tree-select.class.mjs +0 -2
- package/esm2022/tree-select/tree-select.component.mjs +0 -653
- package/esm2022/types/common.mjs +0 -2
- package/esm2022/types/dictionary.mjs +0 -2
- package/esm2022/types/index.mjs +0 -4
- package/esm2022/types/ngx-tethys-types.mjs +0 -5
- package/esm2022/types/pagination.mjs +0 -2
- package/esm2022/typography/bg-color.directive.mjs +0 -51
- package/esm2022/typography/index.mjs +0 -5
- package/esm2022/typography/module.mjs +0 -21
- package/esm2022/typography/ngx-tethys-typography.mjs +0 -5
- package/esm2022/typography/text/text.component.mjs +0 -23
- package/esm2022/typography/text-color.directive.mjs +0 -52
- package/esm2022/upload/constant.mjs +0 -75
- package/esm2022/upload/file-drop.directive.mjs +0 -166
- package/esm2022/upload/file-select-base.mjs +0 -75
- package/esm2022/upload/file-select.component.mjs +0 -98
- package/esm2022/upload/index.mjs +0 -7
- package/esm2022/upload/module.mjs +0 -22
- package/esm2022/upload/ngx-tethys-upload.mjs +0 -5
- package/esm2022/upload/types.mjs +0 -2
- package/esm2022/upload/upload.config.mjs +0 -21
- package/esm2022/upload/upload.service.mjs +0 -169
- package/esm2022/upload/util.mjs +0 -27
- package/esm2022/util/date/functions.mjs +0 -84
- package/esm2022/util/date/tiny-date.mjs +0 -362
- package/esm2022/util/dom.mjs +0 -247
- package/esm2022/util/helpers/helpers.mjs +0 -293
- package/esm2022/util/helpers/index.mjs +0 -2
- package/esm2022/util/immutable.mjs +0 -108
- package/esm2022/util/index.mjs +0 -16
- package/esm2022/util/keycodes.mjs +0 -2
- package/esm2022/util/logger/index.mjs +0 -2
- package/esm2022/util/logger/logger.mjs +0 -42
- package/esm2022/util/ng.mjs +0 -7
- package/esm2022/util/ngx-tethys-util.mjs +0 -5
- package/esm2022/util/references.mjs +0 -84
- package/esm2022/version.mjs +0 -3
- package/esm2022/vote/index.mjs +0 -3
- package/esm2022/vote/ngx-tethys-vote.mjs +0 -5
- package/esm2022/vote/vote.component.mjs +0 -130
- package/esm2022/vote/vote.module.mjs +0 -20
- package/esm2022/watermark/config.mjs +0 -20
- package/esm2022/watermark/index.mjs +0 -3
- package/esm2022/watermark/ngx-tethys-watermark.mjs +0 -5
- package/esm2022/watermark/watermark.directive.mjs +0 -178
- package/esm2022/watermark/watermark.module.mjs +0 -19
- package/schematics/ng-update/update-18/complete.d.ts +0 -3
- package/schematics/ng-update/update-18/complete.js +0 -13
- /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.d.ts +0 -0
- /package/schematics/ng-update/{update-18 → update-19}/class-name-migration.js +0 -0
- /package/schematics/ng-update/{update-18 → update-19}/index.d.ts +0 -0
- /package/schematics/ng-update/{update-18 → update-19}/index.spec.d.ts +0 -0
- /package/schematics/ng-update/{update-18 → update-19}/update-data.d.ts +0 -0
- /package/schematics/ng-update/{update-18 → update-19}/update-data.js +0 -0
package/esm2022/util/dom.mjs
DELETED
|
@@ -1,247 +0,0 @@
|
|
|
1
|
-
import { ElementRef } from '@angular/core';
|
|
2
|
-
import * as helpers from './helpers';
|
|
3
|
-
const proto = Element.prototype;
|
|
4
|
-
const vendor = proto.matches ||
|
|
5
|
-
proto['matchesSelector'] ||
|
|
6
|
-
proto['webkitMatchesSelector'] ||
|
|
7
|
-
proto['mozMatchesSelector'] ||
|
|
8
|
-
proto['msMatchesSelector'] ||
|
|
9
|
-
proto['oMatchesSelector'];
|
|
10
|
-
export function fallbackMatches(el, selector) {
|
|
11
|
-
const nodes = el.parentNode.querySelectorAll(selector);
|
|
12
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
13
|
-
if (nodes[i] === el) {
|
|
14
|
-
return true;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Match `el` to `selector`.
|
|
21
|
-
*/
|
|
22
|
-
export function match(el, selector) {
|
|
23
|
-
if (vendor) {
|
|
24
|
-
return vendor.call(el, selector);
|
|
25
|
-
}
|
|
26
|
-
return fallbackMatches(el, selector);
|
|
27
|
-
}
|
|
28
|
-
export function isDocument(element) {
|
|
29
|
-
return ((typeof element !== 'undefined' && element instanceof Document) || (element.nodeType && element.nodeType === element.DOCUMENT_NODE));
|
|
30
|
-
}
|
|
31
|
-
export function isElement(element) {
|
|
32
|
-
return ((typeof HTMLElement !== 'undefined' && element instanceof HTMLElement) ||
|
|
33
|
-
(element && element.nodeType && element.nodeType === element.ELEMENT_NODE));
|
|
34
|
-
}
|
|
35
|
-
export function getWindow(elem) {
|
|
36
|
-
return elem != null && elem === elem.window ? elem : elem.nodeType === 9 && elem.defaultView;
|
|
37
|
-
}
|
|
38
|
-
export function getElementOffset(elem) {
|
|
39
|
-
let docElem, win, rect, doc;
|
|
40
|
-
if (!elem) {
|
|
41
|
-
return;
|
|
42
|
-
}
|
|
43
|
-
// Support: IE<=11+
|
|
44
|
-
// Running getBoundingClientRect on a
|
|
45
|
-
// disconnected node in IE throws an error
|
|
46
|
-
if (!elem.getClientRects().length) {
|
|
47
|
-
return { top: 0, left: 0 };
|
|
48
|
-
}
|
|
49
|
-
rect = elem.getBoundingClientRect();
|
|
50
|
-
// Make sure element is not hidden (display: none)
|
|
51
|
-
if (rect.width || rect.height) {
|
|
52
|
-
doc = elem.ownerDocument;
|
|
53
|
-
win = getWindow(doc);
|
|
54
|
-
docElem = doc.documentElement;
|
|
55
|
-
return {
|
|
56
|
-
top: rect.top + win.pageYOffset - docElem.clientTop,
|
|
57
|
-
left: rect.left + win.pageXOffset - docElem.clientLeft,
|
|
58
|
-
height: rect.height,
|
|
59
|
-
width: rect.width
|
|
60
|
-
};
|
|
61
|
-
}
|
|
62
|
-
return rect;
|
|
63
|
-
}
|
|
64
|
-
export function getOffset(element, container) {
|
|
65
|
-
if (!element || !element.getClientRects().length) {
|
|
66
|
-
return null;
|
|
67
|
-
}
|
|
68
|
-
const rect = element.getBoundingClientRect();
|
|
69
|
-
if (rect.width || rect.height) {
|
|
70
|
-
if (container === window) {
|
|
71
|
-
const documentElement = element.ownerDocument.documentElement;
|
|
72
|
-
return {
|
|
73
|
-
top: rect.top - documentElement.clientTop,
|
|
74
|
-
left: rect.left - documentElement.clientLeft
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
const containerRect = container.getBoundingClientRect();
|
|
78
|
-
return {
|
|
79
|
-
top: rect.top - containerRect.top,
|
|
80
|
-
left: rect.left - containerRect.left
|
|
81
|
-
};
|
|
82
|
-
}
|
|
83
|
-
return rect;
|
|
84
|
-
}
|
|
85
|
-
export function getClientSize() {
|
|
86
|
-
const width = document.documentElement.clientWidth;
|
|
87
|
-
const height = window.innerHeight || document.documentElement.clientHeight;
|
|
88
|
-
return {
|
|
89
|
-
width,
|
|
90
|
-
height
|
|
91
|
-
};
|
|
92
|
-
}
|
|
93
|
-
export function getHTMLElementBySelector(selector, defaultElementRef) {
|
|
94
|
-
if (!selector) {
|
|
95
|
-
return defaultElementRef.nativeElement;
|
|
96
|
-
}
|
|
97
|
-
else if (selector === 'body') {
|
|
98
|
-
return document.body;
|
|
99
|
-
}
|
|
100
|
-
else if (helpers.isString(selector)) {
|
|
101
|
-
return document.querySelector(selector);
|
|
102
|
-
}
|
|
103
|
-
else if (selector instanceof ElementRef) {
|
|
104
|
-
return selector.nativeElement;
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
return selector;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
export function isInputOrTextarea(element) {
|
|
111
|
-
return ['INPUT', 'TEXTAREA'].indexOf(element.nodeName) >= 0;
|
|
112
|
-
}
|
|
113
|
-
export function isWindow(container) {
|
|
114
|
-
return typeof window !== 'undefined' && container === window;
|
|
115
|
-
}
|
|
116
|
-
export function getContainerRect(container) {
|
|
117
|
-
return !isWindow(container)
|
|
118
|
-
? container.getBoundingClientRect()
|
|
119
|
-
: {
|
|
120
|
-
top: 0,
|
|
121
|
-
left: 0,
|
|
122
|
-
bottom: 0
|
|
123
|
-
};
|
|
124
|
-
}
|
|
125
|
-
export function getStyleAsText(styles) {
|
|
126
|
-
if (!styles) {
|
|
127
|
-
return '';
|
|
128
|
-
}
|
|
129
|
-
return Object.keys(styles)
|
|
130
|
-
.map(key => {
|
|
131
|
-
const val = styles[key];
|
|
132
|
-
return `${key}:${typeof val === 'string' ? val : val + 'px'}`;
|
|
133
|
-
})
|
|
134
|
-
.join(';');
|
|
135
|
-
}
|
|
136
|
-
export function isTouchEvent(event) {
|
|
137
|
-
return event.type.startsWith('touch');
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Assert wrapper element whether only contains icon.
|
|
141
|
-
*/
|
|
142
|
-
export function assertIconOnly(wrapperElement) {
|
|
143
|
-
const listOfNode = Array.from(wrapperElement.childNodes);
|
|
144
|
-
const iconCount = listOfNode.filter(node => ['THY-ICON', 'I'].includes(node.nodeName)).length;
|
|
145
|
-
const noText = listOfNode.every(node => node.nodeName !== '#text');
|
|
146
|
-
const noSpan = listOfNode.every(node => node.nodeName !== 'SPAN');
|
|
147
|
-
const isIconOnly = noSpan && noText && iconCount >= 1;
|
|
148
|
-
return isIconOnly;
|
|
149
|
-
}
|
|
150
|
-
/**
|
|
151
|
-
*
|
|
152
|
-
* calc position x,y point
|
|
153
|
-
*
|
|
154
|
-
* CASE (width <= clientWidth && height <= clientHeight):
|
|
155
|
-
*
|
|
156
|
-
* ------------- clientWidth -------------
|
|
157
|
-
* | |
|
|
158
|
-
* | ------ width ------ |
|
|
159
|
-
* | | | |
|
|
160
|
-
* | | | |
|
|
161
|
-
* client height | |
|
|
162
|
-
* Height | | |
|
|
163
|
-
* | | | |
|
|
164
|
-
* | ------------------- |
|
|
165
|
-
* | |
|
|
166
|
-
* | |
|
|
167
|
-
* ---------------------------------------
|
|
168
|
-
* fixedPosition = { x: 0, y: 0 }
|
|
169
|
-
*
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
* CASE (width > clientWidth || height > clientHeight):
|
|
173
|
-
*
|
|
174
|
-
* ------------- clientWidth -------------
|
|
175
|
-
* | | |
|
|
176
|
-
* | top |
|
|
177
|
-
* | | |
|
|
178
|
-
* |--left--|--------------- width -----------------
|
|
179
|
-
* | | |
|
|
180
|
-
* client | |
|
|
181
|
-
* Height | |
|
|
182
|
-
* | | |
|
|
183
|
-
* | | |
|
|
184
|
-
* | height |
|
|
185
|
-
* | | |
|
|
186
|
-
* ---------| |
|
|
187
|
-
* | |
|
|
188
|
-
* | |
|
|
189
|
-
* | |
|
|
190
|
-
* ----------------------------------------
|
|
191
|
-
*
|
|
192
|
-
*
|
|
193
|
-
* - left || top > 0
|
|
194
|
-
* left -> 0 || top -> 0
|
|
195
|
-
*
|
|
196
|
-
* - (left + width) < clientWidth || (top + height) < clientHeight
|
|
197
|
-
* - left | top + width | height < clientWidth | clientHeight -> Back left | top + width | height === clientWidth | clientHeight
|
|
198
|
-
*
|
|
199
|
-
* DEFAULT:
|
|
200
|
-
* - hold position
|
|
201
|
-
*
|
|
202
|
-
*/
|
|
203
|
-
export function getFitContentPosition(params) {
|
|
204
|
-
let fixPos = {};
|
|
205
|
-
if (params.width <= params.clientWidth && params.height <= params.clientHeight) {
|
|
206
|
-
fixPos = {
|
|
207
|
-
x: 0,
|
|
208
|
-
y: 0
|
|
209
|
-
};
|
|
210
|
-
}
|
|
211
|
-
if (params.width > params.clientWidth || params.height > params.clientHeight) {
|
|
212
|
-
fixPos = {
|
|
213
|
-
x: fitPoint(params.left, params.width, params.clientWidth),
|
|
214
|
-
y: fitPoint(params.top, params.height, params.clientHeight)
|
|
215
|
-
};
|
|
216
|
-
}
|
|
217
|
-
return fixPos;
|
|
218
|
-
}
|
|
219
|
-
function fitPoint(start, size, clientSize) {
|
|
220
|
-
const startAddSize = start + size;
|
|
221
|
-
const offsetStart = (size - clientSize) / 2;
|
|
222
|
-
let distance = null;
|
|
223
|
-
if (size > clientSize) {
|
|
224
|
-
if (start > 0) {
|
|
225
|
-
distance = offsetStart;
|
|
226
|
-
}
|
|
227
|
-
if (start < 0 && startAddSize < clientSize) {
|
|
228
|
-
distance = -offsetStart;
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
else {
|
|
232
|
-
if (start < 0 || startAddSize > clientSize) {
|
|
233
|
-
distance = start < 0 ? offsetStart : -offsetStart;
|
|
234
|
-
}
|
|
235
|
-
}
|
|
236
|
-
return distance;
|
|
237
|
-
}
|
|
238
|
-
export function elementMatchClosest(element, selectors) {
|
|
239
|
-
let matched = false;
|
|
240
|
-
if (element && element.closest) {
|
|
241
|
-
matched = !!helpers.coerceArray(selectors).find(selector => {
|
|
242
|
-
return element.closest(selector);
|
|
243
|
-
});
|
|
244
|
-
}
|
|
245
|
-
return matched;
|
|
246
|
-
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3V0aWwvZG9tLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxLQUFLLE9BQU8sTUFBTSxXQUFXLENBQUM7QUFFckMsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLFNBQVMsQ0FBQztBQUNoQyxNQUFNLE1BQU0sR0FDUixLQUFLLENBQUMsT0FBTztJQUNiLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztJQUN4QixLQUFLLENBQUMsdUJBQXVCLENBQUM7SUFDOUIsS0FBSyxDQUFDLG9CQUFvQixDQUFDO0lBQzNCLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQztJQUMxQixLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztBQUU5QixNQUFNLFVBQVUsZUFBZSxDQUFDLEVBQWtCLEVBQUUsUUFBZ0I7SUFDaEUsTUFBTSxLQUFLLEdBQUcsRUFBRSxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN2RCxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3BDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLE9BQU8sSUFBSSxDQUFDO1FBQ2hCLENBQUM7SUFDTCxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUM7QUFDakIsQ0FBQztBQUNEOztHQUVHO0FBQ0gsTUFBTSxVQUFVLEtBQUssQ0FBQyxFQUFrQixFQUFFLFFBQWdCO0lBQ3RELElBQUksTUFBTSxFQUFFLENBQUM7UUFDVCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFDRCxPQUFPLGVBQWUsQ0FBQyxFQUFFLEVB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bEYsSUFBSSxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLElBQUksT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QixPQUFPLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFDRCxPQUFPLE9BQU8sQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0ICogYXMgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuXG5jb25zdCBwcm90byA9IEVsZW1lbnQucHJvdG90eXBlO1xuY29uc3QgdmVuZG9yID1cbiAgICBwcm90by5tYXRjaGVzIHx8XG4gICAgcHJvdG9bJ21hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ3dlYmtpdE1hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ21vek1hdGNoZXNTZWxlY3RvciddIHx8XG4gICAgcHJvdG9bJ21zTWF0Y2hlc1NlbGVjdG9yJ10gfHxcbiAgICBwcm90b1snb01hdGNoZXNTZWxlY3RvciddO1xuXG5leHBvcnQgZnVuY3Rpb24gZmFsbGJhY2tNYXRjaGVzKGVsOiBFbGVtZW50IHwgTm9kZSwgc2VsZWN0b3I6IHN0cmluZykge1xuICAgIGNvbnN0IG5vZGVzID0gZWwucGFyZW50Tm9kZS5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9yKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIGlmIChub2Rlc1tpXSA9PT0gZWwpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbn1cbi8qKlxuICogTWF0Y2ggYGVsYCB0byBgc2VsZWN0b3JgLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2goZWw6IEVsZW1lbnQgfCBOb2RlLCBzZWxlY3Rvcjogc3RyaW5nKSB7XG4gICAgaWYgKHZlbmRvcikge1xuICAgICAgICByZXR1cm4gdmVuZG9yLmNhbGwoZWwsIHNlbGVjdG9yKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbGxiYWNrTWF0Y2hlcyhlbCwgc2VsZWN0b3IpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEb2N1bWVudChlbGVtZW50OiBhbnkpOiBlbGVtZW50IGlzIERvY3VtZW50IHtcbiAgICByZXR1cm4gKFxuICAgICAgICAodHlwZW9mIGVsZW1lbnQgIT09ICd1bmRlZmluZWQnICYmIGVsZW1lbnQgaW5zdGFuY2VvZiBEb2N1bWVudCkgfHwgKGVsZW1lbnQubm9kZVR5cGUgJiYgZWxlbWVudC5ub2RlVHlwZSA9PT0gZWxlbWVudC5ET0NVTUVOVF9OT0RFKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VsZW1lbnQoZWxlbWVudDogYW55KSB7XG4gICAgcmV0dXJuIChcbiAgICAgICAgKHR5cGVvZiBIVE1MRWxlbWVudCAhPT0gJ3VuZGVmaW5lZCcgJiYgZWxlbWVudCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB8fFxuICAgICAgICAoZWxlbWVudCAmJiBlbGVtZW50Lm5vZGVUeXBlICYmIGVsZW1lbnQubm9kZVR5cGUgPT09IGVsZW1lbnQuRUxFTUVOVF9OT0RFKVxuICAgICk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXaW5kb3coZWxlbTogYW55KSB7XG4gICAgcmV0dXJuIGVsZW0gIT0gbnVsbCAmJiBlbGVtID09PSBlbGVtLndpbmRvdyA/IGVsZW0gOiBlbGVtLm5vZGVUeXBlID09PSA5ICYmIGVsZW0uZGVmYXVsdFZpZXc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFbGVtZW50T2Zmc2V0KGVsZW06IEhUTUxFbGVtZW50KSB7XG4gICAgbGV0IGRvY0VsZW0sIHdpbiwgcmVjdCwgZG9jO1xuXG4gICAgaWYgKCFlbGVtKSB7XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gU3VwcG9ydDogSUU8PTExK1xuICAgIC8vIFJ1bm5pbmcgZ2V0Qm91bmRpbmdDbGllbnRSZWN0IG9uIGFcbiAgICAvLyBkaXNjb25uZWN0ZWQgbm9kZSBpbiBJRSB0aHJvd3MgYW4gZXJyb3JcbiAgICBpZiAoIWVsZW0uZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHsgdG9wOiAwLCBsZWZ0OiAwIH07XG4gICAgfVxuICAgIHJlY3QgPSBlbGVtLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgLy8gTWFrZSBzdXJlIGVsZW1lbnQgaXMgbm90IGhpZGRlbiAoZGlzcGxheTogbm9uZSlcbiAgICBpZiAocmVjdC53aWR0aCB8fCByZWN0LmhlaWdodCkge1xuICAgICAgICBkb2MgPSBlbGVtLm93bmVyRG9jdW1lbnQ7XG4gICAgICAgIHdpbiA9IGdldFdpbmRvdyhkb2MpO1xuICAgICAgICBkb2NFbGVtID0gZG9jLmRvY3VtZW50RWxlbWVudDtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdG9wOiByZWN0LnRvcCArIHdpbi5wYWdlWU9mZnNldCAtIGRvY0VsZW0uY2xpZW50VG9wLFxuICAgICAgICAgICAgbGVmdDogcmVjdC5sZWZ0ICsgd2luLnBhZ2VYT2Zmc2V0IC0gZG9jRWxlbS5jbGllbnRMZWZ0LFxuICAgICAgICAgICAgaGVpZ2h0OiByZWN0LmhlaWdodCxcbiAgICAgICAgICAgIHdpZHRoOiByZWN0LndpZHRoXG4gICAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0T2Zmc2V0KGVsZW1lbnQ6IEhUTUxFbGVtZW50LCBjb250YWluZXI6IEhUTUxFbGVtZW50IHwgV2luZG93KTogeyBsZWZ0OiBudW1iZXI7IHRvcDogbnVtYmVyIH0gfCBudWxsIHtcbiAgICBpZiAoIWVsZW1lbnQgfHwgIWVsZW1lbnQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgaWYgKHJlY3Qud2lkdGggfHwgcmVjdC5oZWlnaHQpIHtcbiAgICAgICAgaWYgKGNvbnRhaW5lciA9PT0gd2luZG93KSB7XG4gICAgICAgICAgICBjb25zdCBkb2N1bWVudEVsZW1lbnQgPSBlbGVtZW50Lm93bmVyRG9jdW1lbnQhLmRvY3VtZW50RWxlbWVudCE7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIHRvcDogcmVjdC50b3AgLSBkb2N1bWVudEVsZW1lbnQuY2xpZW50VG9wLFxuICAgICAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCAtIGRvY3VtZW50RWxlbWVudC5jbGllbnRMZWZ0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lclJlY3QgPSAoY29udGFpbmVyIGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRvcDogcmVjdC50b3AgLSBjb250YWluZXJSZWN0LnRvcCxcbiAgICAgICAgICAgIGxlZnQ6IHJlY3QubGVmdCAtIGNvbnRhaW5lclJlY3QubGVmdFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiByZWN0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2xpZW50U2l6ZSgpOiB7IHdpZHRoOiBudW1iZXI7IGhlaWdodDogbnVtYmVyIH0ge1xuICAgIGNvbnN0IHdpZHRoID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIGNvbnN0IGhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xpZW50SGVpZ2h0O1xuICAgIHJldHVybiB7XG4gICAgICAgIHdpZHRoLFxuICAgICAgICBoZWlnaHRcbiAgICB9O1xufVxuXG5leHBvcnQgdHlwZSBFbGVtZW50U2VsZWN0b3IgPSBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWYgfCBzdHJpbmc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRIVE1MRWxlbWVudEJ5U2VsZWN0b3Ioc2VsZWN0b3I6IEVsZW1lbnRTZWxlY3RvciwgZGVmYXVsdEVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpOiBIVE1MRWxlbWVudCB7XG4gICAgaWYgKCFzZWxlY3Rvcikge1xuICAgICAgICByZXR1cm4gZGVmYXVsdEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICB9IGVsc2UgaWYgKHNlbGVjdG9yID09PSAnYm9keScpIHtcbiAgICAgICAgcmV0dXJuIGRvY3VtZW50LmJvZHk7XG4gICAgfSBlbHNlIGlmIChoZWxwZXJzLmlzU3RyaW5nKHNlbGVjdG9yKSkge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3RvciBhcyBzdHJpbmcpO1xuICAgIH0gZWxzZSBpZiAoc2VsZWN0b3IgaW5zdGFuY2VvZiBFbGVtZW50UmVmKSB7XG4gICAgICAgIHJldHVybiBzZWxlY3Rvci5uYXRpdmVFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RvciBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0lucHV0T3JUZXh0YXJlYShlbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIHJldHVybiBbJ0lOUFVUJywgJ1RFWFRBUkVBJ10uaW5kZXhPZihlbGVtZW50Lm5vZGVOYW1lKSA+PSAwO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNXaW5kb3coY29udGFpbmVyOiBFbGVtZW50IHwgV2luZG93KTogY29udGFpbmVyIGlzIFdpbmRvdyB7XG4gICAgcmV0dXJuIHR5cGVvZiB3aW5kb3cgIT09ICd1bmRlZmluZWQnICYmIGNvbnRhaW5lciA9PT0gd2luZG93O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNpbXBsZVJlY3Qge1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGxlZnQ6IG51bWJlcjtcbiAgICB3aWR0aD86IG51bWJlcjtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgYm90dG9tPzogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29udGFpbmVyUmVjdChjb250YWluZXI6IEVsZW1lbnQgfCBXaW5kb3cpOiBTaW1wbGVSZWN0IHtcbiAgICByZXR1cm4gIWlzV2luZG93KGNvbnRhaW5lcilcbiAgICAgICAgPyBjb250YWluZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KClcbiAgICAgICAgOiB7XG4gICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgbGVmdDogMCxcbiAgICAgICAgICAgICAgYm90dG9tOiAwXG4gICAgICAgICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0eWxlQXNUZXh0KHN0eWxlcz86IGFueSk6IHN0cmluZyB7XG4gICAgaWYgKCFzdHlsZXMpIHtcbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhzdHlsZXMpXG4gICAgICAgIC5tYXAoa2V5ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHN0eWxlc1trZXldO1xuICAgICAgICAgICAgcmV0dXJuIGAke2tleX06JHt0eXBlb2YgdmFsID09PSAnc3RyaW5nJyA/IHZhbCA6IHZhbCArICdweCd9YDtcbiAgICAgICAgfSlcbiAgICAgICAgLmpvaW4oJzsnKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVG91Y2hFdmVudChldmVudDogTW91c2VFdmVudCB8IFRvdWNoRXZlbnQpOiBldmVudCBpcyBUb3VjaEV2ZW50IHtcbiAgICByZXR1cm4gZXZlbnQudHlwZS5zdGFydHNXaXRoKCd0b3VjaCcpO1xufVxuXG4vKipcbiAqIEFzc2VydCB3cmFwcGVyIGVsZW1lbnQgd2hldGhlciBvbmx5IGNvbnRhaW5zIGljb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBhc3NlcnRJY29uT25seSh3cmFwcGVyRWxlbWVudDogRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGxpc3RPZk5vZGUgPSBBcnJheS5mcm9tKHdyYXBwZXJFbGVtZW50LmNoaWxkTm9kZXMpO1xuICAgIGNvbnN0IGljb25Db3VudCA9IGxpc3RPZk5vZGUuZmlsdGVyKG5vZGUgPT4gWydUSFktSUNPTicsICdJJ10uaW5jbHVkZXMobm9kZS5ub2RlTmFtZSkpLmxlbmd0aDtcbiAgICBjb25zdCBub1RleHQgPSBsaXN0T2ZOb2RlLmV2ZXJ5KG5vZGUgPT4gbm9kZS5ub2RlTmFtZSAhPT0gJyN0ZXh0Jyk7XG4gICAgY29uc3Qgbm9TcGFuID0gbGlzdE9mTm9kZS5ldmVyeShub2RlID0+IG5vZGUubm9kZU5hbWUgIT09ICdTUEFOJyk7XG4gICAgY29uc3QgaXNJY29uT25seSA9IG5vU3BhbiAmJiBub1RleHQgJiYgaWNvbkNvdW50ID49IDE7XG4gICAgcmV0dXJuIGlzSWNvbk9ubHk7XG59XG5cbi8qKlxuICpcbiAqIGNhbGMgcG9zaXRpb24geCx5IHBvaW50XG4gKlxuICogQ0FTRSAod2lkdGggPD0gY2xpZW50V2lkdGggJiYgaGVpZ2h0IDw9IGNsaWVudEhlaWdodCk6XG4gKlxuICogLS0tLS0tLS0tLS0tLSBjbGllbnRXaWR0aCAtLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgIC0tLS0tLSB3aWR0aCAtLS0tLS0gICAgICAgICAgfFxuICogfCAgICAgICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHxcbiAqIGNsaWVudCAgIGhlaWdodCAgICAgICAgICAgIHwgICAgICAgICAgfFxuICogSGVpZ2h0ICAgfCAgICAgICAgICAgICAgICAgfCAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICB8ICAgICAgICAgIHxcbiAqIHwgICAgICAgIC0tLS0tLS0tLS0tLS0tLS0tLS0gICAgICAgICAgfFxuICogfCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuICogZml4ZWRQb3NpdGlvbiA9IHsgeDogMCwgeTogMCB9XG4gKlxuICpcbiAqXG4gKiBDQVNFICh3aWR0aCA+IGNsaWVudFdpZHRoIHx8IGhlaWdodCA+IGNsaWVudEhlaWdodCk6XG4gKlxuICogLS0tLS0tLS0tLS0tLSBjbGllbnRXaWR0aCAtLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgIHxcbiAqIHwgICAgICAgIHRvcCAgICAgICAgICAgICAgICAgICAgICAgICAgfFxuICogfCAgICAgICAgfCAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8LS1sZWZ0LS18LS0tLS0tLS0tLS0tLS0tIHdpZHRoIC0tLS0tLS0tLS0tLS0tLS0tXG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiBjbGllbnQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiBIZWlnaHQgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICBoZWlnaHQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiB8ICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAtLS0tLS0tLS18ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICB8ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8XG4gKiAgICAgICAgICAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tXG4gKlxuICpcbiAqIC0gbGVmdCB8fCB0b3AgPiAwXG4gKiAgIGxlZnQgLT4gMCB8fCB0b3AgLT4gMFxuICpcbiAqIC0gKGxlZnQgKyB3aWR0aCkgPCBjbGllbnRXaWR0aCB8fCAodG9wICsgaGVpZ2h0KSA8IGNsaWVudEhlaWdodFxuICogLSBsZWZ0IHwgdG9wICsgd2lkdGggfCBoZWlnaHQgPCBjbGllbnRXaWR0aCB8IGNsaWVudEhlaWdodCAtPiBCYWNrIGxlZnQgfCB0b3AgKyB3aWR0aCB8IGhlaWdodCA9PT0gY2xpZW50V2lkdGggfCBjbGllbnRIZWlnaHRcbiAqXG4gKiBERUZBVUxUOlxuICogLSBob2xkIHBvc2l0aW9uXG4gKlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rml0Q29udGVudFBvc2l0aW9uKHBhcmFtczoge1xuICAgIHdpZHRoOiBudW1iZXI7XG4gICAgaGVpZ2h0OiBudW1iZXI7XG4gICAgbGVmdDogbnVtYmVyO1xuICAgIHRvcDogbnVtYmVyO1xuICAgIGNsaWVudFdpZHRoOiBudW1iZXI7XG4gICAgY2xpZW50SGVpZ2h0OiBudW1iZXI7XG59KTogeyB4PzogbnVtYmVyOyB5PzogbnVtYmVyIH0ge1xuICAgIGxldCBmaXhQb3MgPSB7fTtcblxuICAgIGlmIChwYXJhbXMud2lkdGggPD0gcGFyYW1zLmNsaWVudFdpZHRoICYmIHBhcmFtcy5oZWlnaHQgPD0gcGFyYW1zLmNsaWVudEhlaWdodCkge1xuICAgICAgICBmaXhQb3MgPSB7XG4gICAgICAgICAgICB4OiAwLFxuICAgICAgICAgICAgeTogMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGlmIChwYXJhbXMud2lkdGggPiBwYXJhbXMuY2xpZW50V2lkdGggfHwgcGFyYW1zLmhlaWdodCA+IHBhcmFtcy5jbGllbnRIZWlnaHQpIHtcbiAgICAgICAgZml4UG9zID0ge1xuICAgICAgICAgICAgeDogZml0UG9pbnQocGFyYW1zLmxlZnQsIHBhcmFtcy53aWR0aCwgcGFyYW1zLmNsaWVudFdpZHRoKSxcbiAgICAgICAgICAgIHk6IGZpdFBvaW50KHBhcmFtcy50b3AsIHBhcmFtcy5oZWlnaHQsIHBhcmFtcy5jbGllbnRIZWlnaHQpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcmV0dXJuIGZpeFBvcztcbn1cblxuZnVuY3Rpb24gZml0UG9pbnQoc3RhcnQ6IG51bWJlciwgc2l6ZTogbnVtYmVyLCBjbGllbnRTaXplOiBudW1iZXIpOiBudW1iZXIgfCBudWxsIHtcbiAgICBjb25zdCBzdGFydEFkZFNpemUgPSBzdGFydCArIHNpemU7XG4gICAgY29uc3Qgb2Zmc2V0U3RhcnQgPSAoc2l6ZSAtIGNsaWVudFNpemUpIC8gMjtcbiAgICBsZXQgZGlzdGFuY2U6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gICAgaWYgKHNpemUgPiBjbGllbnRTaXplKSB7XG4gICAgICAgIGlmIChzdGFydCA+IDApIHtcbiAgICAgICAgICAgIGRpc3RhbmNlID0gb2Zmc2V0U3RhcnQ7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN0YXJ0IDwgMCAmJiBzdGFydEFkZFNpemUgPCBjbGllbnRTaXplKSB7XG4gICAgICAgICAgICBkaXN0YW5jZSA9IC1vZmZzZXRTdGFydDtcbiAgICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChzdGFydCA8IDAgfHwgc3RhcnRBZGRTaXplID4gY2xpZW50U2l6ZSkge1xuICAgICAgICAgICAgZGlzdGFuY2UgPSBzdGFydCA8IDAgPyBvZmZzZXRTdGFydCA6IC1vZmZzZXRTdGFydDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBkaXN0YW5jZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVsZW1lbnRNYXRjaENsb3Nlc3QoZWxlbWVudDogSFRNTEVsZW1lbnQsIHNlbGVjdG9yczogc3RyaW5nIHwgc3RyaW5nW10pIHtcbiAgICBsZXQgbWF0Y2hlZCA9IGZhbHNlO1xuICAgIGlmIChlbGVtZW50ICYmIGVsZW1lbnQuY2xvc2VzdCkge1xuICAgICAgICBtYXRjaGVkID0gISFoZWxwZXJzLmNvZXJjZUFycmF5KHNlbGVjdG9ycykuZmluZChzZWxlY3RvciA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZWxlbWVudC5jbG9zZXN0KHNlbGVjdG9yKTtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBtYXRjaGVkO1xufVxuIl19
|
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
import { _isNumberValue, coerceCssPixelValue as coerceCssPixel } from '@angular/cdk/coercion';
|
|
2
|
-
import { ElementRef, TemplateRef } from '@angular/core';
|
|
3
|
-
export function isUndefined(value) {
|
|
4
|
-
return value === undefined;
|
|
5
|
-
}
|
|
6
|
-
export function isNull(value) {
|
|
7
|
-
return value === null;
|
|
8
|
-
}
|
|
9
|
-
export function isUndefinedOrNull(value) {
|
|
10
|
-
return isUndefined(value) || isNull(value);
|
|
11
|
-
}
|
|
12
|
-
export function isArray(value) {
|
|
13
|
-
return value && baseGetTag(value) === '[object Array]';
|
|
14
|
-
}
|
|
15
|
-
export function isEmpty(value) {
|
|
16
|
-
return !(isArray(value) && value.length > 0);
|
|
17
|
-
}
|
|
18
|
-
export function isString(value) {
|
|
19
|
-
return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) === '[object String]');
|
|
20
|
-
}
|
|
21
|
-
function isObjectLike(value) {
|
|
22
|
-
return value !== null && typeof value === 'object';
|
|
23
|
-
}
|
|
24
|
-
function baseGetTag(value) {
|
|
25
|
-
const objectProto = Object.prototype;
|
|
26
|
-
const hasOwnProperty = objectProto.hasOwnProperty;
|
|
27
|
-
const toString = objectProto.toString;
|
|
28
|
-
const symToStringTag = typeof Symbol !== 'undefined' ? Symbol.toStringTag : undefined;
|
|
29
|
-
if (value == null) {
|
|
30
|
-
return value === undefined ? '[object Undefined]' : '[object Null]';
|
|
31
|
-
}
|
|
32
|
-
if (!(symToStringTag && symToStringTag in Object(value))) {
|
|
33
|
-
return toString.call(value);
|
|
34
|
-
}
|
|
35
|
-
const isOwn = hasOwnProperty.call(value, symToStringTag);
|
|
36
|
-
const tag = value[symToStringTag];
|
|
37
|
-
let unmasked = false;
|
|
38
|
-
try {
|
|
39
|
-
value[symToStringTag] = undefined;
|
|
40
|
-
unmasked = true;
|
|
41
|
-
}
|
|
42
|
-
catch (e) { }
|
|
43
|
-
const result = toString.call(value);
|
|
44
|
-
if (unmasked) {
|
|
45
|
-
if (isOwn) {
|
|
46
|
-
value[symToStringTag] = tag;
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
delete value[symToStringTag];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
return result;
|
|
53
|
-
}
|
|
54
|
-
export function isNumber(value) {
|
|
55
|
-
return typeof value === 'number' || (isObjectLike(value) && baseGetTag(value) === '[object Number]');
|
|
56
|
-
}
|
|
57
|
-
export function isObject(value) {
|
|
58
|
-
// Avoid a V8 JIT bug in Chrome 19-20.
|
|
59
|
-
// See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
|
|
60
|
-
const type = typeof value;
|
|
61
|
-
return !!value && (type === 'object' || type === 'function');
|
|
62
|
-
}
|
|
63
|
-
export function isFunction(value) {
|
|
64
|
-
const type = typeof value;
|
|
65
|
-
return !!value && type === 'function';
|
|
66
|
-
}
|
|
67
|
-
export function isDate(value) {
|
|
68
|
-
const type = typeof value;
|
|
69
|
-
return !!value && type === 'object' && !!value.getTime;
|
|
70
|
-
}
|
|
71
|
-
export function coerceArray(value) {
|
|
72
|
-
return Array.isArray(value) ? value : [value];
|
|
73
|
-
}
|
|
74
|
-
export function get(object, path, defaultValue) {
|
|
75
|
-
const paths = path.split('.');
|
|
76
|
-
let result = object[paths.shift()];
|
|
77
|
-
while (result && paths.length) {
|
|
78
|
-
result = result[paths.shift()];
|
|
79
|
-
}
|
|
80
|
-
return result === undefined ? defaultValue : result;
|
|
81
|
-
}
|
|
82
|
-
export function set(object, path, value) {
|
|
83
|
-
if (object == null) {
|
|
84
|
-
return object;
|
|
85
|
-
}
|
|
86
|
-
const paths = path.split('.');
|
|
87
|
-
let index = -1;
|
|
88
|
-
const length = paths.length;
|
|
89
|
-
const lastIndex = length - 1;
|
|
90
|
-
let nested = object;
|
|
91
|
-
while (nested !== null && ++index < length) {
|
|
92
|
-
const key = paths[index];
|
|
93
|
-
if (isObject(nested)) {
|
|
94
|
-
if (index === lastIndex) {
|
|
95
|
-
nested[key] = value;
|
|
96
|
-
nested = nested[key];
|
|
97
|
-
break;
|
|
98
|
-
}
|
|
99
|
-
else {
|
|
100
|
-
if (nested[key] == null) {
|
|
101
|
-
nested[key] = {};
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
nested = nested[key];
|
|
106
|
-
}
|
|
107
|
-
return object;
|
|
108
|
-
}
|
|
109
|
-
export function isBoolean(value) {
|
|
110
|
-
return value === true || value === false || (isObjectLike(value) && baseGetTag(value) === '[object Boolean]');
|
|
111
|
-
}
|
|
112
|
-
export function isClass(value) {
|
|
113
|
-
return isFunction(value) && /^\s*class\s+/.test(value.toString());
|
|
114
|
-
}
|
|
115
|
-
export function htmlElementIsEmpty(element) {
|
|
116
|
-
if (element && element.childNodes) {
|
|
117
|
-
const nodes = element.childNodes;
|
|
118
|
-
for (let i = 0; i < nodes.length; i++) {
|
|
119
|
-
const node = nodes[i];
|
|
120
|
-
if (node.nodeType === Node.ELEMENT_NODE && node.outerHTML.toString().trim().length !== 0) {
|
|
121
|
-
return false;
|
|
122
|
-
}
|
|
123
|
-
else if (node.nodeType === Node.TEXT_NODE && node.textContent.toString().trim().length !== 0) {
|
|
124
|
-
return false;
|
|
125
|
-
}
|
|
126
|
-
else if (node.nodeType !== Node.COMMENT_NODE) {
|
|
127
|
-
return false;
|
|
128
|
-
}
|
|
129
|
-
}
|
|
130
|
-
}
|
|
131
|
-
return true;
|
|
132
|
-
}
|
|
133
|
-
export function hexToRgb(hexValue, alpha) {
|
|
134
|
-
const rgx = /^#?([a-f\d])([a-f\d])([a-f\d])$/i;
|
|
135
|
-
const hex = hexValue.replace(rgx, (m, r, g, b) => r + r + g + g + b + b);
|
|
136
|
-
const rgb = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
137
|
-
if (!rgb)
|
|
138
|
-
return;
|
|
139
|
-
const resultR = parseInt(rgb[1], 16);
|
|
140
|
-
const resultG = parseInt(rgb[2], 16);
|
|
141
|
-
const resultB = parseInt(rgb[3], 16);
|
|
142
|
-
if (!isUndefinedOrNull(alpha)) {
|
|
143
|
-
return `rgba(${resultR}, ${resultG}, ${resultB}, ${alpha})`;
|
|
144
|
-
}
|
|
145
|
-
else {
|
|
146
|
-
return `rgb(${resultR}, ${resultG}, ${resultB})`;
|
|
147
|
-
}
|
|
148
|
-
}
|
|
149
|
-
export function dateToUnixTimestamp(date) {
|
|
150
|
-
if (isNumber(date)) {
|
|
151
|
-
if (date.toString().length === 10) {
|
|
152
|
-
return date;
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
return parseInt((date / 1000).toFixed(0), 10);
|
|
156
|
-
}
|
|
157
|
-
}
|
|
158
|
-
else {
|
|
159
|
-
return parseInt((date.getTime() / 1000).toFixed(0), 10);
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
export function clamp(value, min = 0, max = 100) {
|
|
163
|
-
return Math.max(min, Math.min(max, value));
|
|
164
|
-
}
|
|
165
|
-
export function keyBy(array, key) {
|
|
166
|
-
const result = {};
|
|
167
|
-
array.forEach(item => {
|
|
168
|
-
const keyValue = item[key];
|
|
169
|
-
result[keyValue] = item;
|
|
170
|
-
});
|
|
171
|
-
return result;
|
|
172
|
-
}
|
|
173
|
-
export function indexKeyBy(array, key) {
|
|
174
|
-
const result = {};
|
|
175
|
-
array.forEach((item, index) => {
|
|
176
|
-
const keyValue = item[key];
|
|
177
|
-
result[keyValue] = index;
|
|
178
|
-
});
|
|
179
|
-
return result;
|
|
180
|
-
}
|
|
181
|
-
function upperFirst(string) {
|
|
182
|
-
return string.slice(0, 1).toUpperCase() + string.slice(1);
|
|
183
|
-
}
|
|
184
|
-
export function camelCase(values) {
|
|
185
|
-
if (isArray(values)) {
|
|
186
|
-
return values.reduce((result, word, index) => {
|
|
187
|
-
word = word.toLowerCase();
|
|
188
|
-
return result + (index ? upperFirst(word) : word);
|
|
189
|
-
}, '');
|
|
190
|
-
}
|
|
191
|
-
else {
|
|
192
|
-
return;
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
export function generateRandomStr() {
|
|
196
|
-
return Math.random().toString(36).substring(2);
|
|
197
|
-
}
|
|
198
|
-
export function isTemplateRef(value) {
|
|
199
|
-
return value instanceof TemplateRef;
|
|
200
|
-
}
|
|
201
|
-
export function isHTMLElement(value) {
|
|
202
|
-
return value instanceof HTMLElement;
|
|
203
|
-
}
|
|
204
|
-
export function isElementRef(value) {
|
|
205
|
-
return value instanceof ElementRef;
|
|
206
|
-
}
|
|
207
|
-
/**
|
|
208
|
-
* fix angular cdk's coerceBooleanProperty will transform 0 to true
|
|
209
|
-
*/
|
|
210
|
-
export function coerceBooleanProperty(value) {
|
|
211
|
-
if (value === '' || (value && value !== 'false')) {
|
|
212
|
-
return true;
|
|
213
|
-
}
|
|
214
|
-
else {
|
|
215
|
-
return false;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
/**
|
|
219
|
-
* @deprecated Please use Angular cdk's coerceNumberProperty instead
|
|
220
|
-
*/
|
|
221
|
-
export function coerceNumberValue(value, fallbackValue = 0) {
|
|
222
|
-
return _isNumberValue(value) ? Number(value) : fallbackValue;
|
|
223
|
-
}
|
|
224
|
-
/**
|
|
225
|
-
* @deprecated Please use Angular cdk's coerceCssPixelValue instead
|
|
226
|
-
*/
|
|
227
|
-
export function coerceCssPixelValue(value) {
|
|
228
|
-
value = _isNumberValue(value) ? Number(value) : value;
|
|
229
|
-
return coerceCssPixel(value);
|
|
230
|
-
}
|
|
231
|
-
export function valueFunctionProp(prop, ...args) {
|
|
232
|
-
return typeof prop === 'function' ? prop(...args) : prop;
|
|
233
|
-
}
|
|
234
|
-
export function shallowEqual(objA, objB) {
|
|
235
|
-
if (objA === objB) {
|
|
236
|
-
return true;
|
|
237
|
-
}
|
|
238
|
-
if (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {
|
|
239
|
-
return false;
|
|
240
|
-
}
|
|
241
|
-
const keysA = Object.keys(objA);
|
|
242
|
-
const keysB = Object.keys(objB);
|
|
243
|
-
if (keysA.length !== keysB.length) {
|
|
244
|
-
return false;
|
|
245
|
-
}
|
|
246
|
-
const bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);
|
|
247
|
-
for (let idx = 0; idx < keysA.length; idx++) {
|
|
248
|
-
const key = keysA[idx];
|
|
249
|
-
if (!bHasOwnProperty(key)) {
|
|
250
|
-
return false;
|
|
251
|
-
}
|
|
252
|
-
if (objA[key] !== objB[key]) {
|
|
253
|
-
return false;
|
|
254
|
-
}
|
|
255
|
-
}
|
|
256
|
-
return true;
|
|
257
|
-
}
|
|
258
|
-
export function concatArray(items, originalItems = []) {
|
|
259
|
-
let _originalItems = [];
|
|
260
|
-
if (!originalItems) {
|
|
261
|
-
_originalItems = [];
|
|
262
|
-
}
|
|
263
|
-
else {
|
|
264
|
-
_originalItems = coerceArray(originalItems);
|
|
265
|
-
}
|
|
266
|
-
if (items) {
|
|
267
|
-
if (isArray(items)) {
|
|
268
|
-
return [..._originalItems, ...items];
|
|
269
|
-
}
|
|
270
|
-
else {
|
|
271
|
-
return [..._originalItems, items];
|
|
272
|
-
}
|
|
273
|
-
}
|
|
274
|
-
else {
|
|
275
|
-
return _originalItems;
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
export function humanizeBytes(bytes, noSpace = false, fractionDigits = 1) {
|
|
279
|
-
if (bytes === 0) {
|
|
280
|
-
return '0 Byte';
|
|
281
|
-
}
|
|
282
|
-
const k = 1024;
|
|
283
|
-
const sizes = ['Bytes', 'KB', 'MB', 'GB', 'TB', 'PB'];
|
|
284
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
285
|
-
return parseFloat((bytes / Math.pow(k, i)).toFixed(fractionDigits)) + (noSpace ? '' : ' ') + sizes[i];
|
|
286
|
-
}
|
|
287
|
-
export function isFloat(value) {
|
|
288
|
-
if (!value) {
|
|
289
|
-
return false;
|
|
290
|
-
}
|
|
291
|
-
return /^[-+]?([0-9]+([.][0-9]*)?|[.][0-9]+)([Ee][-+]?[0-9]+)?$/.test(value);
|
|
292
|
-
}
|
|
293
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy91dGlsL2hlbHBlcnMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLG1CQUFtQixJQUFJLGNBQWMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXhELE1BQU0sVUFBVSxXQUFXLENBQUMsS0FBVTtJQUNsQyxPQUFPLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0IsQ0FBQztBQUVELE1BQU0sVUFBVSxNQUFNLENBQUMsS0FBVTtJQUM3QixPQUFPLEtBQUssS0FBSyxJQUFJLENBQUM7QUFDMUIsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBQyxLQUFVO0lBQ3hDLE9BQU8sV0FBVyxDQUFDLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBVSxLQUFVO0lBQ3ZDLE9BQU8sS0FBSyxJQUFJLFVBQVUsQ0FBQyxLQUFLLENBQUMsS0FBSyxnQkFBZ0IsQ0FBQztBQUMzRCxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxLQUFXO0lBQy9CLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQ2pELENBQUM7QUFFRCxNQUFNLFVBQVUsUUFBUSxDQUFDLEtBQVc7SUFDaEMsT0FBTyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxLQUFLLGlCQUFpQixDQUFDLENBQUM7QUFDM0gsQ0FBQztBQUVELFNB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QUksRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQ2hFLE1BQU0sQ0FBQyxHQUFXLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFNUQsT0FBTyxVQUFVLENBQUMsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQUVELE1BQU0sVUFBVSxPQUFPLENBQUMsS0FBYTtJQUNqQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDVCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRUQsT0FBTyx5REFBeUQsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDakYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IF9pc051bWJlclZhbHVlLCBjb2VyY2VDc3NQaXhlbFZhbHVlIGFzIGNvZXJjZUNzc1BpeGVsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7IEVsZW1lbnRSZWYsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1VuZGVmaW5lZCh2YWx1ZTogYW55KTogdmFsdWUgaXMgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzTnVsbCh2YWx1ZTogYW55KTogdmFsdWUgaXMgbnVsbCB7XG4gICAgcmV0dXJuIHZhbHVlID09PSBudWxsO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPck51bGwodmFsdWU6IGFueSk6IHZhbHVlIGlzIHVuZGVmaW5lZCB8IG51bGwge1xuICAgIHJldHVybiBpc1VuZGVmaW5lZCh2YWx1ZSkgfHwgaXNOdWxsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQXJyYXk8VCA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIEFycmF5PFQ+IHtcbiAgICByZXR1cm4gdmFsdWUgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IEFycmF5XSc7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0VtcHR5KHZhbHVlPzogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEoaXNBcnJheSh2YWx1ZSkgJiYgdmFsdWUubGVuZ3RoID4gMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1N0cmluZyh2YWx1ZT86IGFueSk6IHZhbHVlIGlzIHN0cmluZyB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyB8fCAoIWlzQXJyYXkodmFsdWUpICYmIGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IFN0cmluZ10nKTtcbn1cblxuZnVuY3Rpb24gaXNPYmplY3RMaWtlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnO1xufVxuXG5mdW5jdGlvbiBiYXNlR2V0VGFnKHZhbHVlOiBhbnkpIHtcbiAgICBjb25zdCBvYmplY3RQcm90byA9IE9iamVjdC5wcm90b3R5cGU7XG4gICAgY29uc3QgaGFzT3duUHJvcGVydHkgPSBvYmplY3RQcm90by5oYXNPd25Qcm9wZXJ0eTtcbiAgICBjb25zdCB0b1N0cmluZyA9IG9iamVjdFByb3RvLnRvU3RyaW5nO1xuICAgIGNvbnN0IHN5bVRvU3RyaW5nVGFnID0gdHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgPyBTeW1ib2wudG9TdHJpbmdUYWcgOiB1bmRlZmluZWQ7XG5cbiAgICBpZiAodmFsdWUgPT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdmFsdWUgPT09IHVuZGVmaW5lZCA/ICdbb2JqZWN0IFVuZGVmaW5lZF0nIDogJ1tvYmplY3QgTnVsbF0nO1xuICAgIH1cbiAgICBpZiAoIShzeW1Ub1N0cmluZ1RhZyAmJiBzeW1Ub1N0cmluZ1RhZyBpbiBPYmplY3QodmFsdWUpKSkge1xuICAgICAgICByZXR1cm4gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgfVxuICAgIGNvbnN0IGlzT3duID0gaGFzT3duUHJvcGVydHkuY2FsbCh2YWx1ZSwgc3ltVG9TdHJpbmdUYWcpO1xuICAgIGNvbnN0IHRhZyA9IHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICBsZXQgdW5tYXNrZWQgPSBmYWxzZTtcbiAgICB0cnkge1xuICAgICAgICB2YWx1ZVtzeW1Ub1N0cmluZ1RhZ10gPSB1bmRlZmluZWQ7XG4gICAgICAgIHVubWFza2VkID0gdHJ1ZTtcbiAgICB9IGNhdGNoIChlKSB7fVxuXG4gICAgY29uc3QgcmVzdWx0ID0gdG9TdHJpbmcuY2FsbCh2YWx1ZSk7XG4gICAgaWYgKHVubWFza2VkKSB7XG4gICAgICAgIGlmIChpc093bikge1xuICAgICAgICAgICAgdmFsdWVbc3ltVG9TdHJpbmdUYWddID0gdGFnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVsZXRlIHZhbHVlW3N5bVRvU3RyaW5nVGFnXTtcbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNOdW1iZXIodmFsdWU6IGFueSk6IHZhbHVlIGlzIG51bWJlciB7XG4gICAgcmV0dXJuIHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicgfHwgKGlzT2JqZWN0TGlrZSh2YWx1ZSkgJiYgYmFzZUdldFRhZyh2YWx1ZSkgPT09ICdbb2JqZWN0IE51bWJlcl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzT2JqZWN0KHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBvYmplY3Qge1xuICAgIC8vIEF2b2lkIGEgVjggSklUIGJ1ZyBpbiBDaHJvbWUgMTktMjAuXG4gICAgLy8gU2VlIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvdjgvaXNzdWVzL2RldGFpbD9pZD0yMjkxIGZvciBtb3JlIGRldGFpbHMuXG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiAodHlwZSA9PT0gJ29iamVjdCcgfHwgdHlwZSA9PT0gJ2Z1bmN0aW9uJyk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNEYXRlKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBEYXRlIHtcbiAgICBjb25zdCB0eXBlID0gdHlwZW9mIHZhbHVlO1xuICAgIHJldHVybiAhIXZhbHVlICYmIHR5cGUgPT09ICdvYmplY3QnICYmICEhdmFsdWUuZ2V0VGltZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUFycmF5PFQ+KHZhbHVlOiBUIHwgVFtdKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuaXNBcnJheSh2YWx1ZSkgPyB2YWx1ZSA6IFt2YWx1ZV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXQob2JqZWN0OiBhbnksIHBhdGg6IHN0cmluZywgZGVmYXVsdFZhbHVlPzogYW55KTogYW55IHtcbiAgICBjb25zdCBwYXRocyA9IHBhdGguc3BsaXQoJy4nKTtcbiAgICBsZXQgcmVzdWx0ID0gb2JqZWN0W3BhdGhzLnNoaWZ0KCldO1xuICAgIHdoaWxlIChyZXN1bHQgJiYgcGF0aHMubGVuZ3RoKSB7XG4gICAgICAgIHJlc3VsdCA9IHJlc3VsdFtwYXRocy5zaGlmdCgpXTtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdCA9PT0gdW5kZWZpbmVkID8gZGVmYXVsdFZhbHVlIDogcmVzdWx0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0KG9iamVjdDogYW55LCBwYXRoOiBzdHJpbmcsIHZhbHVlOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqZWN0ID09IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIG9iamVjdDtcbiAgICB9XG4gICAgY29uc3QgcGF0aHMgPSBwYXRoLnNwbGl0KCcuJyk7XG4gICAgbGV0IGluZGV4ID0gLTE7XG4gICAgY29uc3QgbGVuZ3RoID0gcGF0aHMubGVuZ3RoO1xuICAgIGNvbnN0IGxhc3RJbmRleCA9IGxlbmd0aCAtIDE7XG4gICAgbGV0IG5lc3RlZCA9IG9iamVjdDtcbiAgICB3aGlsZSAobmVzdGVkICE9PSBudWxsICYmICsraW5kZXggPCBsZW5ndGgpIHtcbiAgICAgICAgY29uc3Qga2V5ID0gcGF0aHNbaW5kZXhdO1xuICAgICAgICBpZiAoaXNPYmplY3QobmVzdGVkKSkge1xuICAgICAgICAgICAgaWYgKGluZGV4ID09PSBsYXN0SW5kZXgpIHtcbiAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIG5lc3RlZCA9IG5lc3RlZFtrZXldO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAobmVzdGVkW2tleV0gPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgICAgICBuZXN0ZWRba2V5XSA9IHt9O1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBuZXN0ZWQgPSBuZXN0ZWRba2V5XTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQm9vbGVhbih2YWx1ZTogYW55KTogdmFsdWUgaXMgYm9vbGVhbiB7XG4gICAgcmV0dXJuIHZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZSB8fCAoaXNPYmplY3RMaWtlKHZhbHVlKSAmJiBiYXNlR2V0VGFnKHZhbHVlKSA9PT0gJ1tvYmplY3QgQm9vbGVhbl0nKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ2xhc3ModmFsdWU6IGFueSk6IHZhbHVlIGlzIEZ1bmN0aW9uIHtcbiAgICByZXR1cm4gaXNGdW5jdGlvbih2YWx1ZSkgJiYgL15cXHMqY2xhc3NcXHMrLy50ZXN0KHZhbHVlLnRvU3RyaW5nKCkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaHRtbEVsZW1lbnRJc0VtcHR5KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gICAgaWYgKGVsZW1lbnQgJiYgZWxlbWVudC5jaGlsZE5vZGVzKSB7XG4gICAgICAgIGNvbnN0IG5vZGVzID0gZWxlbWVudC5jaGlsZE5vZGVzO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gbm9kZXNbaV07XG4gICAgICAgICAgICBpZiAobm9kZS5ub2RlVHlwZSA9PT0gTm9kZS5FTEVNRU5UX05PREUgJiYgKG5vZGUgYXMgSFRNTEVsZW1lbnQpLm91dGVySFRNTC50b1N0cmluZygpLnRyaW0oKS5sZW5ndGggIT09IDApIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG5vZGUubm9kZVR5cGUgPT09IE5vZGUuVEVYVF9OT0RFICYmIG5vZGUudGV4dENvbnRlbnQudG9TdHJpbmcoKS50cmltKCkubGVuZ3RoICE9PSAwKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChub2RlLm5vZGVUeXBlICE9PSBOb2RlLkNPTU1FTlRfTk9ERSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhleFRvUmdiKGhleFZhbHVlOiBzdHJpbmcsIGFscGhhPzogbnVtYmVyKTogc3RyaW5nIHtcbiAgICBjb25zdCByZ3ggPSAvXiM/KFthLWZcXGRdKShbYS1mXFxkXSkoW2EtZlxcZF0pJC9pO1xuICAgIGNvbnN0IGhleCA9IGhleFZhbHVlLnJlcGxhY2Uocmd4LCAobTogYW55LCByOiBhbnksIGc6IGFueSwgYjogYW55KSA9PiByICsgciArIGcgKyBnICsgYiArIGIpO1xuICAgIGNvbnN0IHJnYiA9IC9eIz8oW2EtZlxcZF17Mn0pKFthLWZcXGRdezJ9KShbYS1mXFxkXXsyfSkkL2kuZXhlYyhoZXgpO1xuICAgIGlmICghcmdiKSByZXR1cm47XG4gICAgY29uc3QgcmVzdWx0UiA9IHBhcnNlSW50KHJnYlsxXSwgMTYpO1xuICAgIGNvbnN0IHJlc3VsdEcgPSBwYXJzZUludChyZ2JbMl0sIDE2KTtcbiAgICBjb25zdCByZXN1bHRCID0gcGFyc2VJbnQocmdiWzNdLCAxNik7XG4gICAgaWYgKCFpc1VuZGVmaW5lZE9yTnVsbChhbHBoYSkpIHtcbiAgICAgICAgcmV0dXJuIGByZ2JhKCR7cmVzdWx0Un0sICR7cmVzdWx0R30sICR7cmVzdWx0Qn0sICR7YWxwaGF9KWA7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGByZ2IoJHtyZXN1bHRSfSwgJHtyZXN1bHRHfSwgJHtyZXN1bHRCfSlgO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGVUb1VuaXhUaW1lc3RhbXAoZGF0ZTogRGF0ZSB8IG51bWJlcik6IG51bWJlciB7XG4gICAgaWYgKGlzTnVtYmVyKGRhdGUpKSB7XG4gICAgICAgIGlmIChkYXRlLnRvU3RyaW5nKCkubGVuZ3RoID09PSAxMCkge1xuICAgICAgICAgICAgcmV0dXJuIGRhdGUgYXMgbnVtYmVyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBudW1iZXIpIC8gMTAwMCkudG9GaXhlZCgwKSwgMTApO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlSW50KCgoZGF0ZSBhcyBEYXRlKS5nZXRUaW1lKCkgLyAxMDAwKS50b0ZpeGVkKDApLCAxMCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xhbXAodmFsdWU6IG51bWJlciwgbWluID0gMCwgbWF4ID0gMTAwKSB7XG4gICAgcmV0dXJuIE1hdGgubWF4KG1pbiwgTWF0aC5taW4obWF4LCB2YWx1ZSkpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24ga2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBUIH0ge1xuICAgIGNvbnN0IHJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBUIH0gPSB7fTtcbiAgICBhcnJheS5mb3JFYWNoKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBrZXlWYWx1ZSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgKHJlc3VsdCBhcyBhbnkpW2tleVZhbHVlXSA9IGl0ZW07XG4gICAgfSk7XG4gICAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluZGV4S2V5Qnk8VD4oYXJyYXk6IFRbXSwga2V5OiBUIGV4dGVuZHMgb2JqZWN0ID8ga2V5b2YgVCA6IG5ldmVyKTogeyBba2V5OiBzdHJpbmddOiBudW1iZXIgfSB7XG4gICAgY29uc3QgcmVzdWx0OiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9ID0ge307XG4gICAgYXJyYXkuZm9yRWFjaCgoaXRlbSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qga2V5VmFsdWUgPSBpdGVtW2tleV07XG4gICAgICAgIChyZXN1bHQgYXMgYW55KVtrZXlWYWx1ZV0gPSBpbmRleDtcbiAgICB9KTtcbiAgICByZXR1cm4gcmVzdWx0O1xufVxuXG5mdW5jdGlvbiB1cHBlckZpcnN0KHN0cmluZzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gc3RyaW5nLnNsaWNlKDAsIDEpLnRvVXBwZXJDYXNlKCkgKyBzdHJpbmcuc2xpY2UoMSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYW1lbENhc2UodmFsdWVzOiBzdHJpbmdbXSk6IHN0cmluZyB7XG4gICAgaWYgKGlzQXJyYXkodmFsdWVzKSkge1xuICAgICAgICByZXR1cm4gdmFsdWVzLnJlZHVjZSgocmVzdWx0LCB3b3JkLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgd29yZCA9IHdvcmQudG9Mb3dlckNhc2UoKTtcbiAgICAgICAgICAgIHJldHVybiByZXN1bHQgKyAoaW5kZXggPyB1cHBlckZpcnN0KHdvcmQpIDogd29yZCk7XG4gICAgICAgIH0sICcnKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm47XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSYW5kb21TdHIoKSB7XG4gICAgcmV0dXJuIE1hdGgucmFuZG9tKCkudG9TdHJpbmcoMzYpLnN1YnN0cmluZygyKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzVGVtcGxhdGVSZWY8QyA9IGFueT4odmFsdWU6IGFueSk6IHZhbHVlIGlzIFRlbXBsYXRlUmVmPEM+IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzSFRNTEVsZW1lbnQodmFsdWU6IGFueSk6IHZhbHVlIGlzIEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdmFsdWUgaW5zdGFuY2VvZiBIVE1MRWxlbWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRWxlbWVudFJlZih2YWx1ZTogYW55KTogdmFsdWUgaXMgRWxlbWVudFJlZiB7XG4gICAgcmV0dXJuIHZhbHVlIGluc3RhbmNlb2YgRWxlbWVudFJlZjtcbn1cblxuLyoqXG4gKiBmaXggYW5ndWxhciBjZGsncyBjb2VyY2VCb29sZWFuUHJvcGVydHkgd2lsbCB0cmFuc2Zvcm0gMCB0byB0cnVlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWU6IGJvb2xlYW4gfCBzdHJpbmcgfCBudW1iZXIpOiBib29sZWFuIHtcbiAgICBpZiAodmFsdWUgPT09ICcnIHx8ICh2YWx1ZSAmJiB2YWx1ZSAhPT0gJ2ZhbHNlJykpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbn1cblxuZXhwb3J0IHR5cGUgRnVuY3Rpb25Qcm9wPFQ+ID0gKC4uLmFyZ3M6IGFueVtdKSA9PiBUO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VOdW1iZXJQcm9wZXJ0eSBpbnN0ZWFkXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjb2VyY2VOdW1iZXJWYWx1ZSh2YWx1ZTogbnVtYmVyIHwgc3RyaW5nKTogbnVtYmVyO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWU8RD4odmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2s6IEQpOiBudW1iZXIgfCBEO1xuLyoqXG4gKiBAZGVwcmVjYXRlZCBQbGVhc2UgdXNlIEFuZ3VsYXIgY2RrJ3MgY29lcmNlTnVtYmVyUHJvcGVydHkgaW5zdGVhZFxuICovXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlTnVtYmVyVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZywgZmFsbGJhY2tWYWx1ZTogbnVtYmVyID0gMCk6IG51bWJlciB7XG4gICAgcmV0dXJuIF9pc051bWJlclZhbHVlKHZhbHVlKSA/IE51bWJlcih2YWx1ZSkgOiBmYWxsYmFja1ZhbHVlO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFBsZWFzZSB1c2UgQW5ndWxhciBjZGsncyBjb2VyY2VDc3NQaXhlbFZhbHVlIGluc3RlYWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvZXJjZUNzc1BpeGVsVmFsdWUodmFsdWU6IG51bWJlciB8IHN0cmluZyk6IHN0cmluZyB7XG4gICAgdmFsdWUgPSBfaXNOdW1iZXJWYWx1ZSh2YWx1ZSkgPyBOdW1iZXIodmFsdWUpIDogdmFsdWU7XG4gICAgcmV0dXJuIGNvZXJjZUNzc1BpeGVsKHZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHZhbHVlRnVuY3Rpb25Qcm9wPFQ+KHByb3A6IEZ1bmN0aW9uUHJvcDxUPiwgLi4uYXJnczogYW55W10pOiBUIHtcbiAgICByZXR1cm4gdHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicgPyBwcm9wKC4uLmFyZ3MpIDogcHJvcDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNoYWxsb3dFcXVhbChvYmpBPzogUmVjb3JkPHN0cmluZywgYW55Piwgb2JqQj86IFJlY29yZDxzdHJpbmcsIGFueT4pOiBib29sZWFuIHtcbiAgICBpZiAob2JqQSA9PT0gb2JqQikge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAodHlwZW9mIG9iakEgIT09ICdvYmplY3QnIHx8ICFvYmpBIHx8IHR5cGVvZiBvYmpCICE9PSAnb2JqZWN0JyB8fCAhb2JqQikge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3Qga2V5c0EgPSBPYmplY3Qua2V5cyhvYmpBKTtcbiAgICBjb25zdCBrZXlzQiA9IE9iamVjdC5rZXlzKG9iakIpO1xuXG4gICAgaWYgKGtleXNBLmxlbmd0aCAhPT0ga2V5c0IubGVuZ3RoKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCBiSGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmJpbmQob2JqQik7XG5cbiAgICBmb3IgKGxldCBpZHggPSAwOyBpZHggPCBrZXlzQS5sZW5ndGg7IGlkeCsrKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGtleXNBW2lkeF07XG4gICAgICAgIGlmICghYkhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAob2JqQVtrZXldICE9PSBvYmpCW2tleV0pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY29uY2F0QXJyYXk8VEl0ZW0+KGl0ZW1zOiBUSXRlbSB8IFRJdGVtW10sIG9yaWdpbmFsSXRlbXM6IFRJdGVtIHwgVEl0ZW1bXSA9IFtdKTogVEl0ZW1bXSB7XG4gICAgbGV0IF9vcmlnaW5hbEl0ZW1zOiBUSXRlbVtdID0gW107XG4gICAgaWYgKCFvcmlnaW5hbEl0ZW1zKSB7XG4gICAgICAgIF9vcmlnaW5hbEl0ZW1zID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgICAgX29yaWdpbmFsSXRlbXMgPSBjb2VyY2VBcnJheShvcmlnaW5hbEl0ZW1zKTtcbiAgICB9XG4gICAgaWYgKGl0ZW1zKSB7XG4gICAgICAgIGlmIChpc0FycmF5KGl0ZW1zKSkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgLi4uaXRlbXNdO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5fb3JpZ2luYWxJdGVtcywgaXRlbXNdO1xuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIF9vcmlnaW5hbEl0ZW1zO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGh1bWFuaXplQnl0ZXMoYnl0ZXM6IG51bWJlciwgbm9TcGFjZSA9IGZhbHNlLCBmcmFjdGlvbkRpZ2l0cyA9IDEpOiBzdHJpbmcge1xuICAgIGlmIChieXRlcyA9PT0gMCkge1xuICAgICAgICByZXR1cm4gJzAgQnl0ZSc7XG4gICAgfVxuXG4gICAgY29uc3QgayA9IDEwMjQ7XG4gICAgY29uc3Qgc2l6ZXM6IHN0cmluZ1tdID0gWydCeXRlcycsICdLQicsICdNQicsICdHQicsICdUQicsICdQQiddO1xuICAgIGNvbnN0IGk6IG51bWJlciA9IE1hdGguZmxvb3IoTWF0aC5sb2coYnl0ZXMpIC8gTWF0aC5sb2coaykpO1xuXG4gICAgcmV0dXJuIHBhcnNlRmxvYXQoKGJ5dGVzIC8gTWF0aC5wb3coaywgaSkpLnRvRml4ZWQoZnJhY3Rpb25EaWdpdHMpKSArIChub1NwYWNlID8gJycgOiAnICcpICsgc2l6ZXNbaV07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zsb2F0KHZhbHVlOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gL15bLStdPyhbMC05XSsoWy5dWzAtOV0qKT98Wy5dWzAtOV0rKShbRWVdWy0rXT9bMC05XSspPyQvLnRlc3QodmFsdWUpO1xufVxuIl19
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export * from './helpers';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvdXRpbC9oZWxwZXJzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsV0FBVyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9oZWxwZXJzJztcbiJdfQ==
|